Skip to content

Latest commit

 

History

History
1073 lines (1005 loc) · 40.7 KB

File metadata and controls

1073 lines (1005 loc) · 40.7 KB
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 RTOS

Market Share & Ecosystem

Apache NuttX powers devices across aerospace, consumer electronics, IoT, and industrial systems. Explore the platforms and companies building on the RTOS.

1000+ SKUs running NuttX (Xiaomi alone)
4+ Major industry verticals
2024 Used in Japanese lunar mission
Apache Software Foundation Apache Software Foundation project
Consumer Electronics & Wearables

Consumer Electronics & Wearables

High-volume audio, wearables, and large-scale consumer ecosystems.

Sony
Segment Audio & Edge Sensing
Board Support Package

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.

Audio Edge AI Sensing
Fitbit
Segment Wearables
Smartwatch Firmware

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.

Wearables Sensors Health
Xiaomi
Segment Consumer Ecosystem
Broad Device Portfolio

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.

Smart Devices IoT EV
Drones, Robotics & Automotive

Drones, Robotics, and Automotive

Mission-critical mobility, flight control, and automotive ECUs.

PX4
Segment UAV Flight Control
Autopilot RTOS

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.

Drones UAV Robotics Real-Time
ArduSimple
Segment RTK GNSS
Precision Positioning

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.

GNSS RTK Robotics Autonomous Systems
JAE
Segment Avionics & Flight Control
Flight Control Hardware

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.

Avionics Flight Control STM32H7 PX4
Li Auto
Segment Automotive
Electronic Control Units

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.

Automotive EV Safety-Critical
IoT, Embedded & OS Integrations

IoT, Embedded, and OS Integrations

Connected platforms, robust APIs, and SIL0 industrial controls.

Samsung
Segment IoT OS
Base Kernel

Samsung uses NuttX as the underlying kernel for TizenRT, their IoT operating system deployed heavily across connected and embedded devices in their product lineup.

OS Integration Kernel IoT
Espressif
Segment Microcontrollers
Platform Support

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.

Hardware IoT Wi-Fi BLE
Elektroline
Segment Industrial Control
SIL0 Environments

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.

Industrial SIL0 LVGL CAN
Meadow
Segment Developer Platforms
.NET Framework Support

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.

.NET POSIX Platform
NXP
Segment MCU Portfolio
Hardware Support

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.

Hardware MCU Real-Time Industrial
Seeed Studio
Segment Open Hardware
Platform Support

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.

Open Hardware IoT Prototyping Edge
Aerospace, Space & Historical

Aerospace, Space, and Historical Uses

Mission-critical boundaries and notable technology projects.

Japanese Lunar Mission
Segment Space Exploration
Robotic 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.

Aerospace Space Mission-Critical
Google
Segment Mobile
Historic Innovation

Google used NuttX in its ambitious modular phone project, an early effort to bring a hardware-modular smartphone to market.

Mobile Modular Google
Motorola
Segment Smart Accessories
Historic Innovation

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.

Mobile Accessories Motorola
CU InSpace
Segment Aerospace
Rocket Systems

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.

Aerospace Rocketry Safety-Critical Telemetry
Robotics Frameworks

Robotics Frameworks

Foundational contributions to the open-source robotics ecosystem.

micro-ROS
Segment Robotics Framework
ROS 2 on Microcontrollers

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.

Robotics ROS 2 micro-ROS Framework