# 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.

- Type: Case study
- Targets: Firmware
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-10-18
- Added to the catalog: 2026-10-20
- Original resource: <https://github.com/joelanders/reflecticon-224>
- Primary source: <https://github.com/joelanders/reflecticon-224/blob/37fde47f6cf94d4f4f96f3c233382e2c43a70354/Makefile>
- Catalog page: <https://awesomerea.org/resources/reflecticon-224-lexicon-emulation-case/>
- Record JSON: <https://awesomerea.org/resources/reflecticon-224-lexicon-emulation-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/reflecticon-224-lexicon-emulation-case/index.md)

## Requirements & limits

- 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.
- 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.

## Primary sources

1. <https://github.com/joelanders/reflecticon-224/blob/37fde47f6cf94d4f4f96f3c233382e2c43a70354/Makefile>
2. <https://github.com/joelanders/reflecticon-224/blob/37fde47f6cf94d4f4f96f3c233382e2c43a70354/README.md>
3. <https://github.com/joelanders/reflecticon-224/blob/37fde47f6cf94d4f4f96f3c233382e2c43a70354/emulator/tests/qualify_firmware.py>
4. <https://github.com/joelanders/reflecticon-224/blob/37fde47f6cf94d4f4f96f3c233382e2c43a70354/emulator/tests/qualified.json>
5. <https://github.com/joelanders/reflecticon-224/blob/37fde47f6cf94d4f4f96f3c233382e2c43a70354/juce-plugin/tests/byte_exact/compare_wasm.mjs>
6. <https://github.com/joelanders/reflecticon-224/blob/37fde47f6cf94d4f4f96f3c233382e2c43a70354/web-demo/page/firmware.js>
7. <https://github.com/joelanders/reflecticon-224/blob/37fde47f6cf94d4f4f96f3c233382e2c43a70354/web-demo/page/firmware_sets.json>
8. <https://github.com/joelanders/reflecticon-224/blob/37fde47f6cf94d4f4f96f3c233382e2c43a70354/.github/workflows/plugin.yml>
9. <https://github.com/joelanders/reflecticon-224/blob/37fde47f6cf94d4f4f96f3c233382e2c43a70354/.github/workflows/pages.yml>
10. <https://github.com/joelanders/reflecticon-224/blob/37fde47f6cf94d4f4f96f3c233382e2c43a70354/8080/LICENSE-floooh-chips>
11. <https://github.com/joelanders/reflecticon-224/blob/37fde47f6cf94d4f4f96f3c233382e2c43a70354/8080/LICENSE-m8080>
12. <https://news.ycombinator.com/item?id=50111576>

## More in Firmware and hardware

- [TeddyCloud: a self-hosted replacement for the Toniebox cloud](https://awesomerea.org/resources/teddycloud-toniebox-server-case/index.md) · Case study
- [Valetudo: local replacement for robot-vacuum vendor clouds](https://awesomerea.org/resources/valetudo-robot-cloud-replacement-case/index.md) · Case study
- [EchoMuse: replacement software that turns the Echo Dot 2nd gen into a Home Assistant voice satellite](https://awesomerea.org/resources/echomuse-echo-dot-voice-satellite-case/index.md) · Case study
- [OSIRIS: replacing Onkyo receiver firmware through MCU protocol research](https://awesomerea.org/resources/osiris-onkyo-receiver-case/index.md) · Case study
- [Virtual MPC Sample: rehosting Akai MPC Sample firmware in QEMU](https://awesomerea.org/resources/virtual-mpc-sample-case/index.md) · Case study
- [OpenJooki: replacing the Jooki 2 software and recovery path](https://awesomerea.org/resources/openjooki-jooki2-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
