All printers are objectively awful. But this might be the cutest little printer I've ever used!
This is the Phomemo M02 Pro. If you remember the late, lamented Little Printer you'll immediately understand the appeal. Connect your phone to it, and immediately print out text, graphics, drawings, rules, Tweets, the weather, ANYTHING!
It uses thermal paper, so there's no ink to run out and no expensive refills. Phomemo sell their own paper in a range of colours and styles - but it looks like it will take any suitably sized 53mm roll. It came with sticker paper - so you can stick your doodles wherever the mood strikes.
For normal users, it requires an app. I know what you're thinking, Shenzen apps are usually dire. But this one is pretty good! It was quick to connect on Android and it is also cutesie.
One thing to note - the app has 5* reviews and most of them look like they are fake. Lots of identical messages and effusive comments. There's no need for this astroturf - the app is decent. It connected first time and I was printing out pretty much instantly. Third party apps are available and they seem to work, but need some configuring.
The printing quality is great for a device this size. It's about 300dpi - but you need to take care not to make the text too small though. There's a serrated edge to make it easy to tear off what you print.
It only prints pure black and white, so images need to be dithered before printing. The quality is good - given the size.
It prints quickly. Really handy if you want to print off name badges, or quick custom stickers.
It's USB-C chargeable - and comes with a USB-A to -C cable, which is 30cm long. It has an in-built battery. Using the app you can set how long it stays on for. Overall, it's a cute and useful device and prints really quickly.
There is none. If it is powered on, any Bluetooth device can connect to it and print. This is a feature, not a bug. You can set the printer to automatically switch off after a few minutes - but pressing the prominent power button turns it on again.
The device will only connect to one Bluetooth device at a time. So make sure your phone or laptop is connected at all times!
Depending on the whims of Amazon, it's between £65 - £90. Thermal paper refills are pretty cheap, especially if you buy 3rd party or in bulk.
This review unit was supplied by NiceRebate join using that affiliate link and I get a fiver. Or don't. See if I care!
As well as charging via USB-C, it also presents as a USB printer:
0493:8760 MAG Technology Co., Ltd M110-Label Printer
I wasn't able to configure properly - I spoke to Phomemo and they do not provide Linux support.
I could connect to it via Bluetooth - I configured the printer via Bluetooth as per this tutorial. Essentially finding the MAC address and adding the printer as
But what printer driver to choose? Generic Dot Matrix produced line-feeds but no content.
I tried using the ZJ-58 drivers - but that didn't work.
If anyone has any suggestions - please let me know!
T: Bus=01 Lev=01 Prnt=01 Port=02 Cnt=02 Dev#= 11 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1 P: Vendor=0493 ProdID=8760 Rev=02.00 S: Manufacturer=STMicroelectronics S: Product=M110-Label Printer S: SerialNumber=M110-Label Printer C: #Ifs= 3 Cfg#= 1 Atr=c0 MxPwr=100mA I: If#=0x0 Alt= 0 #EPs= 2 Cls=07(print) Sub=01 Prot=02 Driver=usblp I: If#=0x1 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=01 Driver=(none) I: If#=0x2 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=(none)
Here's the verbose
Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 idVendor 0x0493 MAG Technology Co., Ltd idProduct 0x8760 bcdDevice 2.00 iManufacturer 1 STMicroelectronics iProduct 2 M110-Label Printer iSerial 3 M110-Label Printer bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 0x006a bNumInterfaces 3 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 100mA Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 0 bInterfaceCount 1 bFunctionClass 7 Printer bFunctionSubClass 1 Printer bFunctionProtocol 2 Bidirectional iFunction 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 7 Printer bInterfaceSubClass 1 Printer bInterfaceProtocol 2 Bidirectional iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 1 bInterfaceCount 2 bFunctionClass 2 Communications bFunctionSubClass 2 Abstract (modem) bFunctionProtocol 1 AT-commands (v.25ter) iFunction 1 STMicroelectronics Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (modem) bInterfaceProtocol 1 AT-commands (v.25ter) iInterface 0 CDC Header: bcdCDC 1.10 CDC Call Management: bmCapabilities 0x00 bDataInterface 1 CDC ACM: bmCapabilities 0x02 line coding and serial state CDC Union: bMasterInterface 0 bSlaveInterface 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 255 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 10 CDC Data bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x05 EP 5 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0
lpinfo -v shows it as