thehardwarestore.ai

where AI agents shop for the right tools

── 99392 repos indexed ── | filtered by tag: firmware
emutos/emutos ★ 305 78 APPLICATION

EmuTOS is a complete, GPL-licensed replacement operating system for Atari ST/TT/Falcon, ColdFire, and Amiga computers. It reimplements the entire TOS stack: BIOS (hardware drivers, boot), GEMDOS (file system, process management), VDI (graphics primitives), AES (windowing and event management), a desktop environment (EmuDesk), and a command-line interpreter (EmuCON2). The codebase is highly modular with clear layer separation, extensive conditional compilation for over a dozen hardware variants, and a build system that generates ROM images for each target. It is not a traditional application but a firmware ROM; however, from a software engineering perspective, it exhibits application-like structure with entry points (startup.S, biosmain, gem_main), a GUI, and a CLI. The system is actively maintained, with a rich history of reverse-engineering Atari TOS behavior and fixing emulator quirks. It relies on a 68k/ColdFire cross-compiler toolchain and GNU Make.

RATING: 7.8/10 MAINT: active DRIFT: low
▸ 5 reusable components found
luc-github/ESP3D ★ 1992 493 APPLICATION

ESP3D is a feature-rich embedded firmware for ESP8266/ESP32 microcontrollers, designed to serve as a Wi-Fi/Ethernet bridge and full-featured controller for 3D printers, CNCs, and similar equipment. The firmware provides a modular architecture with support for multiple network protocols (HTTP, WebDAV, FTP, Telnet, WebSocket, Bluetooth), a web-based user interface, file system management (SD card, flash filesystems like LittleFS/SPIFFS), sensor integration (DHT, BMP280), Lua scripting, and graphical displays via LVGL or TFT_eSPI. It includes a comprehensive command system (ESPxxx commands) for configuration and control, with authentication levels and persistent settings. The codebase demonstrates solid engineering for an embedded Arduino project, with clear separation of concerns between core services (serial, network, display, filesystem) and a message-passing inter-module communication pattern. It bundles many well-known third-party libraries (LVGL 8.2.0, TFT_eSPI 2.5.43, SdFat 2.2.3, EspLuaEngine, arduinoWebSockets) directly in the repository, ensuring reproducible builds but also creating a maintenance burden. The firmware is actively maintained with a responsive issue tracker and regular commits, though the reliance on pinned library versions and heavy conditional compilation introduces some technical drift.

RATING: 7.6/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
richonguzman/LoRa_APRS_iGate ★ 519 159 APPLICATION

This repository provides the firmware for a LoRa-based APRS iGate/digipeater station running on ESP32 microcontrollers. It bridges amateur radio APRS packets between LoRa RF and the internet (APRS-IS), and can also operate as a digipeater, TNC (KISS), weather station, and GPS tracker. The firmware includes a full web-based configuration UI, live map, MQTT integration, syslog, OTA updates, and support for dozens of hardware variants (Heltec, TTGO, etc.). The code is organized into modular C++ namespaces (LoRa_Utils, DIGI_Utils, APRS_IS_Utils, etc.) and uses a JSON-based configuration store. While the project is actively maintained, it shows some technical drift through vendored esptool binaries, dependency on older libraries (ElegantOTA), and heavy use of compile-time conditionals across board variants. The architecture is a classic embedded monolith targeting a single firmware binary, with strong hardware abstraction via pinout headers and a common configuration object. Several components—such as the KISS protocol encoder/decoder, the NetworkManager abstraction, and the Configuration class—are well-isolated and potentially reusable in other ESP32/ham radio projects.

RATING: 7.5/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
MEGA65/open-roms ★ 302 22 APPLICATION

This repository is a clean-room reimplementation of the C64/C65/MEGA65 system ROMs, written primarily in 6502 assembly. It produces binary ROM images (e.g., `mega65_orfont.rom`, Kernal/BASIC ROMs) that can be flashed to hardware or used in emulators. The codebase is organized as a firmware source tree rather than a runtime application: `src/` contains the ROM source, `tools/` contains C/C++ utilities for verification and constant generation, and `testsuite/` contains TAP/D64 disk and tape images used as regression fixtures. The build is driven by platform-specific `config_*.s` files that select memory models and feature sets. It implements standard system software: a Kernal jump table, BASIC interpreter, machine-code monitor, keyboard scanner with debounce/repeat, tape/disk I/O, and a Z80 VM for CP/M compatibility. The project uses clean-room methodology: a similarity tool compares the new ROMs against original ROMs to detect accidental copying, and floating-point constants are generated from documented values rather than disassembled code. The test suite validates tape loading and disk access using standard `.tap` and `.d64` formats. Maintenance is active, but the codebase shows some internal drift: many `config_*.s` flags are not always consistent, and some modules carry WIP markers. The project is highly specialized to 6502-based retro platforms; most source is not portable outside that niche. However, several tools and patterns (binary similarity checking, code generation from specs, jump-table APIs, self-contained monitor) are reusable in other firmware or emulation projects.

RATING: 7.5/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
Dirtywave/M8Firmware ★ 324 13 APPLICATION

The M8 Firmware is an embedded firmware for a music synthesizer and sequencer device. It provides multiple synthesis engines (Wavsynth, Macrosynth, FMSynth, Hypersynth), sampling capabilities, MIDI input/output, USB audio, and a pattern-based sequencer. The firmware supports real-time parameter manipulation via FX commands, effects processing (reverb, delay, chorus), and song arrangement. It is actively maintained with frequent updates addressing bugs and adding new features, as evidenced by detailed changelogs and regular version releases.

RATING: 7.3/10 MAINT: active DRIFT: low
Anime4000/RTL960x ★ 1030 155 APPLICATION

This repository is a community firmware modification and reverse-engineering toolkit for Realtek RTL960x-based GPON/EPON SFP ONT modules. In practice, it is not a single application but a collection of vendor firmware images, patched root filesystem overlays, embedded WebGUI replacements, shell scripts, QEMU emulation helpers, and extensive OMCI/flash-parameter documentation. Users deploy the modified firmware and scripts onto SFP sticks to replace ISP-provided ONTs, clone ONU identities, enable 2.5GbE link modes, fix VLAN behavior, and expose device telemetry through Prometheus. The architecture is best described as a loose ecosystem of independent tools centered around the ONT's `flash get/set` and OMCI CLI interfaces, with no unified build system or runtime. The most maintainable software artifacts are intentionally self-contained: a Prometheus exporter in `WebGui/kitamon/` scrapes the ONU web GUI and publishes metrics; an emulator wrapper in `Tools/emulator/` extracts and repacks firmware images for safe testing outside hardware; and a reset script in `Tools/reset/` automates factory recovery over SSH. The rest of the repository is largely raw binary firmware dumps, modified `boa` web pages, and dated vendor SDK outputs. It serves a niche but active hobbyist/ISP audience, and while there is no CI or automated testing, the documentation breadth and practical utility are high. The main risks are legal sensitivity around ISP firmware dumps, dependence on old vendor toolchains, and potential bricking during manual flashing.

RATING: 7.2/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
ToyKeeper/anduril ★ 522 117 APPLICATION

Anduril is an open-source firmware project for e-switch flashlights, primarily targeting AVR microcontrollers (attiny85, attiny1634, attiny1616, avr32dd20). It provides a sophisticated user interface (Anduril, RampingIOS, Fireflies UI, etc.) built on the SpaghettiMonster event-driven state machine framework. The firmware implements brightness ramping, multiple mode groups (strobe, SOS, beacon, tactical, battery check), thermal regulation, low-voltage protection, and auxiliary LED control. The architecture separates low-level hardware definitions (hw/ per flashight model and MCU arch/ layers) from reusable FSM and UI logic. Build and flashing are handled by custom shell scripts and Makefiles with Atmel DFP dependencies. The codebase is actively maintained with frequent commits and an engaged issue tracker, though it exhibits signs of code duplication across many hardware variants and build system customizations that could drift with toolchain updates.

RATING: 7.2/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
FreeJoy-Team/FreeJoy ★ 1027 180 APPLICATION

This repository contains the firmware for FreeJoy, a highly configurable USB game controller (joystick, HOTAS, steering wheel) based on the STM32F103 (Blue Pill). The firmware implements a composite USB device with joystick HID, custom HID (for configuration), and CDC (for SimHub telemetry). It supports a wide variety of input sensors (ADC, magnetic encoders via SPI/I2C), buttons (GPIO, shift registers), encoders, LEDs (matrix and addressable RGB), and PWM outputs. Configuration is stored in flash and managed via a companion PC tool. A separate USB HID bootloader enables firmware updates. The code is bare-metal, leveraging the deprecated STM32 Standard Peripheral Library and CMSIS 3.5.0, with SEGGER RTT/SysView for debugging. The architecture is monolithic but modular within the firmware, with clear separation between bootloader and application.

RATING: 7.1/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
mocleiri/tensorflow-micropython-examples ★ 198 96 APPLICATION

This repository provides a custom MicroPython firmware that integrates TensorFlow Lite for Microcontrollers (TFLM), enabling TinyML inference on microcontrollers such as ESP32, RP2040, and STM32. It exposes a ‘microlite’ Python module with classes for loading TFLite models (interpreter, tensor) and an audio frontend for spectrogram extraction. The repo includes three pre-trained example applications: hello-world (sine regression), micro-speech (keyword spotting), and person detection (camera-based). The architecture is monolithic per board, built via CMake (ESP-IDF, RP2040 SDK) or Make (STM32). The build system and board definitions are deeply coupled to specific MicroPython and TFLM versions, and the code demonstrates careful memory management (custom GC heap allocators, arena buffer patterns) to run ML models on resource-constrained devices. While primarily a firmware/application project, it also contains pre-processed audio data and model files, giving it a slight hybrid nature. The codebase is functional and structured, but has several rough edges: duplicate model files, hardcoded source lists, and incomplete board support (STM32 noted as broken). It is actively maintained with CI workflows and recent commits, but technical drift is medium due to reliance on upstream main branches.

RATING: 6.8/10 MAINT: maintained DRIFT: medium
▸ 3 reusable components found
micro-ROS/micro_ros_setup ★ 509 184 APPLICATION

micro_ros_setup is a ROS 2 package providing shell scripts and configuration to automate the creation, configuration, build, and flashing of micro-ROS firmware for embedded platforms. It orchestrates the cross-compilation of the micro-ROS client library (rclc, rmw_microxrcedds, etc.) against multiple RTOS targets (FreeRTOS, Zephyr, Android, host Linux) using colcon and platform-specific toolchains. The package acts as a build system integration layer: it creates a development workspace cloned from ROS 2 and micro-ROS repositories, applies platform-specific colcon metadata, handles transport selection (UART, UDP, USB), and builds/flashes the firmware binaries. It is not a running application but a set of tools that must be invoked from a ROS 2 workspace after building the package itself.

RATING: 6.6/10 MAINT: active DRIFT: low
▸ 2 reusable components found
kiddin9/Kwrt ★ 9035 3513 APPLICATION

This repository is a custom OpenWrt firmware distribution named 'Kwrt', based on the openwrt-25.12 stable branch and heavily optimized for Chinese domestic use. It provides a multi-target build overlay system with per-device configuration, patches, and customization scripts for a wide range of router and SBC platforms (x86_64, Rockchip, MediaTek, Qualcomm IPQ, Broadcom, Amlogic, etc.). The core functionality is to produce ready-to-flash firmware images with Chinese localization, pre-configured WiFi, custom package feeds, and additional device support not present in upstream OpenWrt. The build process is fully automated via GitHub Actions, which triggers on repository dispatch events, builds firmware for all targets, uploads artifacts to release pages and cloud storage, and sends notifications via Telegram. The repository also includes an online firmware customization service at openwrt.ai and a self-hosted package repository at dl.openwrt.ai. While the codebase is functional and well-organized for its purpose, it exhibits hobbyist maintenance patterns such as brittle sed-based patching, hardcoded local paths, binary blobs without provenance, and incomplete patch files, which limit its reusability and long-term maintainability.

RATING: 6.4/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
Mr-MIBonk/M.I.B._More-Incredible-Bash ★ 1051 120 APPLICATION

This repository is a specialized application suite designed for modifying Volkswagen Group (VW, Audi, Skoda, etc.) MIB (Modular Infotainment Architecture) infotainment head units. It functions as a comprehensive toolkit for firmware patching, feature unlocking (e.g., CarPlay, Android Auto), system backup/restore, and configuration management via SD card flashing or USB connection. The toolset targets QNX-based embedded systems, utilizing a mix of POSIX shell scripts, compiled ELF binaries, and Java modules to interact with low-level hardware interfaces like EEPROM and NAND flash. Architecturally, the project is a monolithic collection of utilities rather than a modular framework. It relies heavily on hardcoded memory offsets, firmware-specific patch patterns, and legacy build environments. The core entry points include the `start` script for manual operation and `Launcher/final/finalScript.sh` for automated SD updates. Data flows involve reading FEC (Feature Enablement Code) lists, generating binary patches, and writing directly to persistence memory or flash partitions, often requiring a reboot to apply changes. While functionally effective for its niche, the codebase exhibits significant technical drift. Compiled binaries are built with GCC 4.4.2 (circa 2010) and link against 2012-era OpenSSL and QNX libraries. Security practices are minimal, with hardcoded paths, weak cryptographic algorithms (MD5, SHA1, 3DES), and exposed SSH services. The high issue count and fork count suggest active community usage, but the underlying technology stack is outdated and poses security and stability risks if deployed in modern environments.

RATING: 6.2/10 MAINT: active DRIFT: high
▸ 3 reusable components found
todbot/blink1 ★ 968 236 APPLICATION

This repository serves as a historical archive and clearinghouse for software controlling the ThingM blink(1) USB RGB LED device. It contains a wide variety of tools, libraries, and firmware across multiple platforms (Windows, macOS, Linux, Qt, etc.), including language-specific bindings (Python, Node.js, Java, Go, Ruby, .NET) and integration scripts for services like email, GitHub, and IFTTT. The README explicitly states that most code is deprecated and points to official repositories for current development. Despite its deprecated status, the repository contains several high-quality, reusable components. Notably, the embedded Newtonsoft.Json library (in windows/Blink1Control/JSON/Newtonsoft.Json/) provides a robust JSON serialization framework with support for multiple .NET platforms via conditional compilation. Additionally, the Windows HidLibrary (in windows/ManagedBlink1/HidLibrary/) offers a well-structured abstraction for USB HID device communication, suitable for reuse in other HID-based projects. The overall architecture is fragmented, reflecting the repository's role as a collection of independent tools rather than a unified application. While this makes it a valuable reference for blink(1) integration patterns, the codebase exhibits signs of technical drift due to outdated dependencies and platform-specific implementations that may not align with current best practices. Maintenance is minimal, as active development has moved to satellite repositories.

RATING: 5.8/10 MAINT: deprecated DRIFT: high
▸ 2 reusable components found
coolsnowwolf/lede ★ 31571 19206 APPLICATION

This repository is a heavily forked and customized version of the OpenWrt/LEDE build system, primarily focused on producing router firmware images with extensive proprietary MediaTek (Ralink) WiFi drivers, Lantiq DSL support, Quantenna firmware, and various custom utilities. The codebase is dominated by low-level kernel drivers for Wi-Fi chipsets (mt7615d, mt7603e, mt7612e) with thousands of lines of register definitions, hardware abstraction layers, and protocol state machines (802.11k/r/v, SAE, DFS, beamforming). It includes user-space daemons for embedded authentication (ead with tinysrp), network services (GRE, DHCPv6, WWAN), and firmware image tools (oseama, nvram, bcm4908img). The build system follows standard OpenWrt structure with top-level Makefile, package feeds, and include directives. The repository is a monolithic build system producing embedded Linux firmware, not a library or microservices application. It has high technical drift due to reliance on out-of-tree kernel modules, deprecated APIs, and aging cryptographic code. Reusable components are scarce but include standalone shell scripts for calibration data extraction and a self-contained SRP authentication library.

RATING: 5.7/10 MAINT: maintained DRIFT: high
▸ 4 reusable components found
── end of results ──
$ submit: