Comment by exmadscientist
2 years ago
In general the hardware on a 2D printer is simply more difficult than most or all of the OSHW stuff.
Paper handling is hell (there's a great magazine article from a few years back on the Xerox division who handles this... they're wizards, the lot of them). Hardware, software, and environment dependent.
Everything needs to be RIPped but that's the sort of thing which software is really good at and which is well suited to open source.
For an inkjet driving the nozzles is the nasty bit. First figure out which ones to fire when, then you have to actually do it. I'm told by those in the know that this really just can't be done well enough in software, you need the timing control of FPGA/ASIC solutions. So, very doable, but hard.
Laser printers have difficult drum and transfer belt issues but solutions are mostly copyable from existing products. Driving the laser diode itself is pretty easy (admittedly I've worked with laser guys, but still). The hard bit is pointing the laser in the right direction, with either spinny prisms or galvos. Or you could forgo the laser in favor of an LED array but I don't think anyone (Oki?) ever got great results out of that. Overall a B&W laser is probably the easiest thing to start with.
That all said, everyone knows China's reputation in the hardware space: clone, clone, clone. And yet, how many Chinese printers do you come across? There's probably a reason for that. It sure isn't lack of skill.
It's probably just that printers are awful.
For an inkjet driving the nozzles is the nasty bit. First figure out which ones to fire when, then you have to actually do it. I'm told by those in the know that this really just can't be done well enough in software, you need the timing control of FPGA/ASIC solutions. So, very doable, but hard.
To get a rough idea of the frequencies involved, consider a 1440x1440 DPI printer, with a 12" wide axis and 1" swath. Assume the printhead can move across the full 12" around 5 times per second (this is really fast), for a standard 8.5x11 portrait print this turns out to be around 1 page every 2.2 seconds or 27 pages per minute; at this speed the printhead is moving at 60 inches per second, so for 1440 DPI each nozzle needs to be pulsed at 1440x60=86400kHz or an 11us period, which is not that fast in terms of digital electronics. However, if you're firing 1440 nozzles in parallel, then the total throughput of the data that needs to go into the printhead goes up to 124.416MHz, or closer to 500MHz for all 4 colours, but this is easily parallelisable.
That said, those numbers are probably on the high end and represent a fast printer; I'm not even sure any consumer inkjet can do full-colour 1440 DPI at 27PPM.
True enough, but it turns out you can't fire a nozzle with a 50% duty cycle TTL signal... it's more complicated than that. More analog. More annoying.
Most of my knowledge here comes from very peripheral involvement with a project to repurpose an inkjet printhead to do Something Else™ (sorry, NDA here). The printhead high priests just scoffed at any kind of software control over the firing process, and that was that.
Or just use an FPGA. They're not really that hard. Just different from the open hardware community's usual go-tos and the tooling can be kind of crappy.
I've often wondered about an open printer design. My current printer uses inkjet cartridges which contain the print heads (HP 45/78). That would seem to be most of the difficulty, already made available in a commoditized off the shelf package.
I've heard paper picking can be kind of a black art, but I'd think a community could iterate fast enough to get it at least passable, or just suck it up with single sheet feeding in the beginning. And it's not like commercial printers are foolproof.
Then there's motion control, which is already the bread and butter of the 3D printing scene. Perhaps not initially good enough to align 600dpi over multiple inches repeatably for photo quality, but I'd think it would be fine for business forms and whatnot that people end up having to print.
Most modern color laser printers actually use LED arrays. If your laser printer has the same speed (pages/second) for b/w and for color, it's very likely using an LED array.
The printer I got from brother is definitely using one LED array per color.