Repurpose Old Printers Using a Raspberry Pi

Author(s): Louis Ouellet


In this project, we will repurpose an old Canon Color ImageClass MF8350CDN printer using a Raspberry Pi. Since Canon no longer supports Windows 11 for this device, using a Raspberry Pi as a print server allows us to extend the printer’s lifespan. It also enables features such as AirPrint for convenient wireless printing from Apple devices.

Below is a step-by-step guide to:

  • Set up a Raspberry Pi with the necessary software
  • Install and configure the Canon printer drivers
  • Use CUPS for print management
  • Enable AirPrint for iOS devices
  • Configure Samba for a shared folder (useful for scanned documents)
  • Install and configure a Python Startup Monitor

Prepare Your Raspberry Pi

Requirements:

  • Raspberry Pi (3 or newer)
  • MicroSD Card
  • Network Cable
  • Power Supply
  • Case for the Raspberry Pi (recommended for protection and cooling)

Steps to prepare the MicroSD card:

  1. Download and install Raspberry Pi Imager from the official Raspberry Pi website.
  2. Use Raspberry Pi Imager to flash the latest Raspberry Pi OS onto the MicroSD card.
  3. Insert the MicroSD card into your Raspberry Pi, connect it to your local network (via Ethernet or Wi-Fi), and power it on.
  4. Obtain the IP address of your Raspberry Pi. You can usually find this from your router’s DHCP client list or by using network scanning tools.

Once your Raspberry Pi is powered on and connected to your local network, use SSH to access it:

ssh <username>@<RaspberryPi_IP_Address>

(Replace <RaspberryPi_IP_Address> with the actual IP address.)
(Replace <username> with the username. Typically pi.)

Update and upgrade the system:

sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y

Then, install required packages:

sudo apt-get install -y git vim nano wget curl cups sane-utils libsane-common samba samba-common-bin avahi-daemon python3-pip python3-netifaces python3-cups

Install the Printer Drivers

Next, we need to install the Canon printer drivers. For the Canon ImageCLASS MF8350CDN, you can use the UFRII drivers:

Download the Canon UFRII Drivers

linux-ufrii-drv-v600-us-02.tar.gz

wget https://laswitchtech.com/_media/en/blog/2025/01/20/linux-ufrii-drv-v600-us-02.tar.gz
tar -xvf linux-UFRII-drv-v600-us-02.tar.gz
cd linux-UFRII-drv-v600-us/
sudo ./install.sh

Install and Configure CUPS

1. Set up permissions

Add your user to the lpadmin group so it can manage printers:

sudo usermod -aG lpadmin <username>

(Replace <username> with the username. Typically pi.)

2. Enable remote administration

Edit the CUPS configuration file:

sudo nano /etc/cups/cupsd.conf

Look for:

Listen localhost:631

Comment it out:

#Listen localhost:631

Then add:

Port 631

This allows CUPS to listen on port 631 on all interfaces.

3. Allow access from the local network

Within the file, locate sections like:

<Location />
  Order allow,deny
  Allow @local
</Location>

Make sure they include Allow @local so that devices on your local network can access the CUPS interface.

4. Restart CUPS

sudo service cups restart

5. Add your printer

From another computer on the same network, open a browser and go to:

https://<RaspberryPi_IP_Address>:631/admin

Click Add Printer. If the Canon is connected via USB, select it from the list. If it’s a network printer, select the socket/IP listing.

Install and Configure AirPrint

AirPrint allows iOS devices to discover and use your printer without additional drivers.

cd ~
git clone https://github.com/tjfontaine/airprint-generate.git
cd airprint-generate
sudo python3 airprint-generate.py -d /etc/avahi/services
sudo systemctl restart avahi-daemon

Now, your printer should be discoverable as an AirPrint printer on iOS devices.

Install and Configure Samba

You can use Samba to share a folder on the Raspberry Pi for scanned documents.

1. Create a folder for the scans (or any shared folder you need)

cd ~
mkdir scans
chmod 777 scans

2. Edit the Samba configuration

sudo nano /etc/samba/smb.conf

Add the following to the end of the file:

[scans]
path = /home/<username>/scans
browseable = yes
writable = yes
guest ok = no
valid users = pi
create mask = 0777
directory mask = 0777

(Replace <username> with the username. Typically pi.)

3. Create a Samba password for the user

sudo smbpasswd -a <username>

(You will be prompted for a password twice.)
(Replace <username> with the username. Typically pi.)

4. Restart the Samba service

sudo systemctl restart smbd

Install and Configure Python Startup Monitor

Python Startup Monitor is a handy tool that allows you to retrieve the system information such as its current IP.

cd ~
git clone https://github.com/LaswitchTech/pythonStartupMonitor
cd pythonStartupMonitor
chmod +x *.{sh,py}
sudo ./install.sh
sudo chown <username>:<username> config.json
./monitor.py --install
./monitor.py --start

(Replace <username> with the username. Typically pi.)

This will install the service to your system and run it automatically upon startup.

Conclusion

By following these steps, you can give new life to an older printer model, such as the Canon Color ImageCLASS MF8350CDN, with a Raspberry Pi. You now have a fully functional print server that supports CUPS for general printing, AirPrint for iOS devices, and Samba for sharing scanned documents across your network. Adding Python Startup Monitor ensures key services remain active and easy to manage. Enjoy your new (old) printer!

Tags

Discussion

Enter your comment. Wiki syntax is allowed:
C T O I P