Review - Phomemo Mini Bluetooth Printer
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 join using that affiliate link and I get a fiver. Or don't. See if I care!
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
Verdict |
---|
Charlie said on twitter.com:
That is cute!
Dragon Cotterill says:
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.
Rachel Morgan-Trimmer said on twitter.com:
@CutieFeast another item to add to our wishlist of cute stationary and/or office supplies that we can invent a need for
Cutie and the Feast said on twitter.com:
Ooh I do love a good stationary gadget
Laurent Vivier says:
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)