#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..
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 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
|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 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|
|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|
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).
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.
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