

A while ago I posted here asking for a review of my motor controller PCB. Got some actually useful feedback, so thanks for that. Today I wanted to share with you the result!
Main change since then is the power section. Cleaned it up, rerouted it, move caps closer to mosfets, etc.. I haven’t really stress-tested it properly yet since the firmware is still very early stage, so we’ll see how it behaves when it actually gets done.
Right now it seems to work. Nothing has blown up so far, and the main components are alive, which I guess is already a win. Still too early to call it fully working but I have no reason to doubt that it will work at the end of the day somehow.
I ordered the boards from Aisler and honestly I’m pretty happy with them. Quality is solid, turnaround time was fast, and pricing feels reasonable.
Assembly was also surprisingly smooth. First time using hot air, and I expected chaos, but it was fine, even with parts on both sides. The bigger pain was actually the through-hole caps. The V+ and GND planes just suck heat like crazy, so those took way more effort than I expected. Nothing dramatic though, just cranked the temperature up and eventually they gave in.
There were a few mistakes though.
- Worst one: I messed up the 3.3V regulator footprint. The tab ended up tied to GND instead of Vout, so I basically shorted 3.3V to ground. Not ideal. Luckily the other pins are correct, so I just cut the tab. Not the nicest fix, but for a prototype and drawing low current it works, so I'm not crying about it.
- I also used a TC2030 footprint for debugging, without intention of buying the overpriced cable setup (40-50€ is ridiculous). Not the smartest decision. I thought I’d 3D print an adapter, but for now I’m just using bent jumper wires with a Raspberry Pi Debug Probe. It works for flashing, but debugging is painful. Next revision is definitely just a normal header with similar and done.
- No jumper for the STM32 boot pin either. Not critical, but it would’ve been a nice quality-of-life thing. My idea is to rely on software-triggered USB DFU + a custom protocol anyway, so I can update firmware over other interfaces like CAN. Still, if this ever becomes something other people use, having an easy boot option would probably save headaches.
That’s it for now. If you have any questions, comments, or feedback, I’d actually be interested to hear them!