Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsWith an ESP32 and a UART/TTL thermal receipt printer, you can print receipts, QR codes, labels, sensor readings, or short messages. The quickest first build is a text receipt; the others add image formatting, networking, or input-safety work. These projects use ESC/POS commands, the practical way to control printing, feeding, cutting, and other printer functions.
What you need for any of these projects
Choose an ESP32 development board with embedded USB-to-serial and breadboard-friendly headers. Espressif’s Arduino core documentation lists the ESP32, C3, C5, C6, H2, P4, S2, and S3 families as supported: Arduino ESP32 Getting Started. Espressif describes the ESP32 as “a single 2.4 GHz Wi-Fi-and-Bluetooth SoC designed by Espressif Systems.”
For the printer, look for a 58 mm or 80 mm ESC/POS thermal receipt printer with a UART/TTL interface. Set the software to match the paper width; an incorrect width can throw off alignment or clipping. The ESC/POS component supports common receipt functions, including text, QR codes, barcodes, bitmaps, paper feed, cutting, and beeping.
Connect the printer’s UART/TTL pins to the ESP32, check the signal logic levels, and establish a common ground. Use the printer’s specified external power supply: the ESP32 board should not be assumed to provide the current a print head needs. Depending on the printer’s electrical interface, a UART level shifter may also be required. The Circuit-Digest PNP-500 example and DigiKey’s ESP32 thermal printer tutorial illustrate UART-based setups.
#1 Best Overall
- 【Complete Ready-to-Use Kit】Includes 58mm thermal receipt printer module and Lonely Binary Type-C TTL Base Board for ESP32-S3, Raspberry Pi Pico, and other 3.3V/5V microcontrollers
- 【Single-Cable Smart Power System】Base board negotiates with USB-C PD adapters to supply 9V to the printer while powering your MCU simultaneously
- 【Simplified Wiring Setup】Only one Type-C cable and one PD charger required; eliminates multiple power supplies and reduces wiring complexity
- 【Important Power Requirement】Requires USB-C PD adapter with 9V output. Standard USB or PC Type-C ports (5V only) will NOT power the printer
- 【Optimized for Receipt Printing】Supports UART TTL and RS232. 203 DPI resolution, 50–80 mm/s print speed, 48mm effective width on 58mm paper—ideal for receipts, bills, and tickets
Compare the four builds
| Build | Complexity | Connectivity | Output | Power and enclosure considerations |
|---|---|---|---|---|
| Receipt or invoice maker | Lowest; a good first project | Local buttons or a small web form | Formatted text, totals, feed, and cut | External printer supply; basic mounting |
| QR, barcode, and image label printer | Moderate; adds code and image formatting | Local input or a supplied value | QR codes, CODE128 labels, and one-bit bitmap art | External printer supply; align labels and printed art to paper width |
| Wi-Fi/MQTT message and sensor printer | Moderate; adds network handling | Wi-Fi, web page, or MQTT | Messages, readings, timestamps, and logs | External printer supply; provide an enclosure for the board and wiring |
| Retro or public print station | Highest; input and safety hardening are additional work | Bluetooth front end or local web page | Short user-submitted text and other ESC/POS output | External printer supply; secure the printer and add a physical cancel control |
1. Make a receipt or mock invoice printer
Start with a button that prints a sample purchase, event ticket, or mock invoice. This build teaches the basic path from ESP32 input to UART data and printed output without adding a network or image pipeline.
- Wire the ESP32 UART to the printer’s UART/TTL interface, with a common ground and the printer powered from its specified external supply.
- Configure the ESC/POS library for the printer’s paper width.
- Send a few lines of text, then add alignment, columns, and a total. The Circuit-Digest example includes an invoice-style printout.
- Add paper feed and, if your printer supports it, a cut command. Test short prints first and adjust spacing to avoid clipped lines.
Once the button-driven version works, replace the fixed example data with fields from a small local web form. Keep the form simple: item names, quantities, and prices are enough to make a useful demo.
Rank #2
- 【Complete Ready-to-Use Kit】Includes a 58mm thermal label printer module and Lonely Binary Type-C TTL Base Board, ready for ESP32-S3, ESP8266, and other 3.3V/5V microcontrollers via UART
- 【Single-Cable Power & Data】Smart base board negotiates with USB-C PD adapters to deliver 9V to the printer while powering your MCU, so one Type-C cable replaces multiple supplies and messy wiring
- 【Important Power Requirement】Requires a USB-C PD charger that supports 9V output. Standard USB ports or PC Type-C connections provide only 5V and will NOT power the printer module
- 【Multiple Interfaces & Fast Printing】Supports UART TTL, RS232, and USB communication with 203 DPI resolution, up to 80 mm/s print speed, and 48 mm print width for labels and receipts
- 【Wide Compatibility & Support】Works with Raspberry Pi Pico, ESP32, and other UART microcontrollers, with sample code compatible with the C++, ESP-IDF, and MicroPython
2. Print QR codes, barcodes, and image labels
Use ESC/POS output to turn the printer into a compact label maker. A QR code can encode a URL or Wi-Fi credentials; a CODE128 barcode can identify a box or project; a one-bit bitmap can add a small logo.
- Begin with plain text so you can confirm the paper width and printer connection.
- Add a QR code or barcode using the printer library’s supported ESC/POS functions.
- Convert any logo or icon to a monochrome bitmap before sending it. The PNP-500 example reports a 384-pixel bitmap width; that is specific to its example hardware, not a universal thermal-printer limit.
- Print a test label and adjust the image size and margins for your particular printer and paper.
Keep QR content useful but not overly long: a compact destination or credential string is easier to fit and scan than a large block of text.
Rank #3
- The 58mm embedded micro thermal printer has excellent performance, clear printing and beautiful structure, and is widely used in medical instruments, testing instruments and other equipment. CAD or 3D drawings are available. It works perfectly with your device, making printing easier than ever. Easily embedded into any type of instrumentation for printing.
- This thermal receipt printer can be connected to MCU, Android, Linux, Windows systems and other platforms, and Android provides a secondary development kit. It can easily print text, pictures, barcodes, QR codes, etc. Provide ESC/POS printing instruction set and development materials.
- The power supply of the printer is 5~9V; the physical interface of RS232/TTL+USB is provided, and the default is RS232. If you need to switch to TTL, you can contact us and we will tell you how to switch.
- We really like this printer because its easy to make Bold, underline , inverted text , variable line spacing, left/center/right justification, barcodes with adjustable height, and even custom QR code.
- Open the paper compartment cover on the front panel to change the paper, the operation is simple and convenient.The structure is beautiful, and the slider can be moved to fix the printer on the device by twisting the screws on both sides of the paper bin.
3. Build a Wi-Fi or MQTT message and sensor printer
With Wi-Fi or MQTT, the same UART-and-ESC/POS setup can print reminders, weather readings, home-automation events, or a timestamped daily log. DigiKey’s September 3, 2025 tutorial describes optional Wi-Fi or MQTT control and sensor or timestamp text as use cases.
- First verify that a fixed message prints over UART.
- Add a small web page hosted by the ESP32 or subscribe to an MQTT topic carrying the message to print.
- Keep incoming data short and validate it before sending it to the printer. Add a timestamp or label to sensor readings so a paper log has context.
- Test network loss and repeated messages. Decide whether to discard, queue, or limit messages when the printer is unavailable.
Networked printing adds more moving parts than a local button: Wi-Fi or broker connectivity, message formatting, and printer status all affect whether a notification reaches paper.
Rank #4
- The 58mm embedded micro thermal printer has excellent performance, clear printing and beautiful structure, and is widely used in medical instruments, testing instruments and other equipment. CAD or 3D drawings are available. It works perfectly with your device, making printing easier than ever. Easily embedded into any type of instrumentation for printing
- This thermal receipt printer can be connected to MCU, Android, Linux, Windows systems and other platforms, and Android provides a secondary development kit. It can easily print text, pictures, barcodes, QR codes, etc. Provide ESC/POS printing instruction set and development materials
- The power supply of the printer is 1224V; the physical interface of RS232/TTL+USB is provided, and the default is RS232. If you need to switch to TTL, you can and we will tell you how to switch
- We really like this printer because its easy to make Bold, underline, inverted text, variable line spacing, left/center/right justification, barcodes with adjustable height, and even custom QR code
- Open the paper compartment cover on the front panel to change the paper, the operation is simple and convenient.The structure is beautiful, and the slider can be moved to fix the printer on the device by twisting the screws on both sides of the paper bin
4. Try a retro or public print station
For a challenge build, pair the UART/ESC/POS layer with a Game Boy-style Bluetooth front end, or host a deliberately limited web page that accepts short messages. This is an engineering extension of the documented print path, not a turnkey design established by the cited examples.
- Restrict input length and reject control characters or unexpected data.
- Rate-limit submissions so a visitor or malfunctioning client cannot run through a paper roll.
- Add a physical cancel button that can stop or clear a print job.
- Keep the web interface on a local network unless you have deliberately secured and maintained remote access.
The printer still needs the same external supply, UART connection, common ground, paper-width configuration, and ESC/POS handling as the simpler builds. The extra work is managing who can submit jobs and what those jobs contain.
Best Value
- The 58mm embedded micro thermal printer has excellent performance, clear printing and beautiful structure, and is widely used in medical instruments, testing instruments and other equipment. CAD or 3D drawings are available. It works perfectly with your device, making printing easier than ever. Easily embedded into any type of instrumentation for printing.
- This thermal receipt printer can be connected to Arduino,MCU, Android, Linux, Windows systems and other platforms, and Android provides a secondary development kit. It can easily print text, pictures, barcodes, QR codes, etc. Provide ESC/POS printing instruction set and development materials.
- The printer supports a wide voltage range of 12V~24V, and the maximum voltage cannot exceed 24V. We provide three physical interfaces, RS232/TTL+USB, with TTL as the default. If you need to switch to RS232, you can contact us by email and we will tell you how to switch.
- We really like this printer because its easy to make Bold, underline , inverted text , variable line spacing, left/center/right justification, barcodes with adjustable height, and even custom QR code.
- Open the paper compartment cover on the front panel to change the paper, the operation is simple and convenient. The structure is beautiful, and the slider can be moved to fix the printer on the device by twisting the screws on both sides of the paper bin.
Common setup problems to check
- No output: confirm UART transmit and receive wiring, baud-rate settings, common ground, and that the printer has its separate supply.
- Garbage characters: check serial settings and logic-level compatibility between the printer interface and ESP32.
- Clipped or misaligned text: make the configured paper width match the installed 58 mm or 80 mm roll, then adjust columns and margins.
- Faint or interrupted printing: verify the printer’s specified supply and wiring rather than trying to power the print head from the ESP32 board.
- QR or bitmap output fails: confirm that the chosen printer and library support the command or image format, and scale the image to the printer’s actual printable width.
Parts checklist
- ESP32 development board with USB-to-serial and breadboard-friendly headers.
- 58 mm or 80 mm ESC/POS thermal receipt printer with a compatible UART/TTL interface.
- Thermal paper matching the printer width.
- Printer-specific external power supply.
- Jumper wires and, if the interface requires it, a UART level shifter.
Before buying, verify the printer listing’s voltage, interface, and paper width; those details vary by model.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

