While most of the printer is pretty simple mechanically and electronically, inkjet heads and laser drums are going to be beyond the ability of most home hobbyists. Even dot matrix heads would be pretty complicated to fabricate with lots of tiny precise parts.
It genuinely seems that a 3D printer is easier to build; the precision and resolution required is significantly less than for photo-quality (or even document-quality) printing, right?
Previous discussions on hackernews (see this comment [0]) claim that the paper handling hardware is part of the problem. It's apparently quite difficult to do reliably (thus all the 90s jokes about paper jams) and all the known solutions are locked up under patent
I wonder if part of that problem could be solved by going back in time, and printing on something like the accordion-folded paper favored by dot-matrix printers, or even a full roll of 8.5 inch wide paper that then gets sliced into 11 inch long chunks after the ink is applied?
Then we just have to solve all the other problems :)
Because no-one, especially the kind of person who's into open-source, uses printers often enough for the problems to bother them, and because the existing commercial products are highly optimised and effective.
Even if nobody is building a printer from scratch, I'm surprised there isn't some kind of open source firmware project (like there is for, say, digital cameras) just in order to avoid all the driver nightmares people complain about.
Digital cameras have a stable(ish) lens interface, so people use a smaller number of models for longer. Consumer inkjet printers are so cheap and change so often that there is no single model that's popular enough for people to coalesce around (and people who do care about e.g. a printer that works well on Linux will research and buy one that's known to work well on Linux - printers are pretty much a commodity, whereas people have strong feelings about their camera hardware and want to use a particular camera with different firmware instead of changing cameras)
How come?