"Some of the documents that we previously received through FOIA suggested that all major manufacturers of color laser printers entered a secret agreement with governments to ensure that the output of those printers is forensically traceable."
The yellow dot feature doesn't exist? It most certainly does.
You can see this yourself by putting a darker ink in place of the yellow in your printer.
Out of curiosity, why couldn't I make a printer driver that always sent the printer data with some extra yellow dots scattered around, in an arrangement that would make the tracking codes illegible?
Perhaps the yellow dot is placed slightly off from the axies of the standard grid, making it unforgeable through input data-- I'm not sure that's what they've done, but surely they have to have considered input sanitization to some degree
That's exactly how countermeasure software works. I believe it was both the EFF and CCC that developed counteractive software for this after initially discovering it (correct me if I'm wrong).
The firmware would make sure the significant yellow dot patterns would be recognisable by not printing some of those yellow dots you tell it to print. As long as the firmware has the final say on what ends up printed there is no way you can avoid those watermarks no matter how cunning your scheme is. Stalin was right when he said "It's not who votes that counts, it's who counts the votes" - this is just as applicable here: "It's not who orders the print what counts, it's who prints the order".
Given that there is open source firmware for 3D printers, I’d say no. Also, the “resolution” of 3D printers is not high enough to allow for a tell tale “mark” that was otherwise undetectable.
I mean you can't laser print bank notes either, not just because of the EURion constellation [1], but because they look and feel literally nothing like bank notes. I honestly never understood the imeptus.
Oh, you can absolutely laser print bank notes. It used to be a thing in the 90s, either with color laser printers or color photocopiers. Of course, they're absolutely horrid fakes.
Now, the only person dumber than a criminal who would think to try this is a store clerk who would accept these. So it is not an effective crime, unless the effect you want is "jail, quickly". But it is nonetheless a real crime.
Generally counterfeiters will strip the ink from a $1 bill and print a $20 or $50 on it. This way it feels like real money. It is easily detectable if you hold it up to the light, but a cashier might not notice it right away.
Because not enough people with the skills or resources to do it care enough to do it. It's not really all that strange when you think about it; when printers started to become extra annoying people stayed on the well known ones and when they got to the MFP or current models and types stage, the people that could do it started to care less and less about printing.
The problem isn't in the mechanics of the printing; controlling a carriage along one axis, and a couple of rollers is essentially a 'simpler' version of a 3d printer. Interpreting a representation of the desired output into signals to drive the mechanics is also already a done deal (think in terms of G-code for example).
The real problem is in the existing controller (usually a really niche, old and crappy setup) and the rather low quality of most of the components (remember: this is mass produced stuff, intended to make money on volume, not quality). So you have to keep track of what offsets and adjustments you need to add in order to keep the output of the device somewhat reasonable. And then you need to make sure that the host system knows what to send to the device, which might be 'dumb' data like a bitmap raster, or something faster and higher quality (because the printer can adjust what it does based on what it knows the output needs to be -- this is nearly impossible to do for pre-rendered jobs), at which point you get into PS and PCL which is about as problematic has HTML 4 was, but instead of fixing it for 1 browser, you'd be fixing it again and again for every print job...
In the commercial mass produced stuff, a lot of resources are put in validation and correction algorithms, this is probably as close to a definition of 'secret sauce' you can get, and also really a big problem caused by the need for a manufacturable design that is profitable.
Technically, this could be done slightly easier if the controller and tolerances were better; but at that point you'd have to replace a lot of parts to the point where you're almost building a new printer. Or you have to replicate that special sauce somehow.
I guess it's just because 2D printing is not a "sexy maker" type of thing that tends to attract attention. There's plenty of open-source stuff in the 3D printing space, however.
That said, people have RE'd the printhead protocols and used them outside of their original printer:
and there's also lots of patents (of which many are already expired, e.g. https://patents.google.com/patent/US20010045967 ) that document much of what's necessary. Besides the printhead itself, controlling the X/Y axes is easily doable with existing (open) knowledge from the 3D printing/CNC world.
Would be interesting if there is a firmware/software to turn your 3D printer into a 2D pribter - effectively make it into a very fancy plotter or such.
Because open source work barely pay the bills? I did a lot of open source contributions for some time, and if it wasn’t for family support (living for free with them) I would be homeless. And unless there’s a serious change on how to fund and pay open source developers, I don’t think much will change.
Not all open source work is unpaid. Fixing packages we used and even maintaining some was common practice in my last work place. Some coworkers even had contractually time percentages ment for specific open source projects.
They have active economic reason not to do this. The first set of patches not from an official source would be to disable code that enforces using their expensive consumables instead of cheaper options.
Remember that most manufacturers aren't printer companies. They're ink/toner companies.
Printers haven't substantially changed for years, all the (literally) thousands of new models being churned out are presumably to avoid anyone bring able to standardise on a third-party work-alike ecosystem that would remove the barrier to entry. No one needs the HP CrapJet 2321e to be developed except HP. Most new features (say WiFi or Dropbox printing) could really handled with software or at worst an upgradable control module[1], without redesigning all the mechanics.
Currently, if you want to sell your own ink or toner, you first have to build a printer and defend it from undercutters who would like to not have to pay to build a printer first. Or, if you are the undercutters, you have to constantly play catch up as the printer manufacturers change the products to make your job harder.
An open printer hardware platform is what's required, à la Framework or Prusa 3D printers. The non-printer hardware (ports, WiFi, screen, CPU, power) is almost trivial now. This wouldn't actually be that hard: the data rates are low and the mechanical issues are mostly solved. But without that, you're always going to be making reversed firmware for last year's printers and HP can make the CrapJet 2322 with "new improved ultrasecure" features faster than you can break them, and now you're behind and the 2322 is already being replaced with the 2322a and your users can't even buy the models you support except on eBay.
The other problem is that the incumbents have thoroughly mined the path with overlapping fields of patents, so if you tried it, they'd hammer you into the ground with lawyers.
[1]: basically a slot for an SBC with a standard connector to the printer hardware. Even if you need a new control board because you want a 5G modem or something, you can still use the same printer mechanism.
Community support & bugfixes. There's no real downside either, all printers that exist today are crap so it's not like they differentiate on firmware quality
They don't want long term support. They want printers to get old, drivers buggy and broken, and get thrown away so you'll get a new one with updated DRM. Ideally before the third party suppliers can really dial it in.
Even better if you have to throw away a few extra cartridges with the scrap machine because they don't fit the new one.
Just to be that guy: iOS/Mac users don’t have to worry about printer drivers or older printers working with newer devices. As long as you buy an AirPrint compatible printer. An iPad from 2010 that hasn’t been updated since 2011, can still print to a brand new AirPrint compatible printer. An AirPrint compatible printer bought in 2010 will automatically be recognized by a 2023 Mac or iOS device.
Your other point about DRM ink/toner is orthogonal to that.
The manufacturers make so many models and change them so often that a project to make firmware for them really is not feasible since which printers would it pick?
That said, there are some people modifying the proprietary firmware to disable DRM. They have only done a small number of all of the printers have have such chips in them:
I'm not a printer guy, so this may be a dumb question. All those many models with all their differences and changes - to they not all accept a simple postscript file?
Many decades ago when I was a unix admin, you used to just dump a postscript file to the printer device, and it would print. From a quick google search, every printer I see has postscript drivers - from hp to epson to brother. PS is open, you don't need a driver from the vendor to make a PS file - you can make it with any software you want.
So if this is true (and maybe it's not), then the reason there are no open source printer drivers is because there are, and they've been around always, and the same one will work for all printers, because PS is a standard that's not printer-dependent.
Unfortunately, accepting a ps file is _very_ premium feature nowadays. Nearly nothing in the consumer space does it. I'm still using an old Samsung monochrome from the mid-00's (which, if my memory serves, cost about $50 back then) and to replace it would be four figures _just_ to match the postscript functionality last time I looked around. (And god forbid you want something that understands PCL.)
The topic is open source firmware though. There's plenty of open source drivers and many of them are based on the printers accepting standardized formats.
Hold on, the topic of the comment to which I am replying, is printing with 3rd party ink.
Many, if not most printers do not block 3rd party ink with firmware - it's the driver in windows that blocks that stuff. Many, if not most, block it with a driver in the OS.
The link in the comment above is a collection of firmwares.
Drivers can in essence have hotlists for additional filtering or be given access to communication with an ink chip by the firmware, but AFAIK downgrading a driver doesn't work because what has really happened is it updated the firmware.
A driver upgrade can also never be sufficient for blocking copying on a MFP printer, a standardized net print protocol as you mentioned or using open source drivers either on Linux or under WSL.
One reason might be is how printers are built may look similar but aren’t.
It would be great to have an open source firmware like for router, but to what benefit for printers might it be?
Maybe someone will make printers like the framework laptops. I’d love something that could do up to a tabloid format.
If you need 300 dpi laser printing as cheap as possible, getting an old IBM 4019 can give you 25,000 pages for a single toner cartridge. It might be a bit slower though. How much is to be gained from open sourcing it?
Alternatively, one thing we can do is try to buy printers that don’t limit their software across the product line as much.
For example, Brother at the time I last paid attention used pretty capable driver software that was nearly the same (minus physical capacities) for the high end to the low end, meaning with a low to mid range inkjet you could have a ton of functionality.
Certain printers like Zebra and even some a brother label printers allow you to print at a low level using ZPL or other layout languages. Actually, exploring the world of customizing label printing can also uncover a lot of flexible holes in the printer world that can apply to printers.
I think the problem is "an old IBM 4019" isn't a scalable solution. I can't tell my Mom to go to Staples and pick up an IBM 4019, let alone figure out how to chain it to a modern PC, set up non-auto-installing drivers, etc.
Being able to say "the firmware comes from an external "neutral" party is a shorthand for "they have no reason to try to bait-and-switch on consumables". The default answer in the SOHO space is "buy a Brother laser" but that puts a lot of trust in a firm that's no doubt under constant temptation to do the exact same thing HP is doing.
It may also mean "broad support is likely because it's speaking well-documented languages." You can make a potato talk to a PostScript, PCL, or old ESC/P dot-matrix, but if you're outside of Windows/MacOS/maybe certain blessed Linux setups, your random cheapo inkjet is a crapshoot.
Lots of the software in a modern printer is licensed by the printer manufacturer. They can’t open source it because they don’t own the copyright, they’ve simply bought a license which allows them to make modifications and ship products with the resulting binaries inside.
I've been a paying FSF member for a couple of decades now.
As an observation, not a dig, the leadership and motivation to produce such a project simply has not precipitated. The FSF itself is probably inappropriate, but a suitable entity might be sprung from those roots.
Put up a bounty for Andrew Tridgell figure(s) to reverse engineer PCL6 or whatever. Clean-room and ethically do it.
The FSF is a direct result of Stallman’s previous issues with printers.
When I was there we had a black and white laser printer from Imagistics. They did later buy a HP printer but I don’t know what model. It was used just to print letters for their bi-annual member mailing.
A lot of printing was done by external companies, including the member newsletter and of course, all the color printing for events.
Historically, manuals were typeset with free software but the cover art was made by a third party using Quark on a classic era Macintosh and exported to PostScript. The first few book covers that were made using free software were the Introduction to the Command Line and the modern Emacs manual. I made these in Inkscape on Linux.
We already have Ghostscript which can rasterize and has been embedded in "Postscript compatible" laser printers.
I would imagine that printers ride this line where there's not enough benefit to reverse engineer all the fiddly mechanical bits to make it print, extremely limited hardware expansion, and unlike router firmware or general purpose compute software there's little additional new functionality that would be possible.
That said, there are people who hacked printers to make them do other things - for example, the ThunderScan which let certain old dot matrix Apple printers scan: https://www.youtube.com/watch?v=yoUYqLteH9Q but that still needed additional hardware added.
Thank you, I was having a hard time remembering Ghostscript by name. PCL or PS drivers or compatible output with them let you get pretty far too.
Coding your own PDFs depending on what you are after might not let you run your own firmware but much more programmatically address a lot of things kn the printer via a document template.
Apple apparently acquired CUPS years after it was available as an OSS project. It fits given that I was using cups so long ago and never heard it as an apple project.
In real life, in 1980s, when appear first Laser printers, some of them was "software driven", and used special software on computer to render.
And one of example of such "software printer" marketed by Sun, and I know exactly, their software stack was very agile, so people connected Ghostscript instead of standard proprietary render engine.
Other parts are similar to 3D printers slice engines.
Also, render is not simple task, so even when have "hardware" render board, in HP LJ 4M, we always use "dither by software" switch in Photoshop in 90s, because much better quality and lot more properties to tune accessible, vs "hardware" render board.
So, reason is the same, why Photoshop exceeds GIMP - just too much work need to make really good software, but nobody will sell hardware for it, so modern 3D printers ecosystem (with open firmware), appear just because Chinese dumping hardware sales, so appear niche for opensource 3D printing solutions.
A friend of mine used to work on a product that was essentially a printer driver.
The problems include (1) QA, (2) reverse engineering the communication protocol, and (3) support.
#1 and #3 are chronic issues in the OSS world. They're also a problem because there are a ton of printers out there, and getting one to develop/test against eventually becomes an expense and space problem.
And, printers are cheap. There's no real financial incentive to do it.
As an aside, I talked to some guy at Chase years ago, and all he wanted was some way to manage all the printers Chase had. That was it. It was like his personal nightmare. It was literally an impossible task, especially since some unknown percentage of them were no longer manufacturer supported...and many didn't have a manufacturer anymore.
This is why financials want you to go all-digital - so they can dump these behemoth printers that cost a fortune to maintain.
The most plausible explanation from the comments is that controlling the mechanical hardware of printers is somewhat hard and somewhat machine-specific, and all the other stuff we don’t like (such as ink DRM) is then bundled in with that technical achievement.
> The most plausible explanation from the comments is that controlling the mechanical hardware of printers is somewhat hard and somewhat machine-specific
strangely, I think its because of the difficulty in producing and distributing existing inks / laser toner. Perhaps if the printer was able to use the most common commercial cartridges it would be feasible.
https://www.eff.org/pages/list-printers-which-do-or-do-not-d...
"Some of the documents that we previously received through FOIA suggested that all major manufacturers of color laser printers entered a secret agreement with governments to ensure that the output of those printers is forensically traceable."