Search Site:








Edit - To Do - AllRecentChanges

Recent Changes Printable View Page History Edit Page
Brother QL550
The QL550 Project
This article is part of a small project to hack the QL550 label printer, in particular to use it on linux.
See QL550LabelPrinter for details.


You have a number of Windows machines on a network and want to share your QL550 Label printer through a linux box used as a printer server.


Brother® offers a small network appliance that connects through USB to a QL550 and allows sharing of the device on a network.
This device however costs money and may not be sold where you are. Since everyone has an old PC gathering dust somewhere, installing linux to make a small printer server out of it makes sense. It allows you to move your printers away from your desktops and place them in a place where they are either more accessible or less conspicuous.

Configuring the server

We're not going through the installation process of Fedora or any recent linux distribution you usually uses.
I assume linux is already installed and working on a somewhat less than 5-year old PC that has reliable USB ports.

You will need, on top of your minimum package set for your distribution, the following services up and running:

  • cups, the printer server service, usually installed by default.
  • cups-lpd, the legacy LPD daemon for cups (usually comes with cups, so you should be ok). It requires that the xinetd super-daemon is up an running (which again should be the default).

Make sure these services are running. On Fedora/RedHat one way of doing it from the command prompt is:

chkconfig --levels 235 cups on
chkconfig cups-lpd on
service cusps start

Note: if you are using a firewall on this machine, don't forget to open incoming connections to TCP/UDP ports 631 for cups and 515 for lpd.

Graphical setup

Now, here I assume that you have installed a desktop Manager like Gnome or KDE on your server and that you have access to it to configure the server.
In the next section, we'll see what needs to be done to allow remote access if you don't want to install or don't want to use a graphical environment.

Log in your graphical environment and then plug you QL550 and switch it on.
After a while, a window should appear presenting you with a choice of printer drivers for the newly detected Brother QL550 printer.
Since we don't have a printer driver and won;t use one anyway, just dismiss the window.

Now open your web-browser and point it to http://localhost:631, or, if localhost isn't defined, to
You should be greeted by the cups web administration interface.
If not, check your log files that cups is started and working and that you are doing this from the machine that will become your server! (by default, only the local machine will be allowed to connect to that service).

Click on Manage Printers then add printer:

Choose the correct device the printer is connected to: USB printer #X, or you can scroll down to the HAL: listing if you have one:

Then choose RAW as a model, we don't want our data to be filtered though any driver as we'll be using the one installed on the Windows machines:

Complete the remaining steps and you should now have your printer installed as such:

Now we should be done!
Go to the Windows setup section if you don't need remote administration.

Remote access setup

This is ideal if the PC you use does not need the burden of loading a fully bloated graphical environment or if you don;t want to tie up a keyboard and monitor to your server and use it as a netwrok appliance.

To allow administrative access to cups from any machine on the the network, you need to modify the /etc/cups/cupsd.conf config file first.

Windows setup

On each Windows machine on your network, add the printer as a local printer for which you will create a new standard TCP/IP port with the following information (change the IP address to whatever your print server's):

Then use the driver provided on the QL550 CD to complete the installation process.
When the printer has been created, display its Advanced Properties and change the default settings to the following:

This will ensure that the driver will not assume that Windows is managing multiple copies and will force the driver to output them.
Otherwise, only the first label will be printed.

Note: if you can't locate the driver itself on the CD provided by Brother®, just attempt to install the printer once as if it was localy connected, then remove the newly created printer and add it the way we did it above.

Alternative Windows setup

Instead of using LPD for printing, CUPS recommend using IPP, the Internet Printing Protocol.

Basically when creating the printer, all you have to do is to add the printer as a network printer, then enter as the URL for that printer.

If you have setup CUPS with some print authorisation, you will be asked to enter the username/password for the account used on the linux box to print (you won't be asked anything if you haven't set it up) and the printer will be added normally.

I still prefer to use the older LPD protocol in my case as the IPP implementation on Windows is not as robust and not as available as creating a TCP/IP port.


  • Make sure that the page setup of your print matches the type of label in the printer: since the driver doesn't have direct access to the printer any more, it has no way to check if there is a mismatch.
    Your prints will be sent and may block the queue or block the printer.
    It's probably best to only use one type of labels when sharing the printer and preset everyone's printer defaults to that label type.


If everything seems fine but the labels are not printing and when inspecting the cups error log /var/log/cups/error_log you notice a mention of unsuported format or something similar, make sure that the line application/octet-stream in the /etc/cups/mime.types is uncommented as well as the corresponding line in the /etc/cups/mime.convs.

Novel iPrint

Ian Blackwood contacted me recently regarding an issue he had with the QL550 and using Novell iPrint.
He eventually managed to get it to work properly and here is his conclusion email to me. I post it here as it could help others troubleshooting this issue:

Under the printer's "Ports" tab in Windows 2000 there is a checkbox "enable bidirectional support". Unchecking (clearing) this stops the Brother driver from putting up its own little pop-up progress dialog.

I disabled bidirectional at the sending end, and (just to stop the annoying pop-up) at the printing end.
I also set the Windows box that had the printer attached to print direct (more on a whim than anything else).

I thought I had set the sending end to print direct too, but when showing the config to the person who is supposed to be setting it up we found I had it set to spool then print...... yet it worked !

And to add another point - on WinXP we found that it automatically disabled bidirectional support - maybe it figured out it was a one way channel all by itself ! :-)

So just to summarize my setup again:

  1. Windows 2000 Pro (bidirectional disabled) > Novell IPrint IPP client >
  2. Novell iPrint Server (Netware IPP implementation) > Novell Print Handler Gateway (LPR) >
  3. Windows 2000 Pro with "Unix Print Services" (LPD implementation) > Shared Printer (sharename is LPD queue name) >
  4. Windows QL-550 printer with bidirectional disabled, print direct to printer. > USB port for printer.

Another interesting thing - when I was testing LPR to LPR I found that creating a printer and adding an LPR port you don't get Byte Counting anymore. Strange - I remember it being as per your screen capture on Server, maybe Pro is different !

If you add as a "Standard TCPIP Port" and later on choose LPR you can get Byte Counting (amongst others).

You can read Ian's original thread on Novell's forums.


Leave your comments below
Enter your comment (no links allowed): Author:

Edit Page - Page History - Printable View - Recent Changes - WikiHelp - Search - RSS -
Page last modified on Tuesday 28 November 2006, at 13:24 GMT+8 - Viewed 17967 times