Remix.run Logo
rwmj 2 days ago

The number that stuck out was 200K lines of code. Can you expand on why so much code had to be written and which parts were the longest (time and/or code) and hardest bits?

chipweinberger 2 days ago | parent [-]

The app is about 85K lines: device connectivity, first-time setup, syncing, MIDI playback and visualization, library management, audio/video export, and OTA workflows.

The firmware is about 110K lines: MIDI recording + streaming, USB, Bluetooth, Wi-Fi, web APIs, storage, OTA updates, diagnostics, security, peripherals, provisioning, and an embedded web interface.

There’s a lot required to make a full-featured product.

lukeweston1234 2 days ago | parent | next [-]

This seems like an incredibly large codebase. Did you use an existing RTOS or something similar for this product, or was this all hand rolled?

bonzini 2 days ago | parent | prev | next [-]

What is the manufacturing tooling that you mention?

chipweinberger 2 days ago | parent [-]

3 main components: flashing, provisioning keys, hardware testing.

Nearly every component gets tested: sdcard, clock, battery, anti-counterfeit IC, led, buzzer, the tactile-switch!

junon 2 days ago | parent | prev [-]

Yeesh, please tell me you didn't write all of that yourself. Which uC is it targeting, and which language?

cazum 2 days ago | parent [-]

From the photo in the link it looks like he's using an esp32-s3.

I suspect that 110k number might include the ESP-IDF libraries as well as his own code.

I've written a fairly feature-complete handheld device based on the esp32-s2 and the codebase is about 9k sloc of the C I've written, but that number explodes to almost 40k sloc if I include the esp-idf's imported libraries.

chipweinberger 2 days ago | parent [-]

These numbers do not include ESP-IDF :)