3D Printer Monitor Wemos D1 Mini ESP8266




Posted in Technology3D-Printing

Introduction: 3D Printer Monitor Wemos D1 Mini ESP8266

About: I enjoy flying RC and 3D Printing

Monitor your 3D printer over a wifi connection. This is a Wemos D1 Mini and a 128x64 OLED combined together to display the status from your OctoPrint Server.

Requires the following:


  • Displays the print status from OctoPrint Server
  • Estimated time remaining
  • Time Printing
  • Percentage complete
  • Progress bar
  • Bed and Tool Temperature
  • Screen turns off when printer is turned off or disconnected
  • Screen turns on when printer is Operational or connected
  • Option to display clock instead of sleep mode
  • Sample rate is every 60 seconds when not printing
  • Sample rate is every 10 seconds when printing
  • Fully configurable from the web interface (not required to update Settings.h)
  • Supports OTA (loading firmware over WiFi connection on same LAN)
  • Basic Athentication to protect your settings
  • Video: https://youtu.be/niRv9SCgAPk

Step 1: Solder Up the Wemos D1 Mini With the 128x64 I2C OLED Display

This step only requires connecting 4 wires between the Wemos D1 Mini and the OLED display.

  • SDA -> D2
  • SCL -> D5
  • VCC -> 5V+
  • GND -> GND-

Step 2: 3D Print a Case for Your 3D Printer Monitor

Since you are monitoring a 3D printer, you probably have the means to print the case for this project or create your own. My design is posted on Thingiverse.com here:


Fit your Wemos and OLED in the case. You may need to apply some glue to the outer corners of the OLED display to get it to stick into the case. The Wemos will be held into the case by the back panel.

Step 3: Download and Compile Source Code

It is recommended to use Arduino IDE. You will need to configure Arduino IDE to work with the Wemos board and USB port and installed the required USB drivers etc.

  • USB CH340G drivers: https://wiki.wemos.cc/downloads
  • Open the Arduino IDE and enter the following URL http://arduino.esp8266.com/stable/package_esp8266com_index.json into Additional Board Manager URLs field. You can add multiple URLs, separating them with commas. This will add support for the Wemos D1 Mini to Arduino IDE.
  • In the Arduino IDE, open Boards Manager from Tools > Board menu and install esp8266 platform (and don't forget to select your ESP8266 board from Tools > Board menu after installation).
  • Select Board: "WeMos D1 R2 & mini"

Download the Source Code for 3D Printer Monitor:



The following packages and libraries are used (download and install to your Arduino IDE):

Initial Configuration
You can update the project Settings.h file with your OctoPrint API Key or do it from the web interface. Get your OctoPrint API Key from your OctoPrint -> User Settings -> Current API Key.

NOTE: The settings in the Settings.h are the default settings for the first loading. After loading you will manage changes to the settings via the Web Interface. If you want to change settings again in the settings.h, you will need to erase the file system on the Wemos or use the “Reset Settings” option in the Web Interface.

Step 4: Web Interface

The Printer Monitor uses the WiFiManager so when it can't find the last network it was connected to it will become a AP Hotspot -- connect to it with your phone and you can then enter your WiFi connection information.

After connected to your WiFi network it will display the IP addressed assigned to it and that can be used to open a browser to the Web Interface. Everything can be configured there in the web interface.

Microcontroller Contest

This is an entry in the
Microcontroller Contest



    • Make it Move Contest

      Make it Move Contest
    • Microcontroller Contest

      Microcontroller Contest
    • Woodworking Contest

      Woodworking Contest

    We have a be nice policy.
    Please be positive and constructive.




    Hope this isn't a dumb ?. The packages that u have no links to (easily found) need to be added also, correct?

    2 replies

    No, not a dumb question at all. It is actually the area I worried most about when sharing this project. I really want this to be an easy project for anyone to pickup and do. Basically, you want to be able to add the shared libraries to your Arduino IDE Library files so that other projects can see them and use them. You can search them up from the Library Manager in the Arduino IDE and if they don't show up in there, you can download them from the original source and import them via a zip file. I hope that helps.

    Basically there are supporting libraries that should be installed and visible to the Arduino IDE. Most can be searched up using the Library Manager in the Arduino IDE. If you can't find them in the Library Manager search then you can download them and load them via a zip file.

    On your picture i see a switch on top, what is its purpose and which pin do i have to connect it (didn't read the code yet )

    1 reply

    The 3D Printer Monitor code does not use the button (or at least right now). I have other projects that I have not shared publicly that do. I use this station for many projects. Good eyes though.

    You don't NEED a phone. Believe the author is just saying that you could acess thru phone if you would like,

    The Web Interface for this Wemos device can be accessed and configured from your desktop browser.

    This uses OctoPrint -- and that already gives you full control on your Desktop with a web interface. This Wemos version simply displays status from the OctoPrint server.

    Thanks, the idea is that I can put it on my desk or anywhere in the house and keep an eye on what my print job is doing without pulling out the computer or phone to check.