Getting a Brother QL-710W label printer working via CUPS on Debian

I have a old-ish Brother QL-710W label printer. It has a Wi-Fi function, but I don’t really want it connecting to the network itself. Instead, I wanted to connect it to a box (either a Raspberry Pi or an Intel NUC) running Linux, which will expose the printer over the network via CUPS, so I can print labels from my laptop and phone.

I’ve got it working to the point where I can print from my laptop, but not from my phone. No idea why…

Install CUPS

sudo apt install cups -y

Get the drivers from Brother’s website

Brother offers Linux support, which is nice.

wget https://download.brother.com/welcome/dlfp002198/ql710wpdrv-3.1.5-0.i386.deb

Install the drivers

sudo dpkg -i --force-all ql710wpdrv-3.1.5-0.i386.deb

At the end, it ran this (I didn’t do it manually; it did it. I’m just putting this here for reference.)

lpadmin -p QL-710W -E -v usb://Brother/QL-710W?serial=000J6Z874650 -P /usr/share/cups/model/Brother/brother_ql710w_printer_en.ppd

I got an error message that it couldn’t find/create a spool file. I didn’t spot this at first, and I spent ages working out why it did not work.

sudo mkdir -p /var/spool/lpd/ql710w
sudo chown lp:lp ql710w/
sudo chmod 775 ql710w/

Add my user to the print group

sudo usermod -G lp -a neil

Enable remote printing via CUPS

sudo cupsctl --remote-any
sudo systemctl restart cups

I sorted my firewall rules at this point.

Check the printer is showing

lpstat -v

which gave me

device for Brother_QL-710W: usb://Brother/QL-710W?serial=000J6Z874650
device for QL710W: usb://Brother/QL-710W?serial=000J6Z874650

Do a test print

echo "Test" > test.txt
lp -d Brother_QL-710W test.txt

And it should print out a poorly-formatted label.

And it should “just appear” on your laptop

This sets it up for driverless printing, so you shouldn’t need to install anything on your laptop.

On Debian 12, this worked fine: I could use gLabels to create a label and send it to the label printer.

I couldn’t get it to work on my phone, even using the Brother Android app, and specifying the printer by IP address. I’ve tried specifying ports (631, 137) too, but no luck so far. Same story on Sandra’s iPhone. So I am most of the way there, but not the whole way there. I have not tried Samba yet.

I couldn’t get the brother_ql_web interface to work

There is a nice Python project for Brother (and other label printers), exposing an easy to use web interface. This would overcome the problem of it not working on my phone, as I could just use the web interface.

After faffing around with a Python venv, I was able to get the Python drivers working from the command line, but the web interface threw an error about incorrect size, which I was not able to fix. I’ve filed a bug report so perhaps this will get fixed at some point (or I get told how I’ve messed it up).

Now fixed, thanks to the kind developer who fixed the bugs.

Next steps

I am going to start seeing who wants a Christmas card soon, and it would be nice if there was an easy way to generate the labels for the envelopes.

Ideally, I’d use a text file, or series of text files, with the label information in them, and point that at the printer, and it would spit out loads of labels. I’d rather not create each label individually. So perhaps a bit of work to do there.