3D printer board based on ESP32. This repo contains open source PCB design files.
Still under developing! Feel free to use but keep your own risk!
Documentation: https://hankso.github.io/Cloud3DP.
-
ESP32-WROOM module vs. ESP32-Pico chip
- ESP32-WROOM module has well tested layout and WiFi antenna
- ESP32-Pico can use larger SPI Flash to storage local files
-
Actuators (22 pins)
- Stepper (driver >= 6*3 = 18 pins)
- XYZ[Z]
- E*3 for dual resin & one fiber
- MOSFETs (for laser / spindles etc. >= 4 pins)
- Stepper (driver >= 6*3 = 18 pins)
-
Connectors (10+ pins)
- Serial (TTL-UART 2 pins)
- SD Card slot (SPI-Master 4 pins)
- Axis endstops (XYZL interrupts >= 4 pins)
-
Power
- Input
- 12V Power
- 5V USB
- 3.7V Li battery module
- Output
- 12V hot bed / box temp
- 12V print head / steppers / fan
- 12V biomaterial bump (ULN2803)
- 5V valve / relay / servo
- 3V3 ESP32 / IO pins
- Input
-
Stepper driver
- AT2100
- A4983/A4988 (super cheap, <10 CNY)
- DRV8823/DRV8825 (better than A49XX, 10-20 CNY)
- TMC2100/TMC2130/TMC2208/TMC2209 (super silent & stable, 30-40 CNY)
-
Marlin
- OLED/LCD Screen (optional since we already have WebUI)
- Configure file
- SD/UART/BLE/WebSocket input
-
Bluetooth
- GCode file uploading
- Command line interface
-
WiFi connection
- STA / AP / Mesh?
- Web graphic user interface: moving, extruding, IO, fan, temp and etc.
- GCode file uploading
- WebSocket realtime camera streaming
- Error detection: Is printer table clean? Is the first floor firm?
- Printer firmware updating
- There should be no floating input pins when using multiple-bit logic devices
- Replace 74HC595 with PCF8574 for valves control
- 74HC595: 11-SHCP 12-STCP
- PIN_INT internal PULLUP
It's small and bidirectionally plugable. Bidirection also means there can be two working modes (debug / upload) by plugging differently.
ESP32 has huge calculation resources yet much less GPIO (30 pins) comparing to AVR Atmega128 (53 pins).
In this project 74HC595
is used to control 6 stepper motors with only 3 ESP32 GPIO. 74*595
's high speed clock ensures that the maxmuim pulse frequency (about 25MHz/8bit=3MHz, Vcc=4.5V) on each output pin satisfy the need of controlling a stepper motor.
PCF8574
is used to handle 8 endstops with only 3 ESP32 GPIO (1 INT + 2 I2C).
- WebConsole using WebSocket on WiFi interface
- Bluetooth interface (you may need a BT client software)
- MicroSD Card
- USB Connection + Cura/Printrun/SerialCommander
The drivers carrier on this board supports AT2100 / A4988 / DRV8825 / TCM2209 layout.
On most 3D printer board like Ramps and SmoothieBoard, jumpers are used on MSx pins to configure the step size. But considering the fact that most of users will never change the step size after initial configuration, it's an unbearable waste of space to have so many 0.1"x0.2"x0.4" jumper cap on board. And that's why I recommend using surface mounted 0.1"x0.1" jumper pad. MSx pins have internal 50kΩ pull-down resisters and the jumpers are all normally closed. So you need a knife to cut traces between two pads to open the connection. Reapply some solder or a 0R resister to reclose jumpers.