Table of Contents
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:
- Download and install Raspberry Pi Imager from the official Raspberry Pi website.
- Use Raspberry Pi Imager to flash the latest Raspberry Pi OS onto the MicroSD card.
- Insert the MicroSD card into your Raspberry Pi, connect it to your local network (via Ethernet or Wi-Fi), and power it on.
- 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
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