Review - Phomemo Mini Bluetooth Printer


All printers are objectively awful. But this might be the cutest little printer I've ever used!

A hand-held pink cube with paper coming out of it.

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.

An open thermal printer with a small roll of paper.

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.

Cute images in an app.

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.

Lots of tiny characters on paper.

It only prints pure black and white, so images need to be dithered before printing. The quality is good - given the size. A pixelated image.

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

Share this post on…

  • Mastodon
  • Facebook
  • LinkedIn
  • BlueSky
  • Threads
  • Reddit
  • HackerNews
  • Lobsters
  • WhatsApp
  • Telegram

5 thoughts on “Review - Phomemo Mini Bluetooth Printer”

  1. 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.

    Reply
  2. 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)

    Reply

What links here from around this blog?

What are your reckons?

All comments are moderated and may not be published immediately. Your email address will not be published.

Allowed HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <p> <pre> <br> <img src="" alt="" title="" srcset="">