OctoPrint is an incredibly popular and capable open-source project created and maintained by Gina Häußge. It allows you to remotely monitor and control your 3D printer. Traditionally you can check your OctoPrint status via a browser, but what if you wanted to get a quick status check without switching tabs?

This project uses Adafruit IO as an MQTT broker for OctoPrint and CircuitPython, running on a Feather ESP32-S2 Reverse TFT. OctoPrint sends MQTT messages to Adafruit IO as individual feeds with the OctoPrint MQTT plugin. The Feather checks the Adafruit IO feeds for new messages and updates the display accordingly, letting you see what's happening with your printer at your desk, coffee table, etc.

The Feather can also send messages to OctoPrint using the OctoPrint REST API, enabled with the OctoPrint MQTT Subscribe plugin. You'll ping Adafruit IO feeds with the buttons on the Feather to trigger commands in OctoPrint such as pausing or canceling a print.

The TFT display on the Feather will show the current status of your printer according to OctoPrint alongside the OctoPrint mascot. For additional visualization, the onboard NeoPixel will show the rainbow animation during a print and blink a corresponding color for status states.

If you are actively printing, a progress bar will be displayed denoting your print's progress. 

The D0, D1 and D2 buttons can send REST API commands via Adafruit IO to OctoPrint. Their functionality is shown on the TFT and varies depending on if your printer is printing or not.

If your printer is idle, you can set the hotend temperature to 0 (cooldown), set the hotend temperature to 200 (heat up) or reboot your OctoPrint server. If you are printing, you can pause, resume or cancel your print.

Prerequisite Setup and Guides

This project assumes that you are already running an OctoPrint instance. It will not work unless you have OctoPrint running since it works in tandem with OctoPrint using the MQTT and MQTT Subscribe plugins. OctoPrint has many resources available to guide you through the setup and installation.

Additionally, you will need an Adafruit IO account since Adafruit IO is acting as the MQTT broker, logging the MQTT messages from OctoPrint in IO feeds to be accessed by the Feather and sending REST commands to OctoPrint. There are guides on the Learn System, linked here and below, to assist you with this.

This project assumes that you are already running an OctoPrint server instance. It will not work unless you have OctoPrint installed and running.

Parts

Video of a rectangular microcontroller with a TFT display. A pink manicured finger presses each of the tactile buttons, which are recognized on the TFT display.
Like Missy Elliot, we like to "put our [Feather] down, flip it and reverse it" and that's exactly what...
$24.95
In Stock
Angled shot of a pink/purple woven USB cable plugged into a laptop port and a small dev board.
This cable is not only super-fashionable, with a woven pink and purple Blinka-like pattern, it's also made for USB C for our modernized breakout boards, Feathers and more. 
$3.95
In Stock
Black Nylon Screw and Stand-off Set with M2.5 Threads, kit box
Totaling 380 pieces, this M2.5 Screw Set is a must-have for your workstation. You'll have enough screws, nuts, and hex standoffs to fuel your maker...
$16.95
In Stock
Opened box showing many nylon screws
Totaling 420 pieces, this M3 Screw Set is a must-have for your workstation. You'll have enough screws, nuts, and hex standoffs to fuel...
$16.95
In Stock

Optional for monitoring additional feeds:

Text image that reads "IO+"
The all-in-one Internet of Things service from Adafruit you know and love is now even better with IO+. The 'plus' stands for MORE STUFF! More feeds, dashboards,...
$99.00
In Stock

This guide was first published on Feb 08, 2023. It was last updated on Jun 17, 2024.

This page (Overview) was last updated on Mar 08, 2024.

Text editor powered by tinymce.