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.
Security
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!
Cost
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.
Linux details
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 bluetooth://0012345678/.
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!
Geeky details
usb-devices info:
![]()
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 lsusb readout:
![]()
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 direct usb://Unknown/Printer?serial=M110-Label%20Printer%20
5 thoughts on “Review - Phomemo Mini Bluetooth Printer”
That is cute!
| Reply to original comment on twitter.com
Dragon Cotterill
Have you tried some of the Dymo printer drivers?
I have a Dymo LabelWriter450 - but that same driver has also worked with a generic label printer that a friend of mine has.
@CutieFeast another item to add to our wishlist of cute stationary and/or office supplies that we can invent a need for
| Reply to original comment on twitter.com
Ooh I do love a good stationary gadget
| Reply to original comment on twitter.com
Laurent Vivier
Hi,
I've written the CUPS driver to use the M02 printer with linux:
https://github.com/vivier/phomemo-tools
I'm not able to use the GUI to connect the printer, but once it is done manually it works fine.
I've also defined label formats to use with glabel.
I don't know if it will work with M02 PRO, but at least the line size needed to be changed (203 dpi -> 300 dpi)
What links here from around this blog?