Top
Best
New

Posted by chipweinberger 2 days ago

What I learned selling 2,500 MIDI recorders: Hardware is not so hard(chipweinberger.com)
546 points | 255 commentspage 3
SunboX 1 day ago|
Hardware is hard! Because of certifications and organizations like the WEEE. There are many different acts for electronic devices world wide. In Germany you have to spend about $ 20k per month even if you did not ship any product yet - just for regulations, certificates and things you have to register for to be able to sell a electronic device.

That makes hardware hard! The manufacturing and packaging is the easy part.

Ilya85 2 days ago||
What was the biggest mistake you made in the early days that almost killed the business?
chipweinberger 2 days ago|
Spending too long on the firmware. I almost ran out of runway. I should have cut features faster. And I should have built the firmware cross platform so I could run it my local machine. Every compile + flash loop took 2+ minutes.
crote 1 day ago||
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 1 day ago|
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!

crote 13 hours ago||
> The ESP32-S3 includes ±2 kV ESD, which is respectable.

This might not quite mean what you think it means, by the way. In practice it is almost always just a property of the IP macro they use for the physical GPIO design, and its functionality is not tested - at all.

The reason for this "eh, good enough" approach is that it is intended for potential shocks during manufacturing: they don't want it to definitely die during a freak shock in an ESD-controlled environment. The rating is only for single shocks (so no repeats, as you'd see in the wild) and only for 2kV (not the 15kV you'd see in the wild, let alone the odd 30kV one for static-prone people) because that's all it is going to encounter during assembly.

I made the exact same mistake with one of my first commercial designs. And then after a while the reports of weird cases of single-pin GPIO failures started rolling in...

> The AMS1117 is just more available than the alternatives.

Keep in mind that this is both a blessing and a curse. It is more available because there's a giant number of clones, all of which are going to behave slightly differently. Your design with MLCC capacitors is outside of the regular operating parameters. It might work fine now, but don't be surprised if it starts failing on the next production run because the fab substituted it for a different AMS1117 clone to save a few cents.

At 2500 units your run is big enough to order whole reels of parts. There are dozens of drop-in replacements for the AMS1117 which are perfectly fine with low-ESR capacitors. Considering your sales price you should be able to afford splurging 5 more cents on a proper modern alternative from a reputable brand, so why take the risk?

When making decisions like those it is important to ask yourself one crucial question: can your brand survive both the financial and the PR blowback of, say, a 10% failure rate on your next batch? When you are selling a premium product at a premium price - and you are - your customers expect premium quality as well. Ironically, you literally can't afford to cheap out on parts.

> But at 3.3v and 232 mW it's not a fire hazard. It will fail open

"Fail open" in practice means "catches fire". Will it spread to other parts? Probably not, if everything goes well! PCBs are fairly hardy (the "FR" in FR4 stands for "flame retardant", after all), your parts are fairly spaced-out, and there's even a chance you might've used an overkill self-extinguishing plastic for the housing. But can you afford to ignore the potential risk? How will your customers react when it does an Nvidia 12VHPWR and the freak 0.001% failure is suddenly front-page news for your community?

Hardware design isn't merely about making it work. Things like design for manufacture/assembly (kudos on the one-screw method, by the way!) are just as important - as is designing it for reliability. Your work isn't done when it functions, but when it can't reasonably fail in any way that matters.

simonreiff 1 day ago||
Wow, congrats on this project! Really cool. I majored in piano performance many years ago and will definitely check this out.
arthurwolf 1 day ago||
I don't know what the timeline is here, but to me this sounds like he either got lucky, or he's in the grace period when you begin a project and the strong enthusiasm for it, and the fact people are not seriously trying to copy it yet, work together to make everything just that much easier...
bgnn 1 day ago||
It's a poor take to be honest.

I'm an EE with main expertise in IC design but I design a lot of the chip packages, PCBs, mechanical stuff like custom made sockets etc and write a ton of SW, be it tools for myself for development and testing, be it the firmware of the chip I'm designing or another chip I use on the board. For me it never felt like SW was the hard bit, because you can write and test it pretty immediately and pretty much for free. HW felt harder because of the tooling costs, lack of documentation and examples, things that aren't obvious at the beginning (EMI/EMC) etc etc but these are very minor compared to the actual issue: long and expensive development cycles. Now, that doesn't apply if your HW is extremely simple and just a glorified uC and rhe development time is mostly the code running on it. This is why this is such a poor take. One can argue for anything at extremes. SW can be very very complex and much harder than HW, and vice versa at different extremes.

discordance 1 day ago|
I’m working on my own PCB and it’s my first time working on a hardware project.

Any tips on how or where I could get my design reviewed?

Intermernet 1 day ago|||
I'm usually not an Ai shill, but I found Fable to be the first LLM that could actually provide useful feedback on a KiCAD PCB design. I paired it with a KiCAD MCP, but it tended to reverting to raw KiCAD scripting. If you ask it to review a PCB design, and provide feedback relevant to PCB design best practices, it will probably give you something useful. I wouldn't trust it to do a full design, but it's pretty good at finding issues. I'd add a few clauses to the request regarding checking components against JLCPCB/PCBWay/etc available components, as well as checking copper layer thickness and distances from the main components to the supporting components.

I did this as an experiment on my current project and it found a bunch of minor, non-critical, but completely valid problems with my deisgn.

connorlu 1 day ago|||
If you're building with KiCad then I've found the folks on the KiCad discord[1] very willing to take a look over a design and provide feedback. There's also a subreddit[2] for PCB design posting and review, but I haven't personally used it.

[1] https://www.kicad.org/community/chat/ [2] https://www.reddit.com/r/PrintedCircuitBoard/

TuringNYC 1 day ago||
Congrats. I did want to respond to this

>>> The hardest part of building Jamcorder was still, by far, the software -- roughly 200K lines of code spread across the firmware, app, and manufacturing tooling. It took over 3 years and many long nights in a pre-LLM world.

>>> When compared to that, the hardware was undeniably smooth sailing.

>>> For the record, I don’t think I’m special. It’s just that hardware’s reputation for being difficult is, IMO, overstated.

For me, when I complain about hardware, its actually usually complaining about drivers, compatibility, underdocumented interfaces, firmware etc. If one were to put firmware and manufacturing tooling in a separate bucket, that is indeed the problem!

NDlurker 1 day ago||
Congratulations! I bought one after reading your post on here announcing it. It's fun to mess around on my keyboard and be able to go back and listen to what I played. Great for learning
bjt12345 1 day ago||
Hardware's reputation derives from the reality that a lot of companies spin out the hardware before the software is even written - so all hardware bugs have to get fixed in software.
grenran 1 day ago|
> strong anti-counterfeitting strategy

The reality for a product at this scale is that nobody is going to spend the time or money to copy it.

More comments...