Using the Brother QL-500/QL-550 label printers from Linux
I was looking for a good label printer for a project of mine and couldn't get my hands on an already Linux-supported Dymo-Costar LabelWriter series.
Instead I found the Brother P-Touch LQ-550 that had the sturdiness, flexibility and low cost-per-label I wanted, but no Linux driver.
As I was in a hurry and without any other valid options, I decided to buy the printer and try to hack something under Linux to make it print whatever I wanted; the problem was that there was no information available at all on how it worked and I couldn't find anyone who had tried to hack it yet as it was a new product.
Brother's web site for programming resources includes a closed-source SDK for Windows platforms only and provides no information on the protocol used for communicating with their P-Touch printers. Useless waste of time.
Like most printers of this type, the protocol used to print is fortunately rather simple: each line to print is made of single bit representing the dots to be burned on the thermal paper and the data stream is sent uncompressed to the printer through a USB channel.
I first proceeded to install the Windows driver and play with the provided labelling utility P-Touch Editor to check out the possibilities of the printer. Then I installed SnoopyPro, an Open Source USB sniffer to collect the data streams sent to the printer and proceeded to make a lot of printouts, varying only one option at a time to check its effect on the commands sent to the printer.
In a couple of hours, I managed to get most of the basics and cobbled together a short protocol description to describe my findings.
After about a couple of years, there are now quite a bit of useful information and drivers for that printer as you will find below, including recently released drivers for Linux, both from the community and from Brother themselves.
RBWednesday 17 August 2005, at 18:58 GMT+8 [X]
A cups driver would be great. However, it also suprises me that brother does not deliver a driver, because of their pro-active atttitude towards linux (http://solutions.brother.com/linux/en_us/index.html)
RenaudWednesday 24 August 2005, at 02:32 GMT+8 [X]
Yes Brother supports Linux, but only for their standard printer products unfortunately.²I hope they will consider their labelling printers as well but I doubt that they will do much: the P-Touch software used to make and print labels is windows only and proting it to linux would be a pretty major endeavour I guess, so it's unlikely that they would spend time on this unless we keep badgering them for it.²I urge everyone to just make requests though their enquiry form: https://secure5.brother.co.jp/LinuxContactUs/contact/Linuxform.html²
neuralnedTuesday 12 September 2006, at 01:43 GMT+8 [X]
I've had extremely bad luck... things weren't working under linux (I got the perl script to work, but nothing via cups) and hooked the thing up to a mac i have here. Turns out that you cant just 'lpr' direct to the label printer under osx, either, you have to use this utterly braindead P-touch editor app. Very frustrating.
nephi513Tuesday 13 March 2007, at 00:11 GMT+8 [X]
I know this is some what of an old article, but I would like to point out that I have found Offical Brother Test Drivers. I don\'t know for sure if they have anymore as this is the only page I was able to find. With a little copying and paste of the ppd file in the right location for ubuntu I was able to get it to work. (ppd file should go in /usr/share/ppd, copy it form /usr/share/cups/model/brql5*0.ppd). Here is the link. solutions.brother.com/bsc_ph/os/linux/linux_ql500550.html
houseFriday 22 August 2008, at 16:51 GMT+8 [X]
I have the brother drivers working for the ql500 everything prints great, but the 1/2" continuous labels. The continuous label will print about 3.75" and carry over data to the next line. Then advance and print my second line in same fashion.
What I would like to be able to do is:
1. Print on both top and bottom of the tape.
2. Print an area around 8" in length single line.
I have found the various settings and tried to play with them for the image area and label length but still no luck. It will just print on the bottom half of the label for length no longer than 3.75".
I am running Debian Lenny on ALIX mini pc board.
E.RThursday 18 September 2008, at 18:19 GMT+8 [X]
I have a custom Win software. currently using the dymo. Can anybody develop an exe that would detect and translate the data to the brother QL500/570?
If you can pleae respond
anonWednesday 26 November 2008, at 11:11 GMT+8 [X]
Why even bother buying hardware from vendors that obviously are not interrested supporting it for your favourite OS?
mungewellThursday 19 February 2009, at 16:19 GMT+8 [X]
Just a quick ACK on the QL-570; this does basically print with Arne's driver.
Margins are a bit restrictive and I haven't got the cutter to work yet.... but it does put 'pen to ink'.
GrantThursday 05 March 2009, at 21:31 GMT+8 [X]
I'm using the QL-570 with the 550 driver and it's not usable on a 29mm x 90mm label. The right margin extends about 80% across the label so only 20% of the label is printable. It also refuses to cut the label after printing, even by manually pressing the "Cut" button. It also refuses to feed the label after printing, even by manually pressing the "Feed" button. The only way to detach the label after printing is to press Power, Power, Feed, and then Cut.
GrantWednesday 01 April 2009, at 18:57 GMT+8 [X]
I'm not sure if I made a mistake before or if updating a whole lot of packages fixed it, but the margins are perfect on a 29mm x 90mm label with the QL-570 now. Only the autocutting problem remains.
192.168.254.1Thursday 02 April 2009, at 00:10 GMT+8 [X]
I bought a QL-550 but it has the same cutting problem I describe the QL-570 as having. Does anyone know how to fix this?
philpemMonday 13 April 2009, at 16:43 GMT+8 [X]
Been trying to use Arne's driver on a PT-2450DX. Doesn't work at all -- the printer's LCD displays "INTERFACE" for a few seconds, then it goes back to waiting for you to type something at the keyboard. It looks to me like the control codes are being sent incorrectly (based on a comparison with the Windows driver).
It's basically the same command set the PT-9500 uses, except the "expansion buffer" is 16 bytes (128 dots) instead of 384. Obviously, the head is also 128 dots wide.
MichaelMonday 13 April 2009, at 21:24 GMT+8 [X]
I bought the QL560 in Germany (the 550 is not available here).
By using SnoopyPro I found that to get the automatic cutter to work one needs to add the sequence: 1b 69 4b 08, before the pixel data is sent.
By the way: I'm not able to get the CUPS stuff to work on openSuSE. The problem is, that openSuSE has no prepared mechanism to convert the xml-data to .ppd. As I compiled the rastertoptch I just need the .ppd files to get it running. Does someone know where I can get the ready to use .ppds for the QL-500/550/560?
ChrisSaturday 06 June 2009, at 17:45 GMT+8 [X]
you need the foomatic-db-engine which creates ppd files on the fly from the foomatic xml description files. Unfortunately it's not avaible for SuSE as pre-compiled packages. Get it from www.linuxfoundation.org/en/OpenPrinting/Database/Foomatic and do a "./configure; make; make install". That should make all printers that are defined in .xml files avail to Yast and Cups.
noisebleedTuesday 21 July 2009, at 15:46 GMT+8 [X]
Does anyone has the XML file for QL-580N?
bertiebassettSunday 31 January 2010, at 18:46 GMT+8 [X]
Very useful resource. My QL-560 as stated by Michael wanted : $self->send('1b694b08'); in place of #$self->send('1b694d' . apermode); and then the cutter works like a treat. Thank you all - you are brilliant.
andrewWednesday 17 February 2010, at 04:43 GMT+8 [X]
any word on support for the newer printers (PT-2430PC) ? the printer shows up in lsusb but cups does not see anything useful (nor is there anything in /proc/bus/usb and yes the usbfs fs is mounted ) -- Mr. Glenstrup's driver doesn't seem to help either.
Bernard HattTuesday 27 April 2010, at 21:37 GMT+8 [X]
I've got a conversion utility which works for the PT-1230PC, which might work for the PT-2430 as well. I'd include a link but it says "no links allowed", but a search for "1230pc linux" should find it ...
linux wilmaSaturday 18 December 2010, at 01:29 GMT+8 [X]
Any news about the PT-2430?
To confound further, any cygwin under Windows XP possibilities anyone know about? `lpr -d printer file.txt` shows a driver
receiving a file, then doing nothing without complaint.
stephankThursday 30 December 2010, at 16:49 GMT+8 [X]
I fail to print to forms with 62mmx29mm on QL560 from Java under Windows XP. The printer driver always rejects the print jobs because it can't use the form size, that I set in the printer driver. Any workaround to stop the printer driver complaining?
PanderTuesday 01 March 2011, at 13:24 GMT+8 [X]
Please include support for QL-570. See also this ticket at Ubuntu: https://bugs.launchpad.net/ubuntu/+bug/727152
Shpend BardhiTuesday 11 October 2011, at 14:27 GMT+8 [X]
How can you print Barcodes in Linux? I got the label printer working with text only. But I have no idea how to insert barcodes, or even generate them. In Windows P-Touch does this for me.
FlobbyDiskThursday 17 November 2011, at 03:12 GMT+8 [X]
you can use glabels to create labels with barcodes...
RossBosWednesday 23 May 2012, at 07:39 GMT+8 [X]
I have a QL-500 and can't get it to honour the "print density" command iD where =1-5 It seems to print everything at maximum print density, which overburns bacodes. Does anyone have a solution?
RossBosWednesday 23 May 2012, at 07:42 GMT+8 [X]
The posting above los >< codes in the translation! Should be:
I have a QL-500 and can't get it to honour the "print density" command >Esc<iD%gt;n< where >n<=1-5 It seems to print everything at maximum print density, which overburns bacodes. Does anyone have a solution?
192.168.0.1Wednesday 23 May 2012, at 08:48 GMT+8 [X]
Third time lucky!
I have a QL-500 and can't get it to honour the "print density" command <Esc>iD<n> where <n>=1-5 It seems to print everything at maximum print density, which overburns bacodes. Does anyone have a solution?
Simon HürlimannWednesday 09 January 2013, at 12:57 GMT+8 [X]
Looks like Brother released a command specification for the QL Series: download.brother.com/welcome/docp000678/cv_qlseries_eng_raster_600.pdf