This is an old revision of the document!
What I want to accomplish
- Design the PCB
What I've done
Microcontroller
I went back and forth on this a few times. There were two main choices to make:
- ESP8266, or
- ESP32
and
- Breakout board, or
- Implement directly.
In my first software work log I essentially decided on the ESP32. The ESP8266 was a bit cheaper, but it really doesn't have much overhead for me to work with. If I wanted to stick with micropython, which I did for other reasons, I would need to go up to the ESP32. I selected the ESP-WROOM-32D specifically.
The next decision was around whether I wanted to design the PCB to accept a breakout board or the bare ESP-WROOM-32D package. The breakout board would be simpler, easier to solder, and provides a USB programming interface. The downside is that I couldn't find a consistently-available version of the board. Searching for “ESP32 breakout” or “ESP32 nodemcu” would yield a dozen slightly different boards. The Wimos D2 mini knockoff I was using earlier on in the project was more consistently knocked-off.
I'd hate for someone to be ordering the bits to build one of these robots and end up with a breakout board that didn't fit, or had the wrong pinout. So I decided to go with the bare ESP-WROOM-32D module. I had to implement some pull-ups and buttons to put it into a flashing state, but overall it wasn't too difficult.
Stepper drivers
Driver | Cost | Microstepping | Silent | Note |
---|---|---|---|---|
A4988 | $ | 1/16 | No | Cheap and cheerful |
DRV8825 | $$ | 1/32 | No | Fragile |
TMC2100 | $$$ | 1/256?? | Potentially | Very fragile |