Tuesday, July 23, 2019

MRR ESPA basic ESP32-based 3D printer control board

I am happy to say that I am almost ready to unleash my 3D printer control board to the world. It is based on the ESP32 microcontroller, and after many revisions and lots of testing, it is almost ready to be released.

The MRR ESPA is the basic version. No whistles, no bells. It supports 4 stepper motors, a single hotend, and a heated bed. It can be connected to a host computer via USB, and can read directly from a microSD card too. The heated bed is isolated from the rest of the board via an optocoupler, so a separate power supply can be used to drive the heated bed, and this power supply can even be a different voltage.
 This is the MRR ESPA hooked up to my Ender-3.

A sample of the print. This is a simple test for stringing. I am using a direct drive setup on my Ender-3, and this was printed with 2mm retraction with a retraction speed of 25mm/s.

There is also a connector for a touchscreen controller like the MKS TFT32 (which is basically a host computer). However, common LCD controllers like the RepRap full graphics smart controller are not supported due to a lack of pins.

Wait, no LCD controller? Then how do you control the board?

Well, there is the USB port, right? This means you need to connect the board to a host computer, either a PC, or maybe a Raspberry Pi running Octoprint.

But that defeats the purpose of using the ESP32.

The ESP32 microcontroller comes with WiFi. And there is actually a fork of Marlin out there now that can be used on the MRR ESPA, and this fork gives the MRR ESPA a web UI. All you need to do is flash the firmware, and do the initial configuration to allow the MRR ESPA to connect to your home network via WiFi. Subsequently, all you need is a web browser; this can be a PC, a tablet, or even a smart phone. Files can be sent to the MRR ESPA via the web UI, you can start prints, set temperatures, move the print head, etc.

Sound great! But what are the limitations?

Well, this is the basic version, and due to a lack of pins on the ESP32, you are basically stuck with the features that this has. For stepper drivers, it can support the normal A4988, and you can use the silent TMC2130 and TMC2208 drivers in standalone/legacy modes. Basically, no SPI or UART control. However, there are two spare pins on the board, so if you really want TMC2130 drivers in SPI mode, you can actually use up to 2 of them (probably for the X and Y axes). Still, this support is in the pipeline, because from the software aspect, SPI mode support of TMC drivers for the ESP32 is still under development. But it should be ready soon.

And watch for the more advanced version of the MRR ESPA, which expands the board with additional outputs, allows up to 5 stepper drivers, and can be used with a LCD controller like the one on the Ender-3.

Note: Pre-launch version now available here. Some information on this has been updated here.

1 comment:

Teck said...

After almost a year of development, I am ready to make MRR ESPA available to all interested people. I have started a Kickstarter to raise funds for the initial production, trying to keep the unit cost down through bulk production.

If you are interested, find out more at:
MRR ESPA Kickstarter page