This repository implements a DIY smart lock controller for ESP32 hardware, enabling Apple HomeKey NFC authentication, HomeKit integration, and MQTT connectivity for Home Assistant. The architecture is a hybrid embedded system: a C++ backend built on ESP-IDF (FreeRTOS) handles hardware interaction (NFC, GPIO, Ethernet) and protocol stacks (HomeSpan, mbedTLS), while a Svelte 5 frontend hosted on the device's LittleFS provides a web-based configuration and monitoring interface. The system manages configuration persistence in NVS using MessagePack/JSON serialization and streams real-time logs via WebSocket. Engineering quality is high, featuring RAII wrappers for memory safety in C++, template-based configuration management, and a decoupled event-loop architecture. However, the codebase carries significant security debt, explicitly acknowledging the lack of flash encryption and plain-text password storage in configuration. Hardware support is fragmented across ESP32 variants and NFC modules, requiring hardcoded pin presets that limit portability. Despite 52 open issues, the recent commit activity and modern tech stack (ESP-IDF 5.x, Svelte 5) indicate active development.
FareBot is a Kotlin Multiplatform (KMP) application designed to read, parse, and analyze contactless transit smart cards (NFC/RFID). It targets Android, iOS, Desktop (JVM), and Web (Wasm), utilizing Jetpack Compose Multiplatform for the UI layer. The core functionality involves interacting with NFC hardware (Android NFC, PC/SC, CoreNFC) or external devices (Flipper Zero, PN533 USB readers) to extract raw card data. This data is then processed through a layered architecture of protocol readers (MIFARE Classic, DESFire, FeliCa, ISO7816) and transit-specific factories (EN1545, Calypso, proprietary formats) to display balances, trip history, and card identity. The architecture relies heavily on the Factory pattern to support hundreds of global transit systems without modifying core logic. It uses SQLDelight for local persistence of card dumps and keys, and Metro for dependency injection. The codebase demonstrates significant craftsmanship in reverse-engineering proprietary transit protocols, handling complex binary formats, bit-level parsing, and currency normalization across different regions. Hardware abstraction layers (`CardTransceiver`, `FlipperTransport`) allow the same core logic to run across diverse platforms and devices. While the application is actively maintained (last commit 2026-03-22), it faces technical drift risks due to its reliance on experimental Web APIs (WebUSB/WebBluetooth), cutting-edge Gradle versions (9.3.1), and the inherent fragility of reverse-engineered transit protocols. The project is a robust example of cross-platform hardware interaction and data parsing, suitable for engineers interested in NFC protocols, KMP architecture, and hardware abstraction.
This repository is a curated dataset of NFC tag dumps (`.nfc` files) from Toniebox audio figures, organized by language (English, French, German) and character series. The primary purpose is to enable emulation of Tonie figures on Flipper Zero devices using the official firmware's SLIX-L chip support. The dataset includes over 850 dumps, each containing the full memory image of an ISO15693 SLIX tag (UID, data content, passwords). Supporting scripts provide validation (`validate_files.sh`), automated directory listing generation (`build_directories.sh`), and a GUI tool (`figures_name_tool.pyw`) that uses upstream metadata from `tonies-json` to help contributors correctly place new dumps. The repository is part of the Toniebox reverse-engineering ecosystem and relies on community contributions. While the codebase is minimal, the data is well-structured and validated through CI pipelines, making it a reliable resource for Flipper Zero users.
The 32feet.NET repository provides a comprehensive Bluetooth and OBEX protocol implementation for .NET, supporting multiple platforms and Bluetooth stacks.
This repository is a comprehensive IoT device driver library for .NET nanoFramework. It provides bindings for hundreds of sensors, actuators, displays, and communication modules (e.g., BME280, SSD1306, NFC, Modbus, cellular modems, GPS). The architecture is a collection of independent driver projects, each with its own samples, tests, and documentation. Shared utility libraries (e.g., System.Device.Model, NumberHelper, SpanByte compatibility shims) support cross-cutting concerns. The codebase is actively maintained with frequent commits, but the sheer number of drivers (300+) leads to varying quality, some code duplication (e.g., SpanByte classes in multiple locations), and partially auto-generated code. Networking components like DHCP server, DNS server, and Home Assistant MQTT integration extend the library beyond raw sensor access. The primary use case is building embedded IoT applications on microcontrollers (ESP32, STM32) running nanoFramework.
This repository implements an Apple Home Key Reader application that enables NFC-based authentication for Apple HomeKit smart locks. The system acts as a bridge between NFC-enabled devices (iPhones/Apple Watches with Home Keys) and HomeKit accessory control, allowing users to unlock locks by tapping their devices on an NFC reader. The architecture follows a modular design with clear separation: main.py coordinates initialization, accessory.py handles HomeKit Accessory Protocol interfaces, service.py implements core NFC authentication logic, homekey.py manages Apple-specific NFC protocols, and repository.py handles persistent state management. The application relies on external dependencies including pyhap for HomeKit, nfcpy for NFC communication, and cryptography for security operations.
This repository provides a collection of Amiibo binary files (.bin) for Animal Crossing: New Horizons characters, organized by series and special editions. It includes instructions for using the TagMo mobile application to write these files to NTAG215 NFC tags, enabling users to create functional Amiibo cards for personal use. The data is sourced from NFC-Bank and community contributions, with the repository serving as a static data distribution point for educational purposes. There are no data transformation scripts or processing tools included; the value lies in the curated collection of ready-to-use Amiibo dumps.
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.