Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Brother QL-800 Label Printer

From Eugene Makerspace Wiki
Revision as of 00:56, 16 February 2026 by Sfosteriam (talk | contribs) (Moar setup docs)


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 touch '/etc/udev/rules.d/99-label-printer.rules 

# And the following in 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

# Pull down the code from the repo. This has the label editor web app (flask server) and some batch label generation scripts. 
git clone git@github.com:sfoster/ql800-label-maker.git

# And install the dependencies:
pip install -r server/requirements.txt 


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.