If you have an older USB-only printer, no need to replace it. With a spare Raspberry Pi, you can easily create a DIY wireless print server, saving money and extending its life.
Contents
Preparing your Raspberry Pi | Installing CUPS | Enabling remote access to CUPS | Installing your printer and enabling network access | Connecting to your network printer | DIY wireless printing with a Raspberry Pi
As a Raspberry Pi expert who's set up countless print servers, here's a proven, step-by-step guide to get you printing wirelessly from any device.
For this project, use a Raspberry Pi with USB ports—avoid the Pi Zero. Raspbian (now Raspberry Pi OS), the official OS, works best, but Ubuntu or Debian-based distros are fine too. Ensure network connectivity; a model with built-in Wi-Fi is ideal, or add a USB adapter.
First, update your system: sudo apt update && sudo apt upgrade.
Install CUPS (Common UNIX Printing System, the gold standard for Linux printing) and Samba (for Windows compatibility):
sudo apt install cups sambaAdd your user to the lpadmin group: sudo usermod -aG lpadmin pi (replace pi with your username).
Access CUPS at 127.0.0.1:631 locally, or use your Pi's IP from another device after enabling remote access:
cupsctl --remote-admin --remote-any --share-printersRestart if you get connection errors.
On the CUPS admin page (Administration tab), log in with your Pi credentials.

Select your printer's make and model, or use 'Raw' for custom drivers. Download PPD files from OpenPrinting.org if needed. Set defaults, then test with 'Print Test Page'.
On Windows: Settings > Printers & scanners > Add a printer or scanner (ensure same network).

It auto-detects. Works on macOS, Linux, iOS, and Android too.
Whether inkjet or laser, this setup modernizes any USB printer. CUPS makes it reliable and straightforward. Share your results in the comments!
Image credit: Raspberry Pi logo via Wikimedia