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.
You may also like:
- Desktop Linux: the software I'm currently using
- Fixing apt yarn key deprecation warning in Debian 12
- Making my ThinkPad LED flash 'decoded.legal' in morse code
- Wireless printing and scanning with a Brother MFC L2750DW on Debian
- Mounting LUKS-encrypted disks by UUID
- I'm not sure that I can trust Bitwarden with my TOTP codes anymore
- Triggering a remote lamp automatically when I am on a call
- Disabling my ThinkPad's internal camera on boot
- Snikket, a self-contained XMPP distribution
- GSConnect (KDE Connect), WireGuard, and Debian 12 Bookworm
- Unlocking a LUKS-encrypted partition via ssh on Debian 12 Bookworm
- NetworkManager: automatically switch between Ethernet and Wi-Fi
- Fixing sogo's 'incorrect string value' error
- Updating the LUKS key derivation function on Debian
- Backing up to a USB stick automatically via udev