| layout | page |
|---|---|
| title | Market Share and Products |
| description | Market footprint and products built with Apache NuttX RTOS |
| group | nav-right |
{% include JB/setup %}
<style> /* Local font declarations for DM Mono (used as fallback monospace font) */ @font-face { font-family: 'DM Mono'; font-style: normal; font-weight: 400; font-display: swap; src: url('../assets/themes/apache/fonts/JetBrainsMono-Regular.ttf') format('truetype'); } @font-face { font-family: 'DM Mono'; font-style: normal; font-weight: 500; font-display: swap; src: url('../assets/themes/apache/fonts/JetBrainsMono-Medium.ttf') format('truetype'); } /* ════════════════════════════════════════ DESIGN TOKENS — light & dark ════════════════════════════════════════ */ .nx-page { /* Light theme defaults */ --bg: #f2f1ec; --bg-card: #eceae3; --bg-side: #e4e2da; --bg-chip: #eceae3; --border: #d0cdc4; --border-h: #a8a59c; --text: #181714; --text-sub: #52504a; --text-dim: #888478; --tag-bg: #dedad1; --tag-text: #52504a; --tag-border: #c4c1b8; --sh-sm: 0 1px 4px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.05); --sh-md: 0 4px 16px rgba(0,0,0,.10), 0 2px 6px rgba(0,0,0,.06); --r-sm: 8px; --r-md: 14px; --r-lg: 20px; --f-body: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif; --f-mono: 'DM Mono', ui-monospace, 'Courier New', monospace; } /* Dark theme — OS preference (only when not overridden to light) */ @media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .nx-page { --bg: #0e0e0c; --bg-card: #181714; --bg-side: #1f1e1a; --bg-chip: #181714; --border: #2c2b26; --border-h: #46443c; --text: #e6e3da; --text-sub: #96937f; --text-dim: #64614e; --tag-bg: #242319; --tag-text: #96937f; --tag-border: #32302a; --sh-sm: 0 1px 4px rgba(0,0,0,.5); --sh-md: 0 4px 16px rgba(0,0,0,.6); } } /* Dark theme via JS toggle */ html[data-theme="dark"] .nx-page { --bg: #0e0e0c; --bg-card: #181714; --bg-side: #1f1e1a; --bg-chip: #181714; --border: #2c2b26; --border-h: #46443c; --text: #e6e3da; --text-sub: #96937f; --text-dim: #64614e; --tag-bg: #242319; --tag-text: #96937f; --tag-border: #32302a; --sh-sm: 0 1px 4px rgba(0,0,0,.5); --sh-md: 0 4px 16px rgba(0,0,0,.6); } /* ════════════════════════════════════════ BASE — scoped inside .nx-page ════════════════════════════════════════ */ .nx-page { font-family: var(--f-body) !important; color: var(--text) !important; font-size: 15px !important; line-height: 1.6 !important; -webkit-font-smoothing: antialiased; } /* Kill any site-level img constraints inside our page — desktop only */ .nx-page img { max-width: 100% !important; max-height: none !important; width: auto !important; height: auto !important; border: none !important; box-shadow: none !important; border-radius: 0 !important; display: block !important; } /* ════════════════════════════════════════ HERO ════════════════════════════════════════ */ .nx-hero { padding: 44px 0 36px !important; border-bottom: 1px solid var(--border) !important; margin-bottom: 44px !important; } .nx-eyebrow { font-family: var(--f-mono) !important; font-size: 11px !important; letter-spacing: .12em !important; text-transform: uppercase !important; color: var(--text-dim) !important; margin-bottom: 16px !important; display: flex !important; align-items: center !important; gap: 10px !important; } .nx-hero h2 { font-family: var(--f-body) !important; font-size: clamp(1.9rem, 3.5vw, 3rem) !important; font-weight: 700 !important; letter-spacing: -.03em !important; line-height: 1.15 !important; color: var(--text) !important; margin: 0 0 14px !important; padding: 0 !important; border: none !important; } .nx-hero p { font-size: 16px !important; color: var(--text-sub) !important; max-width: 60ch !important; line-height: 1.65 !important; margin: 0 !important; } /* ════════════════════════════════════════ STATS ROW ════════════════════════════════════════ */ .nx-stats { display: grid !important; grid-template-columns: repeat(4, 1fr) !important; gap: 12px !important; margin-bottom: 48px !important; } .nx-stat { background: var(--bg-card) !important; border: 1px solid var(--border) !important; border-radius: var(--r-md) !important; padding: 22px 24px !important; box-shadow: var(--sh-sm) !important; } .nx-stat-num { font-family: var(--f-body) !important; font-size: 28px !important; font-weight: 800 !important; letter-spacing: -.03em !important; color: var(--text) !important; line-height: 1 !important; margin-bottom: 6px !important; display: block !important; } .nx-stat-desc { font-size: 12.5px !important; color: var(--text-dim) !important; line-height: 1.4 !important; } /* ════════════════════════════════════════ SECTION LABEL ════════════════════════════════════════ */ .nx-section-label { font-family: var(--f-mono) !important; font-size: 10.5px !important; letter-spacing: .14em !important; text-transform: uppercase !important; color: var(--text-dim) !important; font-weight: 500 !important; display: flex !important; align-items: center !important; gap: 12px !important; margin-bottom: 20px !important; margin-top: 52px !important; } .nx-section-label::after { content: ''; flex: 1; height: 1px; background: var(--border); } /* ════════════════════════════════════════ DOMAIN HEADER ════════════════════════════════════════ */ .nx-domain { margin-bottom: 8px !important; } .nx-domain-hdr { margin-bottom: 20px !important; } .nx-domain-hdr h3 { font-family: var(--f-body) !important; font-size: 21px !important; font-weight: 700 !important; letter-spacing: -.02em !important; color: var(--text) !important; margin: 0 0 4px !important; padding: 0 !important; border: none !important; } .nx-domain-hdr p { font-size: 13.5px !important; color: var(--text-dim) !important; margin: 0 !important; } /* ════════════════════════════════════════ ENTRY CARD ════════════════════════════════════════ */ .nx-entry { background: var(--bg-card) !important; border: 1px solid var(--border) !important; border-radius: var(--r-lg) !important; overflow: hidden !important; margin-bottom: 14px !important; box-shadow: var(--sh-sm) !important; transition: box-shadow .2s, border-color .2s !important; } .nx-entry:hover { box-shadow: var(--sh-md) !important; border-color: var(--border-h) !important; } a.nx-entry { display: block !important; text-decoration: none !important; color: inherit !important; scroll-margin-top: calc(64px + 1.5rem) !important; } /* TWO COLUMN GRID — forced with !important */ .nx-entry-grid { display: grid !important; grid-template-columns: 300px 1fr !important; grid-template-rows: auto !important; min-height: 0 !important; } /* ════════════════════════════════════════ MOBILE OVERRIDES (single block) ════════════════════════════════════════ */ @media (max-width: 760px) { /* Page container */ .nx-page { overflow-x: hidden !important; } /* Hero */ .nx-hero { padding: 28px 0 24px !important; margin-bottom: 28px !important; } .nx-hero h2 { font-size: 1.55rem !important; } .nx-hero p { font-size: 14px !important; } /* Stats */ .nx-stats { grid-template-columns: repeat(2, 1fr) !important; } /* Section label */ .nx-section-label { margin-top: 36px !important; font-size: 9.5px !important; } /* Domain header */ .nx-domain-hdr h3 { font-size: 17px !important; } /* Entry grid — single column */ .nx-entry-grid { grid-template-columns: 1fr !important; } a.nx-entry { display: block !important; } /* Sidebar — horizontal strip: logo left, segment right, compact */ .nx-side { border-right: none !important; border-bottom: 1px solid var(--border) !important; flex-direction: row !important; align-items: center !important; justify-content: flex-start !important; gap: 16px !important; padding: 16px 18px !important; min-height: 0 !important; } /* Logo area — fixed width so meta always has room, no overflow clip */ .nx-page .nx-side .nx-logo-area { min-height: 56px !important; width: 112px !important; max-width: 112px !important; flex-shrink: 0 !important; justify-content: center !important; align-items: center !important; overflow: visible !important; } /* All logos inside sidebar scale proportionally within the 112px column */ .nx-page .nx-side .nx-logo-area img, .nx-page .nx-side .nx-logo-area > img { max-width: 108px !important; max-height: 56px !important; width: auto !important; height: auto !important; object-fit: contain !important; } /* Meta: left-aligned next to logo */ .nx-page .nx-side .nx-meta { align-items: flex-start !important; text-align: left !important; flex: 1 !important; min-width: 0 !important; } /* Main content */ .nx-main { padding: 18px 16px !important; } .nx-main h4 { font-size: 15px !important; } .nx-main p { font-size: 13.5px !important; } } /* ── SIDEBAR ── */ .nx-side { background: var(--bg-side) !important; border-right: 1px solid var(--border) !important; padding: 32px 28px !important; display: flex !important; flex-direction: column !important; gap: 20px !important; justify-content: space-between !important; align-items: center !important; } /* Logo area — fixed height so logos always show properly */ .nx-logo-area { width: 100% !important; min-height: 72px !important; display: flex !important; align-items: center !important; justify-content: center !important; } /* SVG / PNG logos directly in sidebar */ .nx-logo-area > img { max-width: 240px !important; max-height: 80px !important; width: auto !important; height: auto !important; object-fit: contain !important; display: block !important; } @media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .nx-logo-area > img.need-invert { filter: invert(1) !important; } } html[data-theme="dark"] .nx-logo-area > img.need-invert { filter: invert(1) !important; } /* Logos with white fill: make them dark/visible in light mode */ html[data-theme="light"] .nx-logo-area > img.invert-in-light, html[data-theme="light"] .nx-chip-logo-wrap img.invert-in-light { filter: brightness(0) !important; } /* White-padded box for logos that need white bg */ .nx-logo-box { display: inline-flex !important; align-items: center !important; justify-content: center !important; background: #ffffff !important; border: 1px solid #e0ddd6 !important; border-radius: 10px !important; padding: 12px 18px !important; min-width: 140px !important; min-height: 72px !important; } .nx-logo-box img { max-width: 160px !important; max-height: 50px !important; width: auto !important; height: auto !important; object-fit: contain !important; display: block !important; } /* Segment meta */ .nx-meta { display: flex !important; flex-direction: column !important; gap: 3px !important; align-items: center !important; text-align: center !important; } .nx-meta-lbl { font-family: var(--f-mono) !important; font-size: 10px !important; letter-spacing: .08em !important; text-transform: uppercase !important; color: var(--text-dim) !important; } .nx-meta-val { font-size: 13px !important; font-weight: 500 !important; color: var(--text-sub) !important; } /* ── MAIN CONTENT ── */ .nx-main { padding: 32px 34px !important; } .nx-use-lbl { font-family: var(--f-mono) !important; font-size: 10px !important; letter-spacing: .10em !important; text-transform: uppercase !important; color: var(--text-dim) !important; margin-bottom: 7px !important; display: block !important; } .nx-main h4 { font-family: var(--f-body) !important; font-size: 18px !important; font-weight: 700 !important; letter-spacing: -.015em !important; color: var(--text) !important; margin: 0 0 12px !important; padding: 0 !important; border: none !important; line-height: 1.25 !important; } .nx-main p { font-size: 14.5px !important; color: var(--text-sub) !important; line-height: 1.7 !important; margin: 0 0 18px !important; } /* Tags */ .nx-tags { display: flex !important; flex-wrap: wrap !important; gap: 6px !important; margin-top: 4px !important; } .nx-tag { font-family: var(--f-mono) !important; font-size: 10.5px !important; letter-spacing: .04em !important; padding: 5px 11px !important; border-radius: 100px !important; background: var(--tag-bg) !important; color: var(--tag-text) !important; border: 1px solid var(--tag-border) !important; font-weight: 500 !important; line-height: 1 !important; } /* White-background knockout: multiply removes white on light bg */ .logo-knockout-white { mix-blend-mode: multiply !important; } /* Color-accurate logos: multiply removes white bg in light mode; invert+hue-rotate(180deg) in dark mode — inverts lightness (white bg → transparent/black) while preserving all brand hues exactly (hue 0°→180°→0°, net zero change) */ .nx-logo-area.logo-preserve img { mix-blend-mode: multiply !important; } @media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .nx-logo-area.logo-preserve { background: transparent !important; padding: 0 !important; } html:not([data-theme="light"]) .nx-logo-area.logo-preserve img { mix-blend-mode: normal !important; filter: invert(1) hue-rotate(180deg) !important; } } html[data-theme="dark"] .nx-logo-area.logo-preserve { background: transparent !important; padding: 0 !important; } html[data-theme="dark"] .nx-logo-area.logo-preserve img { mix-blend-mode: normal !important; filter: invert(1) hue-rotate(180deg) !important; } @media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .logo-knockout-white { mix-blend-mode: normal !important; filter: invert(1) brightness(0.9) !important; } html:not([data-theme="light"]) .nx-logo-area > img.need-invert, html:not([data-theme="light"]) .nx-chip-logo-wrap img.need-invert { filter: invert(1) !important; } } html[data-theme="dark"] .logo-knockout-white { mix-blend-mode: normal !important; filter: invert(1) brightness(0.9) !important; } html[data-theme="dark"] .nx-logo-area > img.need-invert, html[data-theme="dark"] .nx-chip-logo-wrap img.need-invert { filter: invert(1) !important; } /* ASF logo in stat card — .nx-stat-asf .nx-asf-logo has specificity (0,2,0) which beats .nx-page img (0,1,1) so max-height is respected */ .nx-stat-asf .nx-asf-logo { max-width: 110px !important; max-height: 28px !important; width: auto !important; height: auto !important; object-fit: contain !important; display: block !important; margin-bottom: 8px !important; } @media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .nx-stat-asf .nx-asf-logo { filter: brightness(0) invert(1) !important; } } html[data-theme="dark"] .nx-stat-asf .nx-asf-logo { filter: brightness(0) invert(1) !important; } </style>Apache NuttX powers devices across aerospace, consumer electronics, IoT, and industrial systems. Explore the platforms and companies building on the RTOS.
Sony uses NuttX in its audio players and embedded ecosystem. The Sony Spresense platform (including multiple boards and modules) runs NuttX as its primary operating system, enabling high-performance audio and edge AI sensing.
Google's Fitbit ecosystem uses NuttX in its smartwatch platforms. Their engineers have presented multiple talks at NuttX International Workshops, demonstrating active, ongoing involvement in the RTOS community.
Xiaomi has one of the largest NuttX deployments in the world. Over 1,000 SKUs are reported to run NuttX, spanning smartwatches, smart speakers, displays, and EV-related systems, all under the OpenVela platform umbrella.
Every drone built using PX4 Autopilot runs Apache NuttX. This includes aircraft manufactured by Auterion, 3DR, XMobots, and many others. NuttX handles the real-time flight control demands where determinism is non-negotiable.
ArduSimple provides high-precision RTK GNSS solutions based on u-blox and Septentrio receivers, widely integrated with NuttX-based systems such as PX4. NuttX handles communication, control, and data processing while the GNSS module performs RTK positioning enabling centimeter-level accuracy for drones, autonomous vehicles, and surveying applications.
Japan Aviation Electronics Industry (JAE) develops flight controllers based on STM32H7 series microcontrollers running Apache NuttX via PX4 Autopilot. Their hardware is designed for high-reliability UAV and aerospace applications, with NuttX providing the real-time foundation for mission-critical avionics control.
Li Auto integrates NuttX in its Electronic Control Units (ECUs). Both Li Auto and Xiaomi have actively worked toward certifying NuttX for automotive use, demonstrating its readiness for safety-critical embedded systems.
Samsung uses NuttX as the underlying kernel for TizenRT, their IoT operating system deployed heavily across connected and embedded devices in their product lineup.
Espressif Systems actively contributes to the NuttX mainline. The full ESP32 family (including S2, S3, H2, and P4 variants) has first-class support, making it one of the most widely deployed platforms for IoT products using NuttX.
Elektroline deploys NuttX in tram track systems (BRCg2, VTK25) and remotely controlled disconnectors. NuttX provides interconnection over CAN, USB, and Ethernet, GUI via LVGL, and data logging to SD card or NOR flash memory at SIL0 safety level.
Wilderness Labs uses NuttX in its Meadow platform. Because NuttX is POSIX-compliant and Unix-like, it enables easier portability of Linux-based .NET applications to microcontrollers, bridging the gap between desktop development and embedded hardware.
NXP provides broad hardware support for Apache NuttX across its MCU portfolio, including i.MX RT, LPC, and Kinetis series. NuttX runs on these platforms for real-time and industrial applications, with active community-driven board support and BSP contributions.
Seeed Studio actively supports Apache NuttX on its open hardware platforms such as XIAO and Wio series. With strong community collaboration, Seeed enables rapid prototyping and IoT development using NuttX in edge and embedded systems.
NuttX powered a robotic system aboard the Japanese lunar exploration mission in 2024, highlighting the RTOS's reliability in extreme environments where failure is not an option.
Google used NuttX in its ambitious modular phone project, an early effort to bring a hardware-modular smartphone to market.
Motorola deployed NuttX in Moto Z smart accessories (Moto Mods), enabling modular hardware extensions such as cameras, projectors, and speakers to communicate intelligently with the host device.
CU InSpace uses NuttX to run their rocket telemetry tracker, flown multiple times up to 30,000ft. NuttX is also used for all of the control logic for the InSpace hybrid rocket fill and ignition ground control systems, which is safety critical rocketry software.
The widely adopted micro-ROS robotics framework was initially developed directly on NuttX before expanding to support other RTOS platforms, cementing NuttX's role as the foundational platform for bringing ROS 2 to microcontrollers.
