Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Brother label printers #15

Open
cdplayer opened this issue Feb 2, 2020 · 31 comments
Open

Support for Brother label printers #15

cdplayer opened this issue Feb 2, 2020 · 31 comments
Assignees
Labels
enhancement New feature or request
Milestone

Comments

@cdplayer
Copy link

cdplayer commented Feb 2, 2020

I'd like support for PT-P700 and QL700 models. Is there ability to help financially for these units.
https://atyourside.brother.co.uk/developer-centre/labelling-solutions

@michaelrsweet
Copy link
Owner

I don't have anything set up for this at the moment, but I'll see what options there are.

(But honestly I'm not looking to turn LPrint into a commercial product - this is just a side project for me...)

@michaelrsweet michaelrsweet self-assigned this Feb 2, 2020
@michaelrsweet michaelrsweet added the question General usage question label Feb 2, 2020
@cdplayer
Copy link
Author

cdplayer commented Feb 3, 2020

Just looking to help out our local hackerspace. The Brother models are considerably more popular in Australia but lack good support for linux. Thanks for your work on cups, and starting lprint.

@andreas-gruenbacher
Copy link

andreas-gruenbacher commented Feb 12, 2020

There's actually pretty decent documentation for those printers in the form of the Raster Command Reference manuals at https://www.brother.co.jp/eng/dev/command/reference/.

The upstream location for the current foomatic based driver is at https://github.com/philpem/printer-driver-ptouch, and I've recently started updating that driver when in need for decent support for PT-P700 printers: https://github.com/trialinfo/ptouch-driver. I wasn't aware of LPrint when I started working on this, so that's unfortunate timing.

@michaelrsweet
Copy link
Owner

@andreas-gruenbacher Thanks for the reference documentation, that'll be exactly what I'd need to develop a driver. A lot of the newer Brother label printers actually support IPP and AirPrint - those will work out-of-the-box with CUPS, sans drivers... :)

@andreas-gruenbacher
Copy link

andreas-gruenbacher commented Feb 12, 2020

My PT-P900W seems to implement that, but it's currently worthless to me because I can't integrate the printer into my wireless network: that requires either Wi-Fi Protected Setup or using a Windows utility, and I can use neither.

Also, for the application I need the PT-P700 support for, the most I can expect of users is to know how to plug both the USB and the power cable in and to find the ON button. So if I were to use PT-P900Ws for that application instead, they would surely also be plugged in over USB.

Another aspect is network security: Enabling IPP support in the printer means putting trust in Brother's IPP implementation. And believe it or not, there are actually people who would rather use something like LPrint for that reason alone ;)

@andreas-gruenbacher
Copy link

@michaelrsweet If you end up implementing this yourself, have a look at the ptexplain utility for debugging printer command streams in my ptouch-driver repository. It's as much a work in progress as these things always are, but it was extremely helpful to me already.

@michaelrsweet
Copy link
Owner

@andreas-gruenbacher The AirPrint certification process puts the IPP stack through some fairly rigorous testing, so I personally wouldn't worry about the quality of the IPP implementation. And we can even do IPP over USB these days...

@andreas-gruenbacher
Copy link

Just as a data point, PT-P900W advertise with bInterfaceProtocol 2, so no IPP over USB.

@michaelrsweet
Copy link
Owner

@cdplayer @andreas-gruenbacher FWIW, I'm now setup with the Github sponsors program. Will convert this bug into an enhancement request to support Brother label printers...

@michaelrsweet michaelrsweet added enhancement New feature or request and removed question General usage question labels Mar 28, 2020
@michaelrsweet michaelrsweet added this to the Future milestone Mar 28, 2020
@michaelrsweet michaelrsweet changed the title Can we fund support for Brother label devices Support for Brother label printers Mar 28, 2020
@cdplayer
Copy link
Author

Sponsoring sorted! Thanks Michael.

@andreas-gruenbacher
Copy link

andreas-gruenbacher commented Apr 23, 2020

I've added support for PT-P900W and QL-820NWB (monochrome only) to ptouch-driver in the meantime, so we have reasonably well-working code and some implementation experience.

The QL-820NWB is supposed to support IPP natively as well. The printer does show up, but I couldn't get it to print anything so far.

@philpem
Copy link

philpem commented May 25, 2020

It'd be nice to see support for the PT/QL series in Lprint; issues with CUPS setup have historically been the largest source of support requests. Not least of all because of the history and quirks of the P-Touch CUPS driver (which I currently maintain).

We have a fairly large amount of accrued information about the Brother printers in that repo, mostly the differences are slight ones in command support and more major ones in things like print-head width. The QL series paper-label printers are in general very consistent, the PT (plastic tape) are far less so.

I developed a library to talk to the PT series printers some years ago, including tools to decode the printer control language back into images and textual descriptions: https://github.com/philpem/libptouch

Testing wise I have a PT-2450DX, a QL-500 and QL-570.

@michaelrsweet The Dymo driver looks simple to use as a base for a new driver. Are there any gotchas I need to be aware of when adding new drivers?

@michaelrsweet
Copy link
Owner

@philpem Not a lot of gotchas, the main thing is that I'm planning on updating LPrint to use PAPPL which has a slightly different driver model (very similar to what is in LPrint, just updated to support more kinds of printers and be more general purpose) so at some point in the next 6 months you can expect some code churn...

@cdplayer
Copy link
Author

cdplayer commented Jun 1, 2020

@andreas-gruenbacher, are your changes likely to give support for the PT-P700 that I have. I can do testing for you or give you ssh/nomachine access to a pi/arm_sbc connected to it if that is helpful. Also have QL-500 & QL-700.

@andreas-gruenbacher
Copy link

The old cups + foomatic based ptouch-driver does support PT-P700 and QL-500 printers. For QL-700, we'd need a printer description file. Note that this discussion doesn't really belong here, so if you have further questions, maybe we can move them to printer-driver-ptouch or ptouch-driver.

@smurfix
Copy link

smurfix commented Jun 5, 2021

The CUPS driver model is somewhat unsuited to those label printers. One example: you can ask the printer which label size is currently loaded but there's no way for the driver to print only those documents which can actually be printed. Wrong size? cryptic error, please reset CUPS and/or the printer.

So yes I'd love to have decent support for ptouch in lprint. Would pay $$$. Would also write myself but way not enough free time for that.

@peanutlasko
Copy link

Sponsored @michaelrsweet ! Hopefully you can add support for PT-P700 :)

@michaelrsweet
Copy link
Owner

OK, so this will actually be like two different series of printers. I have a QL-600 and a PT-P700 coming to test things...

@smurfix
Copy link

smurfix commented Nov 27, 2023

Great something's happening, finally. I have two QL-series printers (500 and 550 I think – they're in the basement and I'm lazy) I can help test with.

@philpem
Copy link

philpem commented Nov 27, 2023

I'll have a look at adding support for a few of the other printers supported by the existing P-touch driver. Once the basics are in, adding new printers mostly just involves setting the appropriate feature flags and the print-head width.

I have a PT-2450DX, a QL-500 and a QL-570 to test with.

@michaelrsweet
Copy link
Owner

@smurfix @philpem Thanks both of you; I'll be pushing more to the repository as soon as I get my printers. The language support itself doesn't look too challenging (the minor difference in the raster graphics commands between the QL and PT printers is frustrating but easy enough to work around), but properly detecting the printers and handling the status responses will require a bit of play, otherwise I'd push what I have already...

@michaelrsweet
Copy link
Owner

Current master is not working; in the interests of getting a new release out, I'm going to pull the Brother drivers for now and I'll keep working on it for 1.4.x.

@abishekCodebase
Copy link

Could anyone provide brother HL-B2000D driver for arm64 raspberry pi

@michaelrsweet
Copy link
Owner

@abishekCodebase Sorry, this project only supports label or receipt printers, not regular laser printers.

Looking at the technical specifications, that printer supports PCL6, so any of the PCL6 drivers/printer applications should mostly work with it.

@realcanadrian
Copy link

Could I just send a friendly query on the status of P-Touch printers with LPrint? I noted the main application page says "Brother: Experimental support for QL- and PT-series printers", but I can't seem to find a driver in the list that would obviously support my PT-P750W. Greatly looking forward to trying out this awesome app. :)

@michaelrsweet
Copy link
Owner

@realcanadrian I haven't gotten to finishing the PT-series driver quite yet; was focused on getting the QL-series printers working well first...

@TafkaMax
Copy link

TafkaMax commented Apr 9, 2024

I am looking into aquiring an labelmaker that would also work with linux. Does the PT-P550W also fall into this category of ptouch labelmakers that are supported? As I understand it needs to support IPP to be integrated into the lprint?

@michaelrsweet
Copy link
Owner

@TafkaMax Do you mean the PT-E550W? I don't currently have a driver in development for that model.

WRT what it supports, LPrint is for the non-IPP Brother printers - it provides an IPP "gateway" to older model printers.

@TafkaMax
Copy link

@TafkaMax Do you mean the PT-E550W? I don't currently have a driver in development for that model.

WRT what it supports, LPrint is for the non-IPP Brother printers - it provides an IPP "gateway" to older model printers.

OK thanks for the info.

@andreas-gruenbacher
Copy link

I've managed to get lprint to recognize my QL-802NWB label printer, but commands like ./lprint testsuite/sample-label.pwg only get the printer confused. That's not very surprising given that the driver isn't working yet, but how do I debug what's going wrong now?

I assume that lprint_brother_get_status() does get called, but I don't see the output of the LPRINT_DEBUG() statements even after adding -DDEBUG to CPPFLAGS and rebuilding lprint. Does that kind of output go anywhere?

Is there a way to capture what lprint is sending to the printer? For debugging, I'd like to be able to tell lprint to send its output to a file instead of sending it to the printer so that I can check what it's trying to do.

Are there any other debugging instructions? Thanks a lot!

@michaelrsweet
Copy link
Owner

@andreas-gruenbacher LPRINT_DEBUG statements are logged to stderr.

You can configure a printer with file:https:///path/to/file as the device URI to send the output to a file and then inspect it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

9 participants