crote
yesterday at 4:29 PM
Yeah, hardware is indeed not too hard if you have a trivial hardware project and ignore all the hard stuff.
Complexity-wise this is probably the easiest board one could imagine. It's an off-the-shelf MCU module, a 1:1 copy of the MIDI circuit from the specification, and some ports wired straight to the MCU. Throw in a trivial I2C-connected RTC and HSM for good measure. You could probably design this in an afternoon. But indeed: that is a good thing. Not everything has to be complicated, and plenty of people are willing to pay for simple products.
On the other hand: what is the cost for that?
The USB-A Host port has ESD protection, but as far as I can tell MIDI Out and SD do not. Sooner or later this will result in some static-prone user frying their expensive board. Have you got a proper Customer Support / aftersales pipeline yet? How many units did you reserve for warranty replacement? Luckily you've got a huge margin, so a few replacement boards shouldn't bankrupt you.
Similarly, the MIDI ports seem to be using low-double-digit series resistors for the MIDI Out current loop - in 0402 form factor. As the spec says: short the port and they'll draw over 0.5W, which a 0402 can't dissipate. To be fair, the exact circuitry is a bit hard to tell from the image, but will this mean they'll catch fire?
The AMS1117 is also an interesting choice. It's a classic option so it is often seen in beginner tutorials, but it is absolutely terrible[0], and with the capacitors used you shouldn't be surprised to eventually run into stability issues. It might work Just Fine for 99% of units, but the 1% will have weird undiagnosable heisenbug issues.
From a UX perspective I'd also question the use of a coin cell battery for the RTC: it'll eventually run dry or even start leaking. A supercap would've been a more durable and convenient option - especially considering the "always leave it plugged in and forget it" use case. Or, if you need a battery anyways: go for li-ion so it can be used on-the-go. Similarly: USB-B for Power In in 2026? That's just lazy. USB-C is trivial to add with a 5-minute-guide and would've been cheaper. The USB-A Host port is just about excusable, though: doing that in USB-C is a bit harder. And the Power In port not being usable for a connection to a host PC and telling people to buy some sketchy adapter on Amazon? Understandable considering the MCUs peripherals, but a disappointment.
And then there's the elephant in the room: certification. It seems like you just... didn't? Which is understandable for a small hobby project! But making it EMI/EMC compliant is by far the hardest part of designing market-ready products. You can't just completely ignore all the stuff involved in making it compliant with FCC/CE/UKCA/whatever rules and call it "not so hard". It's the difference between baking a pie for your birthday party, and opening a bakery.
Your hardware project wasn't hard because you've only done the easy stuff. And kudos for shipping - many people don't make it even remotely this far. Especially using an injection-molded housing is quite the achievement! The startup costs for that make it a real showstopper for many small-scale projects, and making mistakes can easily bankrupt you.
But this is where the actual adventure starts: scaling it to 25k / 250k units. You basically have to start from scratch and do 10x as much work. Meanwhile, China is pumping out $10 clones for your $250 recorder. Sure, you put DRM in it, but is your software moat really wide enough to protect you?
Many congratulations on your achievement, but please understand that writing this blog post is almost naively premature. The hard part hasn't even started yet.
[0]: https://www.reddit.com/r/esp32/comments/1m7ne4i/psa_avoid_us...
chipweinberger
yesterday at 8:10 PM
I appreciate the critiques!
First, so far, there have been 0 failures in the field. My email address is on the website, the app, and the first page of the instruction sheet, so I'd probably know if there were.
But since it's fun, I'll address some of these :) I'm not flying by the seat of my pants here as much as you expect.
- The ESP32-S3 includes ±2 kV ESD, which is respectable. Adding more is a bit precautionary IMO, but I did add it in some places where the user is more likely to touch metal (like the USB ports). The sdcard's metal housing is not exposed.
- The AMS1117 is just more available than the alternatives. Again, no failures yet so seems like the right tradeoff was made here.
- Supercaps don't last long enough for my liking. A CR2032 can go for 10+ years. A supercap, only weeks. I want correct dates even if the device is left unpowered for months.
- The 0603 47ohm resistor is a good callout. Worth beefing that up. But at 3.3v and 232 mW it's not a fire hazard. It will fail open.
- USB-B for power was very intentional. It's a great firm connector and more importantly prevents users from plugging it into their piano wrong. Many of my customers are in their 70s or older.
- USB-A for data was made for manufacturing simplicity, but again, USB-C is too complicated for many of my users. I'd only switch to USB-C if both ports could be used interchangeably, but they can't be / it's not worth the complexity.
- As for the software moat, time will tell. You can't stave off competition forever!
- The device is FCC and CE compliant.
Again, I actually do appreciate your critiques!