#523 JP-QR701 Thermal Printer Basics
Learning how to use the JP-QR701 thermal printer module with an Arduino, including QR codes generated with Python.

Here’s a quick demo..
Notes
I’ve wanted to play around with a thermal printer for a while, now I finally have the chance since I snagged a GOOJPRT QR701 Mini 58mm Embedded Receipt Thermal Printer on aliexpress.
After a bit of investigation, I discovered the OEM is 厦门精普电子科技有限公司 Xiamen Jingpu Electronic Technology Co Ltd, and they specialise in a wide range of thermal printing products. The JP-QR701 is a very similar (idential OEM?) to products available from AdaFruit, Sparkfun and other retailers.

JP-QR701 Specs
JP-QR701 58mm embedded miniature thermal printer
- small size, light weight, fully functional
- simple, easy connection
- high-speed, high-quality, stylish
- standard GB2312 large font
- Printing method: Thermal dot line printing
- RS232 / TTL interfaces, voltage 5-9V / 12V
| Feature | Sepcification |
|---|---|
| printing method | Thermal line |
| Print width | 48 mm |
| Dot density | 384 points / line |
| printing speed | 90 mm / s |
| Interface Type | RS232 / TTL |
| Paper roll diameter | ≦ 40mm |
| Paper thickness | 0.06-0.08mm |
| Paper roll | Width: 57.5 ± 0.5 mm |
| Character size | ANK character, Font A: 12 × 24 dots, Font B: 9 × 17 dots |
| Barcode Hard font | GB2312 font |
| Barcode type | UPC-A / UPC-E / JAN13 (EAN13) / JAN8 (EAN8) / CODE39 / ITF / CODABAR / CODE93 / CODE128 |
| Input buffer | 32k bytes |
| NV Flash | 64k bytes |
| Printer input voltage | DC 5V / 2A |
| Cash drawer control | DC 5V / 1A |
| weight | 0.183 kg |
| dimension | 109 × 94 × 66mm (depth × width × height) |
| working environment | Temperature: 0 ~ 45 °C, Humidity: 10 ~ 80% |
| Storage environment | Temperature: -10 ~ 60 °C, humidity: 10 ~ 90% |
| Print head life | 50 km |

Self-test
Hold down the button on the top of the printer (or on the control board) while plugging in the power. A diagnostic is printed. This worked for me without issue (using a 5V 2A power supply).
Construction
I have the TTL version of the JP-QR701, so driving it from an Arduino presents no problems.
I put together a simple protoboard test base for a Nano, power supply and printer connections:
- barrel jack for 5V 2A power supply
- mounted the leads for the printer connection
- females headers for mounting an Arduino Nano
- jumper selects whether to power the Nano from the same supply as the printer, with a couple of bulk caps for the Nano supply to smooth out any power fluctuations caused by the printer.


Example Code
The QR701Basics.ino sketch is a simple test of the printer, based on an example from the Adafruit Arduino Library for Small Thermal Printers.
I’ve customised it a bit:
- prints the test page on a button press (instead of at startup)
- add my own QR code
The QR code data in qrcode.h was generated with a python script from here.
I think I need to fiddle with the ESC 7 Setting Control Parameter Command and/or
DC2 # printing density settings, because so far while the printer generates a
recognizable QR code, I can’t scan it with my phone without first colouring it in with a black pen!

Credits and References
- Original GOOJPRT QR701 Mini 58mm Embedded Receipt Thermal Printer RS232/ TTL Mini Embedded Receipt Thermal Printer ESC/POS Print - my source on aliexpress
- JP-QR701 Product Info
- CSN A2 Micro panel thermal printer manual - adafruit; similar/same product? contains full command code doc
- A2 Micro panel thermal printer manual - sparkfun; similar/same product?
- 厦门精普电子科技有限公司 Xiamen Jingpu Electronic Technology Co Ltd - OEM
- Mini Thermal Receipt Printer - AdaFruit product ID 597
- Mini Thermal Receipt Printer tutorial - adafruit
- Adafruit Arduino Library for Small Thermal Printers
- Arduino Nano
- Interrupt problem with Nano

