3 ms·
I'll be sticking around in the comments so feel free to ask questions. AMA!
by chipweinberger 4mo ago
I'll be sticking around in the comments so feel free to ask questions. AMA!
- rwmj 4mo agoThe 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 4mo agoThe 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 4mo agoThis seems like an incredibly large codebase. Did you use an existing RTOS or something similar for this product, or was this all hand rolled?
- junon 4mo agoYeesh, please tell me you didn't write all of that yourself. Which uC is it targeting, and which language?
- cazum 4mo agoFrom 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 4mo agoThese numbers do not include ESP-IDF :)
- bonzini 4mo agoWhat is the manufacturing tooling that you mention?
- chipweinberger 4mo ago3 main components: flashing, provisioning keys, hardware testing. Nearly every component gets tested: sdcard, clock, battery, anti-counterfeit IC, led, buzzer, the tactile-switch!
- hasbot 4mo agoHave you considered supporting other MIDI instruments like e-drums and pad controllers?
- chipweinberger 4mo agoThey should just work! You can replace the soundfont that the app uses with your own too.
- shizcakes 4mo agoWhat are some examples of good anti-counterfeit strategies? And, if you’re comfortable, which applied for JamCorder?
- etrautmann 4mo ago+1
- discordance 4mo agoReally cool project. As someone from the software side who is just getting into hardware, this is very inspiring! How did you find customers? How did you get your hardware design verified?
- msandford 4mo agoI recognize the "esp32 perched on top of a circuit board" from the picture. I've got a couple of those at my house right now, I'm on the second version of one board and the third of another. I think I'm going down a very similar road for a different product. Would you be willing to some paid advising? I'm an EE so I don't need hand-holding on the actual boards or programming, really just looking for more information on everything else around the edges. Either way, thanks for the article. It was nice to get some validation of my development process.
- iamflimflam1 4mo agoI can/try to give you some advice if you need - email is in my bio. I did a semi successful CrowdSupply project based around the ESP32S3.
- logifail 4mo agoIs the app Apple-only?
- chipweinberger 4mo agoAndroid too! Built with Flutter. Flutter is great highly recommend it.
- lifeisstillgood 4mo ago>>> Have a strong anti-counterfeit strategy. Don’t overlook this. Can you expand? What counterfeits do you see (literally someone selling boxes labelled jamcorder? How do you handle that? Lots of scanning amazon and sending cease desist letter?
- raphman 4mo agoThe website gives a very nice and captivating intro to the device. But why do you spell MIDI in lowercase there? > plugs into your piano via midi
- chipweinberger 4mo agoThe marketing answer: all lower-case looks modern and opinionated The real answer: I got tired of deciding what should and shouldn't be capitalized. Sounds easy but it gets ambiguous fast. I'll revisit this decision at some point. Capital letters do make reading easier.
- 8bitsrule 4mo agoInterested. I got far emough on the site to have a couple of questions. (Maybe the answers are on the site?) 1) Does device record ALL MIDI sent to it? (Including e.g. SYSEX and non-registered parameters? 2) I edit MIDI on a Desktop (NOT a phone). a) Are sessions recorded into separate files? Named and/or dated? b) Can I inspect & load sessions from the card?