Case study
reflecticon-224: running Lexicon 224 reverb firmware on emulated hardware
Emulates the Lexicon 224, 224X and 224XL digital reverbs so that their own firmware runs in a browser page or a JUCE plugin. The repository layers KiCad schematics, gate-level and board-level Verilog models, an 8080-hosted C++ emulator and analog input/output models, and checks faster layers against slower ones using user-supplied ROMs. It is a work-in-progress hardware-and-firmware emulation whose documentation is still pending, not recovered algorithm source.
Requirements and limitations
- The reviewed pin is from 2026-10-13; the repository was created on 2026-09-28. README calls it a work in progress whose documentation will follow, so the Makefile is the main map: it links the schematics, gate-, board- and ISA-level models, the C++ emulator, analog models, the WebAssembly page and the plugin. Recognized firmware sets include several 224 versions, 224X v8.1 and 224XL v8.1A and v8.21.
- Users supply their own Lexicon ROM chip files, which README says stay on their computer. The page and plugin recognize known sets by SHA-256, and the repository lists those hashes, not ROM bytes. Firmware checks read a LEXICON_FIRMWARE folder with one subfolder per set and skip when it is absent. The web demo does ship program-name and slider-value catalogs keyed to specific firmware sets.
- make check runs the firmware-free checks, and any target whose tool is missing, such as Verilator 5 or KiCad’s command-line tool, reports itself as skipped. The page builds with Emscripten 5.0.1 for GitHub Pages. The plugin builds with CMake and JUCE 8.0.14 as macOS AU, VST3 and standalone targets, and CI validates the AU with auval; the tagged v0.1.0-alpha.1 prerelease is an ad-hoc signed macOS 11+ build that contains no firmware.
- make check-firmware runs the user’s ROMs through several layers, including service-manual signature tables at gate level. Qualification compares the emulator’s CPU state, control-store writes and DAC captures with board-level runs, and qualified.json stores expected hashes for two scenarios. A byte-exact gate compares the WebAssembly build bit for bit with the native reference. These project checks need the ROMs; this collection ran none of them.
- GitHub detects no repository license, so no reuse terms beyond viewing are granted; the included 8080 cores carry zlib and MIT notices. README disclaims affiliation with Lexicon or its owners, and the original firmware remains theirs. In the Hacker News thread for a related report, a commenter who identifies the repository as theirs describes paid schematic tracing and LLM agents turning schematics into Verilog; no REA use is stated.
About this entry
- Type
- Case study
- Category
- Independent reconstruction cases
- Relationship
- Independent reconstruction project
- Targets
- Firmware
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- Makefile GitHub · joelanders/reflecticon-224 · Revision 37fde47
- README.md GitHub · joelanders/reflecticon-224 · Revision 37fde47
- emulator/tests/qualify_firmware.py GitHub · joelanders/reflecticon-224 · Revision 37fde47
- emulator/tests/qualified.json GitHub · joelanders/reflecticon-224 · Revision 37fde47
- juce-plugin/tests/byte_exact/compare_wasm.mjs GitHub · joelanders/reflecticon-224 · Revision 37fde47
- web-demo/page/firmware.js GitHub · joelanders/reflecticon-224 · Revision 37fde47
- web-demo/page/firmware_sets.json GitHub · joelanders/reflecticon-224 · Revision 37fde47
- .github/workflows/plugin.yml GitHub · joelanders/reflecticon-224 · Revision 37fde47
- .github/workflows/pages.yml GitHub · joelanders/reflecticon-224 · Revision 37fde47
- 8080/LICENSE-floooh-chips GitHub · joelanders/reflecticon-224 · Revision 37fde47
- 8080/LICENSE-m8080 GitHub · joelanders/reflecticon-224 · Revision 37fde47
- https://news.ycombinator.com/item?id=50111576