---
updatedAt: 2026-09-25T20:34:49.000Z
agentTools:
  projectIndex: https://docs.sixfab.com/llms.txt
---

# Quickstart

Set up the ALPON X5 AI edge computer with this step-by-step quick start guide. Learn how to install hardware and configure the system for edge AI deployment.

<HTMLBlock>{`
<style>
/* ════════════════════════════════════════════════════════════════════════
   ALPON X5 AI · Quickstart
   Page type:      §11.1 Quickstart (sixfab-docs-design-language.md)
   Brand modifier: Mixed-tier
     · Hero    sf-hero          (default Tier 1, Sixfab Teal, no gradient)
     · AEO     sf-aeo--ai       (AI Iris, Tier 3 — anchors the page on
                                 the NPU layer; carries the AI signal
                                 that the hero no longer carries)
     · Steps   sf-step-list--ai (AI Iris numbered circles — justified per
                                 project §3: this Quickstart is the bridge
                                 into AI Model Deployment)
   Tokens:         DESIGN.md v4 (Sixfab Teal primary · AI Iris Tier 3)
   Typography:     DESIGN.md canonical (Gilroy + JetBrains Mono)
   Schema:         HowTo + BreadcrumbList (page-end comment block)

   Design alignment with /docs/ai-hat-plus-raspberry-pi-5-quickstart:
   The hero, meta bar, AEO block, "In this guide" TOC, step list header,
   and "Where to next" exit ramp adopt the AI HAT+ Quickstart canonical
   shape. The page-body content stays X5 AI-specific (Register → Power
   → Network → Verify → Access). Step 5 carries the NPU verification
   note + bridge to AI Model Deployment per project §7.
   ════════════════════════════════════════════════════════════════════════ */

/* ─── FONTS ─────────────────────────────────────────────────────────────── */
@font-face { font-family:'Gilroy'; src:url('https://sixfab.com/wp-content/fonts/Gilroy-Regular.woff2')   format('woff2'); font-weight:400; font-display:swap; }
@font-face { font-family:'Gilroy'; src:url('https://sixfab.com/wp-content/fonts/Gilroy-Medium.woff2')    format('woff2'); font-weight:500; font-display:swap; }
@font-face { font-family:'Gilroy'; src:url('https://sixfab.com/wp-content/fonts/Gilroy-SemiBold.woff2')  format('woff2'); font-weight:600; font-display:swap; }
@font-face { font-family:'Gilroy'; src:url('https://sixfab.com/wp-content/fonts/Gilroy-Bold.woff2')      format('woff2'); font-weight:700; font-display:swap; }
@font-face { font-family:'Gilroy'; src:url('https://sixfab.com/wp-content/fonts/Gilroy-ExtraBold.woff2') format('woff2'); font-weight:800; font-display:swap; }
@font-face { font-family:'JetBrains Mono'; src:url('https://cdn.jsdelivr.net/gh/JetBrains/JetBrainsMono@2.304/fonts/webfonts/JetBrainsMono-Regular.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:'JetBrains Mono'; src:url('https://cdn.jsdelivr.net/gh/JetBrains/JetBrainsMono@2.304/fonts/webfonts/JetBrainsMono-Medium.woff2') format('woff2'); font-weight:500; font-style:normal; font-display:swap; }

/* ─── DESIGN TOKENS - DESIGN.md 6-tier system, scoped to .sf-doc ────────── */
.sf-doc {
  /* Tier 1 - Core Brand */
  --primary:       #034860;
  --secondary:     #00E0B8;
  --tertiary:      #1B2D45;
  --neutral:       #E8F5F0;

  /* Tier 2 - Neutral & Interface */
  --white:         #FFFFFF;
  --light:         #F6F8F9;
  --line:          #DDE6EC;
  --slate-light:   #94A8B5;
  --slate:         #52667A;
  --deep-ink:      #10202E;

  /* Tier 3 - AI / Product Accent */
  --ai-iris:       #6B47F0;
  --ai-iris-hover: #5638E0;
  --ai-mist:       #F0EDFF;
  --alpon-purple:  #4F008E;
  --alpon-cyan:    #00A6C8;

  /* Tier 5 - Semantic */
  --success:       #00B894;
  --warning:       #F59E0B;
  --danger:        #DC2626;
  --info:          #429CBF;
  --success-text:  #047857;
  --warning-text:  #92400E;
  --danger-text:   #B91C1C;
  --info-text:     #0E4A66;
  --success-bg:    #E0F5EE;
  --warning-bg:    #FDF1DC;
  --danger-bg:     #FBE5E5;
  --info-bg:       #DCEFF7;

  /* On-color */
  --on-primary:    #FFFFFF;
  --on-secondary:  #1B2D45;

  /* Spacing - DESIGN.md 4px base, 8-step scale */
  --xs: 4px; --sm: 8px; --md: 16px; --lg: 24px; --xl: 32px;
  --2xl: 48px; --3xl: 64px; --4xl: 96px;

  /* Radii - DESIGN.md canonical */
  --r-sm: 4px; --r-md: 6px; --r-lg: 8px; --r-xl: 12px; --r-2xl: 16px; --r-full: 9999px;

  /* Gradients - DESIGN.md named */
  --grad-edge-cloud: linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);
  --grad-alpon:      linear-gradient(135deg, var(--alpon-purple) 0%, var(--alpon-cyan) 100%);

  /* Shadows - tonal, not heavy */
  --shadow-sm:    0 1px 2px rgba(10,23,33,.04);
  --shadow-md:    0 4px 12px rgba(10,23,33,.06);
  --shadow-lg:    0 8px 24px rgba(10,23,33,.08);
  --shadow-focus: 0 0 0 2px var(--white), 0 0 0 4px var(--secondary);

  /* Fonts - DESIGN.md dual pairing */
  --font-sans: 'Gilroy', 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', 'SF Mono', Menlo, Consolas, monospace;

  /* Wrapper base - DESIGN.md page-max for docs */
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--deep-ink);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  padding: 0 0 80px;
  width: 100%;
  max-width: none;
}
.sf-doc *, .sf-doc *::before, .sf-doc *::after { box-sizing: border-box; }

/* ─── BASE TYPOGRAPHY - DESIGN.md canonical scale ────────────────────────── */
.sf-doc h1 {
  font-family: var(--font-sans);
  font-size: 3rem;
  font-weight: 800;
  line-height: 1.08;
  letter-spacing: -0.03em;
  color: var(--deep-ink);
  margin: 0 0 var(--md);
}
.sf-doc h2 {
  font-family: var(--font-sans);
  font-size: 2.25rem;
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.025em;
  color: var(--primary);
  margin: var(--3xl) 0 var(--md);
  padding: 0;
  border: 0;
}
.sf-doc h2:first-of-type { margin-top: 0; }
.sf-doc h2 { scroll-margin-top: 24px; }
.sf-step { scroll-margin-top: 24px; }
.sf-next { scroll-margin-top: 24px; }
.sf-doc h3 {
  font-family: var(--font-sans);
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--deep-ink);
  margin: var(--xl) 0 var(--md);
}
.sf-doc h4 {
  font-family: var(--font-sans);
  font-size: 1.125rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.015em;
  color: var(--deep-ink);
  margin: var(--lg) 0 var(--sm);
}
.sf-doc p {
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: -0.005em;
  color: var(--deep-ink);
  margin: 0 0 var(--md);
}
.sf-doc p:last-child { margin-bottom: 0; }
.sf-doc .sf-lead {
  font-size: 1.125rem;
  line-height: 1.6;
  color: var(--deep-ink);
  margin: 0 0 var(--lg);
  text-align: justify;
  text-justify: inter-word;
}
.sf-doc ul, .sf-doc ol { padding-left: var(--lg); margin: 0 0 var(--md); }
.sf-doc li { font-size: 1rem; line-height: 1.6; color: var(--deep-ink); margin-bottom: 6px; }
.sf-doc ul li::marker { color: var(--primary); }
.sf-doc ol li::marker { color: var(--primary); font-weight: 700; }
.sf-doc a {
  color: var(--primary);
  text-decoration: none;
  transition: text-decoration-color .15s;
  font-weight: 500;
}
.sf-doc a:hover { color: var(--deep-ink); text-decoration: underline; }
.sf-doc strong { color: var(--deep-ink); font-weight: 700; }
.sf-doc code {
  font-family: var(--font-mono);
  font-size: 0.875rem;
  font-weight: 500;
  background: var(--light);
  color: var(--primary);
  padding: 1px 6px;
  border-radius: var(--r-sm);
  border: 0;
  white-space: nowrap;
}
.sf-doc kbd {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  background: var(--light);
  border: 1px solid var(--line);
  border-bottom-width: 2px;
  border-radius: var(--r-sm);
  padding: 1px 7px;
  color: var(--deep-ink);
}

/* Eyebrow - Gilroy uppercase, tightened tracking for sans-serif legibility */
.sf-eyebrow {
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1;
  color: var(--primary);
  display: block;
  margin-bottom: 14px;
}

/* Icon base */
.sf-icon { display: inline-block; flex-shrink: 0; vertical-align: middle; }

/* ════════════════════════════════════════════════════════════════════════
   HERO - sf-hero (canonical, Tier 1)
   Single-column compact variant matching the AI HAT+ Quickstart. Default
   Tier 1 surface: --light background, --deep-ink type, Sixfab Teal eyebrow.
   No ALPON Gradient on this surface — the page is a Quickstart, not a
   product overview. AI Iris signal is carried one block down via
   sf-aeo--ai, which keeps the page legible as the AI Model Deployment
   bridge while honouring DESIGN.md "max 1 gradient per page" governance.

   Two Quickstart-specific touches on top of the canonical shape:
     · pulsing mint dot before the eyebrow — visual cue that this is a
       live step-by-step flow.
     · "~5 min" mint time pill in the CTA row — the recognisable
       "how long will this take?" affordance docs readers look for first.
   ════════════════════════════════════════════════════════════════════════ */
.sf-hero {
  padding: var(--xl);
  margin: 0 0 var(--2xl);
  background: var(--light);
  border: 1px solid var(--line);
  border-radius: var(--r-2xl);
  overflow: hidden;
}
.sf-hero__copy { min-width: 0; }
.sf-doc .sf-hero__title {
  font-family: var(--font-sans);
  font-size: 2.5rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.08;
  color: var(--deep-ink);
  margin: 0 0 14px;
}
.sf-doc .sf-hero__lead {
  font-size: 1.0625rem;
  line-height: 1.6;
  color: var(--deep-ink);
  margin: 0 0 18px;
}
.sf-hero__lead code { background: var(--white); }
.sf-hero__chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 22px; }
.sf-hero__cta   { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }

/* Quickstart-specific touch #1: eyebrow gets a pulsing mint dot.
   Used only on this page; signals "live step-by-step flow". */
.sf-hero .sf-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.sf-hero .sf-eyebrow::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: var(--r-full);
  background: var(--secondary);
  box-shadow: 0 0 0 3px rgba(0,224,184,.22);
  animation: sf-hero-eyebrow-pulse 2.4s ease-in-out infinite;
}
@keyframes sf-hero-eyebrow-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: .55; transform: scale(.7); }
}

/* Quickstart-specific touch #2: time-to-complete mint pill in the CTA row.
   This is the "how long will this take" affordance docs readers scan
   for first. Mint background, dark text — passes AA at 5.5:1. */
.sf-hero__time {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-sans);
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: -0.005em;
  color: var(--on-secondary);
  padding: 7px 14px 7px 11px;
  background: var(--secondary);
  border: 1px solid var(--secondary);
  border-radius: var(--r-full);
  box-shadow: 0 4px 14px rgba(0,224,184,.32), 0 0 0 1px rgba(255,255,255,.06) inset;
  position: relative;
}
.sf-hero__time::before {
  content: '';
  width: 7px; height: 7px;
  border-radius: var(--r-full);
  background: var(--on-secondary);
  box-shadow: 0 0 0 3px rgba(27,45,69,.18);
  flex-shrink: 0;
  animation: sf-hero-time-pulse 2.4s ease-in-out infinite;
}
@keyframes sf-hero-time-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50%      { opacity: .55; transform: scale(.85); }
}
.sf-hero__time .sf-icon { width: 14px; height: 14px; }

/* ─── PILLS ─────────────────────────────────────────────────────────────── */
.sf-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: var(--r-sm);
  background: var(--light);
  color: var(--deep-ink);
  border: 1px solid var(--line);
  white-space: nowrap;
  vertical-align: middle;
  line-height: 1.4;
}
.sf-pill--ai {
  background: var(--ai-iris);
  color: var(--white);
  border-color: var(--ai-iris);
  font-size: 0.875rem;     /* ≥14px bold for WCAG large-text exception */
  font-weight: 700;
}
.sf-pill--success { background: var(--success-bg); color: var(--success-text); border-color: var(--success-bg); }

/* ════════════════════════════════════════════════════════════════════════
   META BAR
   ════════════════════════════════════════════════════════════════════════ */
.sf-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  font-family: var(--font-sans);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--slate);
  margin: 0 0 var(--xl);
}
.sf-meta__badge {
  font-family: var(--font-sans);
  font-weight: 700;
  font-size: 0.75rem;
  padding: 3px 8px;
  border-radius: var(--r-sm);
  background: var(--light);
  color: var(--primary);
  border: 1px solid var(--line);
}
.sf-meta__sep { color: var(--line); }

/* ════════════════════════════════════════════════════════════════════════
   AEO ANSWER BLOCK - sf-aeo--ai (Tier 3)
   Heading-style label (not mono uppercase). Readable display type,
   larger than the answer paragraph.
   ════════════════════════════════════════════════════════════════════════ */
.sf-aeo {
  position: relative;
  background: var(--light);
  border: 1px solid var(--line);
  border-left: 4px solid var(--primary);
  border-radius: var(--r-md);
  padding: var(--lg) var(--xl);
  margin: 0 0 var(--xl);
}
.sf-aeo--ai {
  background: var(--ai-mist);
  border-color: rgba(107,71,240,0.20);
  border-left-color: var(--ai-iris);
}
.sf-aeo__label {
  display: block;
  font-family: var(--font-sans);
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.015em;
  text-transform: none;
  color: var(--primary);
  margin: 0 0 var(--sm);
}
.sf-aeo--ai .sf-aeo__label { color: var(--ai-iris); }
.sf-aeo__text {
  font-size: 1rem;
  line-height: 1.65;
  color: var(--deep-ink);
  margin: 0;
}
.sf-aeo__text strong { color: var(--primary); font-weight: 700; }
.sf-aeo--ai .sf-aeo__text strong { color: var(--ai-iris); }

/* ════════════════════════════════════════════════════════════════════════
   IN THIS GUIDE - sf-toc (Specifications-page pattern, design language §6.15)
   Each item is a small white pill with a numbered prefix. On hover the
   whole pill flips to Sixfab Teal with a Mint number. Default Tier 1
   surface; no AI Iris coloring on the TOC itself.
   ════════════════════════════════════════════════════════════════════════ */
.sf-toc {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: 6px;
  padding: var(--md) var(--lg);
  background: var(--light);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  margin: 0 0 var(--2xl);
}
.sf-toc__label {
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--slate);
  margin-right: var(--sm);
}
.sf-toc__item {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px;
  background: var(--white); border: 1px solid var(--line);
  border-radius: var(--r-sm);
  font-family: var(--font-sans);
  font-size: 0.8125rem; font-weight: 600;
  color: var(--deep-ink);
  text-decoration: none !important;
  transition: background .15s, border-color .15s; white-space: nowrap;
}
.sf-doc .sf-toc__item:hover,
.sf-doc .sf-toc__item:focus {
  background: var(--primary);
  color: var(--white) !important;
  border-color: var(--primary);
  text-decoration: none !important;
}
.sf-doc .sf-toc__item:hover .sf-toc__num,
.sf-doc .sf-toc__item:focus .sf-toc__num {
  color: var(--secondary);
}
.sf-toc__num {
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--slate);
}

/* ════════════════════════════════════════════════════════════════════════
   PREREQUISITES - flat checklist
   One enclosing surface. The vibrant accent lives on the status pill,
   so the eye is drawn to status first and the body reads as a checklist.
   ════════════════════════════════════════════════════════════════════════ */
.sf-prereq-list {
  margin: var(--md) 0 var(--lg);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  overflow: hidden;
}
.sf-prereq-list__group + .sf-prereq-list__group {
  border-top: 1px solid var(--line);
}
.sf-prereq-list__head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 22px;
  background: var(--light);
  border-bottom: 1px solid var(--line);
}
.sf-prereq-list__head-label {
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--primary);
}
.sf-prereq-list__head-count {
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--slate);
  letter-spacing: 0;
}
.sf-prereq-list__group--optional .sf-prereq-list__head-label { color: var(--slate); }

/* Single row: status pill | icon | title + description */
.sf-prereq-row {
  display: grid;
  grid-template-columns: 110px 38px 1fr;
  align-items: center;
  gap: 18px;
  padding: 16px 22px;
  position: relative;
  transition: background .15s;
}
.sf-prereq-row + .sf-prereq-row {
  border-top: 1px solid var(--line);
}
.sf-prereq-row:hover { background: var(--light); }

.sf-prereq-row__status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  justify-self: start;
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  padding: 5px 11px 5px 9px;
  border-radius: var(--r-full);
  white-space: nowrap;
  line-height: 1;
}
.sf-prereq-row__status::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: var(--r-full);
  background: currentColor;
  flex-shrink: 0;
}
.sf-prereq-row__status--required {
  background: var(--primary);
  color: var(--white);
}
.sf-prereq-row__status--required::before {
  background: var(--secondary);
}
.sf-prereq-row__status--recommended {
  background: var(--success-bg);
  color: var(--success-text);
  border: 1px solid rgba(0,184,148,.30);
}
.sf-prereq-row__status--included {
  background: var(--ai-mist);
  color: var(--ai-iris);
  border: 1px solid rgba(107,71,240,.30);
}

.sf-prereq-row__icon {
  width: 38px; height: 38px;
  border-radius: var(--r-md);
  background: var(--neutral);
  color: var(--primary);
  display: flex; align-items: center; justify-content: center;
}
.sf-prereq-row__icon .sf-icon { width: 19px; height: 19px; }
.sf-prereq-row--recommended .sf-prereq-row__icon {
  background: var(--success-bg);
  color: var(--success-text);
}
.sf-prereq-row--included .sf-prereq-row__icon {
  background: var(--ai-mist);
  color: var(--ai-iris);
}

.sf-prereq-row__copy {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}
.sf-prereq-row__title {
  font-family: var(--font-sans);
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: -0.005em;
  color: var(--deep-ink);
  line-height: 1.3;
}
.sf-prereq-row__desc {
  font-family: var(--font-sans);
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--slate);
  line-height: 1.55;
}
.sf-prereq-row__desc code { font-size: 0.8125rem; }

/* ════════════════════════════════════════════════════════════════════════
   FIGURE - content image with caption (used inside steps)
   ════════════════════════════════════════════════════════════════════════ */
.sf-figure {
  margin: var(--md) 0 var(--lg);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  overflow: hidden;
}
.sf-figure__frame {
  position: relative;
  background: var(--light);
  aspect-ratio: 16 / 9;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.sf-figure__frame img {
  display: block;
  width: 100%; height: 100%;
  object-fit: cover;
}
.sf-figure__frame img[src=""],
.sf-figure__frame img:not([src]) {
  display: block;
  width: 100%; height: 100%;
  background: var(--light);
}
.sf-figure__frame::after {
  content: "Image: pending";
  position: absolute;
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--slate-light);
  pointer-events: none;
}
.sf-figure__frame:has(img[src]:not([src=""]))::after { display: none; }
.sf-figure__cap {
  font-family: var(--font-sans);
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--slate);
  padding: 10px 16px;
  border-top: 1px solid var(--line);
  background: var(--white);
}
.sf-figure__cap-num {
  display: inline-block;
  font-family: var(--font-sans);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.6875rem;
  color: var(--primary);
  margin-right: 8px;
  padding: 2px 7px;
  background: var(--neutral);
  border-radius: var(--r-sm);
}

/* ════════════════════════════════════════════════════════════════════════
   CALLOUT - Tier 5 semantic + Tier 3 AI
   ════════════════════════════════════════════════════════════════════════ */
.sf-callout {
  display: flex;
  flex-direction: column;
  gap: 6px;
  border-radius: var(--r-md);
  padding: 14px 18px;
  margin: var(--md) 0;
  border-left: 4px solid;
}
.sf-callout__header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.2;
}
.sf-callout__header .sf-icon { width: 18px; height: 18px; }
.sf-callout__content { font-size: 0.9375rem; line-height: 1.6; color: var(--deep-ink); }
.sf-callout__content p { margin: 0 0 6px; font-size: 0.9375rem; color: inherit; }
.sf-callout__content p:last-child { margin-bottom: 0; }
.sf-callout__content code { background: rgba(0,0,0,.06); border: 0; }
.sf-callout--info     { background: var(--info-bg);    border-left-color: var(--info); }
.sf-callout--info     .sf-callout__header { color: var(--info-text); }
.sf-callout--success  { background: var(--success-bg); border-left-color: var(--success); }
.sf-callout--success  .sf-callout__header { color: var(--success-text); }
.sf-callout--warning  { background: var(--warning-bg); border-left-color: var(--warning); }
.sf-callout--warning  .sf-callout__header { color: var(--warning-text); }
.sf-callout--danger   { background: var(--danger-bg);  border-left-color: var(--danger); }
.sf-callout--danger   .sf-callout__header { color: var(--danger-text); }
.sf-callout--ai       { background: var(--ai-mist);    border-left-color: var(--ai-iris); }
.sf-callout--ai       .sf-callout__header { color: var(--ai-iris); }

/* ════════════════════════════════════════════════════════════════════════
   STEP LIST - sf-step-list--ai (Tier 3 AI Iris)
   Step number + title share a baseline via grid layout on .sf-step__header.
   ════════════════════════════════════════════════════════════════════════ */
.sf-step-list {
  position: relative;
  padding: 0;
  margin: var(--lg) 0 var(--xl);
}
.sf-step-list::before {
  content: '';
  position: absolute;
  left: 23px;
  top: 48px;
  bottom: 24px;
  width: 2px;
  background: var(--line);
  z-index: 0;
}
.sf-step-list--ai::before {
  background: linear-gradient(180deg, var(--ai-iris) 0%, rgba(107,71,240,.20) 100%);
}
.sf-step {
  position: relative;
  z-index: 1;
  padding-bottom: var(--2xl);
}
.sf-step:last-child { padding-bottom: 0; }

/* Header row: 48px number + title, both vertically centered on the same row. */
.sf-step__header {
  display: grid;
  grid-template-columns: 48px 1fr;
  align-items: center;
  gap: 0 22px;
  margin-bottom: var(--md);
}
.sf-step__num {
  width: 48px; height: 48px;
  border-radius: var(--r-full);
  background: var(--primary);
  color: var(--on-primary);
  font-family: var(--font-sans);
  font-size: 1.0625rem;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 0 0 5px var(--white), 0 4px 10px rgba(10,23,33,.10);
  align-self: center;
}
.sf-step-list--ai .sf-step__num {
  background: var(--ai-iris);
  color: var(--white);
  box-shadow: 0 0 0 5px var(--white), 0 6px 14px rgba(107,71,240,.32);
}
.sf-doc .sf-step__title {
  font-family: var(--font-sans);
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--deep-ink);
  line-height: 1.15;
  margin: 0;
  padding: 0;
  align-self: center;
}

/* Body content: indented to match the title column (48 + 22 = 70px) */
.sf-step__body {
  padding-left: 70px;
  min-width: 0;
}
.sf-step__body p {
  font-size: 1rem;
  line-height: 1.65;
  margin: 0 0 14px;
}
.sf-step__body h4 {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 22px 0 10px;
  color: var(--deep-ink);
}

/* ════════════════════════════════════════════════════════════════════════
   METHOD CARDS (registration paths inside Step 1)
   ════════════════════════════════════════════════════════════════════════ */
.sf-method-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin: var(--md) 0 var(--lg);
}
.sf-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  padding: 18px 20px;
  transition: border-color .15s, transform .15s;
}
.sf-card--highlighted {
  background: var(--ai-mist);
  border: 2px solid var(--ai-iris);
}
.sf-method__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin: 0 0 10px;
}
.sf-method__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-sans);
  font-size: 1rem;
  font-weight: 700;
  color: var(--deep-ink);
  margin: 0;
}
.sf-method__title .sf-icon { width: 18px; height: 18px; color: var(--ai-iris); }
.sf-method-grid ol { margin: 4px 0 0; padding-left: 20px; }
.sf-method-grid ol li { font-size: 0.875rem; margin-bottom: 5px; color: var(--deep-ink); }
.sf-card--highlighted ol li::marker { color: var(--ai-iris); }

/* ════════════════════════════════════════════════════════════════════════
   POWER OPTIONS (3-card grid inside Step 2)
   ════════════════════════════════════════════════════════════════════════ */
.sf-power-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: var(--md) 0 var(--lg);
}
.sf-power {
  position: relative;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 14px 16px;
  background: var(--white);
  transition: border-color .15s;
}
.sf-power:hover { border-color: var(--slate-light); }
.sf-power--primary {
  border: 2px solid var(--primary);
  background: var(--neutral);
}
.sf-power__icon {
  width: 32px; height: 32px;
  border-radius: var(--r-sm);
  background: var(--light);
  color: var(--slate);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 8px;
}
.sf-power--primary .sf-power__icon {
  background: var(--white);
  color: var(--primary);
}
.sf-power__icon .sf-icon { width: 18px; height: 18px; }
.sf-power__title { font-family: var(--font-sans); font-size: 0.9375rem; font-weight: 700; color: var(--deep-ink); margin: 0 0 2px; }
.sf-power__sub { font-size: 0.8125rem; color: var(--slate); margin: 0; line-height: 1.45; }
.sf-power__pin {
  position: absolute;
  top: 10px; right: 10px;
  font-family: var(--font-sans);
  font-size: 0.625rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: var(--r-sm);
  background: var(--primary);
  color: var(--white);
}

/* ════════════════════════════════════════════════════════════════════════
   LED MATRIX (verification table inside Step 4)
   ════════════════════════════════════════════════════════════════════════ */
.sf-led-matrix {
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  background: var(--white);
  overflow: hidden;
  margin: var(--md) 0 var(--lg);
}
.sf-led-row {
  display: grid;
  grid-template-columns: 140px 1fr;
  align-items: center;
  gap: 18px;
  padding: 13px 18px;
  border-top: 1px solid var(--line);
  font-size: 0.9375rem;
  color: var(--deep-ink);
  line-height: 1.55;
}
.sf-led-row:first-child { border-top: 0; }
.sf-led-row strong { color: var(--deep-ink); font-weight: 700; }
.sf-led-key {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--slate);
}
.sf-led-key__dot {
  width: 11px; height: 11px;
  border-radius: 50%;
  flex-shrink: 0;
  position: relative;
}
.sf-led-key__dot::after {
  content: '';
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  border: 1px solid currentColor;
  opacity: 0.22;
}
.sf-led-key--white  { color: var(--slate); }
.sf-led-key--white  .sf-led-key__dot { background: #F8FAFC; box-shadow: inset 0 0 0 1px var(--line); }
.sf-led-key--green  { color: #047857; }
.sf-led-key--green  .sf-led-key__dot { background: #22C55E; box-shadow: 0 0 8px rgba(34, 197, 94, 0.55); }
.sf-led-key--blue   { color: #0E4A66; }
.sf-led-key--blue   .sf-led-key__dot { background: #3B82F6; box-shadow: 0 0 8px rgba(59, 130, 246, 0.55); }
.sf-led-key--yellow { color: #92400E; }
.sf-led-key--yellow .sf-led-key__dot { background: #F59E0B; box-shadow: 0 0 8px rgba(245, 158, 11, 0.55); }
.sf-led-key--red    { color: #B91C1C; }
.sf-led-key--red    .sf-led-key__dot { background: #EF4444; box-shadow: 0 0 8px rgba(239, 68, 68, 0.55); }

/* ════════════════════════════════════════════════════════════════════════
   TERMINAL BLOCK - always dark (DESIGN.md §9.4)
   ════════════════════════════════════════════════════════════════════════ */
.sf-terminal {
  --t-bg: #0d1117;
  --t-hd: #161b22;
  --t-bdc: #30363d;
  --t-tx: #e6edf3;
  background: var(--t-bg) !important;
  border: 1px solid var(--t-bdc);
  border-radius: var(--r-xl);
  margin: var(--md) 0;
  overflow: hidden;
  box-shadow: var(--shadow-md);
}
.sf-term__head {
  display: flex; align-items: center; gap: 8px;
  padding: 11px 16px;
  background: var(--t-hd) !important;
  border-bottom: 1px solid var(--t-bdc);
}
.sf-term__dots { display: flex; gap: 6px; flex-shrink: 0; }
.sf-term__dot { width: 11px; height: 11px; border-radius: var(--r-full); flex-shrink: 0; }
.sf-term__title {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: #8b949e !important;
  flex: 1;
  text-align: center;
  letter-spacing: 0.02em;
}
.sf-term__body { padding: 16px 20px; }
.sf-term__body pre {
  font-family: var(--font-mono) !important;
  font-size: 0.8125rem !important;
  color: var(--t-tx) !important;
  line-height: 1.75 !important;
  white-space: pre-wrap !important;
  word-break: break-word;
  margin: 0;
  background: transparent !important;
  border: 0 !important;
  padding: 0 !important;
  max-width: 100%;
  overflow-x: auto;
}
/* Syntax tokens (GitHub-Dark inspired) */
.sf-doc .tc { color: #8b949e !important; }
.sf-doc .tg { color: #7ee787 !important; }
.sf-doc .tb { color: #79c0ff !important; }
.sf-doc .ty { color: #ffa657 !important; }
.sf-doc .tp { color: #d2a8ff !important; }

/* ════════════════════════════════════════════════════════════════════════
   OUTPUT BLOCK
   ════════════════════════════════════════════════════════════════════════ */
.sf-output {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  margin: var(--md) 0;
  overflow: hidden;
}
.sf-output__head {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 16px;
  background: var(--light);
  border-bottom: 1px solid var(--line);
}
.sf-output__label {
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--slate);
}
.sf-output__badge {
  display: inline-flex; align-items: center; gap: 5px;
  background: var(--success-bg);
  color: var(--success-text);
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 3px 9px;
  border-radius: var(--r-full);
}
.sf-output__badge .sf-icon { width: 11px; height: 11px; }
.sf-output__body { padding: 16px 20px; }
.sf-output__body pre {
  font-family: var(--font-mono);
  font-size: 0.8125rem;
  color: var(--deep-ink);
  line-height: 1.85;
  white-space: pre;
  max-width: 100%;
  overflow-x: auto;
  margin: 0;
  background: transparent;
  border: 0;
  padding: 0;
}
.sf-doc .ob-hl { color: var(--primary);      font-weight: 700; }
.sf-doc .ob-ai { color: var(--ai-iris);      font-weight: 700; }
.sf-doc .ob-ok { color: var(--success-text); font-weight: 700; }

/* ════════════════════════════════════════════════════════════════════════
   FAQ - first-boot troubleshooting (inline, before exit ramp)
   ════════════════════════════════════════════════════════════════════════ */
.sf-faq {
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  background: var(--white);
  overflow: hidden;
  margin: var(--md) 0 var(--lg);
}
.sf-faq details { border-bottom: 1px solid var(--line); }
.sf-faq details:last-child { border-bottom: 0; }
.sf-faq summary {
  list-style: none;
  padding: 16px 22px;
  font-family: var(--font-sans);
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--deep-ink);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  transition: background .15s;
  letter-spacing: -0.005em;
}
.sf-faq summary::-webkit-details-marker { display: none; }
.sf-faq summary:hover { background: var(--light); }
.sf-faq summary > span { flex: 1; min-width: 0; }
.sf-faq summary code { white-space: nowrap; }
.sf-faq summary::after {
  content: '';
  width: 8px; height: 8px;
  border-right: 1.5px solid var(--slate);
  border-bottom: 1.5px solid var(--slate);
  transform: rotate(45deg);
  transition: transform .2s;
  margin-top: -3px;
  flex-shrink: 0;
}
.sf-faq details[open] summary::after {
  transform: rotate(-135deg);
  margin-top: 3px;
}
.sf-faq__a {
  padding: 0 22px 18px;
  font-size: 0.9375rem;
  color: var(--deep-ink);
  line-height: 1.65;
}
.sf-faq__a p { margin: 0 0 8px; font-size: inherit; }
.sf-faq__a p:last-child { margin-bottom: 0; }

/* ════════════════════════════════════════════════════════════════════════
   NEXT STEPS - Quickstart exit ramp into AI Model Deployment
   Composition mirrors the AI HAT+ Quickstart:
     · sf-next__intro  - eyebrow + heading + closing paragraph
     · sf-next__grid   - three prominent cards (Model Zoo / Workflow /
                         System Monitoring), each tagged AI Iris because
                         the destination IS the AI Model Deployment surface
     · sf-next__aside  - small secondary row (Troubleshooting / FAQ)
   ════════════════════════════════════════════════════════════════════════ */
.sf-next { margin: var(--3xl) 0 0; }
.sf-next__intro { margin-bottom: var(--lg); }
.sf-next__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ai-iris);
  background: var(--ai-mist);
  padding: 6px 12px;
  border-radius: var(--r-full);
  margin-bottom: var(--md);
}
.sf-next__eyebrow::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--ai-iris);
}
.sf-doc .sf-next h2 { margin-top: 0; }
.sf-next__lead {
  font-size: 1.125rem;
  line-height: 1.55;
  color: var(--slate);
  text-align: justify;
  text-justify: inter-word;
}
.sf-next__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin: var(--lg) 0 var(--md);
}
.sf-next__card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  text-decoration: none !important;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  padding: 22px 22px 20px;
  position: relative;
  overflow: hidden;
  transition: border-color .15s, transform .15s, box-shadow .15s;
}
.sf-next__card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: var(--ai-iris);
  border-radius: var(--r-xl) var(--r-xl) 0 0;
}
.sf-next__card:hover {
  border-color: var(--ai-iris);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.sf-next__card-icon {
  width: 40px; height: 40px;
  border-radius: var(--r-md);
  background: var(--ai-mist);
  color: var(--ai-iris);
  display: flex; align-items: center; justify-content: center;
  margin-bottom: 4px;
}
.sf-next__card-icon .sf-icon { width: 20px; height: 20px; }
.sf-next__card-step {
  font-family: var(--font-sans);
  font-size: 0.6875rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ai-iris);
}
.sf-next__card-title {
  font-family: var(--font-sans);
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--deep-ink);
  line-height: 1.3;
}
.sf-next__card-desc {
  font-size: 0.875rem;
  color: var(--slate);
  line-height: 1.55;
  flex: 1;
}
.sf-next__card-cta {
  font-size: 0.8125rem;
  font-weight: 700;
  color: var(--ai-iris);
  margin-top: auto;
  padding-top: 6px;
}

/* Secondary aside row */
.sf-next__aside {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin-top: var(--md);
}
.sf-next__aside-card {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none !important;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 12px 16px;
  transition: border-color .15s, transform .15s;
}
.sf-next__aside-card:hover {
  border-color: var(--primary);
  transform: translateY(-1px);
}
.sf-next__aside-icon {
  width: 28px; height: 28px;
  border-radius: var(--r-sm);
  background: var(--light);
  color: var(--primary);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.sf-next__aside-icon .sf-icon { width: 14px; height: 14px; }
.sf-next__aside-body { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.sf-next__aside-label {
  font-family: var(--font-sans);
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--deep-ink);
}
.sf-next__aside-desc {
  font-size: 0.8125rem;
  color: var(--slate);
  line-height: 1.4;
}

/* ════════════════════════════════════════════════════════════════════════
   RESPONSIVE
   ════════════════════════════════════════════════════════════════════════ */
@media (max-width: 820px) {
  .sf-doc h1 { font-size: 2.5rem; }
  .sf-doc h2 { font-size: 1.875rem; margin-top: var(--2xl); }
  .sf-hero { padding: var(--lg); }
  .sf-doc .sf-hero__title { font-size: 2.25rem; }
  .sf-method-grid { grid-template-columns: 1fr; }
  .sf-power-grid { grid-template-columns: 1fr; }
  .sf-next__grid { grid-template-columns: 1fr; }
  .sf-next__aside { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .sf-doc h1 { font-size: 2.25rem; }
  .sf-doc h2 { font-size: 1.625rem; margin-top: var(--xl); }
  .sf-doc h3 { font-size: 1.25rem; }
  .sf-hero { padding: var(--md); }
  .sf-doc .sf-hero__title { font-size: 1.875rem; }
  .sf-doc .sf-hero__lead { font-size: 1rem; }
  .sf-prereq-row {
    grid-template-columns: 1fr;
    gap: 10px;
    padding: 16px 18px;
  }
  .sf-prereq-row__icon { display: none; }
  .sf-prereq-list__head { padding: 10px 18px; }
  .sf-led-row { grid-template-columns: 1fr; gap: 6px; padding: 12px 14px; }
  .sf-step-list::before { left: 19px; top: 40px; }
  .sf-step__header { grid-template-columns: 40px 1fr; gap: 0 16px; }
  .sf-step__num { width: 40px; height: 40px; font-size: 0.9375rem; }
  .sf-doc .sf-step__title { font-size: 1.25rem; line-height: 1.2; margin: 0; }
  .sf-step__body { padding-left: 56px; }
  .sf-term__body pre { font-size: 0.75rem !important; }
  .sf-output__body pre { font-size: 0.75rem; }
  .sf-toc { gap: 4px; padding: 10px 12px; }
  .sf-toc__item { padding: 5px 9px; font-size: 0.75rem; }
  .sf-next__lead { font-size: 1rem; }
  .sf-next__card { padding: 18px 18px 16px; }
}
@media (max-width: 480px) {
  .sf-step__body { padding-left: 0; }
}

/* ════════════════════════════════════════════════════════════════════════
   DARK MODE
   ════════════════════════════════════════════════════════════════════════ */
[data-color-mode="dark"] .sf-doc {
  --primary:     #034860;
  --secondary:   #00E0B8;
  --tertiary:    #1B2D45;
  --neutral:     #E8F5F0;
  --white:       #1B2D45;
  --light:       #14222F;
  --line:        #2A3A4D;
  --slate-light: #94A8B5;
  --slate:       #B5C3CE;
  --deep-ink:    #E8F5F0;
  --success-bg:  #052E1B;
  --warning-bg:  #2A1F05;
  --danger-bg:   #2A0E0E;
  --info-bg:     #0A2E3F;
  --success-text: #34D399;
  --warning-text: #FBBF24;
  --danger-text:  #F87171;
  --info-text:    #5CD3EE;
  --shadow-sm:   0 1px 2px rgba(0,0,0,.30);
  --shadow-md:   0 4px 12px rgba(0,0,0,.40);
}
[data-color-mode="dark"] .sf-doc h2 { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc h3,
[data-color-mode="dark"] .sf-doc h4 { color: var(--neutral); }
[data-color-mode="dark"] .sf-doc p,
[data-color-mode="dark"] .sf-doc li { color: var(--neutral); }
[data-color-mode="dark"] .sf-doc strong { color: var(--deep-ink); }
[data-color-mode="dark"] .sf-doc .sf-pill--ai { color: var(--deep-ink); }
[data-color-mode="dark"] .sf-doc .sf-led-key--green  { color: #34D399; }
[data-color-mode="dark"] .sf-doc .sf-led-key--blue   { color: #5CD3EE; }
[data-color-mode="dark"] .sf-doc .sf-led-key--yellow { color: #FBBF24; }
[data-color-mode="dark"] .sf-doc .sf-led-key--red    { color: #F87171; }
[data-color-mode="dark"] .sf-doc a { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc code { background: rgba(255,255,255,.06); color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-eyebrow { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-aeo--ai { background: rgba(107,71,240,.10); }
[data-color-mode="dark"] .sf-doc .sf-aeo--ai .sf-aeo__label,
[data-color-mode="dark"] .sf-doc .sf-aeo--ai .sf-aeo__text strong { color: #B59CFF; }
[data-color-mode="dark"] .sf-doc .sf-callout--ai { background: rgba(107,71,240,.10); }
[data-color-mode="dark"] .sf-doc .sf-callout--ai .sf-callout__header { color: #B59CFF; }
[data-color-mode="dark"] .sf-doc .sf-prereq-list,
[data-color-mode="dark"] .sf-doc .sf-output,
[data-color-mode="dark"] .sf-doc .sf-figure,
[data-color-mode="dark"] .sf-doc .sf-figure__cap,
[data-color-mode="dark"] .sf-doc .sf-led-matrix,
[data-color-mode="dark"] .sf-doc .sf-power,
[data-color-mode="dark"] .sf-doc .sf-card,
[data-color-mode="dark"] .sf-doc .sf-faq { background: var(--white); }
[data-color-mode="dark"] .sf-doc .sf-output__head,
[data-color-mode="dark"] .sf-doc .sf-figure__frame { background: var(--light); }
[data-color-mode="dark"] .sf-doc .sf-card--highlighted { background: rgba(107,71,240,.10); border-color: #B59CFF; }
[data-color-mode="dark"] .sf-doc .sf-power--primary { background: rgba(0,224,184,.06); border-color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-power--primary .sf-power__icon { background: var(--white); color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-power__pin { background: var(--secondary); color: var(--tertiary); }

/* Next-steps section */
[data-color-mode="dark"] .sf-doc .sf-next__card,
[data-color-mode="dark"] .sf-doc .sf-next__aside-card { background: var(--white); }
[data-color-mode="dark"] .sf-doc .sf-next__eyebrow {
  background: rgba(107,71,240,.16);
  color: #B59CFF;
}
[data-color-mode="dark"] .sf-doc .sf-next__eyebrow::before { background: #B59CFF; }
[data-color-mode="dark"] .sf-doc .sf-next__card-icon { background: rgba(107,71,240,.16); color: #B59CFF; }
[data-color-mode="dark"] .sf-doc .sf-next__card-step,
[data-color-mode="dark"] .sf-doc .sf-next__card-cta { color: #B59CFF; }
[data-color-mode="dark"] .sf-doc .sf-next__card:hover { border-color: #B59CFF; }
[data-color-mode="dark"] .sf-doc .sf-next__aside-icon { background: var(--light); color: var(--secondary); }

/* Hero time pill - keep the vibrant Mint moment in dark mode */
[data-color-mode="dark"] .sf-doc .sf-hero__time {
  background: var(--secondary);
  color: var(--tertiary);
  border-color: var(--secondary);
  box-shadow: 0 4px 14px rgba(0,224,184,.28), 0 0 0 1px rgba(255,255,255,.06) inset;
}
[data-color-mode="dark"] .sf-doc .sf-hero__time::before { background: var(--tertiary); }

/* Prerequisites list - flat checklist surfaces */
[data-color-mode="dark"] .sf-doc .sf-prereq-list { border-color: var(--line); }
[data-color-mode="dark"] .sf-doc .sf-prereq-list__group + .sf-prereq-list__group { border-top-color: var(--line); }
[data-color-mode="dark"] .sf-doc .sf-prereq-list__head { background: var(--light); border-bottom-color: var(--line); }
[data-color-mode="dark"] .sf-doc .sf-prereq-list__head-label { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-prereq-list__group--optional .sf-prereq-list__head-label { color: var(--slate); }
[data-color-mode="dark"] .sf-doc .sf-prereq-row + .sf-prereq-row { border-top-color: var(--line); }
[data-color-mode="dark"] .sf-doc .sf-prereq-row:hover { background: var(--light); }
[data-color-mode="dark"] .sf-doc .sf-prereq-row__title { color: var(--neutral); }
[data-color-mode="dark"] .sf-doc .sf-prereq-row__desc { color: var(--slate); }
[data-color-mode="dark"] .sf-doc .sf-prereq-row__icon { background: var(--light); color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-prereq-row--recommended .sf-prereq-row__icon { background: rgba(0,184,148,.16); color: #6EE7A0; }
[data-color-mode="dark"] .sf-doc .sf-prereq-row--included .sf-prereq-row__icon { background: rgba(107,71,240,.16); color: #B59CFF; }
[data-color-mode="dark"] .sf-doc .sf-prereq-row__status--required {
  background: var(--secondary);
  color: var(--tertiary);
}
[data-color-mode="dark"] .sf-doc .sf-prereq-row__status--required::before { background: var(--tertiary); }
[data-color-mode="dark"] .sf-doc .sf-prereq-row__status--recommended {
  background: rgba(0,184,148,.16);
  color: #6EE7A0;
  border-color: rgba(110,231,160,.30);
}
[data-color-mode="dark"] .sf-doc .sf-prereq-row__status--included {
  background: rgba(107,71,240,.16);
  color: #B59CFF;
  border-color: rgba(181,156,255,.30);
}

[data-color-mode="dark"] .sf-doc .sf-step__num { background: var(--secondary); color: var(--tertiary); box-shadow: 0 0 0 5px var(--tertiary), 0 4px 10px rgba(0,0,0,.40); }
[data-color-mode="dark"] .sf-doc .sf-step-list--ai .sf-step__num { background: #B59CFF; color: #1B2D45; box-shadow: 0 0 0 5px var(--tertiary), 0 6px 14px rgba(0,0,0,.40); }
[data-color-mode="dark"] .sf-doc .ob-hl { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .ob-ai { color: #B59CFF; }
[data-color-mode="dark"] .sf-doc .ob-ok { color: #6EE7A0; }
[data-color-mode="dark"] .sf-doc .sf-meta__badge { background: var(--light); color: var(--secondary); }

/* In this guide - TOC pills in dark mode */
[data-color-mode="dark"] .sf-doc .sf-toc { background: rgba(255, 255, 255, 0.04); }
[data-color-mode="dark"] .sf-doc .sf-toc__item {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.10);
  color: var(--neutral);
}
[data-color-mode="dark"] .sf-doc .sf-toc__num { color: var(--slate); }
[data-color-mode="dark"] .sf-doc .sf-toc__item:hover,
[data-color-mode="dark"] .sf-doc .sf-toc__item:focus {
  background: var(--primary);
  color: var(--white) !important;
  border-color: var(--primary);
}
[data-color-mode="dark"] .sf-doc .sf-toc__item:hover .sf-toc__num,
[data-color-mode="dark"] .sf-doc .sf-toc__item:focus .sf-toc__num {
  color: var(--secondary);
}

@media (prefers-color-scheme: dark) {
  html:not([data-color-mode="light"]) .sf-doc {
    --primary:     #034860;
    --secondary:   #00E0B8;
    --tertiary:    #1B2D45;
    --neutral:     #E8F5F0;
    --white:       #1B2D45;
    --light:       #14222F;
    --line:        #2A3A4D;
    --slate-light: #94A8B5;
    --slate:       #B5C3CE;
    --deep-ink:    #E8F5F0;
    --success-bg:  #052E1B;
    --warning-bg:  #2A1F05;
    --danger-bg:   #2A0E0E;
    --info-bg:     #0A2E3F;
    --success-text: #34D399;
    --warning-text: #FBBF24;
    --danger-text:  #F87171;
    --info-text:    #5CD3EE;
    --shadow-sm:   0 1px 2px rgba(0,0,0,.30);
    --shadow-md:   0 4px 12px rgba(0,0,0,.40);
  }
  html:not([data-color-mode="light"]) .sf-doc h2 { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc h3,
  html:not([data-color-mode="light"]) .sf-doc h4 { color: var(--neutral); }
  html:not([data-color-mode="light"]) .sf-doc p,
  html:not([data-color-mode="light"]) .sf-doc li { color: var(--neutral); }
  html:not([data-color-mode="light"]) .sf-doc strong { color: var(--deep-ink); }
  html:not([data-color-mode="light"]) .sf-doc .sf-pill--ai { color: var(--deep-ink); }
  html:not([data-color-mode="light"]) .sf-doc .sf-led-key--green  { color: #34D399; }
  html:not([data-color-mode="light"]) .sf-doc .sf-led-key--blue   { color: #5CD3EE; }
  html:not([data-color-mode="light"]) .sf-doc .sf-led-key--yellow { color: #FBBF24; }
  html:not([data-color-mode="light"]) .sf-doc .sf-led-key--red    { color: #F87171; }
  html:not([data-color-mode="light"]) .sf-doc a { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc code { background: rgba(255,255,255,.06); color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-eyebrow { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-aeo--ai { background: rgba(107,71,240,.10); }
  html:not([data-color-mode="light"]) .sf-doc .sf-aeo--ai .sf-aeo__label,
  html:not([data-color-mode="light"]) .sf-doc .sf-aeo--ai .sf-aeo__text strong { color: #B59CFF; }
  html:not([data-color-mode="light"]) .sf-doc .sf-callout--ai { background: rgba(107,71,240,.10); }
  html:not([data-color-mode="light"]) .sf-doc .sf-callout--ai .sf-callout__header { color: #B59CFF; }
  html:not([data-color-mode="light"]) .sf-doc .sf-prereq-list,
  html:not([data-color-mode="light"]) .sf-doc .sf-output,
  html:not([data-color-mode="light"]) .sf-doc .sf-figure,
  html:not([data-color-mode="light"]) .sf-doc .sf-figure__cap,
  html:not([data-color-mode="light"]) .sf-doc .sf-led-matrix,
  html:not([data-color-mode="light"]) .sf-doc .sf-power,
  html:not([data-color-mode="light"]) .sf-doc .sf-card,
  html:not([data-color-mode="light"]) .sf-doc .sf-faq { background: var(--white); }
  html:not([data-color-mode="light"]) .sf-doc .sf-output__head,
  html:not([data-color-mode="light"]) .sf-doc .sf-figure__frame { background: var(--light); }
  html:not([data-color-mode="light"]) .sf-doc .sf-card--highlighted { background: rgba(107,71,240,.10); border-color: #B59CFF; }
  html:not([data-color-mode="light"]) .sf-doc .sf-power--primary { background: rgba(0,224,184,.06); border-color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-power--primary .sf-power__icon { background: var(--white); color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-power__pin { background: var(--secondary); color: var(--tertiary); }

  /* Next-steps section */
  html:not([data-color-mode="light"]) .sf-doc .sf-next__card,
  html:not([data-color-mode="light"]) .sf-doc .sf-next__aside-card { background: var(--white); }
  html:not([data-color-mode="light"]) .sf-doc .sf-next__eyebrow {
    background: rgba(107,71,240,.16);
    color: #B59CFF;
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-next__eyebrow::before { background: #B59CFF; }
  html:not([data-color-mode="light"]) .sf-doc .sf-next__card-icon { background: rgba(107,71,240,.16); color: #B59CFF; }
  html:not([data-color-mode="light"]) .sf-doc .sf-next__card-step,
  html:not([data-color-mode="light"]) .sf-doc .sf-next__card-cta { color: #B59CFF; }
  html:not([data-color-mode="light"]) .sf-doc .sf-next__card:hover { border-color: #B59CFF; }
  html:not([data-color-mode="light"]) .sf-doc .sf-next__aside-icon { background: var(--light); color: var(--secondary); }

  /* Hero time pill - keep the vibrant Mint moment in dark mode */
  html:not([data-color-mode="light"]) .sf-doc .sf-hero__time {
    background: var(--secondary);
    color: var(--tertiary);
    border-color: var(--secondary);
    box-shadow: 0 4px 14px rgba(0,224,184,.28), 0 0 0 1px rgba(255,255,255,.06) inset;
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-hero__time::before { background: var(--tertiary); }

  /* Prerequisites list - flat checklist surfaces */
  html:not([data-color-mode="light"]) .sf-doc .sf-prereq-list { border-color: var(--line); }
  html:not([data-color-mode="light"]) .sf-doc .sf-prereq-list__group + .sf-prereq-list__group { border-top-color: var(--line); }
  html:not([data-color-mode="light"]) .sf-doc .sf-prereq-list__head { background: var(--light); border-bottom-color: var(--line); }
  html:not([data-color-mode="light"]) .sf-doc .sf-prereq-list__head-label { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-prereq-list__group--optional .sf-prereq-list__head-label { color: var(--slate); }
  html:not([data-color-mode="light"]) .sf-doc .sf-prereq-row + .sf-prereq-row { border-top-color: var(--line); }
  html:not([data-color-mode="light"]) .sf-doc .sf-prereq-row:hover { background: var(--light); }
  html:not([data-color-mode="light"]) .sf-doc .sf-prereq-row__title { color: var(--neutral); }
  html:not([data-color-mode="light"]) .sf-doc .sf-prereq-row__desc { color: var(--slate); }
  html:not([data-color-mode="light"]) .sf-doc .sf-prereq-row__icon { background: var(--light); color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-prereq-row--recommended .sf-prereq-row__icon { background: rgba(0,184,148,.16); color: #6EE7A0; }
  html:not([data-color-mode="light"]) .sf-doc .sf-prereq-row--included .sf-prereq-row__icon { background: rgba(107,71,240,.16); color: #B59CFF; }
  html:not([data-color-mode="light"]) .sf-doc .sf-prereq-row__status--required {
    background: var(--secondary);
    color: var(--tertiary);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-prereq-row__status--required::before { background: var(--tertiary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-prereq-row__status--recommended {
    background: rgba(0,184,148,.16);
    color: #6EE7A0;
    border-color: rgba(110,231,160,.30);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-prereq-row__status--included {
    background: rgba(107,71,240,.16);
    color: #B59CFF;
    border-color: rgba(181,156,255,.30);
  }

  html:not([data-color-mode="light"]) .sf-doc .sf-step__num { background: var(--secondary); color: var(--tertiary); box-shadow: 0 0 0 5px var(--tertiary), 0 4px 10px rgba(0,0,0,.40); }
  html:not([data-color-mode="light"]) .sf-doc .sf-step-list--ai .sf-step__num { background: #B59CFF; color: #1B2D45; box-shadow: 0 0 0 5px var(--tertiary), 0 6px 14px rgba(0,0,0,.40); }
  html:not([data-color-mode="light"]) .sf-doc .ob-hl { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .ob-ai { color: #B59CFF; }
  html:not([data-color-mode="light"]) .sf-doc .ob-ok { color: #6EE7A0; }
  html:not([data-color-mode="light"]) .sf-doc .sf-meta__badge { background: var(--light); color: var(--secondary); }

  /* In this guide - TOC pills in dark mode */
  html:not([data-color-mode="light"]) .sf-doc .sf-toc { background: rgba(255, 255, 255, 0.04); }
  html:not([data-color-mode="light"]) .sf-doc .sf-toc__item {
    background: rgba(255, 255, 255, 0.06);
    border-color: rgba(255, 255, 255, 0.10);
    color: var(--neutral);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-toc__num { color: var(--slate); }
  html:not([data-color-mode="light"]) .sf-doc .sf-toc__item:hover,
  html:not([data-color-mode="light"]) .sf-doc .sf-toc__item:focus {
    background: var(--primary);
    color: var(--white) !important;
    border-color: var(--primary);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-toc__item:hover .sf-toc__num,
  html:not([data-color-mode="light"]) .sf-doc .sf-toc__item:focus .sf-toc__num {
    color: var(--secondary);
  }
}
</style>



<svg xmlns="http://www.w3.org/2000/svg" style="display:none;position:absolute" aria-hidden="true">
  <symbol id="qs-clock"   viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M12 7v5l3 2"/></symbol>
  <symbol id="qs-check"   viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"    stroke-linecap="round" stroke-linejoin="round"><path d="M5 13l4 4L19 7"/></symbol>
  <symbol id="qs-info"    viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="9"/><path d="M12 8h.01"/><path d="M11 12h1v4h1"/></symbol>
  <symbol id="qs-warn"    viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M10.36 3.59 2.26 17.13a1.91 1.91 0 0 0 1.64 2.87h16.21a1.91 1.91 0 0 0 1.63-2.87L13.64 3.59a1.91 1.91 0 0 0-3.28 0Z"/><path d="M12 9v4"/><path d="M12 17h.01"/></symbol>
  <symbol id="qs-board"   viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="1.5"/><rect x="9" y="9" width="6" height="6"/><path d="M3 10h2"/><path d="M3 14h2"/><path d="M19 10h2"/><path d="M19 14h2"/><path d="M10 3v2"/><path d="M14 3v2"/><path d="M10 19v2"/><path d="M14 19v2"/></symbol>
  <symbol id="qs-power"   viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 6a7.75 7.75 0 1 0 10 0"/><path d="M12 4v8"/></symbol>
  <symbol id="qs-bolt"    viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M13 3v7h6l-8 11v-7H5l8-11Z"/></symbol>
  <symbol id="qs-network" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="6" width="20" height="12" rx="2"/><path d="M6 12h.01M10 12h.01M14 12h.01M18 12h.01"/></symbol>
  <symbol id="qs-qrcode"  viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7" rx="1"/><rect x="14" y="3" width="7" height="7" rx="1"/><rect x="3" y="14" width="7" height="7" rx="1"/><path d="M14 14h3v3h-3z"/><path d="M21 14v3"/><path d="M14 21h3"/></symbol>
  <symbol id="qs-file"    viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/><line x1="9" y1="15" x2="15" y2="15"/><line x1="9" y1="11" x2="15" y2="11"/></symbol>
  <symbol id="qs-cloud"   viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z"/></symbol>
  <symbol id="qs-rocket"  viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 13a8 8 0 0 1 7 7 6 6 0 0 0 3-5 9 9 0 0 0 6-8 3 3 0 0 0-3-3 9 9 0 0 0-8 6 6 6 0 0 0-5 3"/><path d="M7 14a6 6 0 0 0-3 6 6 6 0 0 0 6-3"/><circle cx="15" cy="9" r="1"/></symbol>
  <symbol id="qs-book"    viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M3 19a9 9 0 0 1 9 0 9 9 0 0 1 9 0"/><path d="M3 6a9 9 0 0 1 9 0 9 9 0 0 1 9 0"/><path d="M3 6v13M12 6v13M21 6v13"/></symbol>
  <symbol id="qs-wrench"  viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M7 10h3V7L6.5 3.5a6 6 0 0 1 8 8l6 6a2 2 0 0 1-3 3l-6-6a6 6 0 0 1-8-8L7 10Z"/></symbol>
  <symbol id="qs-pulse"   viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M3 12h4l3-9 4 18 3-9h4"/></symbol>
  <symbol id="qs-spark"   viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 3v3M21 12h-3M12 21v-3M3 12h3M5.6 5.6 7.7 7.7M16.3 7.7l2.1-2.1M16.3 16.3l2.1 2.1M5.6 18.4l2.1-2.1"/><circle cx="12" cy="12" r="3"/></symbol>
  <symbol id="qs-led"     viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="4"/><path d="M12 2v3M12 19v3M2 12h3M19 12h3M5 5l2 2M17 17l2 2M5 19l2-2M17 7l2-2"/></symbol>
  <symbol id="qs-cpu"     viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect x="5" y="5" width="14" height="14" rx="1"/><rect x="9" y="9" width="6" height="6"/><path d="M3 10h2M3 14h2M19 10h2M19 14h2M10 3v2M14 3v2M10 19v2M14 19v2"/></symbol>
  <symbol id="qs-antenna" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 8v14"/><circle cx="12" cy="5" r="2"/><path d="M7 13a7 7 0 0 1 10 0"/><path d="M4 9.5a11 11 0 0 1 16 0"/></symbol>
</svg>


<div class="sf-doc">

  
  <header class="sf-hero">
    <div class="sf-hero__copy">
      <span class="sf-eyebrow">Quickstart</span>
      <p class="sf-hero__title">Bring an ALPON&nbsp;X5&nbsp;AI online in 5&nbsp;steps</p>
      <p class="sf-hero__lead">
        Register the device in <strong>Sixfab Connect</strong>, connect power,
        plug in a network, verify the LEDs, then open a browser-based remote
        terminal from <strong>ALPON Cloud</strong>. Five steps, one device, no
        local toolchain. Intelligented by DEEPX. Built on Raspberry Pi.
      </p>
      <div class="sf-hero__chips">
        <span class="sf-pill sf-pill--ai">25 TOPS at INT8</span>
        <span class="sf-pill">DEEPX DX-M1</span>
        <span class="sf-pill">Raspberry Pi CM5</span>
        <span class="sf-pill">LTE Cat 4 + eSIM</span>
        <span class="sf-pill">Wi-Fi 5</span>
      </div>
      <div class="sf-hero__cta">
        <span class="sf-hero__time">
          <svg class="sf-icon" aria-hidden="true"><use href="#qs-clock"/></svg>
          ~5 min
        </span>
      </div>
    </div>
  </header>

  
  <div class="sf-meta">
    <span class="sf-meta__badge">ALPON X5 AI</span>
    <span class="sf-meta__sep">·</span>
    <span>Quickstart</span>
    <span class="sf-meta__sep">·</span>
    <span>Updated 2026-09-17</span>
    <span class="sf-meta__sep">·</span>
    <span>Intelligented by DEEPX</span>
    <span class="sf-meta__sep">·</span>
    <span>Built on Raspberry Pi</span>
  </div>

  
  <div class="sf-aeo sf-aeo--ai">
    <span class="sf-aeo__label">How do I set up an ALPON X5 AI?</span>
    <p class="sf-aeo__text">
      <strong>Five steps, about 5 minutes.</strong>
      Register the device in <a href="https://connect.sixfab.com" target="_blank" rel="noopener">Sixfab Connect</a> using its QR code or
      serial number, connect power via the included <strong>27&nbsp;W USB-C&nbsp;PD</strong>
      adapter (or the 12–24&nbsp;V&nbsp;DC screw terminal, or PoE+), plug in Ethernet for
      first-time provisioning, watch the front-panel LEDs settle, then open a
      browser-based remote terminal from <strong>ALPON Cloud</strong>. The NPU is
      reachable as soon as the device shows <code>Online</code>.
    </p>
  </div>


  
  <nav class="sf-toc" aria-label="On-page navigation">
    <span class="sf-toc__label">In this guide</span>
    <a class="sf-toc__item" href="#before-you-start"><span class="sf-toc__num">·</span>Before you start</a>
    <a class="sf-toc__item" href="#step-1-register"><span class="sf-toc__num">01</span>Register</a>
    <a class="sf-toc__item" href="#step-2-power"><span class="sf-toc__num">02</span>Power</a>
    <a class="sf-toc__item" href="#step-3-network"><span class="sf-toc__num">03</span>Network</a>
    <a class="sf-toc__item" href="#step-4-verify"><span class="sf-toc__num">04</span>Verify</a>
    <a class="sf-toc__item" href="#step-5-access"><span class="sf-toc__num">05</span>Access</a>
    <a class="sf-toc__item" href="#first-boot-issues"><span class="sf-toc__num">·</span>First-boot issues</a>
    <a class="sf-toc__item" href="#where-to-next"><span class="sf-toc__num">·</span>Where to next</a>
  </nav>


  
  <h2 id="before-you-start">Before you start</h2>
  <p class="sf-lead">
    Have these on hand before powering on. Everything except an ALPON Cloud
    account ships in the box: the device, four external antennas
    (2× LTE, 1× GNSS, 1× Wi-Fi) labeled <code>L</code>, <code>L</code>,
    <code>G</code>, and <code>W</code>, and the 27&nbsp;W USB-C&nbsp;PD
    adapter with four interchangeable plug heads (US / EU / UK / AU). The
    antennas screw onto the matching connectors on the back panel and must
    be attached before applying power.
  </p>

  <div class="sf-prereq-list">

    <div class="sf-prereq-list__group sf-prereq-list__group--required">
      <div class="sf-prereq-list__head">
        <span class="sf-prereq-list__head-label">In the box</span>
        <span class="sf-prereq-list__head-count">3 items</span>
      </div>

      <div class="sf-prereq-row sf-prereq-row--included">
        <span class="sf-prereq-row__status sf-prereq-row__status--included">Included</span>
        <div class="sf-prereq-row__icon"><svg class="sf-icon" aria-hidden="true"><use href="#qs-board"/></svg></div>
        <div class="sf-prereq-row__copy">
          <span class="sf-prereq-row__title">ALPON X5 AI device</span>
          <span class="sf-prereq-row__desc">Enclosure with the DEEPX DX-M1 NPU and Raspberry Pi CM5 integrated; nothing to assemble inside. Four external SMA connectors on the back panel are labeled <code>L</code>, <code>L</code>, <code>G</code>, and <code>W</code> for the matching antennas.</span>
        </div>
      </div>

      <div class="sf-prereq-row sf-prereq-row--included">
        <span class="sf-prereq-row__status sf-prereq-row__status--included">Included</span>
        <div class="sf-prereq-row__icon"><svg class="sf-icon" aria-hidden="true"><use href="#qs-antenna"/></svg></div>
        <div class="sf-prereq-row__copy">
          <span class="sf-prereq-row__title">4 external antennas — 2× LTE, 1× GNSS, 1× Wi-Fi</span>
          <span class="sf-prereq-row__desc">Each antenna is labeled to match the connector it screws onto: two <code>L</code> for LTE Main and LTE Diversity, one <code>G</code> for GNSS/GPS, one <code>W</code> for Wi-Fi/Bluetooth. Hand-tighten only — no tools required. Attach all four before applying power.</span>
        </div>
      </div>

      <div class="sf-prereq-row sf-prereq-row--included">
        <span class="sf-prereq-row__status sf-prereq-row__status--included">Included</span>
        <div class="sf-prereq-row__icon"><svg class="sf-icon" aria-hidden="true"><use href="#qs-power"/></svg></div>
        <div class="sf-prereq-row__copy">
          <span class="sf-prereq-row__title">27&nbsp;W USB-C&nbsp;PD adapter</span>
          <span class="sf-prereq-row__desc">Four interchangeable plug heads (US / EU / UK / AU). Slide the regional head onto the adapter body before use.</span>
        </div>
      </div>
    </div>

    <div class="sf-prereq-list__group sf-prereq-list__group--optional">
      <div class="sf-prereq-list__head">
        <span class="sf-prereq-list__head-label">You'll also need</span>
        <span class="sf-prereq-list__head-count">2 items</span>
      </div>

      <div class="sf-prereq-row sf-prereq-row--required">
        <span class="sf-prereq-row__status sf-prereq-row__status--required">Required</span>
        <div class="sf-prereq-row__icon"><svg class="sf-icon" aria-hidden="true"><use href="#qs-cloud"/></svg></div>
        <div class="sf-prereq-row__copy">
          <span class="sf-prereq-row__title">ALPON Cloud account</span>
          <span class="sf-prereq-row__desc">Free signup at <a href="https://connect.sixfab.com" target="_blank" rel="noopener">connect.sixfab.com</a>. Required to register the device and open the browser-based remote terminal.</span>
        </div>
      </div>

      <div class="sf-prereq-row sf-prereq-row--recommended">
        <span class="sf-prereq-row__status sf-prereq-row__status--recommended">Recommended</span>
        <div class="sf-prereq-row__icon"><svg class="sf-icon" aria-hidden="true"><use href="#qs-network"/></svg></div>
        <div class="sf-prereq-row__copy">
          <span class="sf-prereq-row__title">Ethernet cable</span>
          <span class="sf-prereq-row__desc">Strongly recommended for first boot. The integrated eSIM (LTE Cat 4) activates in parallel and takes over if Ethernet is removed; wired is faster on day one.</span>
        </div>
      </div>
    </div>

  </div>


  
  <h2>The procedure</h2>
  <p class="sf-lead">Five steps. The first registers the device to your account; the next three
  bring it up on power and the network; the fifth opens the remote terminal and confirms the
  DEEPX NPU is reachable. Each step's commands are self-contained, so copy them in order.</p>

  <div class="sf-step-list sf-step-list--ai">

    
    <div class="sf-step" id="step-1-register">
      <div class="sf-step__header">
        <div class="sf-step__num">1</div>
        <h3 class="sf-step__title">Register the device in Sixfab Connect</h3>
      </div>
      <div class="sf-step__body">
        <p>Registering links the device's serial number to your account so ALPON Cloud can
        reach it the moment it comes online. There are two paths to the same result &mdash;
        scanning the QR code is faster, but manual registration works just as well if you
        only have the device in front of you.</p>

        
        <figure class="sf-figure">
          <div class="sf-figure__frame">
            <img src="https://files.readme.io/36e74a8d7efd2b8ce5d86e4f527810c6a7a533278fa2142700785b3ab237b7c5-Getting_St.-6.png"
                 alt="Registering an ALPON X5 AI in Sixfab Connect via QR scan or manual serial-number entry"
                 loading="lazy">
          </div>
          <figcaption class="sf-figure__cap">
            <span class="sf-figure__cap-num">Fig. 1</span> Registration paths: scan the QR code on the bottom label, or enter the serial number manually in Sixfab Connect.
          </figcaption>
        </figure>

        <div class="sf-method-grid">

          <div class="sf-card sf-card--highlighted">
            <div class="sf-method__head">
              <span class="sf-method__title">
                <svg class="sf-icon" aria-hidden="true"><use href="#qs-qrcode"/></svg>
                Scan QR code
              </span>
              <span class="sf-pill sf-pill--success">Recommended</span>
            </div>
            <ol>
              <li>Find the QR code on the device's bottom label.</li>
              <li>Scan it with your phone camera.</li>
              <li>Sixfab Connect opens; log in.</li>
              <li>The device auto-registers to your account.</li>
            </ol>
          </div>

          <div class="sf-card">
            <div class="sf-method__head">
              <span class="sf-method__title">
                <svg class="sf-icon" aria-hidden="true"><use href="#qs-file"/></svg>
                Manual registration
              </span>
              <span class="sf-pill">Alternative</span>
            </div>
            <ol>
              <li>Open <a href="https://connect.sixfab.com" target="_blank" rel="noopener">Sixfab Connect</a>.</li>
              <li>Go to <strong>Assets</strong>, click <strong>Register Asset</strong>.</li>
              <li>Enter the serial number from the bottom label.</li>
              <li>Confirm to register.</li>
            </ol>
          </div>

        </div>

        <div class="sf-callout sf-callout--info">
          <div class="sf-callout__header">
            <svg class="sf-icon" aria-hidden="true"><use href="#qs-info"/></svg>
            <span>Register before powering on is fine</span>
          </div>
          <div class="sf-callout__content">
            <p>Registering before applying power is fully supported. The device finishes the
            handshake automatically once it reaches the network in Step&nbsp;3.</p>
          </div>
        </div>
      </div>
    </div>

    
    <div class="sf-step" id="step-2-power">
      <div class="sf-step__header">
        <div class="sf-step__num">2</div>
        <h3 class="sf-step__title">Connect power</h3>
      </div>
      <div class="sf-step__body">
        <div class="sf-callout sf-callout--warning">
          <div class="sf-callout__header">
            <svg class="sf-icon" aria-hidden="true"><use href="#qs-antenna"/></svg>
            <span>Attach the four antennas before applying power</span>
          </div>
          <div class="sf-callout__content">
            <p>Screw the two LTE antennas onto the <code>L</code> connectors,
            the GNSS antenna onto the <code>G</code> connector, and the Wi-Fi
            antenna onto the <code>W</code> connector on the back panel.
            Hand-tighten only — no tools required. The cellular and GNSS
            radios will not register a network or fix without their antennas
            connected, and running the device unpowered through this step is
            the safest order.</p>
          </div>
        </div>

        <p>The ALPON X5 AI accepts three power inputs. The included <strong>27&nbsp;W
        USB-C&nbsp;PD</strong> adapter (15&nbsp;V / 1.8&nbsp;A, a supported configuration) is
        the fastest path for first boot; a 45&nbsp;W USB-C&nbsp;PD adapter is recommended for
        sustained AI load. Slide the correct regional plug head onto the adapter body before
        use; the screw terminal (12–24&nbsp;V&nbsp;DC, 27&nbsp;W minimum) and PoE+ inputs
        remain available for industrial wiring and single-cable installs.</p>

        
        <figure class="sf-figure">
          <div class="sf-figure__frame">
            <img src="https://files.readme.io/becafd2d5bd9832fec6df4532ac98d6a14c34eb1aed0563eeb444078cdac5bc6-Getting_St.-7.png"
                 alt="USB-C PD adapter with interchangeable regional plug heads connecting to the ALPON X5 AI"
                 loading="lazy">
          </div>
          <figcaption class="sf-figure__cap">
            <span class="sf-figure__cap-num">Fig. 2</span> The included 27&nbsp;W USB-C&nbsp;PD adapter with four interchangeable plug heads. Slide the regional head onto the adapter body until it clicks.
          </figcaption>
        </figure>

        <div class="sf-power-grid">
          <div class="sf-power sf-power--primary">
            <span class="sf-power__pin">Quick start</span>
            <div class="sf-power__icon" aria-hidden="true">
              <svg class="sf-icon" aria-hidden="true"><use href="#qs-power"/></svg>
            </div>
            <p class="sf-power__title">USB-C PD</p>
            <p class="sf-power__sub">Included 27&nbsp;W adapter (15&nbsp;V × 1.8&nbsp;A) · 12&nbsp;V or 15&nbsp;V PD · 45&nbsp;W recommended for sustained AI load</p>
          </div>
          <div class="sf-power">
            <div class="sf-power__icon" aria-hidden="true">
              <svg class="sf-icon" aria-hidden="true"><use href="#qs-bolt"/></svg>
            </div>
            <p class="sf-power__title">Screw terminal</p>
            <p class="sf-power__sub">12–24&nbsp;V&nbsp;DC, 27&nbsp;W minimum, for industrial wiring</p>
          </div>
          <div class="sf-power">
            <div class="sf-power__icon" aria-hidden="true">
              <svg class="sf-icon" aria-hidden="true"><use href="#qs-network"/></svg>
            </div>
            <p class="sf-power__title">PoE+ (optional)</p>
            <p class="sf-power__sub">IEEE 802.3at, up to 25&nbsp;W, single-cable install</p>
          </div>
        </div>

        <ol>
          <li>Slide the regional plug head onto the USB-C PD adapter until it clicks.</li>
          <li>Connect the adapter cable to the device's USB-C port.</li>
          <li>Plug the adapter into mains power.</li>
          <li>The Power LED turns solid white.</li>
        </ol>

        <div class="sf-callout sf-callout--warning">
          <div class="sf-callout__header">
            <svg class="sf-icon" aria-hidden="true"><use href="#qs-warn"/></svg>
            <span>Use the included adapter, or a 12–24&nbsp;V&nbsp;DC supply</span>
          </div>
          <div class="sf-callout__content">
            <p>Standard USB-C phone chargers may not negotiate the required voltage and can
            trigger under-voltage warnings. If the Power LED does not turn on, confirm you
            are using the included <strong>27&nbsp;W USB-C&nbsp;PD</strong> adapter, or wire
            a 12–24&nbsp;V&nbsp;DC supply into the screw terminal.</p>
          </div>
        </div>
      </div>
    </div>

    
    <div class="sf-step" id="step-3-network">
      <div class="sf-step__header">
        <div class="sf-step__num">3</div>
        <h3 class="sf-step__title">Connect to a network</h3>
      </div>
      <div class="sf-step__body">
        <p>The ALPON X5 AI offers two Gigabit Ethernet ports and built-in cellular
        (eSIM, eUICC). For first boot, plug an Ethernet cable into <code>ETH 0</code>.
        The integrated eSIM activates in parallel and takes over if Ethernet is removed
        &mdash; you can keep both paths live for failover, or rely on cellular alone in
        the field.</p>

        <ol>
          <li>Connect an Ethernet cable from your router or switch to <code>ETH 0</code>.</li>
          <li>The device requests an IP via DHCP. No further configuration is required.</li>
          <li>If Ethernet is unavailable, the eSIM negotiates an LTE Cat&nbsp;4 connection automatically.</li>
        </ol>

        <div class="sf-callout sf-callout--info">
          <div class="sf-callout__header">
            <svg class="sf-icon" aria-hidden="true"><use href="#qs-antenna"/></svg>
            <span>Antennas already attached? Outdoor upgrade option</span>
          </div>
          <div class="sf-callout__content">
            <p>You should have attached the four included antennas in Step&nbsp;2
            before applying power. For deployments with weak signal, an optional
            3-metre outdoor IP67 combination antenna is available as an upgrade;
            see <a href="/docs/alpon-x5-ai-edge-computer-physical-layout-io#antennas" target="_blank" rel="noopener">Antenna connectors</a>.</p>
          </div>
        </div>
      </div>
    </div>

    
    <div class="sf-step" id="step-4-verify">
      <div class="sf-step__header">
        <div class="sf-step__num">4</div>
        <h3 class="sf-step__title">Verify the device is online</h3>
      </div>
      <div class="sf-step__body">
        <p>Watch the front-panel LEDs to confirm power, network, and cloud reachability
        before opening the remote terminal. The full LED legend below covers the states
        you'll see during provisioning.</p>

        <div class="sf-led-matrix">
          <div class="sf-led-row">
            <span class="sf-led-key sf-led-key--white"><span class="sf-led-key__dot"></span>Power</span>
            <span><strong>Solid white</strong> when power is applied.</span>
          </div>
          <div class="sf-led-row">
            <span class="sf-led-key sf-led-key--green"><span class="sf-led-key__dot"></span>Status</span>
            <span><strong>Solid green:</strong> the device is online and reachable from ALPON Cloud.</span>
          </div>
          <div class="sf-led-row">
            <span class="sf-led-key sf-led-key--blue"><span class="sf-led-key__dot"></span>Cellular</span>
            <span><strong>Blue:</strong> strong LTE signal.</span>
          </div>
          <div class="sf-led-row">
            <span class="sf-led-key sf-led-key--yellow"><span class="sf-led-key__dot"></span>Cellular</span>
            <span><strong>Yellow:</strong> moderate LTE signal. Device is still online.</span>
          </div>
          <div class="sf-led-row">
            <span class="sf-led-key sf-led-key--red"><span class="sf-led-key__dot"></span>Cellular</span>
            <span><strong>Red:</strong> weak or no LTE signal. Reposition the device or use Ethernet.</span>
          </div>
        </div>

        <div class="sf-callout sf-callout--success">
          <div class="sf-callout__header">
            <svg class="sf-icon" aria-hidden="true"><use href="#qs-check"/></svg>
            <span>Ready when</span>
          </div>
          <div class="sf-callout__content">
            <p>The <strong>Status LED is solid green</strong> and the device shows
            <code>Online</code> in your Sixfab Connect dashboard.</p>
          </div>
        </div>
      </div>
    </div>

    
    <div class="sf-step" id="step-5-access">
      <div class="sf-step__header">
        <div class="sf-step__num">5</div>
        <h3 class="sf-step__title">Access the device and confirm the NPU</h3>
      </div>
      <div class="sf-step__body">
        <p>Open <a href="https://connect.sixfab.com" target="_blank" rel="noopener">Sixfab Connect</a>
        and pick the device from your asset list. From here you can run commands, monitor
        health, and deploy container workloads &mdash; no local SSH client needed.</p>

        
        <figure class="sf-figure">
          <div class="sf-figure__frame">
            <img src="https://files.readme.io/2506dc888e865d9f05d7c056d66814024f7f43d8e43e527389214e9b19c2a89d-Selected_June_30_2026_1_00_17_AM.png"
                 alt="ALPON Cloud dashboard with the device shown Online and the browser-based remote terminal open"
                 loading="lazy">
          </div>
          <figcaption class="sf-figure__cap">
            <span class="sf-figure__cap-num">Fig. 5</span> ALPON Cloud dashboard with the device <code>Online</code> and the browser-based remote terminal open.
          </figcaption>
        </figure>

        <p>From the dashboard you can:</p>
        <ul>
          <li>Open a <strong>browser-based remote terminal</strong> &mdash; no local SSH client needed.</li>
          <li>Monitor <strong>device health</strong>: CPU, memory, temperature, network, container state.</li>
          <li>Deploy <strong>ARM64 container workloads</strong> to the device or to your fleet.</li>
          <li>Schedule <strong>OTA updates</strong> for firmware and applications.</li>
          <li>Manage <strong>eSIM profiles</strong> and configure network failover.</li>
        </ul>

        <h4>Sanity check: the DEEPX NPU is reachable</h4>

        <p>From the remote terminal, run <code>dxrt-cli -s</code> to confirm the
        <strong>DEEPX DX-M1</strong> NPU is enumerated and the runtime, driver, and on-NPU
        firmware are reporting cleanly. This is the same one-shot status command you'll
        rely on later for production diagnostics.</p>

        <div class="sf-terminal">
          <div class="sf-term__head">
            <div class="sf-term__dots">
              <span class="sf-term__dot" style="background:#ff5f57"></span>
              <span class="sf-term__dot" style="background:#febc2e"></span>
              <span class="sf-term__dot" style="background:#28c840"></span>
            </div>
            <div class="sf-term__title">bash · alpon@alpon-x5-ai: ~</div>
          </div>
          <div class="sf-term__body">
<pre><span class="tc"># Full NPU, driver, runtime, and firmware status report</span>
<span class="tg">dxrt-cli</span> <span class="tb">-s</span></pre>
          </div>
        </div>

        <div class="sf-output">
          <div class="sf-output__head">
            <span class="sf-output__label">Expected output</span>
            <span class="sf-output__badge">
              <svg class="sf-icon" aria-hidden="true"><use href="#qs-check"/></svg>
              NPU reachable
            </span>
          </div>
          <div class="sf-output__body">
<pre>DXRT v3.2.0
 * Device 0: <span class="ob-ai">DX-M1</span>, Accelerator type
 * RT Driver version  : <span class="ob-hl">v2.1.0</span>
 * PCIe Driver version: <span class="ob-hl">v2.0.1</span>
 * FW version         : <span class="ob-hl">v2.5.0</span>
 * PCIe   : <span class="ob-ok">Gen3 X1</span> [01:00:00]
NPU 0: voltage <span class="ob-ok">750 mV</span>, clock <span class="ob-ok">1000 MHz</span>, temperature <span class="ob-ok">46 °C</span>
NPU 1: voltage <span class="ob-ok">750 mV</span>, clock <span class="ob-ok">1000 MHz</span>, temperature <span class="ob-ok">46 °C</span>
NPU 2: voltage <span class="ob-ok">750 mV</span>, clock <span class="ob-ok">1000 MHz</span>, temperature <span class="ob-ok">46 °C</span></pre>
          </div>
        </div>

        <div class="sf-callout sf-callout--ai">
          <div class="sf-callout__header">
            <svg class="sf-icon" aria-hidden="true"><use href="#qs-spark"/></svg>
            <span>The NPU answers. From here, AI Model Deployment takes it.</span>
          </div>
          <div class="sf-callout__content">
            <p>The hardware and runtime stack are healthy. The next chapter is
            <strong>AI Model Deployment</strong>: pick a pre-compiled model from the
            Sixfab Model Zoo, bring your own ONNX model through the Custom Models
            Deployment Workflow, or instrument the runtime for production with
            System Monitoring. The exit ramp below points to each.</p>
          </div>
        </div>

        <div class="sf-callout sf-callout--warning">
          <div class="sf-callout__header">
            <svg class="sf-icon" aria-hidden="true"><use href="#qs-warn"/></svg>
            <span>Change the default password before deployment</span>
          </div>
          <div class="sf-callout__content">
            <p>For local SSH or HDMI console access, the default user is <code>alpon</code>
            with password <code>sixfab</code>. Change it on first login with
            <code>passwd</code>. See <a href="/docs/alpon-x5-ai-edge-computer-operating-system" target="_blank" rel="noopener">ALPON X5 AI OS</a>
            for hardening guidance.</p>
          </div>
        </div>
      </div>
    </div>

  </div>


  
  <h2 id="first-boot-issues">First-boot troubleshooting</h2>
  <p>Most setup issues resolve in under a minute. Open the question that matches what you
  see; for anything else, head to the full <a href="/docs/alpon-x5-ai-edge-computer-troubleshooting" target="_blank" rel="noopener">Troubleshooting guide</a>.</p>

  <div class="sf-faq">

    <details>
      <summary><span>The Power LED does not turn on</span></summary>
      <div class="sf-faq__a">
        <p>Confirm the adapter is the included <strong>27&nbsp;W USB-C&nbsp;PD</strong> unit. Standard USB-C phone chargers may not negotiate the required voltage. As a fallback, wire a 12–24&nbsp;V&nbsp;DC supply into the screw terminal.</p>
      </div>
    </details>

    <details>
      <summary><span>The Status LED never turns green</span></summary>
      <div class="sf-faq__a">
        <p>The device cannot reach ALPON Cloud. Confirm the Ethernet cable is seated, or move the device to a location with better cellular coverage.</p>
      </div>
    </details>

    <details>
      <summary><span>The QR code does not scan</span></summary>
      <div class="sf-faq__a">
        <p>Use the <strong>Manual registration</strong> path in Step&nbsp;1. Type the serial number from the bottom label into Sixfab Connect <strong>Assets &rarr; Register Asset</strong>.</p>
      </div>
    </details>

    <details>
      <summary><span>The device shows <code>Offline</code> in Sixfab Connect after a few minutes</span></summary>
      <div class="sf-faq__a">
        <p>Confirm the Cellular LED is not red. If LTE signal is weak and you have not connected Ethernet, plug in a cable. The device only reports <code>Offline</code> when no network path is available.</p>
      </div>
    </details>

    <details>
      <summary><span><code>dxrt-cli -s</code> reports the NPU but versions do not match</span></summary>
      <div class="sf-faq__a">
        <p>Driver, runtime, and on-NPU firmware carry independent version numbers. A drift between any two can cause silent CPU fallback or model-load errors. See <a href="/docs/ai-model-deployment-system-monitoring" target="_blank" rel="noopener">System Monitoring</a> for the canonical version-alignment matrix.</p>
      </div>
    </details>

    <details>
      <summary><span>I cannot find the activation code or serial number</span></summary>
      <div class="sf-faq__a">
        <p>Both are printed on the bottom label of the device, next to the QR code. If the label is missing or unreadable, contact <a href="https://sixfab.com/contact" target="_blank" rel="noopener">Sixfab support</a> with your order number.</p>
      </div>
    </details>

  </div>


  
  <section class="sf-next" id="where-to-next">
    <div class="sf-next__intro">
      <span class="sf-next__eyebrow">AI Model Deployment</span>
      <h2>Where to next</h2>
      <p class="sf-next__lead">
        The device is up, the LEDs are green, and the DEEPX&nbsp;DX-M1 NPU answers.
        The next chapter is AI Model Deployment: pick more pre-compiled models, bring
        your own trained model to the NPU, or instrument the deployment for production.
      </p>
    </div>

    <div class="sf-next__grid">

      <a href="/docs/ai-model-deployment-sixfab-model-zoo" target="_blank" rel="noopener" class="sf-next__card">
        <div class="sf-next__card-icon"><svg class="sf-icon" aria-hidden="true"><use href="#qs-book"/></svg></div>
        <span class="sf-next__card-step">Next · Run more models</span>
        <span class="sf-next__card-title">Sixfab Model Zoo</span>
        <span class="sf-next__card-desc">
          A library of pre-compiled DXNN models for detection, classification,
          segmentation, and pose, with per-model FPS on ALPON&nbsp;X5&nbsp;AI and
          a deploy command for each. The shortest path beyond hello-world.
        </span>
        <span class="sf-next__card-cta">Browse the Model Zoo &rarr;</span>
      </a>

      <a href="/docs/ai-model-deployment-workflow" target="_blank" rel="noopener" class="sf-next__card">
        <div class="sf-next__card-icon"><svg class="sf-icon" aria-hidden="true"><use href="#qs-rocket"/></svg></div>
        <span class="sf-next__card-step">Next · Bring your own model</span>
        <span class="sf-next__card-title">Deployment Workflow</span>
        <span class="sf-next__card-desc">
          ONNX &rarr; DXNN compiler &rarr; ALPON&nbsp;X5&nbsp;AI. The full path from
          a trained model on your development machine to a compiled artifact running
          on the NPU, including calibration and integration.
        </span>
        <span class="sf-next__card-cta">Deployment Workflow &rarr;</span>
      </a>

      <a href="/docs/ai-model-deployment-system-monitoring" target="_blank" rel="noopener" class="sf-next__card">
        <div class="sf-next__card-icon"><svg class="sf-icon" aria-hidden="true"><use href="#qs-pulse"/></svg></div>
        <span class="sf-next__card-step">Next · Operate in production</span>
        <span class="sf-next__card-title">System Monitoring</span>
        <span class="sf-next__card-desc">
          NPU utilisation, per-core temperature, voltage, clock, and memory headroom
          via <code>dxrt-cli</code> and <code>dxtop</code>. Read NPU telemetry, surface
          it to dashboards, and watch deployments in real time.
        </span>
        <span class="sf-next__card-cta">Monitor the NPU &rarr;</span>
      </a>

    </div>

    <div class="sf-next__aside">
      <a href="/docs/alpon-x5-ai-edge-computer-troubleshooting" target="_blank" rel="noopener" class="sf-next__aside-card">
        <div class="sf-next__aside-icon"><svg class="sf-icon" aria-hidden="true"><use href="#qs-wrench"/></svg></div>
        <div class="sf-next__aside-body">
          <span class="sf-next__aside-label">Troubleshooting</span>
          <span class="sf-next__aside-desc">Power, network, LED states, NPU detection, container runtime, and OTA failures.</span>
        </div>
      </a>
      <a href="/docs/alpon-x5-ai-edge-computer-faq" target="_blank" rel="noopener" class="sf-next__aside-card">
        <div class="sf-next__aside-icon"><svg class="sf-icon" aria-hidden="true"><use href="#qs-info"/></svg></div>
        <div class="sf-next__aside-body">
          <span class="sf-next__aside-label">FAQ</span>
          <span class="sf-next__aside-desc">Compatibility, supported models, eSIM activation, performance, custom firmware.</span>
        </div>
      </a>
    </div>
  </section>

</div>



`}</HTMLBlock>

<br />