Tasmota is a monolithic firmware application for ESP8266/ESP32 microcontrollers that enables local control of IoT devices via MQTT, HTTP, Serial, or KNX protocols. It provides a web-based configuration interface, OTA update capabilities, automation features (timers/rules), and runtime extensibility through the Berry scripting language. The architecture integrates numerous hardware drivers, networking stacks, GUI components (LVGL), audio processing, and cryptographic implementations into a single firmware image built with PlatformIO. Key entry points include the web server for configuration, MQTT client for telemetry/control, serial command interface, OTA update mechanism, and hardware abstraction layer for peripherals. Data flows involve configuration persistence, sensor telemetry transmission, command reception for actuator control, and firmware update streams.
This is a large polyglot monorepo for WiFi-based human sensing (WiFi-DensePose) that turns commodity WiFi routers into spatial intelligence systems. It captures Channel State Information (CSI) from ESP32 nodes to detect presence, estimate 17-keypoint body pose, measure breathing and heart rate, and track movement through walls without cameras or wearables. The system integrates deeply with Home Assistant via MQTT and Matter, provides a HomeKit bridge, and exposes multiple surfaces: a Rust backend workspace (v2/crates) with 50+ crates for signal processing, privacy shielding (VEIL/BFLD), pose physics, and home automation; Python bindings (PyO3) for ML training and inference; TypeScript CLI and MCP tools for AI agent integration; ESP32-C6/S3 firmware with adaptive sensing; React Native mobile app; Lit-based dashboard; and Tauri desktop app. The architecture is event-driven with a streaming engine, coherence-gated privacy layers, and deterministic verification via SHA-256 golden files. The codebase is heavily ADR-driven with extensive test coverage including cross-language parity gates. While primarily an application, it also contains substantial research code (benchmarks, physics simulations, SOTA surveys) and is best described as a research-informed production platform.
iPXE is an open-source network boot firmware that provides a full PXE implementation with enhanced capabilities. It operates as a pre-boot environment, replacing or supplementing traditional BIOS/UEFI PXE ROMs. The firmware supports booting over HTTP/HTTPS, iSCSI, Fibre Channel over Ethernet (FCoE), AoE, InfiniBand, and wireless networks, with full TLS 1.2 support including modern cipher suites (ECDHE, GCM, X25519, P-256/P-384). It includes a built-in command-line shell, scripting engine, interactive menus, and extensive hardware drivers for network cards, USB controllers, and storage devices across x86, ARM, RISC-V, LoongArch, and s390x architectures. The architecture is modular and table-driven: drivers, protocols, commands, and startup functions are registered via compile-time tables (e.g., `__pci_driver`, `__net_protocol`, `__command`), enabling a highly configurable build. The core uses an interface/refcount pattern for object-oriented-like composition, with reference-counted objects and asynchronous data transfer via `struct interface`. The codebase is well-structured with clear separation between architecture-specific code (under `src/arch/`), platform interfaces (EFI, BIOS, Linux userspace, SBI), and generic core logic. A comprehensive test suite (over 50 unit tests plus Wycheproof vectors) validates cryptographic primitives, network protocols, and data structures. Key entry points include `src/core/main.c` (generic boot flow), EFI application entry (`efiprefix.c`), BIOS PXE ROM entry, and Linux userspace binary. The firmware is typically embedded into option ROMs, UEFI drivers, or bootable images. External dependencies are minimalβthe firmware runs directly on hardware or under a hypervisor, relying only on platform firmware services (UEFI, BIOS, SBI) for low-level operations.
This repository contains the Momentum firmware for a multi-protocol wireless device (Flipper Zero). It implements a modular embedded operating system with hardware abstraction layer (HAL) for STM32 microcontrollers, supporting NFC, Sub-GHz, infrared, iButton, GPIO, Bluetooth, and USB protocols. The firmware features a scene-based UI framework, service-oriented architecture (power, storage, GUI, notification), plugin system for extensibility, and JavaScript scripting capability. Key architectural patterns include resource management via furi_record, event-driven communication using Furi's kernel primitives, and consistent GUI module design. The codebase demonstrates strong embedded systems craftsmanship with clear separation of concerns, reusable components, and active maintenance.
ElegantOTA is an Arduino library that provides a polished web-based portal for over-the-air (OTA) firmware and filesystem updates on wireless microcontrollers (ESP8266, ESP32, RP2040+WiFi, RP2350+WiFi). The library exposes a minimal C++ API (begin, loop, callbacks) and serves a gzipped HTML/CSS/JS portal at /update. It handles the entire OTA workflow: capacity check before upload, MD5 integrity verification, chunked writing, progress reporting, and automatic reboot. The code is well-structured with platform-specific abstractions via preprocessor macros, supporting both synchronous (WebServer) and asynchronous (ESPAsyncWebServer) modes. The repository includes comprehensive CI testing across multiple boards and toolchains (Arduino CLI, PlatformIO), a CLA assistant, and stale issue management. The library is actively maintained with recent bug fixes (MD5 verification, RP2040 space calculation) and a clear upgrade path to a commercial Pro version.
This repository provides ESPHome components for integrating the Xiaomi Mijia Bedside Lamp 2 with Home Assistant. It enables full control of the lamp's RGBWW LEDs, front panel touch interface (buttons and slider), and illumination through custom ESPHome components. The firmware replaces the original Xiaomi firmware to eliminate cloud dependencies and enable local-only control. The architecture follows ESPHome's component model with hardware abstraction layers (HAL) for light control and front panel I2C communication. Key features include individually controllable front panel LEDs, light presets with group support, disco mode for immediate updates, night light calibration, and smooth color transitions with hardware-aware handling of low-brightness limitations. The design emphasizes separation of concerns, with distinct modules for color handling, state management, and event processing. Notable technical implementations include a Chain of Responsibility pattern for handling different light modes (off, night, RGB, white), a flexible preset system with group-based activation, and specialized transition handling that avoids attempting smooth color changes at very low brightness levels where the hardware cannot perform them reliably. The firmware maintains compatibility with modern ESPHome versions through active maintenance and timely adaptation to API changes.
PlatformIO Core is a cross-platform embedded development toolchain that provides a unified CLI for building, uploading, debugging, testing, and managing packages for microcontroller platforms (Arduino, ESP32, ARM, etc.). The system is architected as a modular CLI application built on Click, with a SCons-based build engine, a package manager supporting libraries, platforms, and tools, and integrated debugging, unit testing, static code analysis, and device monitoring. Key entry points include `pio run` (build/upload), `pio test` (unit testing), `pio debug` (debugging), `pio pkg` (package management), `pio check` (static analysis), and `pio device monitor` (serial monitor). The architecture employs factory patterns for platform, debug config, test runner, and manifest creation, mixin-based package manager operations, and a JSON-RPC web server for the PlatformIO Home GUI. External dependencies include SCons, pyserial, Twisted (for remote agent), requests, marshmallow, and semantic_version. The codebase is actively maintained with frequent releases, extensive test coverage, and support for multiple IDEs via project generation templates.
Ghidra Firmware Utilities is a Ghidra plugin extension that provides file system loaders and custom binary loaders for analyzing PC firmware. It supports FMAP, Intel Flash Descriptor, Coreboot CBFS, PCI Option ROMs (legacy x86 and UEFI), UEFI Firmware Volumes with nested FFS files/sections, and Terse Executable (TE) images. The extension also includes a UEFI helper script that automates analysis tasks such as fixing entry point signatures, propagating UEFI global variable types, and locating known GUIDs. The code is well-structured, using factory patterns for parsing variant formats and Ghidra's file system interfaces. It relies on a native C library for EFI/Tiano decompression via JNI.
This is the Asahi Linux fork of U-Boot, the universal bootloader, primarily targeting Apple Silicon Macs. The codebase is a full-featured bootloader with support for multiple architectures (ARM, RISC-V, x86, MIPS, PowerPC, etc.), a driver model (DM) for hardware abstraction, device tree support, SPL/TPL multi-stage boot, and a rich command-line interface. It includes bundled libraries for networking (lwIP), cryptography (mbedTLS), and compression (zstd, lzma). The Asahi-specific modifications add support for Apple's M1/M2 SoCs, including early boot initialization, memory mapping, and device tree bindings. The repository is actively maintained with recent commits and a responsive issue tracker.
OpenFFBoard is an open-source force feedback interface board designed for simulation devices like steering wheels and joysticks. The firmware provides force feedback effects via USB HID to gaming/simulation software while processing inputs from encoders, analog sources, buttons, and CAN bus. It features a modular architecture based on FreeRTOS with TinyUSB USB stack, supporting multiple motor drivers (PWM, TMC4671, ODrive, VESC, RMD) and a command interface for runtime configuration. Settings persist to flash/EEPROM via an abstraction layer with automatic registration. The project targets STM32 microcontrollers (F407VG, F407VG_DISCO, F411RE) and includes extensive hardware abstraction layers, plugin architecture for extensibility, and clean C++ wrappers for FreeRTOS primitives.
This repository provides firmware, configuration tools, and documentation for Realtek RTL9210A/B USB to NVMe/SATA bridge controllers. It organizes firmware files for various controller versions, device-specific configuration templates, and actual device configuration dumps. The included dump2cfg.py tool enables users to convert device dumps to configuration files. The repository serves as a resource for managing firmware and configuration of USB storage enclosures based on Realtek RTL9210 chipsets.
IronOS is embedded firmware for a family of portable soldering irons (TS100, TS80/P, TS101, Pinecil, Pinecil V2, MHP30, Sequre S60/S60P/T55/S99). The firmware runs on three distinct SoC architectures β STM32F103 (Cortex-M3), GD32VF103 (RISC-V), and Bouffalo BL702 (RISC-V) β behind a single board-support abstraction. It implements PID temperature control of the soldering tip via PWM, thermocouple uV-to-temperature conversion with cold-junction compensation, USB-PD (FUSB302/FUSB302B/HUB238/FS2711) and Quick Charge 3.0 power negotiation, accelerometer/hall-effect-based motion detection for sleep, an OLED menu UI, and a full BLE GATT stack on Pinecil V2. The core control loop is: ADC samples tip thermocouple voltage (with PWM holdoff timing) -> gain/op-amp compensation and lookup-table interpolation to Celsius -> PID controller -> PWM duty to the heating element, with input voltage/current monitoring for wattage budgeting and thermal runaway protection.
CherryUSB is a portable, high-performance USB device and host stack for embedded systems (MCUs, RTOS). It provides a full-featured USB 2.0/3.0 stack with support for many USB class drivers (CDC ACM/ECM/NCM, HID, MSC, Audio, Video, DFU, MIDI, RNDIS, MTP, ADB, Bluetooth, vendor serial, gamepad, etc.) on both device and host sides. The architecture separates OS abstraction (OSAL), hardware controller drivers (DWC2, EHCI, XHCI, OHCI, MUSB, ChipIdea, FSdev, and many vendor-specific ports), and class implementations. It includes extensive demo templates, platform integrations (FatFS, lwIP, LVGL, UF2 bootloader), and tooling (Python test scripts, UF2 conv). The stack is used in commercial products and is registered in several embedded package ecosystems (RT-Thread, ESP-IDF, Bouffalolab). Key entry points are usbd_initialize() and usbh_initialize() with class-specific initialization routines in the demo folder. The codebase is large and well-organized but contains legacy ports and some vendor-specific glue code that may require adaptation.
This is the main OpenWrt build system and firmware distribution repository. It is not a single application but a complete, cross-compiling build system for producing embedded Linux firmware images targeting a vast array of routers, access points, and other network-attached devices. The repository consists of a top-level Makefile, a package directory tree (kernel modules, userspace utilities, libraries, firmware blobs), a kconfig-based configuration system, kernel patch sets, and numerous build helper scripts. In production, users clone this repo, run `make menuconfig` to select target hardware and packages, then `make` to produce a flashable firmware image (e.g., sysupgrade or factory image). The primary data flow involves downloading upstream source tarballs, applying OpenWrt-specific patches, compiling packages and the Linux kernel using a custom toolchain, and assembling the firmware image via mtd-utils and image generation scripts. External dependencies include the Linux kernel source, GNU toolchain (gcc, binutils, musl/glibc), and hundreds of upstream projects (hostapd, dnsmasq, openssl, etc.). The architecture is a monolithic build system with modular package definitions, enabling high customization through a kconfig frontend. While the build system is the core, the repo also contains many small userspace tools (mtd, swconfig, procd, netifd, uci) that run on the target device.
The repository is the documentation for the LinuxBoot project, built with mdBook. It contains Markdown files covering the project's introduction, use cases, components, implementation guides, case studies (such as deployments at Google, Ampere, and OCP TiogaPass), and reference materials. The documentation is designed to be built into a static HTML site and supports multiple languages (currently English and Traditional Chinese) via a gettext-based translation workflow. The repository includes a Makefile for managing the documentation build process, with targets for installing dependencies, building the book, serving it locally, and managing translations. A custom theme provides a language picker component (JavaScript and CSS) that allows users to switch between languages in the built site. Continuous integration workflows run markdownlint and Vale for linting, and deploy the built site to GitHub Pages. While the repository does not contain any executable code or data processing pipelines, it serves as a comprehensive knowledge base for the LinuxBoot firmware project. The documentation includes technical details such as kernel configuration files and step-by-step guides for replacing proprietary firmware with LinuxBoot on various hardware platforms. The project is actively maintained, as evidenced by recent commits and ongoing issue activity. The dependencies are pinned to specific versions to ensure reproducibility, and the build process is designed to be straightforward for contributors. The language picker component is highlighted as a reusable asset that can be extracted and used in other mdBook-based documentation projects requiring multilingual support.
This is an embedded firmware application for ESP32-based AI voice assistant devices. The code implements a full voice interaction pipeline: microphone input via I2S/PCM, Opus audio encoding/decoding, WebSocket/MQTT communication with a server, wake-word detection (ESP-SR), an LVGL-based user interface with emoji and chat display, an MCP (Model Context Protocol) server exposing device tools to the AI, and support for OTA updates. The architecture is a monolithic FreeRTOS application using ESP-IDF, with a strong board abstraction layer that allows support for over 130 hardware variants (ESP32-S3, C3, C6, P4, etc.) with different audio codecs, displays, cameras, and network modules (WiFi, 4G, Ethernet). The codebase is actively maintained with regular commits and a large community, but suffers from significant code duplication across board definitions, especially in power management and display initialization, which increases maintenance burden.
This repository is a comprehensive bare-metal microcontroller programming guide, providing step-by-step examples from minimal firmware to a full embedded web server with a device dashboard. The code targets ARM Cortex-M and RISC-V microcontrollers (STM32, TI TM4C, RP2040, ESP32-C3, nRF52840, etc.) and uses only GCC, a datasheet, and the Mongoose networking library. The architecture is bare-metal, single-threaded with an event loop in the webserver step; it demonstrates direct register manipulation, interrupt handling, UART, SysTick, clock configuration, printf retargeting via newlib syscalls, CMSIS integration, and Ethernet with built-in TCP/IP (MIP). The repository also includes reusable project templates for blinky, CLI, and LittleFS filesystem. Despite being educational, the code is production-quality and follows embedded best practices such as non-blocking timers, hardware abstraction layers (hal.h), and modular startup code.
Flix is an open-source ESP32-based quadcopter project built from scratch. The repository contains flight controller firmware, a Python control/telemetry library, C++ utilities for log conversion, simulation assets, and extensive documentation. It is primarily an application repo, though it also includes CAD models and data-conversion tools that serve as supporting assets. At runtime, the ESP32 firmware reads IMU data, estimates attitude, and drives motors, communicating via MAVLink and ESP-NOW for telemetry and control. The Python library (tools/pyflix/flix.py) provides an observable API for interacting with the vehicle, and CLI tools convert flight logs from CSV to MCAP and ULog formats for analysis in standard robotics tooling. A Gazebo simulation and a Python test harness validate behavior without hardware. Architecture is a multi-part monorepo: firmware, Python tools, C++ tools, docs, and 3D-printable mechanical parts. External dependencies include the Arduino ESP32 core, MAVLink, ESP-NOW, Gazebo, and custom math classes. The code is generally well-structured, but some data flow relies on global variables and hardware-specific assumptions, limiting reuse outside the ESP32 ecosystem. The project appears actively maintained with CI workflows, but dependency pinning and tight hardware coupling create moderate drift risk.
This is the U-Boot bootloader fork for NXP i.MX SoCs, providing hardware initialization, boot loading, and driver support for a vast range of ARM, RISC-V, and other embedded boards. It implements the U-Boot driver model, SPL/TPL boot stages, verified boot, and extensive command-line interface for embedded development and debugging. The codebase is a mature, production-grade firmware project with support for hundreds of SoCs and boards, particularly NXP i.MX, TI K3, Rockchip, and Renesas platforms. It features a modular driver model, device tree support, secure boot capabilities, comprehensive testing infrastructure, and image generation tools like binman. While the repository is well-maintained, it contains legacy code and significant duplication across board-specific files.
micropython-ulab is a C library that provides a subset of NumPy and SciPy functionality for MicroPython and CircuitPython on microcontrollers. It implements a multi-dimensional ndarray type with broadcasting, universal functions, linear algebra (Cholesky, eig, inv, QR), FFT, signal processing (sosfilt), numerical integration, optimization, random number generation, and file I/O. The library is designed for performance and memory frugality, using compile-time feature flags (ulab.h) to trim flash usage. Key entry points include ulab.numpy (array creation, math, stats, linalg, fft, io), ulab.scipy (integrate, linalg, optimize, signal, special), and utils (buffer conversion, spectrogram). The architecture is modular with separate C modules for each functional area, a reusable user module for custom extensions, and extensive test coverage for 1Dβ4D arrays and complex numbers. The library is actively maintained with frequent releases, but some SciPy functions remain incomplete and the codebase has repetitive dtype-dispatch macros that increase maintenance burden.