Open-source replacement firmware for the FNIRSI 2C53T handheld oscilloscope / multimeter / signal generator.
Start here: The project README is at the repo root. For the full RE archive, see reverse_engineering/.
- Roadmap — What works, what's in progress, what's planned
- Button Manual — Physical button layout, navigation, emulator key bindings
- Hardware Test Protocol — First-flash and subsystem verification checklist
Architecture, technical specs, and system design documents.
- Peripheral Map — Memory-mapped peripherals, GPIO assignments, interrupt vectors
- FFT Design — Windowing, amplitude scaling, spectrum display architecture
- FPGA Future Possibilities — Gowin GW1N-UV2 resources and enhancement opportunities
- ESP32 Coprocessor — ESP32 UART bridge for WiFi/BLE connectivity (future mod)
- Platform Architecture — HAL layer design, SDK vision
- Module API — Interface spec for self-contained modules
- Code Organization — Proposed codebase restructuring plan
- Resource Planning — RAM/flash budget, module hot-loading strategy
- Developer Experience — Multi-tier accessibility (end users, makers, developers)
- Logic Analyzer Add-On — FX2LP-based USB analyzer for 8-channel digital capture
- Custom Test Platform — Repurposing hardware as programmable test fixture
Feature brainstorms, market research, and community feedback. These capture the vision for what the device could become.
- Feature Catalog and Industry Modules — Comprehensive feature wishlist organized by subsystem, plus trade-specific applications (automotive, HVAC, audio, ham radio, industrial, marine, and more)
- Gaps and Priorities — Original vs custom firmware comparison, implementation priority order
- Meter Ideas — Multimeter enhancements: calibration, measurement stacks, parasitic drain testing, fuse voltage drop method
- Project Ideas — Feasibility analysis for modifications and new features
- Accessories — Community-designed PCBs (RF bridge, SWR analyzer), 3D-printed panel replacement
- Landscape — Budget handheld oscilloscope market and FNIRSI product family
- Community Issues — 62 documented bugs/requests from EEVblog and forums
RE methodology and analysis docs. The primary RE artifacts live in reverse_engineering/ — these are supplementary.
- Firmware Analysis — Binary structure, version history (V1.0.3-V1.2.0), size comparison
- Function Map — Named functions, variables, two-region string system
- RE Guide — Tools (Ghidra, binwalk), methodology, how to get started
- FreeRTOS Tasks — Task structure, flash base address offset analysis
- RTOS Analysis — FreeRTOS kernel identification via string signatures
- Reference Projects — pecostm32 FNIRSI hack, EEVblog, open-source tools
- Build firmware:
cd firmware && make(hardware) ormake emu(emulator) - Flash (with bootloader): Settings > Firmware Update >
make flash - Flash (first time / DFU):
make flash-all(see README for EOPB0 setup) - Emulate:
make renode(display-only) ormake renode-interactive(with buttons) - Ghidra analysis:
ghidraRun> Openghidra_project/FNIRSI_2C53T - Read reverse_engineering/ARCHITECTURE.md for the hardware reference