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

# Quickstart

Set up the ALPON X4 edge computer with step-by-step installation and configuration. Get your device ready for industrial deployment.

<HTMLBlock>{`
<style>
/* ════════════════════════════════════════════════════════════════════════
   ALPON X4 · Quickstart
   Page type:      §11.1 Quickstart (sixfab-docs-design-language.md)
   Brand modifier: Tier 1 throughout
     · Hero    sf-hero       (default Tier 1, Sixfab Teal accents)
     · AEO     sf-aeo        (default Tier 1, Sixfab Teal accent bar)
     · Steps   sf-step-list  (default — numbered Sixfab Teal circles,
                              teal gradient connector line)
   Tokens:         DESIGN.md v4 (Sixfab Teal primary, no AI Iris)
   Typography:     DESIGN.md canonical (Gilroy + JetBrains Mono)
   Schema:         HowTo + BreadcrumbList (page-end comment block)

   Project §3 + §7 (X4 only):
     · ALPON X4 carries NO AI Iris surfaces. No sf-step-list--ai,
       no sf-card--ai, no sf-aeo--ai, no sf-hero--ai.
     · NO NPU / DEEPX / dxrt-cli / AI Model Deployment cross-links.
     · Final step is "Access the device" with Sixfab Connect dashboard
       (no NPU verification sub-block — X4 has no NPU).

   Design parity with ALPON X5 AI Quickstart:
   The hero, meta bar, AEO block, "In this guide" TOC, prerequisites
   list, step list header, LED matrix, first-boot FAQ, and "Where to
   next" exit ramp adopt the X5 AI Quickstart canonical shape. Only
   the brand-accent tier differs (Sixfab Teal here vs. AI Iris on X5 AI).
   Page-body content is X4-specific.
   ════════════════════════════════════════════════════════════════════════ */

/* ─── 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 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;

  /* 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;
  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. 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.

   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--primary {
  background: var(--primary);
  color: var(--white);
  border-color: var(--primary);
  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 (Tier 1, Sixfab Teal)
   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__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__text {
  font-size: 1rem;
  line-height: 1.65;
  color: var(--deep-ink);
  margin: 0;
}
.sf-aeo__text strong { color: var(--primary); font-weight: 700; }

/* ════════════════════════════════════════════════════════════════════════
   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.
   ════════════════════════════════════════════════════════════════════════ */
.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: border-color .15s, box-shadow .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(--neutral);
  color: var(--primary);
  border: 1px solid rgba(3,72,96,.20);
}

.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(--neutral);
  color: var(--primary);
}

.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
   ════════════════════════════════════════════════════════════════════════ */
.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); }

/* ════════════════════════════════════════════════════════════════════════
   STEP LIST - sf-step-list (default, Tier 1 Sixfab Teal)
   Step number + title share a baseline via grid layout on .sf-step__header.
   Connector line uses a teal gradient — same visual richness as the X5 AI
   page, but in brand teal instead of AI Iris.
   ════════════════════════════════════════════════════════════════════════ */
.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: linear-gradient(180deg, var(--primary) 0%, rgba(3,72,96,.18) 100%);
  z-index: 0;
}
.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 6px 14px rgba(3,72,96,.28);
  align-self: center;
}
.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(--neutral);
  border: 2px solid var(--primary);
}
.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(--primary); }
.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(--primary); }

/* ════════════════════════════════════════════════════════════════════════
   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); }

/* ════════════════════════════════════════════════════════════════════════
   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 the ALPON platform
   Composition mirrors the ALPON X5 AI Quickstart:
     · sf-next__intro  - eyebrow + heading + closing paragraph
     · sf-next__grid   - three prominent cards (Deploy Applications /
                         ALPON X4 OS / ALPON Cloud), each tagged Sixfab
                         Teal because X4 has no NPU / AI Iris layer.
     · 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(--primary);
  background: var(--neutral);
  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(--primary);
}
.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(--primary);
  border-radius: var(--r-xl) var(--r-xl) 0 0;
}
.sf-next__card:hover {
  border-color: var(--primary);
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}
.sf-next__card-icon {
  width: 40px; height: 40px;
  border-radius: var(--r-md);
  background: var(--neutral);
  color: var(--primary);
  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(--primary);
}
.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(--primary);
  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-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 ul li::marker,
[data-color-mode="dark"] .sf-doc ol li::marker { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-pill--primary { 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; }
/* ReadMe's own html[data-color-mode="dark"] .markdown-body a / code rules are (0,2,2)
   and out-specify a plain .sf-doc descendant rule, so links rendered ReadMe blue in
   attribute-dark while system-dark showed Mint. The .markdown-body hop fixes both. */
[data-color-mode="dark"] .markdown-body .sf-doc a { color: var(--secondary); }
[data-color-mode="dark"] .markdown-body .sf-doc a:hover { color: var(--neutral); }
[data-color-mode="dark"] .markdown-body .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 { background: rgba(0,224,184,.04); border-left-color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-aeo__label,
[data-color-mode="dark"] .sf-doc .sf-aeo__text strong { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-prereq-list,
[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-figure__frame { background: var(--light); }
[data-color-mode="dark"] .sf-doc .sf-card--highlighted { background: rgba(0,224,184,.06); border-color: var(--secondary); }
[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__card::before { background: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-next__eyebrow {
  background: rgba(0,224,184,.12);
  color: var(--secondary);
}
[data-color-mode="dark"] .sf-doc .sf-next__eyebrow::before { background: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-next__card-icon { background: rgba(0,224,184,.12); color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-next__card-step,
[data-color-mode="dark"] .sf-doc .sf-next__card-cta { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-next__card:hover { border-color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-next__aside-icon { background: var(--light); color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-next__aside-card:hover { border-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(0,224,184,.10); color: var(--secondary); }
[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(0,224,184,.12);
  color: var(--secondary);
  border-color: rgba(0,224,184,.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 6px 14px rgba(0,0,0,.40); }
[data-color-mode="dark"] .sf-doc .sf-step-list::before { background: linear-gradient(180deg, var(--secondary) 0%, rgba(0,224,184,.15) 100%); }
[data-color-mode="dark"] .sf-doc .sf-meta__badge { background: var(--light); color: var(--secondary) !important; border-color: var(--line); }

/* 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"] .markdown-body .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(--deep-ink) !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);
}

/* ── SYSTEM DARK (prefers-color-scheme) · full mirror of the [data-color-mode="dark"] branch ──
   Generated mechanically: identical selectors with the html:not([data-color-mode="light"])
   prefix and identical declarations, so the two dark branches cannot drift. ── */
@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 ul li::marker,
  html:not([data-color-mode="light"]) .sf-doc ol li::marker { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-pill--primary { 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"]) .markdown-body .sf-doc a { color: var(--secondary); }
  html:not([data-color-mode="light"]) .markdown-body .sf-doc a:hover { color: var(--neutral); }
  html:not([data-color-mode="light"]) .markdown-body .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 { background: rgba(0,224,184,.04); border-left-color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-aeo__label,
  html:not([data-color-mode="light"]) .sf-doc .sf-aeo__text strong { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-prereq-list,
  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-figure__frame { background: var(--light); }
  html:not([data-color-mode="light"]) .sf-doc .sf-card--highlighted { background: rgba(0,224,184,.06); border-color: var(--secondary); }
  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); }
  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__card::before { background: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-next__eyebrow {
    background: rgba(0,224,184,.12);
    color: var(--secondary);
  }
  html:not([data-color-mode="light"]) .sf-doc .sf-next__eyebrow::before { background: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-next__card-icon { background: rgba(0,224,184,.12); color: var(--secondary); }
  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: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-next__card:hover { border-color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-next__aside-icon { background: var(--light); color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-next__aside-card:hover { border-color: var(--secondary); }
  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); }
  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(0,224,184,.10); color: var(--secondary); }
  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(0,224,184,.12);
    color: var(--secondary);
    border-color: rgba(0,224,184,.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 6px 14px rgba(0,0,0,.40); }
  html:not([data-color-mode="light"]) .sf-doc .sf-step-list::before { background: linear-gradient(180deg, var(--secondary) 0%, rgba(0,224,184,.15) 100%); }
  html:not([data-color-mode="light"]) .sf-doc .sf-meta__badge { background: var(--light); color: var(--secondary) !important; border-color: var(--line); }
  html:not([data-color-mode="light"]) .sf-doc .sf-toc { background: rgba(255, 255, 255, 0.04); }
  html:not([data-color-mode="light"]) .markdown-body .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(--deep-ink) !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-container" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"/><polyline points="3.27 6.96 12 12.01 20.73 6.96"/><line x1="12" y1="22.08" x2="12" y2="12"/></symbol>
  <symbol id="qs-os"      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="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"/></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-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;X4 online in 5&nbsp;steps</p>
      <p class="sf-hero__lead">
        Register the device in <strong>ALPON Cloud</strong> (accessed through Sixfab Connect),
        connect power and Ethernet, activate the asset, verify the LEDs, then open a browser-based remote
        terminal from <strong>ALPON Cloud</strong>. Five steps, one device,
        no local toolchain. Built on Raspberry Pi.
      </p>
      <div class="sf-hero__chips">
        <span class="sf-pill sf-pill--primary">Raspberry Pi CM4</span>
        <span class="sf-pill">LTE Cat 4 + eSIM</span>
        <span class="sf-pill">Wi-Fi 5</span>
        <span class="sf-pill">Bluetooth 5.0</span>
        <span class="sf-pill">TPM 2.0</span>
      </div>
    </div>
  </header>

  
  <div class="sf-meta">
    <span class="sf-meta__badge">ALPON X4</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>Built on Raspberry Pi</span>
  </div>

  
  <div class="sf-aeo">
    <span class="sf-aeo__label">How do I set up an ALPON X4?</span>
    <p class="sf-aeo__text">
      <strong>Five steps.</strong>
      Register using the device QR code or serial number at
      <a href="https://connect.sixfab.com" target="_blank" rel="noopener">ALPON Cloud</a>,
      connect the included <strong>15&nbsp;V, 1.8&nbsp;A (27&nbsp;W) USB-C&nbsp;PD</strong>
      adapter, and connect Ethernet to <strong>ETH/G (1&nbsp;Gbps)</strong>.
      Activate the asset in its detail page, verify the Connection LED and cloud status,
      then open the remote terminal. Boot and provisioning time depend on network conditions.
    </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. The box includes the device, four external antennas
    (2&times; LTE, 1&times; GNSS, 1&times; 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 X4 device</span>
          <span class="sf-prereq-row__desc">Industrial edge IoT computer built on the Raspberry Pi CM4. The rear antenna connectors are labeled <code>L</code>, <code>L</code>, <code>G</code>, and <code>W</code>; Wi-Fi uses RP-SMA. Screw-terminal block for DC input ships in the box.</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">Sign in or create an account at <a href="https://connect.sixfab.com" target="_blank" rel="noopener">connect.sixfab.com</a>. Required for registration, activation, and the browser-based remote terminal. Review the <a href="/docs/alpon-cloud#onboarding" target="_blank" rel="noopener">activation requirements</a> before setup.</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">Use a cable and an internet-connected router or switch for first boot. Ethernet provides the initial connection while you register and activate cellular service.</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 so you can run
  commands and deploy workloads. Each step's commands are self-contained, so copy them in order.</p>

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

    
    <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 ALPON Cloud</h3>
      </div>
      <div class="sf-step__body">
        <p>Registration links the device's serial number to your account. Use the QR code
        or serial number on the bottom label. The documented device-registration flow
        uses either of these identifiers; an eSIM provider's activation code is for
        installing a separate eSIM profile, not a substitute for the device serial number.</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 X4 in ALPON Cloud 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 ALPON Cloud.
          </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>ALPON Cloud 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">ALPON Cloud</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>You can register before applying power. After connecting power and Ethernet,
            complete the required asset activation in Step&nbsp;4.</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. Connecting or disconnecting
            antennas on a powered LTE radio can damage the cellular module,
            so always work with the device unpowered through this step.</p>
          </div>
        </div>

        <p>Use <strong>one power input at a time</strong>. For first boot, use the included
        <strong>15&nbsp;V, 1.8&nbsp;A (27&nbsp;W) USB-C&nbsp;PD</strong> adapter.
        The DC terminal is rated <strong>9&ndash;30&nbsp;V</strong>, with full peripheral
        functionality at <strong>12&ndash;30&nbsp;V</strong> and restricted operation below 12&nbsp;V.
        Optional PoE+ delivers up to 25&nbsp;W, which cannot cover the 27&nbsp;W simultaneous
        system peak: reduce peripheral load or use DC/PD. See <a href="/docs/alpon-x4-edge-computer-power-mounting" target="_blank" rel="noopener">Power &amp; Mounting</a>.</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 X4"
                 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&nbsp;DC × 1.8&nbsp;A</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">9&ndash;30&nbsp;V&nbsp;DC rated; 12&ndash;30&nbsp;V for full functionality</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+ (variant)</p>
            <p class="sf-power__sub">IEEE 802.3at on ETH/G; up to 25&nbsp;W delivered</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>Confirm 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 documented power profile</span>
          </div>
          <div class="sf-callout__content">
            <p>A USB-C connector alone does not establish compatibility. Use a PD supply
            supporting <strong>15&nbsp;V at 1.8&nbsp;A (27&nbsp;W)</strong>.
            For full peripheral functionality from DC, use <strong>12&ndash;30&nbsp;V</strong>.
            Disconnect the previous supply before changing power inputs.</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>Use <strong>ETH/G (1&nbsp;Gbps)</strong> for the first-boot Ethernet connection.
        This port carries data and, on PoE-enabled variants, PoE+ power.
        The <strong>ETH (100&nbsp;Mbps)</strong> port is data-only. These labels identify
        the physical ports; WAN/LAN roles depend on network configuration.</p>

        <figure class="sf-figure">
          <div class="sf-figure__frame">
            <img src="https://files.readme.io/2b5bc174512b92f6f55daf54436d28da00cbe7760374866c695fb38927ca5024-Sixfab_ALPON_X4_Getting_Started_Layout_3.webp"
                 alt="ALPON X4 rear panel showing ETH 100 Mbps, ETH/G 1 Gbps with optional PoE+, GPIO Add-on connector, switches, and PB2"
                 loading="lazy">
          </div>
          <figcaption class="sf-figure__cap">
            <span class="sf-figure__cap-num">Fig. 3</span> Rear-panel connector layout. Use <strong>ETH/G (1&nbsp;Gbps)</strong> for this guide; <strong>ETH (100&nbsp;Mbps)</strong> is data-only. The separate GPIO Add-on connector is not Ethernet.
          </figcaption>
        </figure>

        <ol>
          <li>Connect an Ethernet cable from an internet-connected router or switch to <strong>ETH/G (1&nbsp;Gbps)</strong>. If using USB-C or DC power, use a non-PoE connection so only one input supplies power.</li>
          <li>The device requests an IP address via DHCP; the network must provide DHCP and internet access.</li>
          <li>Keep Ethernet connected while completing activation in Step&nbsp;4. Cellular connectivity requires an active asset, a provisioned eSIM profile, and coverage.</li>
        </ol>

        <div class="sf-callout sf-callout--danger">
          <div class="sf-callout__header">
            <svg class="sf-icon" aria-hidden="true"><use href="#qs-warn"/></svg>
            <span>The GPIO Add-on port is not Ethernet</span>
          </div>
          <div class="sf-callout__content">
            <p>The third RJ45-shaped connector on the device is the <strong>GPIO Add-on
            port</strong>. It carries GPIO signals, a 5&nbsp;V rail, and GND &mdash;
            not Ethernet or PoE. Never connect an Ethernet or PoE cable to it:
            doing so can cause permanent hardware damage.</p>
          </div>
        </div>

        <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
            outdoor IP67 combination antenna is available as an upgrade;
            see <a href="/docs/alpon-x4-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">Activate the asset and verify connectivity</h3>
      </div>
      <div class="sf-step__body">
        <ol>
          <li>Open <a href="https://connect.sixfab.com" target="_blank" rel="noopener">ALPON Cloud</a>, go to <strong>Assets</strong>, and select <strong>Details</strong> for the registered device.</li>
          <li>With the device powered and connected to Ethernet, set the <strong>Active / Inactive toggle</strong> at the top right of the asset detail page to <strong>Active</strong>. Registration alone does not activate the asset. The account must meet the <a href="/docs/alpon-cloud#onboarding" target="_blank" rel="noopener">activation and balance requirements</a>.</li>
          <li>Check the Connection LED and the asset's connectivity status before opening the remote terminal. Activation and network connectivity are separate states.</li>
        </ol>
        <p>Boot and provisioning time vary. Use the indicators below rather than a fixed timer.</p>

        
        <figure class="sf-figure">
          <div class="sf-figure__frame">
            <img src="https://files.readme.io/28aa8d5fc7ff459bb076fb26850b4075066432ca63e2ab4818c2f82c84e48435-Getting_St.-8.png"
                 alt="ALPON X4 front-panel indicators for power, cloud connection, and cellular signal"
                 loading="lazy">
          </div>
          <figcaption class="sf-figure__cap">
            <span class="sf-figure__cap-num">Fig. 4</span> Front-panel indicators. Power is white when powered; Connection is green when connected to ALPON Cloud and off when disconnected. Cellular color indicates signal strength.
          </figcaption>
        </figure>

        <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> power is present.</span>
          </div>
          <div class="sf-led-row">
            <span class="sf-led-key sf-led-key--green"><span class="sf-led-key__dot"></span>Connection</span>
            <span><strong>Green:</strong> connected to ALPON Cloud. <strong>Off:</strong> disconnected.</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. Check Connection and cloud status separately.</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 antennas, move 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 asset is <strong>Active</strong>, the <strong>Connection LED is green</strong>,
            and ALPON Cloud reports the device as connected or <code>Online</code>.</p>
          </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>No cellular coverage?</span>
          </div>
          <div class="sf-callout__content">
            <p>Use <strong>ETH/G (1&nbsp;Gbps)</strong> with an internet-connected network.
            Check the asset's connectivity status; an Ethernet link alone does not confirm
            cloud reachability.</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</h3>
      </div>
      <div class="sf-step__body">
        <p>Open <a href="https://connect.sixfab.com" target="_blank" rel="noopener">ALPON Cloud</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/4f685b751c90fa8d6ddeac62b05a6c43449bb9fbe75399e43a7cc4d2aca9f4ba-Sixfab_ALPON_X4_Device_Registration_2.webp"
                 alt="ALPON Cloud asset detail page showing the activation control"
                 loading="lazy">
          </div>
          <figcaption class="sf-figure__cap">
            <span class="sf-figure__cap-num">Fig. 5</span> Asset detail page and activation control. After activation and connectivity checks, open the remote terminal from the device page.
          </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> from Docker Hub or Sixfab Container Registry 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>

        <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-x4-edge-computer-operating-system" target="_blank" rel="noopener">ALPON X4 OS</a>
            for password changes, user setup, local Wi-Fi, and OS updates.</p>
          </div>
        </div>
      </div>
    </div>

  </div>


  
  <h2 id="first-boot-issues">First-boot troubleshooting</h2>
  <p>Open the question that matches what you see. For further diagnostics, use the
  <a href="/docs/alpon-x4-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 supply supports the documented <strong>15&nbsp;V, 1.8&nbsp;A (27&nbsp;W) USB-C&nbsp;PD</strong> profile. Alternatively, disconnect USB-C and use the DC terminal: 9&ndash;30&nbsp;V rated, 12&ndash;30&nbsp;V for full peripheral functionality. Use only one power input.</p>
      </div>
    </details>

    <details>
      <summary><span>The Connection LED stays off</span></summary>
      <div class="sf-faq__a">
        <p>The device is disconnected from ALPON Cloud. Confirm registration and activation in Step&nbsp;4, then check Ethernet on <strong>ETH/G (1&nbsp;Gbps)</strong> and internet access. For cellular, check the eSIM profile, service availability, and antenna connections with power removed before adjusting hardware.</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 ALPON Cloud <strong>Assets &rarr; Register Asset</strong>.</p>
      </div>
    </details>

    <details>
      <summary><span>The device shows <code>Offline</code> in ALPON Cloud</span></summary>
      <div class="sf-faq__a">
        <p>Confirm the asset is registered and Active, then check DHCP and internet access on <strong>ETH/G (1&nbsp;Gbps)</strong>. Offline status can also reflect cloud-service or agent connectivity problems, not just loss of a physical network link. See the <a href="/docs/alpon-x4-edge-computer-troubleshooting" target="_blank" rel="noopener">Troubleshooting guide</a>.</p>
      </div>
    </details>

    <details>
      <summary><span>Ethernet is plugged in but the device still reports no network</span></summary>
      <div class="sf-faq__a">
        <p>Confirm the cable is in <strong>ETH/G (1&nbsp;Gbps)</strong>, the connector clicks into place, and the router or switch provides DHCP and internet access. <strong>ETH (100&nbsp;Mbps)</strong> is a separate data-only port, not a fixed downstream role. <strong>Never plug Ethernet into the GPIO Add-on port</strong>: it is not Ethernet or PoE.</p>
      </div>
    </details>

    <details>
      <summary><span>I cannot find the activation code or serial number</span></summary>
      <div class="sf-faq__a">
        <p>The device serial number and QR code are on the bottom label. The documented registration procedure does not require a separate device activation code. A code for adding a third-party eSIM profile comes from the eSIM provider; see <a href="/docs/alpon-cloud" target="_blank" rel="noopener">ALPON Cloud</a>. If the device label is unreadable or the registration screen requests information you do not have, 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">Next steps</span>
      <h2>Where to next</h2>
      <p class="sf-next__lead">
        The device is powered, the Connection LED is green, and the dashboard shows it
        connected. Pick the next step based on what you want to build:
        deploy containers, configure user access and Wi-Fi, or manage a fleet.
      </p>
    </div>

    <div class="sf-next__grid">

      <a href="/docs/alpon-deploy-applications" target="_blank" rel="noopener" class="sf-next__card">
        <div class="sf-next__card-icon"><svg class="sf-icon" aria-hidden="true"><use href="#qs-container"/></svg></div>
        <span class="sf-next__card-step">Next · Ship a workload</span>
        <span class="sf-next__card-title">Deploy Applications</span>
        <span class="sf-next__card-desc">
          Push ARM64 Docker workloads from Docker Hub or the Sixfab Container
          Registry to a single device or your whole fleet, with rollout
          control and remote logs.
        </span>
        <span class="sf-next__card-cta">Deploy a container &rarr;</span>
      </a>

      <a href="/docs/alpon-x4-edge-computer-operating-system" target="_blank" rel="noopener" class="sf-next__card">
        <div class="sf-next__card-icon"><svg class="sf-icon" aria-hidden="true"><use href="#qs-os"/></svg></div>
        <span class="sf-next__card-step">Next · Configure the OS</span>
        <span class="sf-next__card-title">ALPON X4 OS</span>
        <span class="sf-next__card-desc">
          Change the default password, set up users, connect to local Wi-Fi,
          and apply OS updates. Start with these administration steps before deployment.
        </span>
        <span class="sf-next__card-cta">Configure ALPON X4 OS &rarr;</span>
      </a>

      <a href="/docs/alpon-cloud" target="_blank" rel="noopener" class="sf-next__card">
        <div class="sf-next__card-icon"><svg class="sf-icon" aria-hidden="true"><use href="#qs-cloud"/></svg></div>
        <span class="sf-next__card-step">Next · Manage a fleet</span>
        <span class="sf-next__card-title">ALPON Cloud</span>
        <span class="sf-next__card-desc">
          Health metrics, OTA updates, alerting, and remote terminals across
          your full fleet of devices. The same dashboard that opened in
          Step&nbsp;5, now driving production at scale.
        </span>
        <span class="sf-next__card-cta">Open ALPON Cloud &rarr;</span>
      </a>

    </div>

    <div class="sf-next__aside">
      <a href="/docs/alpon-x4-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, container runtime, and OTA failures.</span>
        </div>
      </a>
      <a href="/docs/alpon-x4-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, eSIM activation, supported workloads, performance, custom firmware.</span>
        </div>
      </a>
    </div>
  </section>

</div>



`}</HTMLBlock>

<br />