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.
This repository is a bare-metal custom bootloader and graphical recovery environment for the Nintendo Switch (Tegra T210/T210B01). It boots Horizon OS, Linux4Tegra, and third-party payloads by decrypting and patching the encrypted HOS boot chain (package1, package2, package3), deriving console keys from TSEC/EKS data, and applying version-specific binary patches. It also provides emuMMC creation and migration, eMMC and SD card tools, USB gadget modes (mass storage and HID), AutoRCM, fuel gauge/thermal diagnostics, and a full hardware bring-up path including display, touch, Joy-Con input, DRAM training, and power management. The code clearly reflects the bootloader's actual production role: a user-triggered payload running from RCM on real Switch hardware, with a text TUI in the main bootloader and a separate LVGL-based graphical frontend called Nyx. Architecturally, the repo is organized into a hardware abstraction layer called BDK (Board Development Kit), the bootloader core, the Nyx GUI application, and dynamically loadable ELF modules for DRAM training and SDRAM LP0 sleep state. The BDK provides drivers for SoC peripherals, power management ICs, storage controllers, the security engine, USB, input, and display, all written as bare-metal C with direct MMIO register access and no OS dependencies. The bootloader uses an INI-based configuration system, a small graphics console, and a module loader that can load ELF shared objects from SD or eMMC. Nyx is a separate application built on a heavily customized fork of LittlevGL v5, with custom themes, fonts, resource packing, and hardware tools. The code demonstrates strong embedded systems skill: meticulous hardware register definitions, retry and error-counting logic in storage drivers, cryptographic key derivation routines updated through many firmware generations, and carefully structured patch tables for firmware signatures. The main weaknesses are the aging bundled libraries (FatFs and LVGL forks are old and diverged from upstream), duplicated graphics implementations between bootloader and sample module, and a large amount of hardcoded hardware-specific constants and addresses. This is not general-purpose software; it is tightly coupled to Tegra X1 hardware and the Nintendo Switch modding ecosystem, but the BDK driver organization, ELF loader, INI parser, list macros, and compression utilities are genuinely reusable in other low-level projects.
This repository contains custom open-source firmware for Quansheng UV-K1/K5 V3 handheld ham radios, built around the PY32F071 MCU. It is a fork in the lineage DualTachyon → Egzumer → F4HWN → this project, adding features gated by compile-time flags (ENABLE_FEAT_F4HWN_*, ENABLE_NOAA, ENABLE_DTMF_CALLING, etc.). The firmware is bare-metal C (no RTOS in the application code despite CMSIS-RTOS2 RTX5 being vendored), with a main-loop architecture and an overlay app system using an app_api_t struct of function pointers. The build system uses CMake presets, per-app build.sh scripts, and a Docker wrapper (compile-firmware.sh) producing .elf/.bin/.hex artifacts. A pack_app.py script packs raw binaries into .app blobs. The repository vendors a large CMSIS_5 tree (~20k+ files), most of which is unused DSP/RTOS/validation code, bloating the repo. The README explicitly warns that flashing can brick radios, and overlay apps run with full privileges (no MPU). Notable engineering patterns include the overlay app API (function-pointer-based, placed in .text.entry section), an LL I2C driver mirroring STM32 LL conventions, and extensive conditional compilation. However, the codebase shows drift: deprecated compile-with-docker.sh retained as a forwarding shim, repetitive per-app build scripts, vendored CMSIS that may be outdated, and a license placeholder in the CMSIS bundle. Maintenance is active with recent commits, but the fork lineage and vendored dependencies create ongoing merge/upstream complexity. This is purely an embedded application repository - no datasets, ML models, or research artifacts are present.
RogueMaster/awesome-flipperzero-withModules is a Flipper Zero resource distribution hub rather than a conventional runnable application. Its dominant content is a curated awesome-list plus a massive asset dump: the README links to hundreds of community resources (BadUSB payloads, Sub-GHz databases, NFC tools, custom firmware), while the repository itself stores custom firmware update bundles, ESP32 flasher images, WAV files, a few firmware-level C source variants, and tens of thousands of dolphin animation frame binaries organized into themed packs (Anime, Pokemon, Logos, CHERRY, 420, etc.). The only real code is a set of near-identical Flipper animation-manager C files, a small NFC hex-to-binary shell script, and Python dependency helpers for animation tooling. There is no server, API, library interface, CLI application, or build pipeline. Architecturally this is a flat asset repository with no deduplication, no tests, no dependency management, and no validation. Identical .bm bitmap frames and meta.txt animation manifests are copied across many theme directories, causing enormous repository bloat and synchronization drift. The Flipper animation format itself is consistent and well-defined (Flipper Animation v1 metadata, 128x64 monochrome frames, manifest entries with level/butthurt ranges and weights), making the asset schema the most reusable aspect for Flipper modders. However, the codebase surrounding it is weak: no automation, inconsistent metadata edge cases, WIP/uncompiled animation directories mixed into the tree, and high link-rot risk across the curated README. For engineers, this repository is best treated as a catalog of Flipper Zero content and a source of example animation packaging, not as a software system to integrate or extend. It is actively maintained in the sense that new assets and firmware builds are pushed, but engineering quality is below average for a code repository. It would need an asset pipeline, checksumming, deduplication, and manifest validation before it could be considered well-crafted.