DIY Network Printer: Epson L130 and Raspberry Pi Zero

DevOps Engineer | Kubernetes | Python | Terraform | AWS | GCP
Tired of shuffling USB cables every time someone in your household or small office needs to print? Wish you could print wirelessly from any device on your network? Well, you're in luck! With the magic of a Raspberry Pi and a few simple commands, you can transform your trusty Epson L130 inkjet printer into a convenient network printing powerhouse.
This guide will walk you through the steps to set up your Raspberry Pi as a CUPS (Common Unix Printing System) server, allowing seamless printing from your laptops, desktops, and even smartphones. Let's dive in!
What You'll Need:
Raspberry Pi (any model will work, but a stable internet connection is key)
Epson L130 inkjet printer
USB cable to connect the printer to the Raspberry Pi
MicroSD card with Raspberry Pi OS installed
Wi-Fi connection for your Raspberry Pi
A computer on the same network to configure the printer
Step-by-Step Guide:
Update Your System: First things first, let's ensure your Raspberry Pi's software packages are up to date. Open a terminal on your Raspberry Pi and run the following command:
sudo apt updateThis command refreshes the package lists, ensuring you have access to the latest versions.
Install CUPS and Printer Drivers: Now, we'll install CUPS, the printing system we'll be using, and the Gutenprint drivers, which provide support for a wide range of printers, including the Epson L130. Execute this command:
sudo apt install cups printer-driver-gutenprintConfirm the installation when prompted by pressing
Yand hitting Enter.Add Your User to the Printing Group: To manage the printer effectively, you'll need to add your user account (in this case, "minhaz") to the
lpadmingroup. This grants you administrative privileges for the printing system. Run the following command, replacing "minhaz" with your actual username if it's different:sudo usermod -a -G lpadmin minhazYou might need to log out and log back in for this change to take effect.
Allow Remote Access to CUPS: By default, CUPS only allows access from the local machine. To enable printing from other devices on your network, you need to allow remote access. Use the following command:
sudo cupsctl --remote-anyThis command configures CUPS to accept print jobs from any IP address on your network. Be mindful of your network security when enabling this.
Restart the CUPS Service: To apply the changes you've made, restart the CUPS service:
sudo systemctl restart cupsThis ensures that CUPS reloads its configuration with the new settings.
Configuring the Printer through the Web Interface:
Now that your Raspberry Pi is running the CUPS server, you can configure the Epson L130 through a web browser on another computer on the same network.
Find Your Raspberry Pi's IP Address: Open a terminal on your Raspberry Pi and run:
hostname -IThis will display the IP address of your Raspberry Pi.
Access the CUPS Web Interface: Open a web browser on your computer and enter the IP address of your Raspberry Pi followed by port
631. For example, if your Raspberry Pi's IP address is192.168.1.100, you would enterhttp://192.168.1.100:631in your browser's address bar.Add Your Printer:
You might see a security warning; proceed to the website.
Click on the "Administration" tab.
Under the "Printers" section, click "Add Printer".
You might be prompted for a username and password. Use the username you used to log in to your Raspberry Pi and its corresponding password.
CUPS will search for connected printers. You should see your Epson L130 listed. Select it and click "Continue".
On the next screen, you can give your printer a descriptive name (e.g., "Epson Network Printer"), add a location, and description. Click "Continue".
In the "Make" list, select "Epson". Click "Continue".
In the "Model" list, look for "Epson Stylus Series" or something similar. In the "Driver" options, try selecting the driver that best matches your L130 model. You might need to experiment with different drivers if the first one doesn't work perfectly. The "Gutenprint v5.3.4" drivers are often a good choice, so look for an Epson L-series driver within that list if available, or try a generic Epson Stylus driver. Click "Add Printer".
You might be asked to set default options for the printer. Configure them as needed and click "Set Default Options".

Printing from Other Devices:
That's it! Your Epson L130 is now a network printer. To print from other devices on your network:
Windows: Go to "Settings" > "Devices" > "Printers & scanners" > "Add a printer or scanner". It should automatically detect your network printer. If not, you can manually add it using its IP address (the Raspberry Pi's IP address) and specifying it as an IPP printer.
macOS: Go to "System Preferences" > "Printers & Scanners" > click the "+" button. Select "IP" and enter the Raspberry Pi's IP address in the "Address" field, using
ippas the protocol andprinters/your_printer_name(the name you gave the printer in CUPS) as the "Queue".Linux: The process varies depending on your distribution, but generally involves adding a new printer and selecting the IPP protocol, then entering the Raspberry Pi's IP address and the CUPS printer queue name.

Enjoy Wireless Printing!
You've successfully transformed your Raspberry Pi into a network print server for your Epson L130. Now you can enjoy the convenience of wireless printing from all your devices without the hassle of tangled USB cables. This simple yet powerful setup can significantly improve your printing workflow and make sharing your printer a breeze. Happy printing!



