---
updatedAt: 2026-09-16T21:53:45.000Z
agentTools:
  projectIndex: https://docs.sixfab.com/llms.txt
---

# Physical Layout & I/O

Explore the hardware layout and I/O interfaces of the ALPON X5 AI edge computer. Understand ports, connectivity, and system architecture for integration.

<HTMLBlock>{`
<style>
/* ════════════════════════════════════════════════════════════════════════════
   ALPON X5 AI · Physical Layout & I/O  (v2, full revision)
   Built on DESIGN.md (six-tier color system) + sixfab-docs-design-language.md.

   Tier mapping (per §3 of design language and project §3):
   - Default surface : Tier 1 (Sixfab Teal anchor)
   - Meta badge      : Tier 3 ALPON Purple — device identity, always purple here
   - AEO block       : sf-aeo--ai (AI Iris) — editorial request, X5 AI is an
                       NPU-anchored product so AI Iris pairs with the framing.
                       Per project §3, the Two-Purples Rule does not apply
                       here because ALPON Gradient is not present on this page.
   - Step list / CTA : default --primary (Sixfab Teal)
   - Callouts        : Tier 5 semantic only (info / success / warning / danger)
═══════════════════════════════════════════════════════════════════════════ */

/* === 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 — §3.2 (light mode, 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-mist:       #F0EDFF;
  --alpon-purple:  #4F008E;
  --alpon-cyan:    #00A6C8;

  /* Tier 4 — Campaign / Event */
  --ember:         #FF6B35;
  --ember-dark:    #B8471F;

  /* Tier 5 — Semantic / Status */
  --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-colors */
  --on-primary:    #FFFFFF;
  --on-secondary:  #1B2D45;
  --on-neutral:    #10202E;

  /* Spacing — §7.1 */
  --xs: 4px; --sm: 8px; --md: 16px; --lg: 24px; --xl: 32px; --2xl: 48px; --3xl: 64px;

  /* Radius — §7.2 */
  --r-sm: 4px; --r-md: 6px; --r-lg: 8px; --r-xl: 12px; --r-2xl: 16px; --r-full: 9999px;

  /* Shadows — §7.3 */
  --shadow-sm:    0 1px 2px rgba(10, 23, 33, 0.04);
  --shadow-md:    0 4px 12px rgba(10, 23, 33, 0.06);
  --shadow-lg:    0 8px 24px rgba(10, 23, 33, 0.08);

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

/* === BASE TYPOGRAPHY — §4.4 ============================================ */
.sf-doc {
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.6;
  color: var(--deep-ink);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.sf-doc *, .sf-doc *::before, .sf-doc *::after { box-sizing: border-box; }

.sf-doc h1 {
  font-size: 3rem; font-weight: 800; letter-spacing: -0.03em;
  line-height: 1.08; color: var(--deep-ink); margin: 0 0 16px;
}
.sf-doc h2 {
  font-size: 2.25rem; font-weight: 700; letter-spacing: -0.025em;
  line-height: 1.15; color: var(--primary);
  margin: 64px 0 16px; padding: 0; border: 0;
}
.sf-doc h2:first-of-type { margin-top: 0; }
.sf-doc h3 {
  font-size: 1.5rem; font-weight: 700; letter-spacing: -0.02em;
  line-height: 1.2; color: var(--deep-ink); margin: 32px 0 12px;
}
.sf-doc h4 {
  font-size: 1.125rem; font-weight: 600; letter-spacing: -0.015em;
  line-height: 1.3; color: var(--deep-ink); margin: 24px 0 8px;
}
.sf-doc p { font-size: 1rem; line-height: 1.6; color: var(--deep-ink); margin: 0 0 16px; }
.sf-doc .sf-lead { font-size: 1.125rem; line-height: 1.6; color: var(--deep-ink); margin: 0 0 24px; }
.sf-doc ul, .sf-doc ol { padding-left: 24px; margin: 8px 0 16px; }
.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 a { color: var(--primary); text-decoration: none; transition: color .15s; }
.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;
  background: var(--light); color: var(--primary);
  padding: 1px 5px; border-radius: var(--r-sm); border: 0;
}
.sf-doc hr {
  border: 0; height: 1px; background: var(--line); margin: 48px 0;
}

/* === EYEBROW — §4.3 ===================================================== */
.sf-eyebrow {
  display: inline-block;
  font-family: var(--font-mono);
  font-size: 0.6875rem; font-weight: 500;
  letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--primary); margin: 0 0 12px;
}

/* === HERO (compact, single-column — Tier 1 default surface) ============= */
.sf-hero {
  padding: var(--xl);
  margin: 0 0 24px;
  background: var(--light);
  border: 1px solid var(--line);
  border-radius: var(--r-2xl);
}
.sf-hero__copy { min-width: 0; }
.sf-doc .sf-hero__title {
  font-family: var(--font-sans);
  font-size: 2.5rem; font-weight: 800; line-height: 1.08; letter-spacing: -0.03em;
  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__chips { display: flex; flex-wrap: wrap; gap: 6px; }

/* === META BAR — §6.6 (BEM canonical, ALPON X5 AI badge in --alpon-purple) */
.sf-meta {
  display: flex; align-items: center; flex-wrap: wrap;
  gap: var(--sm);
  font-family: var(--font-mono);
  font-size: 0.75rem; color: var(--slate);
  margin: 0 0 var(--lg);
}
.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(--alpon-purple) !important;   /* ALPON X5 AI sub-brand purple */
  color: #FFFFFF !important;                     /* §6.2.2 sub-brand surface text rule */
  border: 1px solid var(--alpon-purple);
  letter-spacing: 0.02em;
  text-decoration: none !important;
}
.sf-meta__badge--mint {
  background: var(--neutral) !important;
  color: var(--primary) !important;
  border-color: var(--neutral);
}
.sf-meta__sep { color: var(--line); }

/* === IN THIS GUIDE — sf-toc (design language §6.15) ===================== */
.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(--xl);
}
.sf-toc__label {
  font-family: var(--font-mono);
  font-size: 0.6875rem; font-weight: 500;
  letter-spacing: 0.18em; 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-size: 0.8125rem; font-weight: 600;
  color: var(--deep-ink);
  text-decoration: none !important;
  transition: all .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-mono);
  font-size: 0.6875rem; font-weight: 500; color: var(--slate);
  transition: color .15s;
}

/* === AEO ANSWER BLOCK — §6.1 (sf-aeo--ai variant on this page) ========= */
.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);
}
/* The question itself is the heading — readable display type. */
.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.6; color: var(--deep-ink); margin: 0; }
.sf-aeo__text strong { color: var(--primary); font-weight: 600; }
.sf-aeo--ai .sf-aeo__text strong { color: var(--ai-iris); }

/* === PILL — §6.2 ======================================================== */
.sf-pill {
  display: inline-flex; align-items: center; gap: 4px;
  font-family: var(--font-sans); font-size: 0.75rem; font-weight: 600;
  padding: 3px 8px; 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--success { background: var(--success-bg); color: var(--success-text); border-color: var(--success-bg); }
.sf-pill--warning { background: var(--warning-bg); color: var(--warning-text); border-color: var(--warning-bg); }
.sf-pill--info    { background: var(--info-bg);    color: var(--info-text);    border-color: var(--info-bg); }
.sf-pill--danger  { background: var(--danger-bg);  color: var(--danger-text);  border-color: var(--danger-bg); }
.sf-pill--brand   { background: var(--primary);    color: var(--on-primary);   border-color: var(--primary); }
.sf-pill--mint    { background: var(--secondary);  color: var(--on-secondary); border-color: var(--secondary); font-weight: 700; }

/* === SPEC CARD — harmonized with alpon-x5-ai-specifications.html ======= */
.sf-spec-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 16px;
  margin: 0 0 24px;
}
.sf-spec-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  padding: 20px 22px;
  display: flex; flex-direction: column;
  margin: 16px 0 24px;
  transition: border-color .15s;
}
.sf-spec-grid .sf-spec-card { margin: 0; }
.sf-spec-card:hover { border-color: var(--slate-light); }
.sf-spec-card__head {
  display: flex; align-items: center; gap: 10px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 14px;
}
.sf-spec-card__icon {
  width: 32px; height: 32px;
  border-radius: var(--r-md);
  background: var(--light); color: var(--primary);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.sf-spec-card__icon svg { width: 18px; height: 18px; }
.sf-spec-card__title {
  font-size: 1rem; font-weight: 700;
  color: var(--primary);
  letter-spacing: -0.01em;
}
.sf-spec-card__body { display: flex; flex-direction: column; }
.sf-spec-row {
  display: grid;
  grid-template-columns: minmax(160px, 30%) 1fr;
  gap: 24px;
  align-items: baseline;
  padding: 11px 0;
  border-bottom: 1px dashed var(--line);
}
.sf-spec-row:first-child { padding-top: 4px; }
.sf-spec-row:last-child { border-bottom: 0; padding-bottom: 4px; }
.sf-spec-row__key {
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--deep-ink);
  line-height: 1.5;
}
.sf-spec-row__val {
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--deep-ink);
  line-height: 1.55;
  text-align: left;
  min-width: 0;
}
.sf-spec-row__val code { font-size: 0.875rem; }
.sf-spec-row__val em { font-style: italic; color: var(--slate); font-weight: 500; }
.sf-spec-row__val sup { font-size: 0.6875rem; font-weight: 700; color: var(--primary); }
.sf-spec-row__key sup { font-size: 0.6875rem; font-weight: 700; color: var(--primary); }
/* Featured variant — highlights the principal column in multi-value rows */
.sf-spec-row__val--featured { color: var(--primary); font-weight: 700; }
.sf-spec-row__val--featured code { color: var(--primary); }
/* Totals row variant — used for the power consumption summary */
.sf-spec-row--total {
  background: var(--neutral);
  margin: 8px -22px -4px;
  padding: 14px 22px !important;
  border-top: 2px solid var(--line);
  border-bottom: 0 !important;
  border-radius: 0 0 var(--r-xl) var(--r-xl);
}
.sf-spec-row--total .sf-spec-row__key,
.sf-spec-row--total .sf-spec-row__val { color: var(--primary); font-weight: 700; }

/* === COMPARE TABLE — used by Power consumption (multi-column numeric) === */
.sf-compare-wrap {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  background: var(--white);
  margin: 16px 0 24px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.sf-compare__head,
.sf-compare__row {
  display: grid;
  grid-template-columns: 38% 31% 31%;
}
.sf-compare-wrap--c4 .sf-compare__head,
.sf-compare-wrap--c4 .sf-compare__row {
  grid-template-columns: 28% 24% 24% 24%;
}
.sf-compare-wrap--c5 .sf-compare__head,
.sf-compare-wrap--c5 .sf-compare__row {
  grid-template-columns: 10% 22% 22% 16% 30%;
}
.sf-compare__head {
  background: var(--light);
  border-bottom: 2px solid var(--line);
}
.sf-compare__hcell {
  padding: 16px 18px;
  font-family: var(--font-sans);
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--deep-ink);
  text-align: left;
}
.sf-compare__hcell:not(:first-child) { text-align: center; }
.sf-compare__hcell--featured {
  color: var(--primary);
  background: var(--neutral);
  position: relative;
}
.sf-compare__hcell--featured::after {
  content: '';
  position: absolute; left: 0; right: 0; bottom: -2px;
  height: 3px;
  background: var(--secondary);
}
.sf-compare__row { border-bottom: 1px solid var(--line); }
.sf-compare__row:last-child { border-bottom: 0; }
.sf-compare__cell {
  padding: 14px 18px;
  font-size: 0.9375rem;
  color: var(--deep-ink);
  line-height: 1.5;
  display: flex;
  align-items: center;
}
.sf-compare__cell:first-child {
  font-weight: 600;
  background: var(--light);
  color: var(--primary);
}
.sf-compare__cell:not(:first-child) {
  justify-content: center;
  text-align: center;
}
.sf-compare__cell--featured {
  background: rgba(232, 245, 240, 0.55);
  font-weight: 700;
}
.sf-compare__cell--left { justify-content: flex-start !important; text-align: left !important; }
.sf-compare__num {
  font-family: var(--font-mono);
  font-size: 0.9375rem; font-weight: 600;
}
.sf-compare__row--total .sf-compare__cell {
  background: var(--neutral);
  font-weight: 700;
}
.sf-compare__row--total .sf-compare__cell:first-child { color: var(--primary); }

/* Mobile fallback — stack each row */
@media (max-width: 640px) {
  .sf-compare__head { display: none; }
  .sf-compare__row,
  .sf-compare-wrap--c4 .sf-compare__row,
  .sf-compare-wrap--c5 .sf-compare__row {
    grid-template-columns: 1fr;
    padding: 4px 0;
  }
  .sf-compare__cell {
    padding: 10px 14px;
    justify-content: flex-start !important;
    text-align: left !important;
    border-bottom: 1px dashed var(--line);
  }
  .sf-compare__cell:last-child { border-bottom: 0; }
  .sf-compare__cell:first-child { color: var(--primary); }
  .sf-compare__cell::before {
    content: attr(data-label);
    display: block;
    font-family: var(--font-mono);
    font-size: 0.6875rem;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--slate);
    margin-right: 10px;
    min-width: 90px;
  }
  .sf-compare__cell:first-child::before { display: none; }
}

/* === CALLOUT — §6.3 ===================================================== */
.sf-callout {
  display: flex; flex-direction: column; gap: 6px;
  border-radius: var(--r-md);
  padding: 12px 16px;
  margin: 20px 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;
}
.sf-callout__header svg { width: 16px; height: 16px; flex-shrink: 0; }
.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 a { color: inherit; text-decoration: underline; }
.sf-callout__content code { background: rgba(0, 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-icon { flex-shrink: 0; }

/* === FIGURE + LIGHTBOX — §6.13 ========================================== */
.sf-figure {
  margin: 24px 0;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  overflow: hidden;
}
.sf-figure__trigger {
  display: block; position: relative; cursor: zoom-in;
  background: var(--light); text-decoration: none !important;
}
.sf-figure__trigger img {
  width: 100%; height: auto; display: block;
  transition: transform .25s ease;
}
.sf-figure__trigger:hover img { transform: scale(1.015); }
.sf-figure__zoom {
  position: absolute; bottom: 12px; right: 12px;
  width: 32px; height: 32px;
  border-radius: var(--r-full);
  background: rgba(16, 32, 46, 0.78);
  color: var(--white);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; transition: opacity .15s;
}
.sf-figure__trigger:hover .sf-figure__zoom { opacity: 1; }
@media (hover: none) { .sf-figure__zoom { opacity: 1; } }
.sf-figure__caption {
  padding: 10px 14px;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--slate);
  border-top: 1px solid var(--line);
  background: var(--white);
}
.sf-lightbox {
  position: fixed; inset: 0; z-index: 9999;
  display: none;
  align-items: center; justify-content: center;
  padding: 24px;
}
.sf-lightbox:target { display: flex; }
.sf-lightbox__overlay {
  position: absolute; inset: 0;
  background: rgba(8, 16, 24, 0.88);
  cursor: zoom-out;
}
.sf-lightbox__content {
  position: relative; max-width: 92vw; max-height: 88vh; z-index: 1;
}
.sf-lightbox__content img {
  max-width: 100%; max-height: 88vh;
  width: auto; height: auto; display: block;
  border-radius: var(--r-lg);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.55);
}
.sf-lightbox__close {
  position: absolute; top: -44px; right: 0;
  width: 36px; height: 36px;
  border-radius: var(--r-full);
  background: rgba(255, 255, 255, 0.12);
  color: var(--white);
  display: flex; align-items: center; justify-content: center;
  text-decoration: none !important; transition: background .15s;
}
.sf-lightbox__close:hover { background: rgba(255, 255, 255, 0.22); }
@media (max-width: 640px) {
  .sf-lightbox { padding: 12px; }
  .sf-lightbox__close { top: -40px; }
}

/* === LAYOUT LIST — §6.19 (numbered annotation list) ===================== */
.sf-layout-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 8px;
  margin: 16px 0 24px;
}
.sf-layout-item {
  display: flex; align-items: center; gap: 12px;
  padding: 10px 14px;
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-md);
  transition: border-color .15s, box-shadow .15s;
}
.sf-layout-item:hover { border-color: var(--primary); box-shadow: var(--shadow-sm); }
.sf-layout-item__num {
  flex-shrink: 0;
  width: 26px; height: 26px;
  border-radius: var(--r-full);
  background: var(--ai-iris);
  color: #FFFFFF;
  font-family: var(--font-mono);
  font-size: 0.78rem; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center;
}
.sf-layout-item__txt { font-size: 0.9375rem; color: var(--deep-ink); line-height: 1.5; }
.sf-layout-item__txt strong { color: var(--deep-ink); font-weight: 700; }

/* === QUICK GRID — §6.19 ================================================= */
.sf-quick-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
  gap: 12px;
  margin: 0 0 28px;
}
.sf-quick-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  padding: 16px 18px;
}
.sf-quick-card__label {
  font-family: var(--font-mono);
  font-size: 0.6875rem; font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--slate);
  margin-bottom: 8px;
}
.sf-quick-card__value {
  font-size: 1.0625rem; font-weight: 700;
  color: var(--deep-ink);
  line-height: 1.25;
}
.sf-quick-card__sub {
  margin-top: 4px;
  font-size: 0.8125rem;
  color: var(--slate);
}

/* === CARD ROW — §6.11 (Ethernet two-card comparison) ==================== */
.sf-card {
  background: var(--white);
  color: var(--deep-ink);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  padding: 20px;
  transition: border-color .15s, box-shadow .15s;
}
.sf-card-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 12px;
  margin: 0 0 16px;
}
.sf-card-row .sf-card__title {
  font-size: 1rem; font-weight: 700;
  color: var(--deep-ink);
  margin: 0 0 6px;
  display: flex; align-items: center; flex-wrap: wrap;
  gap: 6px;
}
.sf-card-row .sf-card__desc {
  font-size: 0.9375rem;
  color: var(--deep-ink);
  margin: 4px 0 8px;
  line-height: 1.55;
}
.sf-card-row .sf-card__meta {
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: var(--slate);
  margin: 0;
}

/* === LED GRID — replaces wide LED table for better readability ========== */
.sf-led-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
  margin: 0 0 24px;
}
.sf-led-card {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-lg);
  padding: 16px 18px;
  display: flex; flex-direction: column; gap: 10px;
}
.sf-led-card__head {
  display: flex; align-items: center; justify-content: space-between;
  gap: 10px;
}
.sf-led-card__name {
  display: flex; align-items: center; gap: 10px;
  font-weight: 700; color: var(--deep-ink); font-size: 0.9375rem;
}
.sf-led-card__specs {
  display: flex; flex-direction: column;
  background: var(--light);
  border-radius: var(--r-md);
  padding: 4px 0;
}
.sf-led-card__row {
  display: flex; align-items: baseline; gap: 12px;
  padding: 6px 12px;
  border-bottom: 1px solid var(--line);
}
.sf-led-card__row:last-child { border-bottom: 0; }
.sf-led-card__key {
  font-family: var(--font-mono);
  font-size: 0.6875rem; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--slate);
  white-space: nowrap;
  min-width: 78px;
  flex-shrink: 0;
}
.sf-led-card__val {
  font-size: 0.875rem; font-weight: 600;
  color: var(--deep-ink); line-height: 1.45;
}
.sf-led-card__val code {
  font-size: 0.8125rem;
  background: var(--white);
  border-radius: 3px;
}
.sf-led-card__desc {
  font-size: 0.875rem;
  color: var(--deep-ink);
  line-height: 1.55;
  margin: 0;
}

/* === LED dot indicator ================================================== */
.sf-led-dot {
  display: inline-block;
  width: 14px; height: 14px;
  border-radius: var(--r-full);
  vertical-align: middle;
  flex-shrink: 0;
}
.sf-led-dot--rgb   { background: conic-gradient(#FF3333, #33FF33, #3366FF, #FF3333); }
.sf-led-dot--white { background: #F4F4F5; border: 1px solid #D4D4D8; }
.sf-led-dot--green { background: #22C55E; }

/* === DIP switch state pill ============================================== */
.sf-switch-state {
  display: inline-flex; align-items: center;
  font-family: var(--font-mono);
  font-size: 0.7rem; font-weight: 700;
  letter-spacing: 0.05em;
  padding: 2px 8px;
  border-radius: var(--r-sm);
}
.sf-switch-state--on  { background: var(--danger-bg);  color: var(--danger-text); }
.sf-switch-state--off { background: var(--success-bg); color: var(--success-text); }

/* === TWOCOL — Restricted Mode powered/disabled ==========================
   Each panel: status-colored left border, badge + title + explanatory
   subtitle, list with dashed dividers and status-colored bullet dot.
   The disabled panel mutes its list text to reinforce "these are off". */
.sf-twocol {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 16px 0 24px;
}
.sf-twocol__panel {
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  padding: 18px 20px 16px;
  position: relative;
  transition: border-color .15s, box-shadow .15s;
}
.sf-twocol__panel--on  { border-left: 4px solid var(--success); }
.sf-twocol__panel--off { border-left: 4px solid var(--danger); }
.sf-twocol__panel:hover { box-shadow: var(--shadow-sm); }
.sf-twocol__head {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 4px;
}
.sf-twocol__badge {
  width: 24px; height: 24px;
  border-radius: var(--r-full);
  display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.sf-twocol__badge svg {
  width: 14px; height: 14px;
  stroke: currentColor; fill: none;
  stroke-width: 2.5; stroke-linecap: round; stroke-linejoin: round;
}
.sf-twocol__badge--on  { background: var(--success-bg); color: var(--success-text); }
.sf-twocol__badge--off { background: var(--danger-bg);  color: var(--danger-text); }
.sf-twocol__title {
  font-size: 1rem; font-weight: 700;
  color: var(--deep-ink);
  letter-spacing: -0.01em;
}
.sf-twocol__subtitle {
  font-size: 0.8125rem;
  color: var(--slate);
  margin: 0 0 12px 34px;
  line-height: 1.5;
}
.sf-twocol__list {
  list-style: none !important;
  padding: 10px 0 0 !important;
  margin: 0 !important;
  border-top: 1px solid var(--line);
}
.sf-twocol__list li {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 0;
  font-size: 0.9375rem;
  color: var(--deep-ink);
  line-height: 1.45;
  border-bottom: 1px dashed var(--line);
  margin: 0 !important;
}
.sf-twocol__list li:last-child { border-bottom: 0; padding-bottom: 2px; }
.sf-twocol__list li::marker { content: none; }
.sf-twocol__list li::before {
  content: '';
  width: 6px; height: 6px;
  border-radius: var(--r-full);
  flex-shrink: 0;
}
.sf-twocol__panel--on  .sf-twocol__list li::before { background: var(--success); }
.sf-twocol__panel--off .sf-twocol__list li::before { background: var(--danger); opacity: 0.55; }
.sf-twocol__panel--off .sf-twocol__list li { color: var(--slate); }

/* === TERMINAL — §6.8 (always dark) ====================================== */
.sf-terminal {
  background: #0E1117 !important;
  border: 1px solid #1F2530 !important;
  border-radius: var(--r-lg);
  margin: 20px 0;
  overflow: hidden;
  max-width: 100%;
  min-width: 0;
  font-family: var(--font-mono) !important;
  font-size: 0.875rem;
  line-height: 1.6;
}
.sf-terminal__header {
  background: #161B22 !important;
  padding: 8px 14px;
  display: flex; align-items: center; gap: 6px;
  border-bottom: 1px solid #1F2530 !important;
}
.sf-terminal__dot { display: inline-block; width: 10px; height: 10px; border-radius: var(--r-full); }
.sf-terminal__title {
  margin-left: 10px;
  font-family: var(--font-mono) !important;
  font-size: 0.72rem;
  color: #8B949E !important;
  letter-spacing: 0.04em;
}
.sf-terminal__body { padding: 14px 16px; color: #E6EDF3 !important; overflow-x: auto; max-width: 100%; }
.sf-terminal__body pre { margin: 0 !important; font-family: var(--font-mono) !important; white-space: pre; color: #E6EDF3 !important; background: transparent !important; border: 0 !important; overflow-x: auto; max-width: 100%; }
.sf-term-dim   { color: #8B949E !important; }
.sf-term-green { color: #7EE787 !important; }
.sf-term-blue  { color: #79C0FF !important; }

/* === CTA CARD — §6.19 =================================================== */
.sf-cta-card {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px;
  padding: 18px 22px;
  background: var(--white);
  border: 1px solid var(--line);
  border-left: 4px solid var(--primary);
  border-radius: var(--r-xl);
  margin: 24px 0;
}
.sf-cta-card__copy { flex: 1; }
.sf-cta-card__title { font-size: 1rem; font-weight: 700; color: var(--deep-ink); margin: 0 0 4px; }
.sf-cta-card__desc  { font-size: 0.9375rem; color: var(--slate); margin: 0; }
.sf-cta-card__btn {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 9px 16px;
  background: var(--primary);
  color: var(--on-primary) !important;
  font-family: var(--font-sans);
  font-size: 0.875rem; font-weight: 600;
  border-radius: var(--r-sm);
  text-decoration: none !important;
  white-space: nowrap;
  transition: background .15s;
}
.sf-cta-card__btn:hover { background: var(--deep-ink); }
.sf-cta-card__btn svg { width: 14px; height: 14px; stroke: currentColor; stroke-width: 2; fill: none; }

/* Compact CTA card — used for inline "see more" pointers like
   the antenna spec exit link. Reduced padding, single-line copy,
   smaller button. */
.sf-cta-card--compact {
  padding: 10px 14px 10px 16px;
  margin: 16px 0;
  border-left-width: 3px;
  gap: 12px;
  align-items: center;
}
.sf-cta-card--compact .sf-cta-card__copy {
  display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 10px;
}
.sf-cta-card--compact .sf-cta-card__title {
  font-size: 0.9375rem; font-weight: 700;
  color: var(--deep-ink);
  margin: 0;
}
.sf-cta-card--compact .sf-cta-card__desc {
  font-size: 0.875rem;
  color: var(--slate);
  margin: 0;
}
.sf-cta-card--compact .sf-cta-card__btn {
  padding: 6px 12px;
  font-size: 0.8125rem;
  background: transparent;
  color: var(--primary) !important;
  border: 1px solid var(--line);
}
.sf-cta-card--compact .sf-cta-card__btn:hover {
  background: var(--primary);
  color: var(--on-primary) !important;
  border-color: var(--primary);
}
.sf-cta-card--compact .sf-cta-card__btn svg { width: 12px; height: 12px; }

/* === RESPONSIVE — §8 ==================================================== */
@media (max-width: 820px) {
  .sf-doc h1 { font-size: 2.25rem; }
  .sf-hero { padding: var(--lg); }
  .sf-doc .sf-hero__title { font-size: 2rem; }
  .sf-card-row { grid-template-columns: 1fr; }
  .sf-twocol { grid-template-columns: 1fr; }
  .sf-cta-card { flex-direction: column; align-items: flex-start; }
  .sf-cta-card--compact { flex-direction: row; align-items: center; }
  .sf-spec-row {
    grid-template-columns: minmax(140px, 36%) 1fr;
    gap: 16px;
  }
}
@media (max-width: 640px) {
  .sf-doc h1 { font-size: 1.875rem; }
  .sf-doc h2 { font-size: 1.625rem; }
  .sf-doc h3 { font-size: 1.25rem; }
  .sf-doc .sf-hero__title { font-size: 1.625rem; }
  .sf-aeo { padding: var(--md) var(--lg); }
  .sf-aeo__label { font-size: 1.125rem; }
  .sf-quick-grid { grid-template-columns: 1fr 1fr; }
  .sf-terminal__body pre { font-size: 0.75rem !important; }
  .sf-spec-card { padding: 16px 18px; }
  .sf-spec-row {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 12px 0;
  }
  .sf-spec-row__key { font-size: 0.875rem; }
  .sf-spec-row__val { font-size: 0.9375rem; }
  .sf-cta-card--compact { flex-direction: column; align-items: flex-start; }
  .sf-spec-row--total { margin: 8px -18px -4px; padding: 14px 18px !important; }
}
@media (max-width: 400px) {
  .sf-doc h1 { font-size: 1.75rem; }
  .sf-quick-grid { grid-template-columns: 1fr; }
}

/* === DARK MODE — §3.5 =================================================== */
[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;
  --on-primary:    #FFFFFF;
  --ai-mist:       rgba(107, 71, 240, 0.12);
  --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, 0.30);
  --shadow-md:    0 4px 12px rgba(0, 0, 0, 0.40);
}
[data-color-mode="dark"] .sf-doc h2 { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc a:hover { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc a { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc ul li::marker { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-toc__item:hover,
[data-color-mode="dark"] .sf-doc .sf-toc__item:focus { color: #FFFFFF !important; }
[data-color-mode="dark"] .sf-doc .sf-spec-row__val sup,
[data-color-mode="dark"] .sf-doc .sf-spec-row__key sup { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-figure__zoom { color: #FFFFFF; }
[data-color-mode="dark"] .sf-doc .sf-lightbox__close { color: #FFFFFF; }
[data-color-mode="dark"] .sf-doc .sf-cta-card--compact .sf-cta-card__btn { background: transparent; color: var(--secondary) !important; border-color: rgba(255,255,255,0.15); }
[data-color-mode="dark"] .sf-doc .sf-cta-card--compact .sf-cta-card__btn:hover { background: var(--secondary); color: var(--on-secondary) !important; border-color: var(--secondary); }
[data-color-mode="dark"] .sf-doc code { background: rgba(255, 255, 255, 0.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(255, 255, 255, 0.04); border-color: rgba(255,255,255,0.08); }
[data-color-mode="dark"] .sf-doc .sf-aeo__label { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-aeo__text strong { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-aeo--ai { background: rgba(107, 71, 240, 0.12); border-color: rgba(107, 71, 240, 0.30); border-left-color: var(--ai-iris); }
[data-color-mode="dark"] .sf-doc .sf-aeo--ai .sf-aeo__label { color: #B299FF; }
[data-color-mode="dark"] .sf-doc .sf-aeo--ai .sf-aeo__text strong { color: #B299FF; }
[data-color-mode="dark"] .sf-doc .sf-hero { background: rgba(255, 255, 255, 0.04); border-color: rgba(255,255,255,0.08); }
[data-color-mode="dark"] .sf-doc .sf-meta__badge { background: var(--alpon-purple) !important; color: #FFFFFF !important; border-color: var(--alpon-purple); }
[data-color-mode="dark"] .sf-doc .sf-meta__badge--mint { background: rgba(0, 224, 184, 0.14) !important; color: var(--secondary) !important; border-color: rgba(0, 224, 184, 0.30); }
[data-color-mode="dark"] .sf-doc .sf-toc { background: rgba(255, 255, 255, 0.04); border-color: rgba(255,255,255,0.08); }
[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-spec-card { background: rgba(255, 255, 255, 0.04); border-color: rgba(255,255,255,0.08); }
[data-color-mode="dark"] .sf-doc .sf-spec-card__icon { background: var(--light); color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-spec-card__title { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-spec-row { border-color: rgba(255,255,255,0.08); }
[data-color-mode="dark"] .sf-doc .sf-spec-row__key { color: #FFFFFF; }
[data-color-mode="dark"] .sf-doc .sf-spec-row__val { color: var(--neutral); }
[data-color-mode="dark"] .sf-doc .sf-spec-row__val code { background: rgba(255,255,255,0.06); color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-spec-row__val--featured { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-spec-row__val--featured code { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-spec-row--total { background: rgba(0, 224, 184, 0.08); border-top-color: rgba(255,255,255,0.10); }
[data-color-mode="dark"] .sf-doc .sf-spec-row--total .sf-spec-row__key,
[data-color-mode="dark"] .sf-doc .sf-spec-row--total .sf-spec-row__val { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-compare-wrap { background: var(--tertiary); border-color: rgba(255,255,255,0.08); }
[data-color-mode="dark"] .sf-doc .sf-compare__head { background: var(--light); border-color: rgba(255,255,255,0.10); }
[data-color-mode="dark"] .sf-doc .sf-compare__hcell { color: var(--neutral); }
[data-color-mode="dark"] .sf-doc .sf-compare__hcell--featured { color: var(--secondary); background: rgba(0, 224, 184, 0.08); }
[data-color-mode="dark"] .sf-doc .sf-compare__row { border-color: rgba(255,255,255,0.06); }
[data-color-mode="dark"] .sf-doc .sf-compare__cell { color: var(--neutral); }
[data-color-mode="dark"] .sf-doc .sf-compare__cell:first-child { background: var(--light); color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-compare__cell--featured { background: rgba(0, 224, 184, 0.05); }
[data-color-mode="dark"] .sf-doc .sf-compare__row--total .sf-compare__cell { background: rgba(0, 224, 184, 0.08); }
[data-color-mode="dark"] .sf-doc .sf-compare__row--total .sf-compare__cell:first-child { color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-figure,
[data-color-mode="dark"] .sf-doc .sf-quick-card,
[data-color-mode="dark"] .sf-doc .sf-layout-item,
[data-color-mode="dark"] .sf-doc .sf-twocol__panel,
[data-color-mode="dark"] .sf-doc .sf-card,
[data-color-mode="dark"] .sf-doc .sf-cta-card,
[data-color-mode="dark"] .sf-doc .sf-led-card { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.08); }
[data-color-mode="dark"] .sf-doc .sf-led-card__specs { background: var(--light); }
[data-color-mode="dark"] .sf-doc .sf-led-card__val code { background: rgba(0, 0, 0, 0.30); }
[data-color-mode="dark"] .sf-doc .sf-figure__trigger { background: rgba(255, 255, 255, 0.02); }
[data-color-mode="dark"] .sf-doc .sf-figure__caption { background: rgba(255, 255, 255, 0.04); border-top-color: rgba(255, 255, 255, 0.08); color: var(--slate-light); }
[data-color-mode="dark"] .sf-doc .sf-quick-card__value { color: var(--neutral); }
[data-color-mode="dark"] .sf-doc .sf-cta-card { border-left-color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-cta-card__title { color: var(--neutral); }
[data-color-mode="dark"] .sf-doc .sf-cta-card__btn { background: var(--secondary); color: var(--on-secondary) !important; }
[data-color-mode="dark"] .sf-doc .sf-cta-card__btn:hover { background: var(--neutral); }
[data-color-mode="dark"] .sf-doc .sf-layout-item__num { background: var(--ai-iris); color: #FFFFFF; }
[data-color-mode="dark"] .sf-doc .sf-pill { background: var(--light); color: var(--neutral); }
/* Restricted Mode panels — preserve status-colored borders in dark mode */
[data-color-mode="dark"] .sf-doc .sf-twocol__panel--on  { border-left: 4px solid var(--success) !important; }
[data-color-mode="dark"] .sf-doc .sf-twocol__panel--off { border-left: 4px solid var(--danger)  !important; }
[data-color-mode="dark"] .sf-doc .sf-twocol__title    { color: var(--neutral); }
[data-color-mode="dark"] .sf-doc .sf-twocol__list     { border-top-color: rgba(255,255,255,0.10); }
[data-color-mode="dark"] .sf-doc .sf-twocol__list li  { border-bottom-color: rgba(255,255,255,0.08); color: var(--neutral); }
[data-color-mode="dark"] .sf-doc .sf-twocol__panel--off .sf-twocol__list li { color: var(--slate-light); }
[data-color-mode="dark"] .sf-doc .sf-twocol__badge--on  { background: rgba(0, 184, 148, 0.15); color: var(--success); }
[data-color-mode="dark"] .sf-doc .sf-twocol__badge--off { background: rgba(220, 38, 38, 0.15); color: var(--danger); }
/* Related guides */
[data-color-mode="dark"] .sf-doc .sf-related__card { background: rgba(255,255,255,0.04); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08); }
[data-color-mode="dark"] .sf-doc .sf-related__card:hover { box-shadow: inset 0 0 0 1px var(--secondary), 0 4px 14px rgba(0, 0, 0, 0.40); }
[data-color-mode="dark"] .sf-doc .sf-related__icon { background: rgba(0, 224, 184, 0.10); color: var(--secondary); }
[data-color-mode="dark"] .sf-doc .sf-related__title { color: var(--neutral); }
[data-color-mode="dark"] .sf-doc .sf-related__desc { color: var(--slate); }

@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;
    --ai-mist: rgba(107, 71, 240, 0.12);
    --success-bg: #052E1B; --warning-bg: #2A1F05; --danger-bg: #2A0E0E; --info-bg: #0A2E3F;
    --success-text: #34D399; --warning-text: #FBBF24; --danger-text: #F87171; --info-text: #5CD3EE;
  }
  html:not([data-color-mode="light"]) .sf-doc h2 { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc a:hover { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc a { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc ul li::marker { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-toc__item:hover,
  html:not([data-color-mode="light"]) .sf-doc .sf-toc__item:focus { color: #FFFFFF !important; }
  html:not([data-color-mode="light"]) .sf-doc .sf-spec-row__val sup,
  html:not([data-color-mode="light"]) .sf-doc .sf-spec-row__key sup { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-figure__zoom { color: #FFFFFF; }
  html:not([data-color-mode="light"]) .sf-doc .sf-lightbox__close { color: #FFFFFF; }
  html:not([data-color-mode="light"]) .sf-doc .sf-cta-card--compact .sf-cta-card__btn { background: transparent; color: var(--secondary) !important; border-color: rgba(255,255,255,0.15); }
  html:not([data-color-mode="light"]) .sf-doc .sf-cta-card--compact .sf-cta-card__btn:hover { background: var(--secondary); color: var(--on-secondary) !important; border-color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc code { background: rgba(255, 255, 255, 0.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(255, 255, 255, 0.04); border-color: rgba(255,255,255,0.08); }
  html:not([data-color-mode="light"]) .sf-doc .sf-aeo__label { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-aeo__text strong { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-aeo--ai { background: rgba(107, 71, 240, 0.12); border-color: rgba(107, 71, 240, 0.30); border-left-color: var(--ai-iris); }
  html:not([data-color-mode="light"]) .sf-doc .sf-aeo--ai .sf-aeo__label { color: #B299FF; }
  html:not([data-color-mode="light"]) .sf-doc .sf-aeo--ai .sf-aeo__text strong { color: #B299FF; }
  html:not([data-color-mode="light"]) .sf-doc .sf-hero { background: rgba(255, 255, 255, 0.04); border-color: rgba(255,255,255,0.08); }
  html:not([data-color-mode="light"]) .sf-doc .sf-meta__badge { background: var(--alpon-purple) !important; color: #FFFFFF !important; border-color: var(--alpon-purple); }
  html:not([data-color-mode="light"]) .sf-doc .sf-meta__badge--mint { background: rgba(0, 224, 184, 0.14) !important; color: var(--secondary) !important; border-color: rgba(0, 224, 184, 0.30); }
  html:not([data-color-mode="light"]) .sf-doc .sf-toc { background: rgba(255, 255, 255, 0.04); border-color: rgba(255,255,255,0.08); }
  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-spec-card { background: rgba(255, 255, 255, 0.04); border-color: rgba(255,255,255,0.08); }
  html:not([data-color-mode="light"]) .sf-doc .sf-spec-card__icon { background: var(--light); color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-spec-card__title { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-spec-row { border-color: rgba(255,255,255,0.08); }
  html:not([data-color-mode="light"]) .sf-doc .sf-spec-row__key { color: #FFFFFF; }
  html:not([data-color-mode="light"]) .sf-doc .sf-spec-row__val { color: var(--neutral); }
  html:not([data-color-mode="light"]) .sf-doc .sf-spec-row__val code { background: rgba(255,255,255,0.06); color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-spec-row__val--featured { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-spec-row__val--featured code { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-spec-row--total { background: rgba(0, 224, 184, 0.08); border-top-color: rgba(255,255,255,0.10); }
  html:not([data-color-mode="light"]) .sf-doc .sf-spec-row--total .sf-spec-row__key,
  html:not([data-color-mode="light"]) .sf-doc .sf-spec-row--total .sf-spec-row__val { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-compare-wrap { background: var(--tertiary); border-color: rgba(255,255,255,0.08); }
  html:not([data-color-mode="light"]) .sf-doc .sf-compare__head { background: var(--light); border-color: rgba(255,255,255,0.10); }
  html:not([data-color-mode="light"]) .sf-doc .sf-compare__hcell { color: var(--neutral); }
  html:not([data-color-mode="light"]) .sf-doc .sf-compare__hcell--featured { color: var(--secondary); background: rgba(0, 224, 184, 0.08); }
  html:not([data-color-mode="light"]) .sf-doc .sf-compare__row { border-color: rgba(255,255,255,0.06); }
  html:not([data-color-mode="light"]) .sf-doc .sf-compare__cell { color: var(--neutral); }
  html:not([data-color-mode="light"]) .sf-doc .sf-compare__cell:first-child { background: var(--light); color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-compare__cell--featured { background: rgba(0, 224, 184, 0.05); }
  html:not([data-color-mode="light"]) .sf-doc .sf-compare__row--total .sf-compare__cell { background: rgba(0, 224, 184, 0.08); }
  html:not([data-color-mode="light"]) .sf-doc .sf-compare__row--total .sf-compare__cell:first-child { color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-figure,
  html:not([data-color-mode="light"]) .sf-doc .sf-quick-card,
  html:not([data-color-mode="light"]) .sf-doc .sf-layout-item,
  html:not([data-color-mode="light"]) .sf-doc .sf-twocol__panel,
  html:not([data-color-mode="light"]) .sf-doc .sf-card,
  html:not([data-color-mode="light"]) .sf-doc .sf-cta-card,
  html:not([data-color-mode="light"]) .sf-doc .sf-led-card { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.08); }
  html:not([data-color-mode="light"]) .sf-doc .sf-led-card__specs { background: var(--light); }
  html:not([data-color-mode="light"]) .sf-doc .sf-led-card__val code { background: rgba(0, 0, 0, 0.30); }
  html:not([data-color-mode="light"]) .sf-doc .sf-figure__trigger { background: rgba(255, 255, 255, 0.02); }
  html:not([data-color-mode="light"]) .sf-doc .sf-figure__caption { background: rgba(255, 255, 255, 0.04); border-top-color: rgba(255, 255, 255, 0.08); color: var(--slate-light); }
  html:not([data-color-mode="light"]) .sf-doc .sf-quick-card__value { color: var(--neutral); }
  html:not([data-color-mode="light"]) .sf-doc .sf-cta-card { border-left-color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-cta-card__title { color: var(--neutral); }
  html:not([data-color-mode="light"]) .sf-doc .sf-cta-card__btn { background: var(--secondary); color: var(--on-secondary) !important; }
  html:not([data-color-mode="light"]) .sf-doc .sf-cta-card__btn:hover { background: var(--neutral); }
  html:not([data-color-mode="light"]) .sf-doc .sf-layout-item__num { background: var(--ai-iris); color: #FFFFFF; }
  html:not([data-color-mode="light"]) .sf-doc .sf-pill { background: var(--light); color: var(--neutral); }
  /* Restricted Mode panels — preserve status-colored borders */
  html:not([data-color-mode="light"]) .sf-doc .sf-twocol__panel--on  { border-left: 4px solid var(--success) !important; }
  html:not([data-color-mode="light"]) .sf-doc .sf-twocol__panel--off { border-left: 4px solid var(--danger)  !important; }
  html:not([data-color-mode="light"]) .sf-doc .sf-twocol__title    { color: var(--neutral); }
  html:not([data-color-mode="light"]) .sf-doc .sf-twocol__list     { border-top-color: rgba(255,255,255,0.10); }
  html:not([data-color-mode="light"]) .sf-doc .sf-twocol__list li  { border-bottom-color: rgba(255,255,255,0.08); color: var(--neutral); }
  html:not([data-color-mode="light"]) .sf-doc .sf-twocol__panel--off .sf-twocol__list li { color: var(--slate-light); }
  html:not([data-color-mode="light"]) .sf-doc .sf-twocol__badge--on  { background: rgba(0, 184, 148, 0.15); color: var(--success); }
  html:not([data-color-mode="light"]) .sf-doc .sf-twocol__badge--off { background: rgba(220, 38, 38, 0.15); color: var(--danger); }
  /* Related guides */
  html:not([data-color-mode="light"]) .sf-doc .sf-related__card { background: rgba(255,255,255,0.04); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.08); }
  html:not([data-color-mode="light"]) .sf-doc .sf-related__card:hover { box-shadow: inset 0 0 0 1px var(--secondary), 0 4px 14px rgba(0, 0, 0, 0.40); }
  html:not([data-color-mode="light"]) .sf-doc .sf-related__icon { background: rgba(0, 224, 184, 0.10); color: var(--secondary); }
  html:not([data-color-mode="light"]) .sf-doc .sf-related__title { color: var(--neutral); }
  html:not([data-color-mode="light"]) .sf-doc .sf-related__desc { color: var(--slate); }
}

/* === RELATED GUIDES (§6.18) ============================================= */
.sf-doc .sf-related { margin: 56px 0 0; }
.sf-doc .sf-related h2 { margin-top: 0; }
.sf-doc .sf-related__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}
.sf-doc .sf-related__card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  text-decoration: none !important;
  padding: var(--lg);
  /* Border drawn via inset box-shadow so it survives ReadMe's
     anchor border-bottom reset (sf-doc a { border-bottom:0 !important; }). */
  border: 0 !important;
  box-shadow: inset 0 0 0 1px var(--line);
  border-radius: var(--r-xl);
  background: var(--white);
  transition: box-shadow .15s, transform .15s;
}
.sf-doc .sf-related__card:hover {
  box-shadow: inset 0 0 0 1px var(--primary), 0 4px 14px rgba(3, 72, 96, 0.08);
  transform: translateY(-2px);
}
.sf-doc .sf-related__icon {
  width: 36px; height: 36px;
  border-radius: var(--r-md);
  background: var(--light);
  color: var(--primary);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 6px;
}
.sf-doc .sf-related__icon svg { width: 18px; height: 18px; }
.sf-doc .sf-related__title {
  font-family: var(--font-sans);
  font-size: 1rem;
  font-weight: 700;
  color: var(--deep-ink);
  letter-spacing: -0.005em;
}
.sf-doc .sf-related__desc {
  font-size: 0.8125rem;
  color: var(--slate);
  line-height: 1.55;
  font-weight: 500;
}
@media (max-width: 820px) {
  .sf-doc .sf-related__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .sf-doc .sf-related__grid { grid-template-columns: 1fr; }
}
</style>


<div class="sf-doc">

  
  <header class="sf-hero">
    <div class="sf-hero__copy">
      <span class="sf-eyebrow">Hardware Reference</span>
      <p class="sf-hero__title">ALPON X5 AI physical layout &amp; I/O</p>
      <p class="sf-hero__lead">
        Pinouts, ports, indicators, and electrical characteristics for every
        externally accessible interface on the ALPON X5 AI industrial edge AI
        computer. Use this reference to wire the device, drive its GPIO from
        software, and plan field installations.
        <em>Intelligented by DEEPX. Built on Raspberry Pi.</em>
      </p>
      <div class="sf-hero__chips">
        <span class="sf-pill sf-pill--brand">Raspberry Pi CM5</span>
        <span class="sf-pill">2&times; Gigabit Ethernet</span>
        <span class="sf-pill">2&times; USB 3.0</span>
        <span class="sf-pill">HDMI 2.0 / 4Kp60</span>
        <span class="sf-pill">MIPI CSI-2</span>
        <span class="sf-pill">RJ45 GPIO</span>
        <span class="sf-pill">12&ndash;24 V DC</span>
        <span class="sf-pill sf-pill--info">PoE+ (variant)</span>
      </div>
    </div>
  </header>


  
  <div class="sf-meta">
    <span class="sf-meta__badge">ALPON X5 AI</span>
    <span class="sf-meta__sep">·</span>
    <span class="sf-meta__badge sf-meta__badge--mint">Hardware Reference</span>
    <span class="sf-meta__sep">·</span>
    <span>Physical Layout &amp; I/O</span>
    <span class="sf-meta__sep">·</span>
    <span>Updated 2026-09-17</span>
  </div>


  
  <div class="sf-aeo sf-aeo--ai">
    <span class="sf-aeo__label">What I/O does the ALPON X5 AI expose?</span>
    <p class="sf-aeo__text">
      The <strong>ALPON X5 AI</strong> exposes 3 power inputs (USB-C PD,
      12&ndash;24&nbsp;V DC terminal, optional PoE+), 2&times; Gigabit Ethernet,
      2&times; USB&nbsp;3.0, HDMI&nbsp;2.0 for display, a MIPI CSI-2 camera port
      over Mini HDMI, an RJ45 GPIO Add-on port (I&sup2;C&nbsp;/&nbsp;UART&nbsp;/&nbsp;SPI
      at 3.3&nbsp;V logic), 4 LED indicators, 2 user buttons, and 2 DIP switches
      for watchdog and image-flash mode.
    </p>
  </div>


  
  <nav class="sf-toc" aria-label="On this page">
    <span class="sf-toc__label">In this guide</span>
    <a href="#device-layout"  class="sf-toc__item"><span class="sf-toc__num">01</span>Device layout</a>
    <a href="#mechanical"     class="sf-toc__item"><span class="sf-toc__num">02</span>Mechanical</a>
    <a href="#power"          class="sf-toc__item"><span class="sf-toc__num">03</span>Power input</a>
    <a href="#ethernet"       class="sf-toc__item"><span class="sf-toc__num">04</span>Ethernet</a>
    <a href="#usb"            class="sf-toc__item"><span class="sf-toc__num">05</span>USB 3.0</a>
    <a href="#display"        class="sf-toc__item"><span class="sf-toc__num">06</span>Display</a>
    <a href="#camera"         class="sf-toc__item"><span class="sf-toc__num">07</span>Camera</a>
    <a href="#gpio"           class="sf-toc__item"><span class="sf-toc__num">08</span>GPIO Add-on</a>
    <a href="#leds"           class="sf-toc__item"><span class="sf-toc__num">09</span>LEDs</a>
    <a href="#buttons"        class="sf-toc__item"><span class="sf-toc__num">10</span>Buttons</a>
    <a href="#switches"       class="sf-toc__item"><span class="sf-toc__num">11</span>Switches</a>
    <a href="#antennas"       class="sf-toc__item"><span class="sf-toc__num">12</span>Antennas</a>
    <a href="#topology"       class="sf-toc__item"><span class="sf-toc__num">13</span>Bus topology</a>
  </nav>


  
  <h2 id="device-layout">Device layout</h2>
  <p class="sf-lead">The ALPON X5 AI is housed in a fanless aluminum enclosure. All I/O is split between the front face (power, USB, display, camera, indicators) and the rear face (Ethernet, GPIO, antennas, switches). Click any image to enlarge.</p>

  <h3>Front face</h3>

  <figure class="sf-figure" id="fig-front">
    <a class="sf-figure__trigger" href="#lb-front" aria-label="Open larger view of front face">
      <img src="https://files.readme.io/b3425f691838208315f260e763f0807ecf5d472fb97ab18c359c1901bbe62625-Getting_St._-_3.1.png"
           alt="ALPON X5 AI front face with numbered ports: PB1 button, 4 LEDs, MIPI CSI-2 camera port, USB-C PD power input, 12-24V DC screw terminal, HDMI 2.0, two USB 3.0 ports"
           loading="lazy">
      <span class="sf-figure__zoom" aria-hidden="true">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3M11 8v6M8 11h6"/></svg>
      </span>
    </a>
    <figcaption class="sf-figure__caption">ALPON X5 AI front face. Click image to enlarge.</figcaption>
  </figure>

  <div class="sf-layout-list">
    <div class="sf-layout-item"><span class="sf-layout-item__num">1</span><span class="sf-layout-item__txt"><strong>PB1</strong> &middot; user push button</span></div>
    <div class="sf-layout-item"><span class="sf-layout-item__num">2</span><span class="sf-layout-item__txt"><strong>4&times; LEDs</strong> &middot; Power, Status, Cellular RGB, User RGB</span></div>
    <div class="sf-layout-item"><span class="sf-layout-item__num">3</span><span class="sf-layout-item__txt"><strong>Camera Port</strong> &middot; MIPI CSI-2 (Mini HDMI)</span></div>
    <div class="sf-layout-item"><span class="sf-layout-item__num">4</span><span class="sf-layout-item__txt"><strong>USB Type-C PD</strong> &middot; power input</span></div>
    <div class="sf-layout-item"><span class="sf-layout-item__num">5</span><span class="sf-layout-item__txt"><strong>Screw Terminal</strong> &middot; 12&ndash;24&nbsp;V DC input</span></div>
    <div class="sf-layout-item"><span class="sf-layout-item__num">6</span><span class="sf-layout-item__txt"><strong>HDMI 2.0</strong> &middot; up to 4Kp60 display</span></div>
    <div class="sf-layout-item"><span class="sf-layout-item__num">7</span><span class="sf-layout-item__txt"><strong>2&times; USB 3.0</strong> &middot; 5&nbsp;Gbps each</span></div>
  </div>

  <h3>Rear face</h3>

  <figure class="sf-figure" id="fig-rear">
    <a class="sf-figure__trigger" href="#lb-rear" aria-label="Open larger view of rear face">
      <img src="https://files.readme.io/5c48aa48f30bbd6fbad5119d5700cef1b78d1a9ecb38b4db0599161e52bb3914-Getting_St.-3.png"
           alt="ALPON X5 AI rear face with numbered ports: SW1 watchdog and SW2 boot/burn DIP switches, PB2 user push button, two Gigabit Ethernet ports, GPIO Add-on RJ45"
           loading="lazy">
      <span class="sf-figure__zoom" aria-hidden="true">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3M11 8v6M8 11h6"/></svg>
      </span>
    </a>
    <figcaption class="sf-figure__caption">Rear face. On PoE variants, the PoE+ input replaces ETHERNET 0.</figcaption>
  </figure>

  <div class="sf-layout-list">
    <div class="sf-layout-item"><span class="sf-layout-item__num">8</span><span class="sf-layout-item__txt"><strong>SW1, SW2</strong> &middot; watchdog &amp; boot/burn DIP switches</span></div>
    <div class="sf-layout-item"><span class="sf-layout-item__num">9</span><span class="sf-layout-item__txt"><strong>PB2</strong> &middot; user push button</span></div>
    <div class="sf-layout-item"><span class="sf-layout-item__num">10</span><span class="sf-layout-item__txt"><strong>ETHERNET 0</strong> &middot; 1&nbsp;Gbps (PoE+ on PoE variants)</span></div>
    <div class="sf-layout-item"><span class="sf-layout-item__num">11</span><span class="sf-layout-item__txt"><strong>ETHERNET 1</strong> &middot; 1&nbsp;Gbps</span></div>
    <div class="sf-layout-item"><span class="sf-layout-item__num">12</span><span class="sf-layout-item__txt"><strong>GPIO Add-on Port</strong> &middot; RJ45, not Ethernet</span></div>
  </div>

  <h3>Enclosure</h3>

  <div class="sf-layout-list">
    <div class="sf-layout-item"><span class="sf-layout-item__num">13</span><span class="sf-layout-item__txt"><strong>Antennas</strong> &middot; 2&times; LTE, 1&times; GNSS (SMA), 1&times; Wi-Fi/Bluetooth (RP-SMA)</span></div>
    <div class="sf-layout-item"><span class="sf-layout-item__num">14</span><span class="sf-layout-item__txt"><strong>Mounting Holes</strong> &middot; 2&times; M4 for DIN rail, wall, or panel mount</span></div>
    <div class="sf-layout-item"><span class="sf-layout-item__num">15</span><span class="sf-layout-item__txt"><strong>Heatsink</strong> &middot; finned aluminum top face, passive cooling</span></div>
  </div>


  
  <h2 id="mechanical">Mechanical specifications</h2>

  <div class="sf-quick-grid">
    <div class="sf-quick-card">
      <div class="sf-quick-card__label">Dimensions</div>
      <div class="sf-quick-card__value">100 &times; 100 &times; 45&nbsp;mm</div>
      <div class="sf-quick-card__sub">without antennas</div>
    </div>
    <div class="sf-quick-card">
      <div class="sf-quick-card__label">Weight</div>
      <div class="sf-quick-card__value">~457&nbsp;g</div>
      <div class="sf-quick-card__sub">~1&nbsp;lb</div>
    </div>
    <div class="sf-quick-card">
      <div class="sf-quick-card__label">Enclosure</div>
      <div class="sf-quick-card__value">Aluminum, fanless</div>
      <div class="sf-quick-card__sub">passive cooling</div>
    </div>
    <div class="sf-quick-card">
      <div class="sf-quick-card__label">Protection</div>
      <div class="sf-quick-card__value">IP40</div>
      <div class="sf-quick-card__sub">dust-protected</div>
    </div>
    <div class="sf-quick-card">
      <div class="sf-quick-card__label">Operating temp</div>
      <div class="sf-quick-card__value">-20 to +60&nbsp;&deg;C</div>
      <div class="sf-quick-card__sub">-4 to +140&nbsp;&deg;F</div>
    </div>
    <div class="sf-quick-card">
      <div class="sf-quick-card__label">Storage temp</div>
      <div class="sf-quick-card__value">-40 to +85&nbsp;&deg;C</div>
      <div class="sf-quick-card__sub">long-term</div>
    </div>
    <div class="sf-quick-card">
      <div class="sf-quick-card__label">Humidity</div>
      <div class="sf-quick-card__value">Up to 95%</div>
      <div class="sf-quick-card__sub">non-condensing</div>
    </div>
    <div class="sf-quick-card">
      <div class="sf-quick-card__label">Mounting</div>
      <div class="sf-quick-card__value">DIN / Wall / Panel</div>
      <div class="sf-quick-card__sub">2&times; M4 holes</div>
    </div>
  </div>

  <div class="sf-cta-card">
    <div class="sf-cta-card__copy">
      <p class="sf-cta-card__title">Need 2D drawings or STEP files?</p>
      <p class="sf-cta-card__desc">Mounting templates, hole patterns, and CAD files are on the Power &amp; Mounting page.</p>
    </div>
    <a class="sf-cta-card__btn" href="/docs/alpon-x5-ai-edge-computer-power-mounting" target="_blank" rel="noopener">
      Open Power &amp; Mounting
      <svg viewBox="0 0 24 24"><path d="M5 12h14M13 6l6 6-6 6"/></svg>
    </a>
  </div>


  
  <h2 id="power">Power input</h2>
  <p class="sf-lead">The ALPON X5 AI accepts power from three independent sources. There is no hard priority between inputs: the device draws from the source with the highest voltage. All inputs pass through ideal-diode protection.</p>

  <div class="sf-callout sf-callout--warning">
    <div class="sf-callout__header">
      <svg class="sf-icon" width="18" height="18" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2L1 21h22L12 2zm0 6l7.53 13H4.47L12 8zm-1 4v4h2v-4h-2zm0 5v2h2v-2h-2z"/></svg>
      <span>Use one power source at a time</span>
    </div>
    <div class="sf-callout__content">
      <p>Hardware tolerates simultaneous connection across USB-C, terminal, and PoE+, but use a single source in production to simplify failure analysis and avoid ground loops.</p>
    </div>
  </div>

  <h3>Screw terminal (12&ndash;24 V DC)</h3>
  <p>The recommended input for industrial edge computing deployments. The 3-pin terminal includes hardware reverse-polarity protection: swapped wiring will not damage the device, but it will not power on either.</p>

  <div class="sf-spec-card">
    <div class="sf-spec-card__head">
      <div class="sf-spec-card__icon" aria-hidden="true">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2 4 14h7l-2 8 9-12h-7z"/></svg>
      </div>
      <div class="sf-spec-card__title">Screw terminal &mdash; specifications</div>
    </div>
    <div class="sf-spec-card__body">
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Input voltage</span>
        <span class="sf-spec-row__val">12&nbsp;V to 24&nbsp;V DC</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Minimum power</span>
        <span class="sf-spec-row__val">27&nbsp;W (45&nbsp;W recommended for sustained AI load)</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Reverse polarity protection</span>
        <span class="sf-spec-row__val">Yes (hardware)</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Pinout (3-pin block)</span>
        <span class="sf-spec-row__val"><strong>Pin 1</strong> Chassis Ground &middot; <strong>Pin 2</strong> Negative (&minus;) &middot; <strong>Pin 3</strong> Positive (+)</span>
      </div>
    </div>
  </div>

  <figure class="sf-figure" id="fig-terminal">
    <a class="sf-figure__trigger" href="#lb-terminal" aria-label="Open larger view of terminal block pinout">
      <img src="https://files.readme.io/25be83b50ea595f790a4fa43c02cf82d8c5326faa5fd4e21385431555e07e9a9-Sixfab_ALPON_X4_Technical_Details_Screw_Terminal_Block.gif"
           alt="ALPON X5 AI 3-pin screw terminal block pinout: Pin 1 chassis ground, Pin 2 negative, Pin 3 positive"
           loading="lazy">
      <span class="sf-figure__zoom" aria-hidden="true">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3M11 8v6M8 11h6"/></svg>
      </span>
    </a>
    <figcaption class="sf-figure__caption">Terminal block polarity, left to right: Chassis, &minus;, +.</figcaption>
  </figure>

  <p>On PoE-variant SKUs, PoE+ (IEEE 802.3at, ETHERNET 0 only) delivers up to 25&nbsp;W at the device. Full load of all subsystems is &asymp;45&nbsp;W, so PoE+ alone cannot sustain it: on PoE, keep peripheral load (USB devices, camera, GPIO add-on 5&nbsp;V rail) low enough that total draw stays under 25&nbsp;W, or use the DC terminal / USB-C PD input for sustained AI workloads.</p>

  <p>Adapter requirements, PoE budget, restricted mode and the per-subsystem consumption table are on <a href="/docs/alpon-x5-ai-edge-computer-power-mounting" target="_blank" rel="noopener">Power &amp; Mounting</a>.</p>


  
  <h2 id="ethernet">Ethernet ports</h2>
  <p class="sf-lead">Two Gigabit (1&nbsp;Gbps) RJ45 ports with different electrical topologies. Use both for WAN + LAN routing, dual-NIC redundancy, or isolating trusted and field segments.</p>

  <div class="sf-card-row">
    <div class="sf-card">
      <p class="sf-card__title">ETHERNET 0
        <span class="sf-pill">Native</span>
        <span class="sf-pill sf-pill--success">PoE+</span>
      </p>
      <p class="sf-card__desc">Direct native Ethernet on the CM5. Carries PoE+ on PoE-variant SKUs.</p>
      <p class="sf-card__meta">1 Gbps &middot; native CM5 MAC</p>
    </div>
    <div class="sf-card">
      <p class="sf-card__title">ETHERNET 1
        <span class="sf-pill sf-pill--info">USB Bridge</span>
      </p>
      <p class="sf-card__desc">USB-to-Gigabit bridge via <code>RTL8153B</code>. Shares the 5&nbsp;Gbps USB 3.0 bus with USB Port 2.</p>
      <p class="sf-card__meta">1 Gbps &middot; USB 3.0 uplink</p>
    </div>
  </div>

  <div class="sf-callout sf-callout--info">
    <div class="sf-callout__header">
      <svg class="sf-icon" width="18" height="18" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></svg>
      <span>Bandwidth note</span>
    </div>
    <div class="sf-callout__content">
      <p>Because ETHERNET 1 shares its USB 3.0 uplink with USB Port 2, throughput on both interfaces drops when saturated simultaneously. For edge AI inference workloads streaming over the network, prefer ETHERNET 0.</p>
    </div>
  </div>


  
  <h2 id="usb">USB 3.0 ports</h2>
  <p class="sf-lead">Two USB 3.0 ports rated at 5&nbsp;Gbps each, with a combined power budget of 1.8&nbsp;A at 5&nbsp;V across both ports.</p>

  <figure class="sf-figure" id="fig-usb">
    <a class="sf-figure__trigger" href="#lb-usb" aria-label="Open larger view of USB 3.0 ports">
      <img src="https://files.readme.io/cd8dbd32dc034b10f6379787b14d47e5164df577c2c2ff9a77c0c88ee36b284c-Technical_Det.-5.png"
           alt="ALPON X5 AI two USB 3.0 ports close-up, 5 Gbps each with shared 1.8 A power budget"
           loading="lazy">
      <span class="sf-figure__zoom" aria-hidden="true">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3M11 8v6M8 11h6"/></svg>
      </span>
    </a>
    <figcaption class="sf-figure__caption">2&times; USB 3.0 ports, 5 Gbps each, 1.8 A shared power budget.</figcaption>
  </figure>

  <div class="sf-spec-card">
    <div class="sf-spec-card__head">
      <div class="sf-spec-card__icon" aria-hidden="true">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v8m0 0H5m7 0h7M5 10v8a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2v-8M9 6V4h6v2"/></svg>
      </div>
      <div class="sf-spec-card__title">USB 3.0 &mdash; specifications</div>
    </div>
    <div class="sf-spec-card__body">
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">USB Port 1</span>
        <span class="sf-spec-row__val">Native CM5 USB 3.0 (direct)</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">USB Port 2</span>
        <span class="sf-spec-row__val">Routed via <code>TUSB8020</code> hub (shares uplink with ETHERNET 1)</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Shared power budget</span>
        <span class="sf-spec-row__val">1800&nbsp;mA total at 5&nbsp;V across both ports</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Overcurrent protection</span>
        <span class="sf-spec-row__val">Hardware current limiter with thermal shutdown</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Fault reporting</span>
        <span class="sf-spec-row__val">Routed to TUSB8020 &middot; OS syslog entry on trip</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Power recovery</span>
        <span class="sf-spec-row__val">Automatic when fault clears (no reboot)</span>
      </div>
    </div>
  </div>

  <div class="sf-callout sf-callout--warning">
    <div class="sf-callout__header">
      <svg class="sf-icon" width="18" height="18" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2L1 21h22L12 2zm0 6l7.53 13H4.47L12 8zm-1 4v4h2v-4h-2zm0 5v2h2v-2h-2z"/></svg>
      <span>Shared power budget</span>
    </div>
    <div class="sf-callout__content">
      <p>Avoid two high-draw peripherals at once (for example external SSD plus a bus-powered camera). Exceeding 1.8&nbsp;A total trips the overcurrent limiter.</p>
    </div>
  </div>


  
  <h2 id="display">Display (HDMI 2.0)</h2>
  <p class="sf-lead">Single HDMI 2.0 port driven directly by the CM5. Supports up to 4K @ 60&nbsp;Hz with HDR and audio pass-through. For supported refresh-rate and color-depth combinations, see the Raspberry Pi CM5 datasheet.</p>

  <figure class="sf-figure" id="fig-hdmi">
    <a class="sf-figure__trigger" href="#lb-hdmi" aria-label="Open larger view of HDMI 2.0 display port">
      <img src="https://files.readme.io/da14093f48454ec005181e71e2a84a59a89bae7bab333ee7e46f339ebbfde703-Technical_Det.-4.png"
           alt="ALPON X5 AI HDMI 2.0 display port close-up, supports 4Kp60 with HDR"
           loading="lazy">
      <span class="sf-figure__zoom" aria-hidden="true">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3M11 8v6M8 11h6"/></svg>
      </span>
    </a>
    <figcaption class="sf-figure__caption">HDMI 2.0 display port, up to 4Kp60 with HDR.</figcaption>
  </figure>

  <div class="sf-spec-card">
    <div class="sf-spec-card__head">
      <div class="sf-spec-card__icon" aria-hidden="true">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="20" height="14" rx="2"/><path d="M8 22h8M12 18v4"/></svg>
      </div>
      <div class="sf-spec-card__title">HDMI 2.0 &mdash; specifications</div>
    </div>
    <div class="sf-spec-card__body">
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Standard</span>
        <span class="sf-spec-row__val">HDMI 2.0</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Maximum resolution</span>
        <span class="sf-spec-row__val">4K @ 60&nbsp;Hz (4Kp60)</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">HDR</span>
        <span class="sf-spec-row__val">Supported</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Video decoder</span>
        <span class="sf-spec-row__val">4Kp60 HEVC (H.265)</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Audio</span>
        <span class="sf-spec-row__val">HDMI audio pass-through</span>
      </div>
    </div>
  </div>

  <div class="sf-callout sf-callout--info">
    <div class="sf-callout__header">
      <svg class="sf-icon" width="18" height="18" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></svg>
      <span>Connect HDMI before power-on</span>
    </div>
    <div class="sf-callout__content">
      <p>Hot-plug is supported, but display detection runs at boot. For first-time setup or headless-to-monitor transitions, plug in HDMI before powering the device.</p>
    </div>
  </div>


  
  <h2 id="camera">Camera port (MIPI CSI-2)</h2>
  <p class="sf-lead">The camera interface routes the CM5 MIPI CSI-2 lane through a Mini HDMI connector on the front face. This is the primary input path for edge AI vision workloads on the DEEPX DX-M1 NPU.</p>

  <div class="sf-spec-card">
    <div class="sf-spec-card__head">
      <div class="sf-spec-card__icon" aria-hidden="true">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"/><circle cx="12" cy="13" r="4"/></svg>
      </div>
      <div class="sf-spec-card__title">MIPI CSI-2 camera &mdash; specifications</div>
    </div>
    <div class="sf-spec-card__body">
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Interface</span>
        <span class="sf-spec-row__val">2-lane MIPI CSI-2 (CM5 MIPI 1)</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Physical connector</span>
        <span class="sf-spec-row__val">Mini HDMI (electrical CSI, not video HDMI)</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Direction</span>
        <span class="sf-spec-row__val">Camera input only (DSI display is not supported)</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Power rail</span>
        <span class="sf-spec-row__val">3.3&nbsp;V at 490&nbsp;mA</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Required accessory</span>
        <span class="sf-spec-row__val">Sixfab Camera Board v1.0 + high-speed Mini HDMI to HDMI cable</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Officially supported sensor</span>
        <span class="sf-spec-row__val">Raspberry Pi Camera Module 3</span>
      </div>
    </div>
  </div>

  <div class="sf-callout sf-callout--info">
    <div class="sf-callout__header">
      <svg class="sf-icon" width="18" height="18" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></svg>
      <span>About the Mini HDMI connector</span>
    </div>
    <div class="sf-callout__content">
      <p>The Mini HDMI shell carries MIPI CSI-2 differential lanes, not HDMI video. Connecting a display, capture card, or HDMI splitter has no functional effect and is not supported.</p>
    </div>
  </div>


  
  <h2 id="gpio">GPIO Add-on port (RJ45)</h2>
  <p class="sf-lead">The GPIO Add-on port exposes six configurable CM5 pins over an RJ45 connector, providing I&sup2;C, UART, and SPI for ALPON Edge Add-on modules. Signals are 3.3&nbsp;V logic with built-in level conversion, ESD protection, and 1&nbsp;k&Omega; hardware pull-ups.</p>

  <div class="sf-callout sf-callout--danger">
    <div class="sf-callout__header">
      <svg class="sf-icon" width="18" height="18" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2L1 21h22L12 2zm0 6l7.53 13H4.47L12 8zm-1 4v4h2v-4h-2zm0 5v2h2v-2h-2z"/></svg>
      <span>This is not an Ethernet port</span>
    </div>
    <div class="sf-callout__content">
      <p>Although the connector is RJ45, this port is not Ethernet and not PoE-capable. Connecting it to a switch, router, or PoE injector will cause permanent hardware damage. Use only with compatible ALPON Add-on modules.</p>
    </div>
  </div>

  <figure class="sf-figure" id="fig-gpio">
    <a class="sf-figure__trigger" href="#lb-gpio" aria-label="Open larger view of GPIO Add-on port pinout">
      <img src="https://files.readme.io/0a30ee88a07adb50de12059bf1db35f5766bb6c8833586a8089c1af3d0f941d2-GPIO_Port.jpg"
           alt="ALPON X5 AI GPIO Add-on port pinout on RJ45 connector showing 8 pin assignments to CM5 GPIO 12-15, 22, 23 plus GND and 5V"
           loading="lazy">
      <span class="sf-figure__zoom" aria-hidden="true">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3M11 8v6M8 11h6"/></svg>
      </span>
    </a>
    <figcaption class="sf-figure__caption">GPIO Add-on port: RJ45 pin assignment.</figcaption>
  </figure>

  <h3>Pin assignment</h3>

  <div class="sf-spec-card">
    <div class="sf-spec-card__head">
      <div class="sf-spec-card__icon" aria-hidden="true">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="6" width="18" height="12" rx="2"/><path d="M7 10v4M10 10v4M13 10v4M16 10v4"/></svg>
      </div>
      <div class="sf-spec-card__title">RJ45 pin map &mdash; CM5 GPIO &amp; alternates</div>
    </div>
    <div class="sf-spec-card__body">
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Pin 1</span>
        <span class="sf-spec-row__val"><code>GND</code> &middot; Ground</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Pin 2</span>
        <span class="sf-spec-row__val"><code>GPIO 12</code> &middot; SPI5_CSn[0], UART4_TX, I2C2_SDA</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Pin 3</span>
        <span class="sf-spec-row__val"><code>GPIO 14</code> &middot; SPI5_SIO[0], UART0_TX, I2C3_SDA</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Pin 4</span>
        <span class="sf-spec-row__val"><code>GPIO 13</code> &middot; SPI5_SIO[1], UART4_RX, I2C2_SCL</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Pin 5</span>
        <span class="sf-spec-row__val"><code>GPIO 15</code> &middot; SPI5_SCLK, UART0_RX, I2C3_SCL</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Pin 6</span>
        <span class="sf-spec-row__val"><code>GPIO 23</code> &middot; I2C3_SCL</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Pin 7</span>
        <span class="sf-spec-row__val"><code>GPIO 22</code> &middot; I2C3_SDA</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Pin 8</span>
        <span class="sf-spec-row__val"><code>5V OUT</code> &middot; 5&nbsp;V output, max 1&nbsp;A. Gated by <code>GPIO 21</code> power switch</span>
      </div>
    </div>
  </div>

  <h3>Electrical characteristics</h3>

  <div class="sf-spec-card">
    <div class="sf-spec-card__head">
      <div class="sf-spec-card__icon" aria-hidden="true">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2 4 14h7l-2 8 9-12h-7z"/></svg>
      </div>
      <div class="sf-spec-card__title">Electrical &amp; logic</div>
    </div>
    <div class="sf-spec-card__body">
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Signal voltage</span>
        <span class="sf-spec-row__val">3.3&nbsp;V logic (level converter + ESD protection)</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Pull-up resistors</span>
        <span class="sf-spec-row__val">1&nbsp;k&Omega; hardware pull-up on every signal pin</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Power output</span>
        <span class="sf-spec-row__val">5&nbsp;V at 1&nbsp;A maximum (5&nbsp;W)</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Power switch enable</span>
        <span class="sf-spec-row__val"><code>GPIO 21</code> &middot; must be HIGH before I/O</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Fault detection</span>
        <span class="sf-spec-row__val"><code>GPIO 20</code> &middot; HIGH normally, LOW on fault</span>
      </div>
    </div>
  </div>

  <h3>Enabling the port from software</h3>
  <p>The 5&nbsp;V supply and signal I/O are gated by an on-board power switch. Drive <code>GPIO 21</code> HIGH to activate the port, then read <code>GPIO 20</code> to confirm no fault is asserted.</p>

  <div class="sf-spec-card">
    <div class="sf-spec-card__head">
      <div class="sf-spec-card__icon" aria-hidden="true">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M13 6l6 6-6 6"/></svg>
      </div>
      <div class="sf-spec-card__title">Control signals</div>
    </div>
    <div class="sf-spec-card__body">
      <div class="sf-spec-row">
        <span class="sf-spec-row__key"><code>ADDON_PWS_EN</code></span>
        <span class="sf-spec-row__val"><code>GPIO 21</code> &middot; Drive HIGH to activate the port. I/O is inactive while LOW.</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key"><code>ADDON_PWS_FAULT</code></span>
        <span class="sf-spec-row__val"><code>GPIO 20</code> &middot; Reads HIGH normally. Goes LOW on overcurrent, overtemperature, or reverse-voltage events. The hardware also cuts the 5&nbsp;V rail automatically.</span>
      </div>
    </div>
  </div>

  <div class="sf-terminal">
    <div class="sf-terminal__header">
      <span class="sf-terminal__dot" style="background:#ff5f57"></span>
      <span class="sf-terminal__dot" style="background:#febc2e"></span>
      <span class="sf-terminal__dot" style="background:#28c840"></span>
      <span class="sf-terminal__title">bash</span>
    </div>
    <div class="sf-terminal__body"><pre><span class="sf-term-dim"># 1. Enable the GPIO Add-on port power rail</span>
<span class="sf-term-green">pinctrl</span> set 21 op dh      <span class="sf-term-dim"># drive GPIO 21 HIGH</span>
<span class="sf-term-green">pinctrl</span> get 20            <span class="sf-term-dim"># read fault line, expect <span class="sf-term-blue">1</span> (HIGH)</span></pre></div>
  </div>


  
  <h2 id="leds">LED indicators</h2>
  <p class="sf-lead">Four LEDs on the front face report system state. All LEDs are driven through the <code>TCA6408</code> I&sup2;C I/O expander at address <strong>0x20</strong> on the I&sup2;C1 bus (<code>SDA: GPIO 2</code>, <code>SCL: GPIO 3</code>).</p>

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

    <div class="sf-led-card">
      <div class="sf-led-card__head">
        <div class="sf-led-card__name">
          <span class="sf-led-dot sf-led-dot--rgb" aria-hidden="true"></span>
          User RGB
        </div>
        <span class="sf-pill">User</span>
      </div>
      <div class="sf-led-card__specs">
        <div class="sf-led-card__row">
          <span class="sf-led-card__key">Expander</span>
          <span class="sf-led-card__val">P2 (R) &middot; P3 (G) &middot; P4 (B)</span>
        </div>
        <div class="sf-led-card__row">
          <span class="sf-led-card__key">Logic</span>
          <span class="sf-led-card__val">Active LOW</span>
        </div>
      </div>
      <p class="sf-led-card__desc">User-programmable. Set color by writing the corresponding R/G/B expander pins to LOW.</p>
    </div>

    <div class="sf-led-card">
      <div class="sf-led-card__head">
        <div class="sf-led-card__name">
          <span class="sf-led-dot sf-led-dot--rgb" aria-hidden="true"></span>
          Cellular (RGB)
        </div>
        <span class="sf-pill sf-pill--brand">System</span>
      </div>
      <div class="sf-led-card__specs">
        <div class="sf-led-card__row">
          <span class="sf-led-card__key">Expander</span>
          <span class="sf-led-card__val">P5 (R) &middot; P6 (G) &middot; P7 (B)</span>
        </div>
        <div class="sf-led-card__row">
          <span class="sf-led-card__key">Logic</span>
          <span class="sf-led-card__val">Active LOW</span>
        </div>
      </div>
      <p class="sf-led-card__desc">Driven by ALPON X5 AI OS: blue = strong LTE signal, yellow = moderate, red = weak or no LTE signal.</p>
    </div>

    <div class="sf-led-card">
      <div class="sf-led-card__head">
        <div class="sf-led-card__name">
          <span class="sf-led-dot sf-led-dot--green" aria-hidden="true"></span>
          Status
        </div>
        <span class="sf-pill sf-pill--brand">System</span>
      </div>
      <div class="sf-led-card__specs">
        <div class="sf-led-card__row">
          <span class="sf-led-card__key">Expander</span>
          <span class="sf-led-card__val">P0</span>
        </div>
        <div class="sf-led-card__row">
          <span class="sf-led-card__key">Logic</span>
          <span class="sf-led-card__val">Active LOW</span>
        </div>
      </div>
      <p class="sf-led-card__desc">Solid green when the device is online in ALPON Cloud (driven by the Sixfab Connect agent).</p>
    </div>

    <div class="sf-led-card">
      <div class="sf-led-card__head">
        <div class="sf-led-card__name">
          <span class="sf-led-dot sf-led-dot--white" aria-hidden="true"></span>
          Power
        </div>
        <span class="sf-pill sf-pill--success">Hardware</span>
      </div>
      <div class="sf-led-card__specs">
        <div class="sf-led-card__row">
          <span class="sf-led-card__key">Expander</span>
          <span class="sf-led-card__val">P1</span>
        </div>
        <div class="sf-led-card__row">
          <span class="sf-led-card__key">Logic</span>
          <span class="sf-led-card__val">Active HIGH</span>
        </div>
      </div>
      <p class="sf-led-card__desc">Lights when any valid power input is present.</p>
    </div>

  </div>

  <div class="sf-callout sf-callout--info">
    <div class="sf-callout__header">
      <svg class="sf-icon" width="18" height="18" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></svg>
      <span>Polarity matters</span>
    </div>
    <div class="sf-callout__content">
      <p>The Power LED is active HIGH. The User RGB, Cellular and Status LEDs are active LOW: write <code>0</code> to the expander pin to turn the color on.</p>
    </div>
  </div>


  
  <h2 id="buttons">Push buttons</h2>
  <p class="sf-lead">Two user-programmable buttons: PB1 on the front face and PB2 on the rear. Both lines are pulled HIGH by default and read LOW while pressed.</p>

  <figure class="sf-figure" id="fig-buttons">
    <a class="sf-figure__trigger" href="#lb-buttons" aria-label="Open larger view of user push buttons">
      <img src="https://files.readme.io/afe6611b563745121c5a6eb6dd3bd3e263a62348faec001ca12a09392b0180df-Technical_Det.-3.png"
           alt="ALPON X5 AI user push buttons PB1 on front and PB2 on rear close-up"
           loading="lazy">
      <span class="sf-figure__zoom" aria-hidden="true">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3M11 8v6M8 11h6"/></svg>
      </span>
    </a>
    <figcaption class="sf-figure__caption">PB1 (front) and PB2 (rear) user push buttons.</figcaption>
  </figure>

  <div class="sf-spec-card">
    <div class="sf-spec-card__head">
      <div class="sf-spec-card__icon" aria-hidden="true">
        <svg 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"/><circle cx="12" cy="12" r="4"/></svg>
      </div>
      <div class="sf-spec-card__title">Button mapping</div>
    </div>
    <div class="sf-spec-card__body">
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">PB1 (front)</span>
        <span class="sf-spec-row__val"><code>GPIO 5</code> &middot; Pulled HIGH &middot; LOW when pressed &middot; user-defined action</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">PB2 (rear)</span>
        <span class="sf-spec-row__val"><code>GPIO 6</code> &middot; Pulled HIGH &middot; LOW when pressed &middot; user-defined action</span>
      </div>
    </div>
  </div>


  
  <h2 id="switches">Watchdog &amp; Boot/Burn switches</h2>
  <p class="sf-lead">Two DIP switches sit under a silicone cap on the rear face. Both ship OFF by default and should remain OFF during normal operation. Use a pointed tool to lift the cap from its notch.</p>

  <figure class="sf-figure" id="fig-switches">
    <a class="sf-figure__trigger" href="#lb-switches" aria-label="Open larger view of watchdog and boot/burn DIP switches">
      <img src="https://files.readme.io/bef609aff6922c133f4594ec2d8dc0cc98210ef5c13b842c97230a2662b08669-Technical_Det.-7.png"
           alt="ALPON X5 AI SW1 watchdog and SW2 boot/burn DIP switches under silicone cap on rear face"
           loading="lazy">
      <span class="sf-figure__zoom" aria-hidden="true">
        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="7"/><path d="m21 21-4.3-4.3M11 8v6M8 11h6"/></svg>
      </span>
    </a>
    <figcaption class="sf-figure__caption">SW1 (Watchdog) and SW2 (Boot/Burn) &middot; default: both OFF.</figcaption>
  </figure>

  <div class="sf-spec-grid">
    <div class="sf-spec-card">
      <div class="sf-spec-card__head">
        <div class="sf-spec-card__icon" aria-hidden="true">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="6" width="18" height="12" rx="2"/><circle cx="9" cy="12" r="2"/><circle cx="15" cy="12" r="2"/></svg>
        </div>
        <div class="sf-spec-card__title">SW1 &middot; Watchdog</div>
      </div>
      <div class="sf-spec-card__body">
        <div class="sf-spec-row">
          <span class="sf-spec-row__key"><span class="sf-switch-state sf-switch-state--off">OFF (default)</span></span>
          <span class="sf-spec-row__val">Watchdog <strong>enabled</strong></span>
        </div>
        <div class="sf-spec-row">
          <span class="sf-spec-row__key"><span class="sf-switch-state sf-switch-state--on">ON</span></span>
          <span class="sf-spec-row__val">Watchdog <strong>disabled</strong></span>
        </div>
      </div>
    </div>

    <div class="sf-spec-card">
      <div class="sf-spec-card__head">
        <div class="sf-spec-card__icon" aria-hidden="true">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2v6M4.93 10.93l4.24 4.24M2 18h6M21.07 10.93l-4.24 4.24M22 18h-6"/><circle cx="12" cy="18" r="3"/></svg>
        </div>
        <div class="sf-spec-card__title">SW2 &middot; Boot / Burn</div>
      </div>
      <div class="sf-spec-card__body">
        <div class="sf-spec-row">
          <span class="sf-spec-row__key"><span class="sf-switch-state sf-switch-state--off">OFF (default)</span></span>
          <span class="sf-spec-row__val"><strong>Boot</strong> &middot; normal operating mode</span>
        </div>
        <div class="sf-spec-row">
          <span class="sf-spec-row__key"><span class="sf-switch-state sf-switch-state--on">ON</span></span>
          <span class="sf-spec-row__val"><strong>Burn</strong> &middot; CM5 image flash mode</span>
        </div>
      </div>
    </div>
  </div>

  <h3>SW1 &middot; Hardware watchdog</h3>
  <p>The hardware watchdog monitors system liveness independently of the OS. When enabled (SW1 OFF), the CM5 must toggle <code>GPIO 16</code> at least once every 5 minutes. If no trigger arrives, the watchdog cuts power, waits 3 seconds, then re-applies power for a cold reboot.</p>

  <ul>
    <li><strong>Trigger pin:</strong> <code>GPIO 16</code></li>
    <li><strong>Timeout:</strong> 5 minutes</li>
    <li><strong>Recommended period:</strong> 2-second HIGH pulse every 60 seconds</li>
    <li><strong>Status read pin:</strong> <code>GPIO 8</code> &middot; HIGH when SW1 = OFF (enabled), LOW when SW1 = ON (disabled)</li>
    <li><strong>Disable method:</strong> physical SW1 only &middot; no software command</li>
  </ul>

  <h3>SW2 &middot; Boot / Burn mode</h3>
  <p>SW2 selects between normal operation (Boot) and CM5 image flashing over USB-C (Burn). In Burn mode, the USB-C port exposes the CM5 flashing interface to a host PC running <code>rpiboot</code>.</p>

  <div class="sf-callout sf-callout--danger">
    <div class="sf-callout__header">
      <svg class="sf-icon" width="18" height="18" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2L1 21h22L12 2zm0 6l7.53 13H4.47L12 8zm-1 4v4h2v-4h-2zm0 5v2h2v-2h-2z"/></svg>
      <span>Power down before toggling SW2</span>
    </div>
    <div class="sf-callout__content">
      <p>The device must be completely powered off when switching between Boot and Burn modes. Toggling SW2 while powered can corrupt the CM5 eMMC or brick the boot sequence. Always return both switches to OFF after flashing.</p>
    </div>
  </div>

  <div class="sf-callout sf-callout--info">
    <div class="sf-callout__header">
      <svg class="sf-icon" width="18" height="18" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></svg>
      <span>Image flashing support</span>
    </div>
    <div class="sf-callout__content">
      <p>If an image is damaged or needs reflashing, <a href="https://sixfab.com/contact/" target="_blank" rel="noopener">contact Sixfab support</a> before attempting the flash. Unguided reflashing can make recovery harder.</p>
    </div>
  </div>


  
  <h2 id="antennas">Antenna connectors</h2>
  <p class="sf-lead">Four SMA connectors on the rear face carry the wireless interfaces. Labels on the enclosure identify each port.</p>

  <div class="sf-spec-card">
    <div class="sf-spec-card__head">
      <div class="sf-spec-card__icon" aria-hidden="true">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M5 20l7-16 7 16M8 14h8M12 14v6"/></svg>
      </div>
      <div class="sf-spec-card__title">SMA connector map</div>
    </div>
    <div class="sf-spec-card__body">
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">LTE Main</span>
        <span class="sf-spec-row__val">Label <strong>L</strong> &middot; SMA Female &middot; Primary cellular RF path</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">LTE Diversity</span>
        <span class="sf-spec-row__val">Label <strong>L</strong> &middot; SMA Female &middot; Rx diversity for improved link budget</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">GNSS / GPS</span>
        <span class="sf-spec-row__val">Label <strong>G</strong> &middot; SMA Female &middot; Active antenna &middot; must face the sky</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Wi-Fi / Bluetooth</span>
        <span class="sf-spec-row__val">Label <strong>W</strong> &middot; RP-SMA Male &middot; 2.4&nbsp;GHz + 5&nbsp;GHz</span>
      </div>
    </div>
  </div>

  <div class="sf-callout sf-callout--info">
    <div class="sf-callout__header">
      <svg class="sf-icon" width="18" height="18" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/></svg>
      <span>Mixed connector genders</span>
    </div>
    <div class="sf-callout__content">
      <p>The Wi-Fi port uses an RP-SMA male (reverse-polarity) connector; GNSS and both LTE ports use SMA female connectors. Supplied antennas are keyed accordingly. Verify thread compatibility before forcing a connection.</p>
    </div>
  </div>

  <div class="sf-cta-card sf-cta-card--compact">
    <div class="sf-cta-card__copy">
      <p class="sf-cta-card__title">Cellular &amp; wireless specifications</p>
      <p class="sf-cta-card__desc">LTE band list, antenna gain, and certified RF specs.</p>
    </div>
    <a class="sf-cta-card__btn" href="/docs/alpon-x5-ai-edge-computer-specifications#cellular" target="_blank" rel="noopener">
      Open page
      <svg viewBox="0 0 24 24"><path d="M5 12h14M13 6l6 6-6 6"/></svg>
    </a>
  </div>


  
  <h2 id="topology">Internal bus topology</h2>
  <p class="sf-lead">How each external interface maps back to the CM5. Useful for diagnosing throughput limits and shared-rail behavior.</p>

  <div class="sf-spec-card">
    <div class="sf-spec-card__head">
      <div class="sf-spec-card__icon" aria-hidden="true">
        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><circle cx="6" cy="6" r="2"/><circle cx="6" cy="18" r="2"/><circle cx="18" cy="12" r="2"/><path d="M8 6h6a2 2 0 0 1 2 2v2M8 18h6a2 2 0 0 0 2-2v-2"/></svg>
      </div>
      <div class="sf-spec-card__title">Interface &rarr; CM5 mapping</div>
    </div>
    <div class="sf-spec-card__body">
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">USB Port 1</span>
        <span class="sf-spec-row__val">Native USB 3.0 &middot; Direct to CM5</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">USB Port 2 + ETHERNET 1</span>
        <span class="sf-spec-row__val">USB 3.0 &rarr; TUSB8020 hub &middot; Shared 5&nbsp;Gbps uplink. ETHERNET 1 reaches Gigabit via RTL8153B USB-to-GbE bridge.</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">ETHERNET 0</span>
        <span class="sf-spec-row__val">Native Ethernet MAC &middot; Carries PoE+ on PoE variants</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">NVMe SSD + DEEPX NPU</span>
        <span class="sf-spec-row__val">PCIe Gen3 &rarr; ASM2806I packet switch &middot; Single PCIe lane fanned out to SSD and the M.2 AI accelerator</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">Camera Port</span>
        <span class="sf-spec-row__val">MIPI CSI-2 (CM5 MIPI 1) &middot; 2-lane, camera only</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">HDMI Display</span>
        <span class="sf-spec-row__val">CM5 HDMI 0 &middot; 4Kp60 HEVC</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">LEDs</span>
        <span class="sf-spec-row__val">I&sup2;C1 &rarr; TCA6408 @ 0x20 &middot; Expander-driven</span>
      </div>
      <div class="sf-spec-row">
        <span class="sf-spec-row__key">GPIO Add-on Port</span>
        <span class="sf-spec-row__val">CM5 GPIO 12&ndash;15, 22, 23 &middot; Gated by GPIO 21 power switch</span>
      </div>
    </div>
  </div>

  
  <section class="sf-related">
    <h2>Related guides</h2>
    <div class="sf-related__grid">
      <a class="sf-related__card" href="/docs/alpon-x5-ai-edge-computer-power-mounting" target="_blank" rel="noopener">
        <div class="sf-related__icon">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M13 2 4 14h7l-2 8 9-12h-7z"/></svg>
        </div>
        <div class="sf-related__title">Power &amp; Mounting</div>
        <div class="sf-related__desc">Adapter requirements, PoE budget, Restricted Mode, consumption table, and mount kits.</div>
      </a>
      <a class="sf-related__card" href="/docs/alpon-x5-ai-edge-computer-specifications" target="_blank" rel="noopener">
        <div class="sf-related__icon">
          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.75" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16v16H4z"/><path d="M4 9h16M4 14h16M9 4v16"/></svg>
        </div>
        <div class="sf-related__title">Specifications</div>
        <div class="sf-related__desc">Full datasheet values for compute, I/O, cellular, and compliance.</div>
      </a>
      <a class="sf-related__card" href="/docs/alpon-x5-ai-edge-computer-troubleshooting" target="_blank" rel="noopener">
        <div class="sf-related__icon">
          <svg 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="10"/><path d="M12 16v-4M12 8h.01"/></svg>
        </div>
        <div class="sf-related__title">Troubleshooting</div>
        <div class="sf-related__desc">Power, LED, network, and container issues with step-by-step fixes.</div>
      </a>
    </div>
  </section>


  

  <div class="sf-lightbox" id="lb-front" role="dialog" aria-label="Enlarged image: ALPON X5 AI front face">
    <a class="sf-lightbox__overlay" href="#fig-front" aria-label="Close"></a>
    <div class="sf-lightbox__content">
      <a class="sf-lightbox__close" href="#fig-front" aria-label="Close enlarged image">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 6 6 18M6 6l12 12"/></svg>
      </a>
      <img src="https://files.readme.io/b3425f691838208315f260e763f0807ecf5d472fb97ab18c359c1901bbe62625-Getting_St._-_3.1.png"
           alt="ALPON X5 AI front face with numbered ports, enlarged">
    </div>
  </div>

  <div class="sf-lightbox" id="lb-rear" role="dialog" aria-label="Enlarged image: ALPON X5 AI rear face">
    <a class="sf-lightbox__overlay" href="#fig-rear" aria-label="Close"></a>
    <div class="sf-lightbox__content">
      <a class="sf-lightbox__close" href="#fig-rear" aria-label="Close enlarged image">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 6 6 18M6 6l12 12"/></svg>
      </a>
      <img src="https://files.readme.io/5c48aa48f30bbd6fbad5119d5700cef1b78d1a9ecb38b4db0599161e52bb3914-Getting_St.-3.png"
           alt="ALPON X5 AI rear face with numbered ports, enlarged">
    </div>
  </div>

  <div class="sf-lightbox" id="lb-terminal" role="dialog" aria-label="Enlarged image: Screw terminal block pinout">
    <a class="sf-lightbox__overlay" href="#fig-terminal" aria-label="Close"></a>
    <div class="sf-lightbox__content">
      <a class="sf-lightbox__close" href="#fig-terminal" aria-label="Close enlarged image">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 6 6 18M6 6l12 12"/></svg>
      </a>
      <img src="https://files.readme.io/25be83b50ea595f790a4fa43c02cf82d8c5326faa5fd4e21385431555e07e9a9-Sixfab_ALPON_X4_Technical_Details_Screw_Terminal_Block.gif"
           alt="ALPON X5 AI screw terminal block pinout: chassis, negative, positive, enlarged">
    </div>
  </div>

  <div class="sf-lightbox" id="lb-gpio" role="dialog" aria-label="Enlarged image: GPIO Add-on port pinout">
    <a class="sf-lightbox__overlay" href="#fig-gpio" aria-label="Close"></a>
    <div class="sf-lightbox__content">
      <a class="sf-lightbox__close" href="#fig-gpio" aria-label="Close enlarged image">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 6 6 18M6 6l12 12"/></svg>
      </a>
      <img src="https://files.readme.io/0a30ee88a07adb50de12059bf1db35f5766bb6c8833586a8089c1af3d0f941d2-GPIO_Port.jpg"
           alt="ALPON X5 AI GPIO Add-on port RJ45 pin assignment, enlarged">
    </div>
  </div>

  <div class="sf-lightbox" id="lb-switches" role="dialog" aria-label="Enlarged image: Watchdog and Boot/Burn DIP switches">
    <a class="sf-lightbox__overlay" href="#fig-switches" aria-label="Close"></a>
    <div class="sf-lightbox__content">
      <a class="sf-lightbox__close" href="#fig-switches" aria-label="Close enlarged image">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 6 6 18M6 6l12 12"/></svg>
      </a>
      <img src="https://files.readme.io/bef609aff6922c133f4594ec2d8dc0cc98210ef5c13b842c97230a2662b08669-Technical_Det.-7.png"
           alt="ALPON X5 AI SW1 watchdog and SW2 boot/burn DIP switches, enlarged">
    </div>
  </div>

  <div class="sf-lightbox" id="lb-usb" role="dialog" aria-label="Enlarged image: ALPON X5 AI USB 3.0 ports">
    <a class="sf-lightbox__overlay" href="#fig-usb" aria-label="Close"></a>
    <div class="sf-lightbox__content">
      <a class="sf-lightbox__close" href="#fig-usb" aria-label="Close enlarged image">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 6 6 18M6 6l12 12"/></svg>
      </a>
      <img src="https://files.readme.io/cd8dbd32dc034b10f6379787b14d47e5164df577c2c2ff9a77c0c88ee36b284c-Technical_Det.-5.png"
           alt="ALPON X5 AI USB 3.0 ports close-up, enlarged">
    </div>
  </div>

  <div class="sf-lightbox" id="lb-hdmi" role="dialog" aria-label="Enlarged image: ALPON X5 AI HDMI 2.0 display port">
    <a class="sf-lightbox__overlay" href="#fig-hdmi" aria-label="Close"></a>
    <div class="sf-lightbox__content">
      <a class="sf-lightbox__close" href="#fig-hdmi" aria-label="Close enlarged image">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 6 6 18M6 6l12 12"/></svg>
      </a>
      <img src="https://files.readme.io/da14093f48454ec005181e71e2a84a59a89bae7bab333ee7e46f339ebbfde703-Technical_Det.-4.png"
           alt="ALPON X5 AI HDMI 2.0 display port close-up, enlarged">
    </div>
  </div>

  <div class="sf-lightbox" id="lb-buttons" role="dialog" aria-label="Enlarged image: ALPON X5 AI user push buttons">
    <a class="sf-lightbox__overlay" href="#fig-buttons" aria-label="Close"></a>
    <div class="sf-lightbox__content">
      <a class="sf-lightbox__close" href="#fig-buttons" aria-label="Close enlarged image">
        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M18 6 6 18M6 6l12 12"/></svg>
      </a>
      <img src="https://files.readme.io/afe6611b563745121c5a6eb6dd3bd3e263a62348faec001ca12a09392b0180df-Technical_Det.-3.png"
           alt="ALPON X5 AI user push buttons PB1 and PB2, enlarged">
    </div>
  </div>

</div>






`}</HTMLBlock>

<br />