To build the most compact versatile 3D printer, we need an equally compact and versatile controller. Enter stepZero, our compact RaspberryPi Zero-HAT-based 3D printer controller.
We started working on stepZero little over four weeks ago. After a couple of days on Eagle, a couple of weeks until the PCBs arrived, and a customised Optiboot bootloader, we had a Pi Zero HAT with a Sanguino core running at 20MHz.
The Pi can talk to the HAT’s Sanguino core, and upload sketches, using the GPIO UART. The HAT has headers to install three StepStick stepper drivers for the X, Y, and Z axes and connectors for three end-stops. In order to be able to fit all the connectors on the small HAT, the connectors for the stepper motors are soldered directly onto the StepSticks, freeing space underneath for the end stops connectors.
stepZero also has space for a switching DC-DC converter to power the Pi and the motors using the same power supply.
Since we’re aiming for versatility, we need to control the toolheads, such as extruders, through a communication interface rather than directly drive the different components using dedicated pins. Therefore, we broke out the I2C pins (yes we know many people say I2C won’t work for extruders, but that won’t stop us from trying) to four connectors which also provide power to the toolheads. The connectors can also be used to power other components such as a cooling fan or a TFT screen.
For now we have got the stepZero working with Marlin and OctoPrint to control a CNC machine. In the coming days we’ll work on developing the firmware support for the daughter boards which have just arrived 🙂