To print an image or QR code from an ESP32, convert it to a monochrome bitmap that fits the printer’s printable width, then send that bitmap using the printer’s supported protocol and library. With Adafruit’s Arduino thermal printer library, the relevant API is printBitmap(). Its example prints a logo and a QR code that was generated in advance; it does not show the library creating QR codes.
Check the printer before choosing a library
“ESP32 thermal printer” does not identify one standard connection or command set. First check the printer’s model, interface, supported protocol, printable width, voltage, and power requirements. The Adafruit example discussed below uses TTL serial, so its wiring, commands, and library are not a safe assumption for a Bluetooth, USB-only, ESC/POS, or other printer.
Adafruit’s cited Tiny Thermal Receipt Printer is specified as TTL serial and 384 dots per line, but its product page says it is no longer stocked. Treat those details as specifications for that model, not as a recommendation or a description of every ESP32-compatible printer. Adafruit Tiny Thermal Receipt Printer product page.
Prepare an image as a printer-width bitmap
Convert and size the image
Thermal receipt printers typically need raster data rather than a color image file. Convert the image to a monochrome bitmap, then resize or crop it to the printer’s printable width before sending it. For Adafruit’s library, bitmap data is processed in horizontal groups of eight pixels. If the width is not divisible by eight, the guide says the remaining pixels are cropped to the next smaller multiple of eight. Adafruit Mini Thermal Receipt Printers full guide.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →#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
Send the bitmap with the library
The Adafruit library documents printBitmap(w, h, bitmap, fromProgMem) and stream-based overloads. Here, w and h are the bitmap dimensions; use the overload and storage approach that matches where your bitmap data resides. See the Adafruit Thermal Printer Library class reference and official library header for the API details.
The library’s official printer test example demonstrates calling printBitmap() for a logo and a 135-by-135-pixel QR image stored in a header array. That is a demonstration of printing pre-generated bitmap data, not of generating a QR code on the ESP32.
Rank #2
- 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.
Print a QR code as an image
- Generate the QR code with the content you want to encode.
- Convert its image to a monochrome bitmap and size it for the printer’s printable width.
- Send the bitmap through the printer’s supported raster or bitmap path; with the Adafruit library, the example uses
printBitmap(). - Print a test and scan it with the intended device at the size and print density you expect to use.
Adafruit’s guide says QR codes can be printed if they are pre-generated. The cited sources do not establish one QR size that scans reliably across printers, paper, print settings, and scanners, so verify the actual output rather than relying on the example’s 135-by-135-pixel image as a universal requirement. The library also documents printBarcode() for supported linear barcodes; that is distinct from printing a QR code as a bitmap. Adafruit Mini Thermal Receipt Printers overview.
Provide suitable power and paper
For the Adafruit printer described in its product and overview pages, the listed input is 5–9 V, and the overview recommends a regulated supply capable of at least 2 A during high-current printing. Do not assume the ESP32 board can supply the printhead’s current; power the printer from a supply suited to its specifications. These requirements are specific to the cited printer, so check the datasheet or product documentation for your own model. Adafruit product specifications and Adafruit overview.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Rank #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.
The cited model uses 58 mm (2.25-inch) thermal paper. Confirm both paper width and maximum roll diameter for your printer and enclosure before buying stock; not all thermal printers use the same paper size. Adafruit overview.
Quick Recap
Best Value
- The embedded 58mm thermal printer module has good performance and is widely used in instruments, detection instruments, and other devices that require printing thermal sensitive small ticket paper. Compact and easy to operate, it can perfectly match your device, easily embed any type of instrument and meter, making printing more convenient.
- Low noise thermal printing,Support text, bar code, QR code etc printing,Provide ESC/POS print instruction set And development materials.
- Opening the paper bin cover on the front panel facilitates paper replacement; Different interfaces are optional (TTL/RS232+USB), with RS232 as the default; If you need to use TTL, you can contact us via email and we will guide you on how to switch to TTL;
- This thermal ticket printer supports platforms such as microcontroller development, Android system development, Linux, Windows system serial port development, and USB driver printing
- Package List:1 * Printer;1 * USB Cable;1 * Wiring Harness;Compatible System: Windows, IOS, Linux, Android;Item Size: 82*58*44MM/ 32.29*22.84*17.33 in.
Rank #4
- Versatile Compatibility: This thermal receipt printer can be connected to MCU, for Andr, for Window and other platforms, for Andr provides secondary development kit, provide ESC, POS printing instruction set and development materials.
- Flexible Connectivity: The embedded thermal printer features multiple interfaces, including RS232, TTL, USB, BT. You can choose the appropriate serial connection based on your requirements.
- Simple Operation: Simply open the paper compartment cover on the front panel to replace the paper, and by twisting the screws on both sides of the paper compartment, the slider can be moved to fix the printer to the device.
- Small Program Upgrade: Clear small program upgrade setting interface, solving the problem of non disassembly and non return to factory upgrade and maintenance.
- Wide Applications: This embedded printer is suitable for industrial equipment control panel, cash register, self service machine, vehicle printing equipment, laboratory instrument, etc.
Troubleshoot blank, cropped, or unreadable prints
- Nothing prints: confirm the printer’s interface and protocol match the library and connection you are using. The Adafruit example is for TTL serial, not a universal ESP32 printer interface.
- The image is cut off at the right edge: check that its width fits the printable area. With the Adafruit library, widths not divisible by eight are cropped to the next smaller multiple of eight.
- The QR code does not scan: test the printed result with the target scanner. The example’s dimensions do not guarantee readability at every print density or physical size.
- Printing is unreliable under load: check the printer’s specified supply voltage and current needs; the cited Adafruit overview recommends a regulated supply capable of at least 2 A for its model.
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.

