We have an old USB laser printer which was purchased in early 2012. It has been in fine working condition since then. I rarely use it because usually there is nothing much to print. We do the occasional flight ticket print outs. Once our daughter was born there was a little bit more printing. I changed the toner just twice in these 11 years. Anytime anyone in the family needed a printout, they would connect their laptop to the printer via USB and print. Although it wasn’t that much of a hassle, I wanted to make the printer a wireless one. This post is about how I achieved it. As you can imagine, it can get technical and if you are not into computers and software, it is better you skip this one :).
There was a particular reason I purchased a black and white laser printer instead of a color inkjet printer available at almost the same price. That reason was that the toner lasts a long time and the printer does not give trouble. Back in the day inkjets use to have cartridges that would dry up or the nozzles would get blocked if they are not used frequently. I think it is still the case. I would only need the printer very occasionally so I did not want to be bothered with that problem. Another issue was that the ink runs out quite quickly compared to the toner used in a laser printer. The ink cartridges were quite expensive, so it did not make sense at all. I think the newer ink tank printers print a lot more pages before needing a refill. Anyway, I digress.
In our house almost everyone has a laptop. But most of the laptops have dead batteries. So either the laptop dies immediately upon unplugging or dies within a few minutes. Our printer is located at a fixed location in our house, which is away from our laptop plug points. So one has to unplug the laptop, go to the printer, connect the USB of the printer, load the pages and print. By this time, the laptop would have shutdown :). So typically all the documents are sent to a laptop with good battery which is just one laptop as of now and we print from that. This kind of acrobatics did not sound like a proper solution to printing, even if it is as rare as it is.
I thought of purchasing a wireless printer and almost did too when I saw some one selling their used printer. Then I thought, since there is nothing wrong with my printer, why not just upgrade it to a wireless printer? I anyway have a media center PC that is running 24/7 and is connected to the internet. What if I connected the printer to it and the media center PC advertises the printer as a wireless printer? We could all send out files to the PC over WiFi and it will send the data via USB to the printer. There was just one problem though, my media center PC is not the usual x86 PC. It is ARM based, running CoreELEC. So finding instructions and drivers was not going to be easy.
Thankfully, after a lot of searching on the internet, I found that someone has already solved this problem. I won’t be explaining the setup process again here. Just read that post if you are interested. However, I needed docker to be running on my media PC. I’ve never installed docker on it because it is such a small computing device, I never thought it could handle containers. Again, thankfully some one already made a github page on how to install docker in CoreELEC. Talk about standing on shoulders of giants! So I installed docker and followed the instructions on running the docker container for CUPS on CoreELEC.
Just like that, I made my old USB printer into a wireless printer. Now, anyone in our house can print anything from any device. Yes, quite literally any device, be it phone (android), tablet (android) or laptop (linux/windows).
That is pretty much all I wanted to write in this post. Sorry for a short one, but I wanted to give an update on what happens on a day to day basis after I retired :). If you have an old USB printer lying around, you can do the same. If you don’t have an always on PC, you can set one up using a cheap Raspberry Pi and let it run all day, every day. It won’t consume much power and you have a server that is always accessible and you can run containers and services on it.