They work better in Linux than Windows, not to mention backwards compatibility.
EDIT: I may be wrong about newest printer models, 2020 and above.
EDIT2: Hardware problems are an entirely different issue.
I am wondering why there is no open framework for laser printing.
There are a few parts that would have to be made out of sheet metal. The sides could be stamped for the same pattern. You then need a back and a cross section. One could theoretically make them from ABS, but ABS gets brittle with heat and the sides will shatter.
One side of the printer is dedicated to running an ARM SOC. I’m not sure if the Arduino is up to the task, but it will need to control 3 motors, initiate a heating sequence, start a rasterizing laser, interpret a print job, communicate over network and USB, and monitor a bunch of sensors.
The hardest parts will be obtaining print cartridges, rollers, and fusers. Designing a standard to run off a certain vendor’s hardware will be a pile of issues, and nobody will just start manufacturing hardware for a handful of hobbyist printers.
Everything else is 3d printing, springs, and screws.
Well, cartridges, rollers, and fusers are the important bits that can’t easily be manufactured by hand. And that’s a big part of the price of the printer.
You can’t really make them cheaper than mass-manufacture, and laser printers are already almost bulletproof from my experience.
I am wondering why there is no open framework for laser printing.
Besides the reasons already mentioned most people who would be interested in bleeding edge tinkering probably have moved on from paper at this point.
2d printers need to be a lot more precise. 300dpi means each dot is placed with less than a tenth of a mm, and that’s not even particularly impressive for a 2d printer. 3d printers get away with a lot more slop than that.
That’s only talking about greyscale. Color requires precise alignment of the cartridges for at least 4 base colors (higher end photo printers have even more) , and the mix of those colors must be carefully controlled to get accurate output.