3D Print Bed Leveling Tool Using M5StickC+
2023-07-21 | By M5Stack
License: General Public License 3D Print Accessories 3D Printing Arduino
* Thanks for the source code and project information provided by @Dominick Lee
Die Lieferung von Bestellungen nach Belgien erfolgt je nach Bestimmungsort normalerweise innerhalb von 48 Stunden.
Kostenlose Lieferung nach Belgien für Bestellungen im Wert von 50 EUR oder mehr. Für Bestellungen im Wert von unter 50 EUR werden Versandkosten in Höhe von 18 EUR berechnet.
UPS-Fracht im Voraus bezahlt: DDP (Zoll- und Einfuhrgebühren bezahlt von DigiKey)
FedEx- oder DHL-Fracht im Voraus bezahlt: CPT (Zoll- und Einfuhrgebühren sowie Umsatzsteuer sind zum Zeitpunkt der Lieferung fällig)
Rechnungskonto für qualifizierte Institutionen und Unternehmen
Vorauszahlung per Banküberweisung
![]()
![]()
![]()
![]()


Weitere Produkte von vollständig autorisierten Partnern
Die durchschnittliche Dauer bis zum Versand beträgt 1-3 Tage; es können zusätzliche Versandgebühren anfallen. Die tatsächliche Lieferzeit entnehmen Sie bitte der Produktseite, dem Warenkorb und der Kasse.
Incoterms: CPT (Zoll und anwendbare Mehrwertsteuer/Steuer fällig zum Zeitpunkt der Lieferung)
Weitere Informationen erhalten Sie über Hilfe und Kundendienst
License: General Public License 3D Print Accessories 3D Printing Arduino
* Thanks for the source code and project information provided by @Dominick Lee
Do you ever find it a hassle to manually level your 3D printer bed every time you make a print? Even seasoned 3D printing pros need to level the printbed after every couple prints. We’ve created a device that helps tremendously improve this procedure. This project, codenamed OmniLevel, helps you level your 3D printer bed with just a push of a button. We used the M5Stick-C to monitor the pressure between the nozzle of an extruder and the printer bed. Using a force-sensitive resistor (FSR), this allows the user to easily detect when the bed is level.
The current method of leveling a 3D print bed is to manually "eyeball" the surface of your 3D printer bed and adjust the screws on each corner accordingly. Alternately, some users slip a business card or piece of plastic between the printer bed and the nozzle to sense the "friction". This can be a tedious and frustrating task, and one that has led many people to question the usefulness of 3D printers. Sometimes improper leveling has led to poor first-layers and even failed prints.
While some 3D printers may have special auto-leveling features, this tutorial is for the rest of us who may have an old 3D printer laying around that needs manual leveling. With the M5StickC and some basic components, I've created a device that makes the process of leveling a 3D printer bed incredibly easy! Just turn on the device, press one button, and the device will do all the hard work for you.
For this project, you will need the following materials:
It is highly recommended that you have the following supplies:
Step 2: Wiring and Schematic
The assembly will take anywhere from 15 mins to an hour, depending on your skill with soldering. Place the M5StickC on its back. Be careful when soldering and do not overheat the header pins or the FSR sensor or you might melt its terminals.
Instructions:
Step 3: Upload Firmware
Now that your hardware is prepared, you will need to upload the firmware to get the project working. Since this project involves the M5StickC, you will need to make sure you have the M5Stick library. Also, we will be using the OneButton library to handle button press events. Make sure you have both libraries installed. Also, make sure you have the M5StickC board profile by using the Arduino IDE "Board Manager".
Explanation of code for those technically inclined:
To recognize whether the print bed is leveled, a function to calculate percent error is written. In this function, we provide the setpoint as the exact value and the current pressure reading as the actual value. If the percent error falls below a threshold (typically set between 5-8%) then the device considers the print bed as leveled.
Download my code on Github: https://github.com/dominicklee/3D-Print-Bed-Leveler
Step 4: Calibration and Test
Now that you've uploaded the code to the microcontroller, let's test it. Unfortunately, you will have to manually level your 3D printer by hand one more time. Hopefully, it's the last time!
Then follow these instructions to calibrate your device:
Quick tip: Do not place your M5Stick on the print bed when doing the calibration. When you push the button, you would be also pushing on the print bed, and that will affect the FSR reading.
At this point, the red LED should be lit. You've calibrated your device and it's ready to use!
Step 5: Usage
1 / 3
2 / 3
3 / 3
This is how you would level your 3D printer:
Remember to turn off your device afterward by pressing the right-side button.
Let me know if you have any comments, questions, or suggestions. In the future, I may offer an assembled version of this project on Tindie.
Schematics
Code
Github
Co-Browse
Wenn Sie die Co-Browse-Funktion verwenden, erklären Sie sich damit einverstanden, dass ein Kundendienstmitarbeiter von DigiKey Ihren Browser aus der Ferne betrachten kann. Wenn das Co-Browse-Fenster geöffnet wird, geben Sie bitte die Sitzungs-ID, die Sie in der Symbolleiste finden, an den Kundendienstmitarbeiter weiter.
DigiKey misst dem Schutz Ihrer Privatsphäre große Bedeutung bei. Weitere Informationen finden Sie in unserer Datenschutzerklärung und unserem Cookie-Hinweis.
Ja, weiter zu Co-BrowseIn unserem TechForum erhalten Sie schnelle und präzise Antworten von DigiKeys erfahrenen Technikern und Ingenieuren.
Bitte besuchen Sie den Bereich Hilfe und Support auf unserer Website, um Informationen zu Bestellung, Versand, Lieferung und mehr zu erhalten.
Registrierte Benutzer können ihre Bestellungen über das Dropdown-Menü ihres Kontos verfolgen, oder hier klicken. *Es kann bis zu 12 Stunden dauern, bis der Bestellstatus nach Absenden der Bestellung aktualisiert wird.
Nutzer können den Retourenprozess auf der Seite Rücksendungen initiieren.
Angebote können von registrierten Benutzern unter myLists erstellt werden.
Besuchen Sie die Registrierungsseite und geben Sie die erforderlichen Informationen ein. Sie erhalten eine E-Mail-Bestätigung, wenn Ihre Registrierung abgeschlossen ist.
Die Lieferung von Bestellungen nach Belgien erfolgt je nach Bestimmungsort normalerweise innerhalb von 48 Stunden.
Kostenlose Lieferung nach Belgien für Bestellungen im Wert von 50 EUR oder mehr. Für Bestellungen im Wert von unter 50 EUR werden Versandkosten in Höhe von 18 EUR berechnet.
UPS-Fracht im Voraus bezahlt: DDP (Zoll- und Einfuhrgebühren bezahlt von DigiKey)
FedEx- oder DHL-Fracht im Voraus bezahlt: CPT (Zoll- und Einfuhrgebühren sowie Umsatzsteuer sind zum Zeitpunkt der Lieferung fällig)
Rechnungskonto für qualifizierte Institutionen und Unternehmen
Vorauszahlung per Banküberweisung
![]()
![]()
![]()
![]()


Weitere Produkte von vollständig autorisierten Partnern
Die durchschnittliche Dauer bis zum Versand beträgt 1-3 Tage; es können zusätzliche Versandgebühren anfallen. Die tatsächliche Lieferzeit entnehmen Sie bitte der Produktseite, dem Warenkorb und der Kasse.
Incoterms: CPT (Zoll und anwendbare Mehrwertsteuer/Steuer fällig zum Zeitpunkt der Lieferung)
Weitere Informationen erhalten Sie über Hilfe und Kundendienst
Vielen Dank!
Behalten Sie Ihren Posteingang im Auge, um Neuigkeiten und Updates von DigiKey nicht zu verpassen.
Bitte geben Sie eine E-mail-Adresse ein