This is a single-color high-ish resolution printer that will print and cut labels from a roll. There's more details on the Brother site. We use it primarily for the QR code inventory labels. It should be attached to the PC by the front door at the space.
Software installation & Setup
The printer and the label editor tools should be already installed. Brother does claim to have drivers, but they were iffy at best on linux. Instead we're using the `brother_ql` utility which is a python package. {https://github.com/pklaus/brother_ql brother_ql has its own documentation on github}.
# You'll need pip. On ubuntu, pip is available as a package called python3-pip
pip install --upgrade brother_ql
# We'll put everything in a `ql800` directory and you'll need to create a virtual environment in there
mkdir ql800 && cd ql800
python3 -m venv .
pip install brother_ql
# The user on the PC needs to be in the `lp` group
sudo usermod -a -G lp ems-l001
# And we need a udev rule to allow access to this device from our scripts and the local flask server behind the web
sudo echo '/etc/udev/rules.d/99-label-printer.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="04f9", ATTR{idProduct}=="209b", MODE="0666", GROUP="lp", SYMLINK+="usb/lp0"' > /etc/udev/rules.d/99-label-printer.rules
We need to configure a uvdev rule so we don't need to sudo everytime we want to talk to the printer
SUBSYSTEMS=="usb", ATTRS{idVendor}=="04f9", ATTRS{idProduct}=="209b", ATTRS{serial}=="000W0H924252", MODE="0664", GROUP="lp", SYMLINK+="usb/lp0"
Printer setup
It wants 12V DC power, and USB to the host computer. Load in the label roll. Make sure the "Editor Lite" LED is *not* lit. And close the cover - it will blink orange at you and refuse to print otherwise.
Label sizes and file format
There's various label sizes available. We're using 29x90mm (DK-1201) where there's room for it. 17x54mm (DK-11204) is smaller. To prepare a file for the printer, you need a PNG image in the correct orientation and dimensions. It is not forgiving - if your image is the wrong size/orientation, it will not figure it out and print it anyway.
The printer prints at roughly 300dpi. For best results, prepare a PNG with the exact pixel dimensions for the label size:
Name Printable px Description 17x54 165 x 566 17mm x 54mm die-cut 17x87 165 x 956 17mm x 87mm die-cut 23x23 202 x 202 23mm x 23mm die-cut 29x42 306 x 425 29mm x 42mm die-cut 29x90 306 x 991 29mm x 90mm die-cut 39x90 413 x 991 38mm x 90mm die-cut 39x48 425 x 495 39mm x 48mm die-cut 52x29 578 x 271 52mm x 29mm die-cut 62x29 696 x 271 62mm x 29mm die-cut 62x100 696 x 1109 62mm x 100mm die-cut 102x51 1164 x 526 102mm x 51mm die-cut 102x152 1164 x 1660 102mm x 153mm die-cut d12 94 x 94 12mm round die-cut d24 236 x 236 24mm round die-cut d58 618 x 618 58mm round die-cut
Preparing print-ready files
The file preparation can be done with anything that can output a PNG in the correct dimensions. To help make the QR code labels, there's a web app running on the entry PC which lets you enter a URL and label text and lets you either save the output PNG, or - if the printer is attached and ready - print directly from the web UI.
Note that a landscape oriented label is actually printed in portrait orientation. I.e if you want a 90mm x 29mm label, you'll create a 991px x 306px image and save it rotated 90deg.