Saving a Samsung Printer from the landfill by using a Raspberry Pi

Photo by Antoine GIRET on Unsplash

I have been using a Samsung CLP-320 printer (Colour laser) for years and it used to work on every macOS up until Big Sur. It used to be as easy as just attaching the printer to the Mac and the driver would be installed automatically.

However that is no longer the case with Big Sur. You can no longer find a driver that works with macOS Big Sur. HP bought the printer business from Samsung and don’t seem to offer any new drivers.

Instead of land filling the printer I decided to connect a Raspberry Pi Zero W to it and turn it into a WiFi accessible printer.

Hardware used

  • Raspberry Pi Zero W – Pimoroni
  • Official Raspberry Pi Universal Power Supply – Pimoroni
  • Official Raspberry Pi Zero Case – Pimoroni
  • SanDisk Ultra 32 GB microSDHC Memory Card – Amazon
  • 0.5m USB 2.0 Type A to B Cable – Amazon
  • Micro USB to USB OTG Host Adapter – Amazon

Software used

Initial setup

I will be running the Raspberry Pi in headless mode (meaning without a display) and followed my previous tutorial on how I set it up.

Here is a recap of what I have done:

  • Flash Raspberry Pi OS Lite onto the microSD card
  • Configure Raspberry Pi to connect to my WiFi network on boot (wpa_supplicant.conf)
  • Enable SSH by creating boot/ssh file on the card
  • Insert the microSD and install the Raspberry Pi Zero into the case
  • Boot it up!
  • SSH into the Pi
  • Changed password and hostname. I will be using printpi
  • Save and reboot
  • Update, upgraded and harden the Pi

Setting up the Print server

  • Attach the Raspberry Pi to the Printer.
  • Install CUPS
pi@printpi:~ $ sudo apt install cups
  • Allow the user access to the printer
pi@printpi:~ $ sudo usermod -a -G lpadmin pi
  • Configure the print service so that it can be accessed from the network
pi@printpi:~ $ sudo cupsctl --remote-any

  • Go to the Administration tab. I was shown a message about having to upgrade by using a specific link and this required the TLS certificate to be trusted before continuing. This was fine because the certificate was self signed and I trust this was the Rasperry Pi.
  • Access the /admin URL and enter the username pi and the password that was set earlier.
  • Select Add a printer. Luckily it managed to pick up my Samsung with no issues.

  • Fill in the details and check "Share This Printer".

  • Select the Model. Normally the first one in the list is the closest matching model.

However in my case none of the existing drivers worked. I managed to download the driver from HP’s (who now owns the Samsung printer business) website. Also managed to find the .ppd file inside of the installation zip without having to run the installation scripts.

This still didn’t work! See the troubleshooting section for more details on what I did to get the printer to work.

  • Add the printer and check all the default settings before clicking "Set Default Options"
  • Ready and waiting

Testing 1 2 3

  • Do a test print from the web portal. Select the drop down menu under "Maintenance".

NOTE: It wasn’t quite as smooth sailing for me. See the troubleshooting section.

Adding the printer to macOS

  • Open System Preferences and select Printers & Scanners

  • Click on the Add (+) button.
  • I was lucky, the printer showed up under Bonjour and I just added it. (Bonjour is amazing when it works, a bit like AirDrop)

  • Do a test print.

  • We are back in business! Yeah baby yeah

Troubleshooting

As mentioned earlier I couldn’t get the Samsung CLP-320 to print out of the not so new box.

After using the CLP-320 ppd file a print would never even start and the job just ends up saying stopped.

I noticed this status message and after a Google I found this on SO (ja ja ding dong I know it is stack exchange and not stack overflow). Looks like the driver is not for arm (Pi) and so had to install splix-drivers.

  • Install splix drivers
pi@printpi:~ $ sudo apt-get install printer-driver-splix
  • Modify the printer setup. I chose the "Samsung CLP-315, 2.0.0 (color, 2-sided printing)" driver and it worked!

References

I followed Tom’s Hardware tutorial for setting up CUPS.


Leave a comment

Your email address will not be published. Required fields are marked *