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.
Arduino-IRremote is a comprehensive Arduino library for sending and receiving infrared remote control signals. It supports over 20 standard IR protocols (NEC, Sony, RC5, Samsung, LG, etc.) as well as exotic protocols like Bose Wave and Bang & Olufsen. The library is designed for embedded systems, handling the low-level timing generation and decoding required for IR communication. It provides both a full-featured receiver with a 50ยตs timer interrupt and a lightweight interrupt-based receiver (TinyIRReceiver) for resource-constrained boards. The sender uses software or hardware PWM to generate the 38kHz carrier, with bit-bang fallback for boards without PWM timers. Key entry points are the main include header (IRremote.hpp), static objects IrReceiver and IrSender, and a command dispatcher for mapping IR codes to callback functions.