How to Build a DIY Wireless Printer with a Raspberry Pi

Raspberry Pi Wireless Printing Featured

If you have an old-school printer or simply a printer without wireless connectivity, you don’t need to upgrade. You can create a DIY wireless printer if you have a spare Raspberry Pi.

Here’s everything you need to do to set up a Raspberry Pi wireless print server.

Preparing Your Raspberry Pi

Setting up a DIY wireless printer requires a Raspberry Pi with a suitable Linux distro. One of the best Raspberry Pi Linux distros is Raspbian, the flavor of Linux officially supported by the Raspberry Pi Foundation. The instructions for this guide will be suitable for Raspbian and other Ubuntu or Debian-based distros.

You’ll need to choose a Raspberry Pi with available USB ports, so the Pi Zero isn’t hugely suitable here. You’ll also need to provide network access to your printer through your Pi.

To make things extra portable, a wireless-capable Raspberry Pi would be best here, but there’s nothing stopping you from using an older Pi with a USB wireless adapter.

Installing CUPS

Before you do anything, run sudo apt update and sudo apt upgrade in a terminal window or over an SSH connection to ensure your Raspberry Pi is fully up to date.

Installing CUPS is your next step. CUPS, or Common UNIX Printing System, is a print server designed by Apple that’s extensively used on Linux and Unix systems. You’ll also need to ensure that SAMBA, which you’ll need to print from Windows devices, is installed.

To install them both, type:

and

Once this is done, add your user account to the admin group for printing by typing:

Replace pi with your username if you’ve switched from the default.

Enabling Remote Access to CUPS

If your Raspberry Pi has a GUI and you’re working on it directly using a keyboard, you can open a browser and visit 127.0.0.1:631. Otherwise, replace 127.0.0.1 with your Pi’s network IP address to access it from your PC or another device, but you’ll need to allow remote access to CUPS first.

Open your terminal and type the following:

If you see a “connection refused” error after this, reboot your Pi.

Installing Your Printer and Enabling Network Access

You should be able to visit your CUPS admin page once you’ve enabled remote administration. Go to the “Administration” tab at the top, and log in with your Pi username and password when requested.

Raspberry Pi Wireless Printing Cups Config Page

From here, click “Add Printer,” making sure your printer is connected to your Raspberry Pi first. You should see your printer in the list under “local printers.” Select it, then click “Continue.”

Confirm any details and give your printer a different name if you’d prefer. Make sure to click the “Share This Printer” checkbox. If you don’t, you won’t be able to print from it remotely. Once you’re done, click “Continue” again.

Raspberry Pi Wireless Printing Cups Printer Make

Select the make of your printer (for example, “Samsung”) in the next menu. You’ll then need to find and select the particular model of your printer – click “Add Printer” once you’re done. You can also select “Raw” as your printer “make” to allow local devices to load their own drivers, but this may not work for every device.

If you can’t find your printer listed, look for the relevant PPD (PostScript Printer Definition) file on the OpenPrinting website.

Finally, click “Set Default Options” to complete the printer setup. You can select “Print Test Page” from the maintenance drop-down menu under your printer to check that everything works okay.

Connecting to Your Network Printer

The next step is to actually connect to your printer. On Windows 10 you can do this by going to “Settings,” then “Printers & Scanners” and clicking “Add a printer or scanner.” You’ll need to be on the same network as your Raspberry Pi to do this.

Raspberry Pi Add Printer Windows

The scan should find the network printer quickly. Select it and click “Add Printer.” After a few moments, your printer should be installed and ready for printing. You can also set up your printer on Linux, or, if you’re an Apple user, you can add your network printer to your Mac.

You’ll also be able to print to it using your iOS or Android device.

DIY Wireless Printing with a Raspberry Pi

It doesn’t matter which side of the inkjet vs. laser printer debate you’re on – a Raspberry Pi can bring any kind of printer into the modern era with wireless support. You can even use it to upgrade a new, cheaper USB-only printer and save some money.

Thanks to CUPS, setting up a Raspberry Pi wireless print server this way is easy to do. Let us know your own experiences in the comments below.

Image Credit: Raspberry Pi Logo via Wikimedia

One comment

  1. This was a very helpful article! My office has been using an ancient Emulex NetQueue device for network printing on an HP LaserJet 6MP for more years that I can to remember. However, it has been very flaky since we made some network changes two years ago.

    I happen to have several old Raspberry Pi 1 B’s lying around gathering dust and after seeing this article decided to see about using one of them with a 4GB SD card to replace the NetQueue. The 6MP has a parallel port so I needed a USB to parallel port interface adapter. I happnened to have an old Belkin F5U002 USB to parallel port adapter available to test. Raspbian Buster had no problem recognizing it. So I went through the setup process and CUPS was able to support the printer. Plus CUPS also saw a networked HP Color LaserJet 2600n but could not support it. The 2600n has no built in intelligence and requires the host computer driver to perform the necessary processing to convert Postscript or PCL to a native format that the print engine can use. After some searching, I discovered “foo2hp” that has the special drivers needed to support the 2600n through CUPS. I installed the software and now not only do I have additional network support for the 2600n without special Windows drivers but my iOS devices now see the two printers and work with them.

Leave a Comment

Yeah! You've decided to leave a comment. That's fantastic! Check out our comment policy here. Let's have a personal and meaningful conversation.