Open Source Printer (concept)

Hmm. Perhaps to simplify the problem for now.

  • Forget the scanner, focus on the printer.
  • Forget color and focus on B&W. Since the majority of printing is B&W anyway.

In the case of B&W: Laser might be the better way to go.

  • Forget ink. Sounds messy…

So that leaves 2 questions:

  • what does the software look like?
  • what does the hardware look like?

The software side:

What does the printer see when you send a job?
What does cups see when you print a document?
If you print pdf or a word document, surely the printer isn’t parsing those formats. What about an image? How does it get translated?

According to: Overview of CUPS

It converts the page descriptions produced by your application (put a paragraph here, draw a line there, and so forth) into something your printer can understand and then sends the information to the printer for printing.

And how about the print protocol for telling the print head where to go X,Y coords. Could it leverage something like G-code? Forget the 3rd axis.

Probably best to utilize existing protocols and technology where possible.


The hardware side:

Probably the more complex side of this equation.

Looking at 3D printers with laser engraver heads as an example. This gives you single sided B&W printing. You could flip the paper manually for 2 sided…

Flipping the paper would be the tricky part for double sided prints.

And what wavelength of light for the laser? Paper is very reflective being white. How many mW to safely and precisely burn? Don’t want to set the paper on fire…

This may be the better approach. What are the best laser printers to target?

An HP LaserJet 1010 was already suggested as a potential candidate.

Just like people flash OpenWrt to a router. Could flash OpenPrinter (OpenPRT?) to the target printer.

5 Likes

You don’t burn the paper, you light up the drum that picks up toner powder where the light hits it, than it continuously rolls and leaves that dust on the paper, than paper goes trough heating element to bake it. No paper burning involved. That’s why it comes out warm, not because of the laser.

It a good candidate hardware-wise, relatively simple compared to more modern solutions and about 10X the build quality of modern HP junk. Spare parts are available, mostly you need some foil thingy that rips every 5 years or so and it’s the part of drum assembly. It is slow tho, but for home use, do you care?

Toner cartilages have cheap knockoffs available (but still not even close to Eco Tank style ink-jets), there is no chips for DRM and if you really want to you can refill them on your own but I don’t recommend it - it involves working with very fine dust.

I’d really like to see it retrofitted with say ESP32 to give it WiFi, Bluetooth and modern OS support without involving a print server.

3 Likes

Neat! TIL!


Not a bad idea. Plus the ESP32 is RISK-V! Wouldn’t be the brains but that almost meets my wishlist…(not a hard requirement obvs)

I had an old lexmark printer that wasn’t used very often and the ink would dry out on the head. The secret to unclogging it was to spray a healthy dose of strong perfume on the cartridge head, that would also go through the rest of the printer. Print a test paper, to avoid half-empty letters in the first print, then have at it.

And the cartridge was refillable with a funnel cap head that was a bit larger than a syringe. I’d bet if I plugged it in and repeated the process, it would still work (it’s been off for years now), but I think it was low on ink last I used it, so I’d need to find some.

Modern printers that have USB A ports on them (made in the past 15 years or so), allow you to plug a thumb drive into them and use the tiny LCD to navigate to a file and print the file straight from USB. Jankier than CUPS, but I’m pretty sure there’s something happening on the printers to translate all the formats.

I think it’s easier to look at dot matrix printers, they were invented in the '50s or '60s, I’m sure it should be easy technology to replicate with the tooling we have today, maybe even make it higher resolution. Otherwise, I think thermal paper might be a safer option than precisely laser engraving non-treated paper using lasers and you can reverse engineer an old POS printer. But just like in treated laser engraving paper, you’d need the thermal paper for printing (not to mention thermal paper doesn’t last as long as ink).

Wow, printheads were pretty advanced, even 7 years ago…

I’mma be real impressed with the machining skills of anyone reproducing from scratch…

presumably off-the-shelf / repurposing might be needed?

like, cannibalising existing parts (non-comercial… should be fine, right? Right John Deer?)

1 Like

I have no need to print in color.
So for economy value its a simple monochrome laser. ( as a repair tech i have about 4 on the shelves that customer abandoned)
Only one ( hp) is multi and surprisingly it works on linux
I had to try 6 different driver files for that one.

Todays injets are so light weight im afraid to even fart around one for worry of breaking something.

Gawd when my youngest son was still in school his room was plastered with pictures of trucks and his many girls
And was always out of ink.
I quit using inkjets.
And locked printing out of his account.
I told him to drop his homework files in the shared folder and i printed them out for him.

I would like to see open source printer drivers for all printers but you can bet that most manufacturers wont write them because of the
Eternal influence of the ( micro)sith lords and the apple empire.

So we have to write them ourselves but run the risk of legalities for reverse engineering or decompiling their software and firmware.

Writing from scratch, lots of trial and error.
Is it worth your time without pay?

Im just glad that in the linux community, there are many who take it on as a challenge.

3 Likes

+1 on the HP Laserjet 1010

You’re gonna need an EEPROM programmer to do so, but it’s not something too too hard to use.

How familiar are you with firmware reverse engineering? Do you about Ghidra or IDA Pro?

1 Like

I like the idea of open source firmware for printers, similar to openwrt or opnsense etc …

Not that I have any skill or knowledge on this. I just like the idea. Choose a nice robust printer and flash OPNPrint on it. No phone home, no lockout on non official toner or ink cartridges. And hopefully with less printer issues like losing network connection etc…

I honestly would buy a printer if I knew that model was flashable to open source. Even if it voided warranty. Likely I would choose used and not even worry about warranty.

While a fully open hardware model would be fantastic, I doubt it is feasible. But I have been wrong before.

I guess the question would be: are there actually any printers that are robust and COULD be flashed? I.E. no parts or sensors that are paired like tilt sensors on some apple laptops etc …

2 Likes

Very much so. I spent many days in my youth messing around in olly, ida and cheat engine. Multiply by 8 for flash.

Ripping apart games, writing trainers, and doing crackme’s. I still have lena151’s tuts in my archive. It’s basically what got me started in computing before trying to make my own games.

I am a little rusty, but it just so happens I’ve been playing around with Ghidra recently trying to chase down some suspected evils:


I have not touched firmware before, but I recently acquired some new reading material:

Instead of “manufacturing” a printer with all the features you want, you should just go FIND one already being made that does everything you want… Some popular model that will be sold for a long-term, so you’ll have no trouble finding refill and replacement parts for decades.

Some brand of color laser with easy refills.
Laser printers have repair kits available as well (drum, fuser, rollers, etc.)
Supporting at least one common/standard printer language, like Postscript, PDF or PCL.
SANE support, or at least scan to network share/server.

1 Like

Which model would you suggest?

Or in other words, which existing printer sucks the least?

2 Likes

That is exactly the problem, the printer hell-scape is just huge pains in the backside with different logos on the front.

2 Likes

Because, simply, 3D printers are surprisingly easier right now. For context on the equivalent, a consumer FDM 3D printer right now is about the same level of complexity as a dot matrix printer was in the 80s:

For a dot matrix printer, the paper was moved under the printing head using sprocket holes on the side of the paper, so you had an exact known movement between each hole (so this would be the same as 3D printers that move the bed under the nozzle), and then you ‘only’ had to scan across to print what you needed. You used a ribbon infused with ink and strike the ribbon into the paper at the point where you want to put ink down. This is roughly the same motions as setting the 3D printer nozzle to the print area and depositing filament.

Modern inkjet printers have resolutions of ink printing that vastly outresolve dot matrix printers of old (anyone who’s used a dot matrix to print ‘pictures’ knows this). They’re complex beasts partially because they need to be for this accuracy, and partially to save money on making the physical printer itself.

Modern laser printers are technically a bit simpler because once you’ve nailed the ability to replicate a pattern onto the charged drum, getting the toner to attach and thermally sealing it is cakewalk. For the people watching, however, there’s a bit of lifting on the “once you’ve nailed”. There’s your complexity handwave.

Honestly, if I was to try create a printer today, I’d go down the route of mimicking a dot matrix first. Print ribbon isn’t absurdly expensive (OKI still make a few models, so you could adapt one of those), and you can either use PCL or the OpenXPS printer languages. DO NOT INVENT YOUR OWN PCL. (This is why inkjets are so terrible, as nearly every goddamn manf has their own PCL, but also why lasers are so great, as every decent laser just implements PCL6 and OpenXPS and calls it a day)

Get this all working and then you’ll have a better understanding of how a printer works on the software side, and a good understanding of the complexities that go into printing, but without taking on a physical printer type that is really difficult (eg, starting with ink or laser or thermal is maybe not a good idea if you’re only just learning how laser printers actually work).

But yeah, smaller easier steps rather than trying to nail something instantly commercial that solves too many problems is going to be the right path to take for now.

(oh and for drivers, just make sure you work with something supported by the OpenPrinting section of Linux, as they maintain printer drivers for a lot of OSes, but also if you just support PCL6/OpenXPS then you can even get away with being supported by a generic print driver!)

3 Likes

aha! That’s what I was looking for on the software side, re: utilizing existing protocols and standards.

It seems clear from everything stated here so far that: laser > inkjet
And perhaps: dotmatrix > inkjet

Inkjet is out of the running.


I don’t have any real plans (or resources or knowhow) to make a commercial printer, and it’s certainly not something I could do on my own. So far this is more of a fun discussion and trying to wrap my head around the problem. And trying to understand why an open source printer doesn’t already exist.

It’s probably more viable to find an existing printer with decent hardware and repairability and perhaps flash a better firmware onto it to remove any artificial restrictions.

Either way the goal is a printer that sucks less and ideally is more sustainable.


I still kinda like the idea of a laser printer that burns instead of using toner…even just for fun. That may only be viable for single sided printing if the burn cannot be controlled enough to not show through to the other side. Perhaps short controlled pulses…

laser printers do not burn the data.
the drum is photosensitive and charged with a respectable static charge. when the charge rolls over the toner basin small amounts of toner are attracted to the positive charged characters on the drum.
these are then transferred to the paper by both contact and the negatively charged paper.
then the paper feeds through a thermal fuzer to melt the toner onto the page.

thermal printers use a series of pinpoint dot heating elements and thermal sensitive paper ( typically found in many fax machines)
its not used much anymore because unless the printed page is stored in a cold environment the entire page will turn black over time.

laser engravers burn the design in the surface but the drawback is temperature control.
paper is to flammable and risky.

2 Likes

Just riffing here…Most laserjet printers are made in Chlna (PRC). PRC is a country that has ‘only’ allowed itself to be dragged into rules for intellectual property rights, patent, etc… in order to broker deals with the WTO; and and not being a stout advocate of such laws to begin with, the PRC interprets things like patents and software, very much like an open source community would; eg.-not wanting such things to hinder progress and the ‘greater good,’ etc… Moreover in 2012 (PRC) invention patents, utility models and design patents had life terms of 20 years, 10 years and 10 years, respectively (Wikipedia) and much of ‘software’ in PRC that is ‘standard’ is considered unpatentable.
So my thinking is one of 2 paths. Pick a solid printer (laserjet…) that was reliable/durable 10 or 20 years ago, find the factory that made it in PRC and work backward/forward from there. I can say from my limited experience that the first question the factory ‘sales rep’ will probably ask is “how many units will be needed?” or “how many workstations in your company?” “How many customers”…). I am very new to the open source community and have no idea what the numbers are in terms of Open Users who would likely buy an open source printer. If it was reliable and durable I’d shell out $300 - $400 myself…
Oh, Path 2 was like finding an existing printer in the world, probably PRC but maybe some other country, not widely known here in the US that works but is not subject to all the proprietary gobble-de-gook that say a modern Hp would be. I dunno, as an example, maybe the Hisense factory in PRC has their own brand of printer, and would gladly produce an open source model for the US, that would be ‘Direct Marketed’ to the US from the factory(ies) like so many other products… not having to be vetted by a big online distributor, who might worry too much… And also giving the factory an opportunity for greater profit margins as incentive.
I also admired the ‘stackable/modularity’ concept brought up by “level1” IF it would knock a hundred bucks off the cost of an individual scanner or printer @ 3 or 4 hundred/unit. Otherwise, there’s gotta be a way jailbreak something. Like partition some space on the processor and move the tilt sensors there (or fake ones) so it thinks they are still in the loop, idk…

2 Likes

Should I add to the requirements?

  • not get viruses from ink/toner cartridges

:rofl:

2 Likes

Mount a sharpie on a 3D printer for a bare minimal option. From there, just keep adding features.

3 Likes