TC
Troy’s Tech Corner
build tech2026-02-2810-15 min read

Turn Any USB Printer into Wireless Network Printer with Raspberry Pi

Understand Tech

Understand Tech

About the author

Learn how to convert your old USB printer into a wireless network printer using Raspberry Pi. Complete tutorial for CUPS setup, print server configuration, and connecting multiple devices for shared printing.

Keywords: raspberry pi print server, cups raspberry pi, wireless printer server, usb printer to wifi, network printer setup, raspberry pi printer sharing, diy print server

Transform any USB printer into a wireless network printer that everyone in your home can use. No more printer cables or switching connections—print from any device, anywhere in your house.

What You're Building

A network print server that:

  • Makes any USB printer wireless and networkable
  • Works with Windows, Mac, Linux, iOS, and Android
  • Shares one printer with multiple users/devices
  • Supports multiple printer connections
  • Web-based management interface
  • Print queue management and monitoring
  • Cost-effective alternative to buying new wireless printer

Difficulty: ⭐⭐ Easy Time Required: 1-2 hours Cost: $35-55 (much cheaper than new wireless printer) Savings: $100-300 vs buying wireless printer

What You'll Need

Required Components

Raspberry Pi

Storage

Network Connection

  • Built-in Wi-Fi (all recommended Pi models)
  • OR Ethernet cable for more reliability
  • Stable network connection essential

Power Supply

  • Official Raspberry Pi power supply
  • Stable power critical for print server reliability

Case

Your Existing Printer

Compatible printers:

  • Any USB printer (laser or inkjet)
  • Most HP, Canon, Epson, Brother printers
  • Older printers work great (gives them new life)
  • Multi-function printers (print/scan/copy)

Not required:

  • Wireless capability
  • Network ports
  • Modern printer (older is fine!)

Optional Enhancements

Multiple Printers

  • USB hub for connecting several printers
  • Different printers for different purposes

Backup Power

  • Small UPS – Prevents print job loss during power outages

Quick Shopping List

Complete Print Server Setup:

For Single Printer:

Total Cost: $66-95

vs. Buying New Wireless Printer:

  • Budget wireless printer: $150-200
  • Mid-range wireless printer: $200-400
  • Your savings: $85-305

How Network Print Servers Work

Traditional setup: Computer → USB cable → Printer

  • Only one computer can print
  • Computer must be on to print
  • Printer must be physically close to computer

Network print server: Any Device → Wi-Fi → Raspberry Pi → USB → Printer

  • All devices can print wirelessly
  • Pi handles all print jobs
  • Printer can be anywhere with Pi
  • Pi manages print queue and jobs

Benefits:

  • Share expensive printer with family/office
  • Print from phones and tablets
  • No cables running across rooms
  • Printer stays on and ready
  • Central print management

Step-by-Step Setup Guide

Step 1: Install Raspberry Pi OS

Using Raspberry Pi Imager:

  1. Download from raspberrypi.com/software
  2. Choose OS: Raspberry Pi OS (64-bit) – Full version preferred
  3. Configure advanced options (gear icon):
    • Hostname: printserver
    • Enable SSH
    • Set username and password
    • Configure Wi-Fi
    • Set locale settings
  4. Write to microSD card

Step 2: Boot and Initial Setup

  1. Insert SD card into Pi
  2. Connect printer via USB
  3. Power on Pi
  4. Wait 2-3 minutes for first boot

SSH into Pi:

ssh username@printserver.local
# or use IP address
ssh username@192.168.1.50

Update system:

sudo apt update && sudo apt full-upgrade -y

Step 3: Install CUPS (Print Server Software)

CUPS (Common UNIX Printing System) is the standard print server software.

Install CUPS:

sudo apt install cups cups-client cups-bsd -y

Add user to printing group:

sudo usermod -a -G lpadmin pi

Configure CUPS for network access:

sudo nano /etc/cups/cupsd.conf

Find and modify these lines:

# Only listen for connections from the local machine
# Listen localhost:631
Listen *:631

# Restrict access to the server...
<Location />
  Order allow,deny
  Allow @LOCAL  # Add this line
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Order allow,deny
  Allow @LOCAL  # Add this line
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  Order allow,deny
  Allow @LOCAL  # Add this line
</Location>

Start and enable CUPS:

sudo systemctl enable cups
sudo systemctl start cups

Step 4: Connect and Configure Your Printer

Check if printer is detected:

lsusb

You should see your printer listed (e.g., "HP LaserJet" or "Canon PIXMA").

Access CUPS web interface:

  1. Open web browser
  2. Go to: http://printserver.local:631 or http://[PI_IP]:631
  3. Click "Administration" tab
  4. Click "Add Printer"
  5. Login with Pi username and password

Add printer wizard:

  1. Detected printers: Should show your USB printer
  2. Select your printer and click "Continue"
  3. Name: Give it a descriptive name (e.g., "Office-HP-Laser")
  4. Description: Optional description
  5. Location: Optional location info
  6. Share This Printer: Check this box (important!)
  7. Driver selection: CUPS will suggest driver
  8. Test page: Print test page to verify

Set as default printer (optional):

  • In CUPS interface → Printers
  • Click your printer → Administration → Set As Server Default

Step 5: Configure Printer Sharing

Enable printer sharing:

In CUPS web interface:

  1. Go to Administration
  2. Click "Edit Configuration File"
  3. Ensure these settings:
# Allow sharing of printers
Browsing On
BrowseLocalProtocols cups

# Allow remote administration
Port 631
Listen *:631

Restart CUPS:

sudo systemctl restart cups

Test printer sharing:

  1. From CUPS interface, go to Printers
  2. Your printer should show "Accepting Jobs" and "Idle"
  3. Try printing a test page

Step 6: Connect Devices to Network Printer

Windows Connection

Method 1: Auto-discovery (easiest)

  1. Control Panel → Devices and Printers → Add a printer
  2. Windows should auto-detect your network printer
  3. Select and install

Method 2: Manual IP address

  1. Add a printer → The printer that I want isn't listed
  2. Select a shared printer by name: http://[PI_IP]:631/printers/[PRINTER_NAME]
  3. Example: http://192.168.1.50:631/printers/Office-HP-Laser
  4. Install driver when prompted

Mac Connection

Auto-discovery:

  1. System Preferences → Printers & Scanners
  2. Click "+" to add printer
  3. Your Pi printer should appear automatically
  4. Select and add

Manual connection:

  1. Add Printer → IP tab
  2. Address: [PI_IP] (e.g., 192.168.1.50)
  3. Protocol: Internet Printing Protocol (IPP)
  4. Queue: printers/[PRINTER_NAME]

Linux Connection

Command line:

sudo apt install cups-client
lpinfo -v  # List available printers
lpoptions -d [PRINTER_NAME]  # Set default

GUI (Ubuntu/Linux Mint):

  1. Settings → Printers
  2. Add → Network Printer
  3. Enter Pi IP address
  4. Select printer and add

iOS/iPhone Connection

AirPrint (if supported):

  1. Some printers automatically support AirPrint through CUPS
  2. Print from any app → Select printer

Third-party apps:

  1. Install "Printer Pro" or "PrinterShare"
  2. Add network printer with Pi IP
  3. Print from supported apps

Android Connection

Google Cloud Print alternative:

  1. Install "PrintShare" or "Print Spooler"
  2. Add network printer
  3. Enter Pi IP and printer details
  4. Print from supported apps

Advanced Configuration

Multiple Printer Setup

Connect multiple printers:

  1. Use powered USB hub
  2. Connect each printer to hub
  3. In CUPS, add each printer separately
  4. Give descriptive names (e.g., "Color-Inkjet", "Fast-Laser")

Printer-specific settings:

  • Set different default settings per printer
  • Configure paper sizes and types
  • Set print quality options
  • Create printer groups for easy selection

Monitor print jobs:

  1. CUPS interface → Jobs tab
  2. View active, completed, and canceled jobs
  3. Cancel or restart jobs as needed

Set print quotas (optional):

sudo lpinfo -v  # List printers
sudo cupsctl --remote-admin
# Access advanced settings through web interface

Automatic Driver Installation

Install additional drivers:

# HP printers
sudo apt install hplip -y

# Canon printers  
sudo apt install printer-driver-canon -y

# Epson printers
sudo apt install printer-driver-escpr -y

# Brother printers
# Download from Brother website

Generic PostScript driver:

sudo apt install cups-filters -y

Security Configuration

Restrict access by IP range:

Edit /etc/cups/cupsd.conf:

<Location />
  Order allow,deny
  Allow 192.168.1.*  # Only allow local network
  Allow 127.0.0.1    # Allow localhost
</Location>

Enable authentication:

<Location /admin>
  Order allow,deny
  Allow @LOCAL
  AuthType Basic
  Require valid-user
</Location>

Create printer users:

sudo adduser printuser
sudo usermod -a -G lpadmin printuser

Troubleshooting Common Issues

Printer Not Detected

Check USB connection:

lsusb  # Should show your printer
dmesg | grep usb  # Check for USB errors

Solutions:

  • Try different USB cable
  • Use powered USB hub if multiple devices
  • Restart Pi with printer connected
  • Check printer power and ready status

Can't Access CUPS Web Interface

Check CUPS status:

sudo systemctl status cups
sudo systemctl restart cups

Firewall issues:

sudo ufw allow 631/tcp  # If firewall enabled

Network connectivity:

ping printserver.local
nmap -p 631 [PI_IP]  # Check if port is open

Clear print queue:

sudo cancel -a  # Cancel all jobs
sudo systemctl restart cups

Check printer status:

  • CUPS interface → Printers → Check printer state
  • Ensure printer shows "Idle" and "Accepting Jobs"
  • Check physical printer (paper, toner, etc.)

Windows Can't Find Network Printer

Add printer manually:

  1. Use IP address instead of hostname
  2. Install printer driver on Windows first
  3. Try different printer sharing protocols

Enable NetBIOS:

sudo apt install samba -y
sudo nano /etc/samba/smb.conf

Add printer sharing section:

[printers]
   path = /var/spool/samba
   browseable = yes
   guest ok = yes
   writable = no
   printable = yes

Poor Print Quality or Speed

Optimize print settings:

  • Reduce print quality for drafts
  • Enable duplex printing if supported
  • Adjust timeout settings in CUPS
  • Use wired connection for Pi if possible

Performance tuning:

# Increase CUPS MaxLogSize
sudo nano /etc/cups/cupsd.conf
# Add: MaxLogSize 0

Performance Optimization

Network Performance

Use wired connection:

  • Ethernet more reliable than Wi-Fi for print server
  • Reduces network congestion
  • Better for large print jobs

Wi-Fi optimization:

  • Use 5GHz band if available
  • Position Pi close to router
  • Avoid interference sources

CUPS configuration:

sudo nano /etc/cups/cupsd.conf

Add performance settings:

# Increase job history
MaxJobs 0
MaxJobHistory 0

# Optimize for network printing
BrowseInterval 30
BrowseTimeout 300

Disable unnecessary features:

  • Turn off printer sharing for unused printers
  • Disable job logging for high-volume printing
  • Use draft mode for everyday printing

Maintenance and Monitoring

Regular Maintenance Tasks

Weekly:

  • Check print queue for stuck jobs
  • Monitor disk space: df -h
  • Review printer status in CUPS

Monthly:

  • Update Pi OS: sudo apt update && sudo apt upgrade
  • Clean print queue logs
  • Check for driver updates

As needed:

  • Replace printer consumables (ink, toner)
  • Clean printer heads/drums
  • Check USB connections

Monitoring Print Usage

View print statistics:

lpstat -p  # Printer status
lpstat -o  # Outstanding jobs
lpq        # Queue status

Log analysis:

sudo tail -f /var/log/cups/access_log  # Access logs
sudo tail -f /var/log/cups/error_log   # Error logs

Usage reporting:

  • Install print accounting software
  • Track pages printed per user
  • Monitor toner/ink usage

Cost Analysis and Benefits

Cost Comparison

DIY Print Server:

  • Raspberry Pi + accessories: $66-95 (one-time)
  • Setup time: 1-2 hours
  • Ongoing cost: ~$2/year electricity

vs. New Wireless Printer:

  • Budget wireless: $150-200
  • Mid-range wireless: $200-400
  • High-end wireless: $400+

vs. Commercial Print Server:

  • Basic print server: $100-200
  • Advanced print server: $300-500

Savings: $85-405 compared to alternatives

Long-term Benefits

Printer longevity:

  • Extends life of older USB printers
  • Reduces need for printer upgrades
  • Centralizes printer maintenance

Convenience benefits:

  • Print from anywhere in house
  • No computer dependency
  • Multiple user support
  • Mobile printing capability

Environmental impact:

  • Keeps older printers out of landfills
  • Reduces electronic waste
  • Energy efficient (Pi uses 3-5W)

Advanced Features and Expansions

Install print accounting:

sudo apt install pykota -y

Set user quotas:

  • Track pages per user
  • Set monthly print limits
  • Generate usage reports
  • Control printing costs

Scan Server (Multi-function Printers)

Install SANE (Scanner Access Now Easy):

sudo apt install sane sane-utils -y

Configure network scanning:

sudo nano /etc/sane.d/saned.conf
# Add your network range: 192.168.1.0/24

Access scanners:

  • Windows: Install SANE network driver
  • Mac: Use Image Capture with network scanner
  • Linux: Use XSane or Simple Scan

Integration with Cloud Services

Google Cloud Print replacement:

  • Set up with Google Account
  • Print from anywhere via internet
  • Mobile app integration

Email printing:

  • Configure email-to-print gateway
  • Send documents via email to print
  • Automatic printing of attachments

Home Automation Integration

Home Assistant integration:

  • Monitor printer status
  • Get notifications when print jobs complete
  • Automate printer management tasks

Voice control:

  • "Alexa, print my shopping list"
  • Integration with smart home systems
  • Voice-activated printing workflows

Security Best Practices

Network Security

Firewall configuration:

sudo ufw enable
sudo ufw allow 22/tcp   # SSH
sudo ufw allow 631/tcp  # CUPS
sudo ufw allow from 192.168.1.0/24  # Local network only

VPN access:

  • Set up VPN for remote printing (see our VPN guide)
  • Secure printing while traveling
  • Access home printer from office

Access Control

User authentication:

  • Require login for printing
  • Different access levels (admin vs. user)
  • Audit trail of print jobs

Printer security:

  • Disable unnecessary printer features
  • Regular firmware updates (if supported)
  • Monitor for unusual print activity

Expanding Your Print Infrastructure

Multiple Print Servers

Distributed printing:

  • Pi in each room/floor with local printer
  • Central management system
  • Load balancing across printers

Redundancy:

  • Backup print servers
  • Automatic failover
  • Print job replication

Enterprise Features

Print job routing:

  • Intelligent job distribution
  • Printer capability matching
  • Cost-based routing

Advanced monitoring:

  • SNMP printer monitoring
  • Consumables tracking
  • Predictive maintenance alerts

Troubleshooting Quick Reference

Common Error Messages

"Printer not found" errors:

  • Check USB connection
  • Restart CUPS service
  • Verify printer power

"Access denied" errors:

  • Check CUPS permissions
  • Verify network access rules
  • Confirm user in lpadmin group

"Driver not available" errors:

  • Install printer-specific drivers
  • Try generic PostScript driver
  • Download from manufacturer

Diagnostic Commands

# Check printer detection
lsusb | grep -i printer

# Test CUPS service
sudo systemctl status cups

# Check network connectivity
netstat -tlnp | grep :631

# View active print jobs
lpstat -o

# Check printer queue status
lpq -a

# Test network printing
lp -d [PRINTER_NAME] /etc/hostname

Frequently Asked Questions

Can I use any USB printer?

Most USB printers work, including:

  • HP LaserJet and InkJet series
  • Canon PIXMA and ImageCLASS
  • Epson WorkForce and Expression
  • Brother HL and MFC series

Compatibility depends on:

  • Linux driver availability
  • CUPS support
  • Printer communication protocol

How many devices can print simultaneously?

CUPS handles multiple jobs but printers process one at a time:

  • Unlimited devices can submit jobs
  • Print queue manages job order
  • Typical home use: 5-10 devices work fine
  • Enterprise: 50+ devices supported

Will this work with old printers?

Yes! Often works better with older printers:

  • Mature Linux drivers
  • Simple communication protocols
  • Fewer proprietary features
  • Great way to modernize legacy equipment

Can I print from my phone?

Yes, several methods:

  • AirPrint (iOS) - Works automatically with many printers
  • Google Cloud Print replacement services
  • Third-party apps like PrinterShare or Printer Pro
  • Email printing - Send documents via email

How reliable is it?

Very reliable when properly configured:

  • CUPS is industry-standard print server software
  • Runs on millions of Linux systems
  • 24/7 operation capability
  • Automatic error recovery

Reliability factors:

  • Stable power supply
  • Good network connection
  • Quality USB cables
  • Regular system maintenance

Can I manage it remotely?

Yes, full remote management:

  • Web interface accessible from anywhere
  • SSH access for command-line management
  • VPN access for secure remote printing
  • Mobile apps for monitoring

What happens if the Pi crashes?

Print job handling:

  • Queued jobs stored on Pi
  • Jobs lost if Pi crashes during printing
  • Jobs resume after Pi restart
  • Consider UPS for power protection

Recovery:

  • Pi auto-restarts after power restoration
  • CUPS service starts automatically
  • Printers reconnect automatically
  • No permanent data loss

How much electricity does it use?

Very energy efficient:

  • Raspberry Pi: 3-5 watts
  • Typical USB printer (idle): 5-15 watts
  • Total: 8-20 watts when idle
  • Annual cost: $2-8 (depending on local electricity rates)

Comparison:

  • Wireless printer (idle): 10-30 watts
  • Computer left on for printing: 100-300 watts
  • Pi print server uses 90% less power

Conclusion: Modernize Your Printing Setup

Converting your USB printer to a wireless network printer with Raspberry Pi is one of the most practical and immediately useful Pi projects. You'll use it every day while saving money and extending your printer's useful life.

What you've accomplished: ✅ Transformed old USB printer into modern wireless printer ✅ Enabled printing from all devices in your home ✅ Created professional print server with web management ✅ Saved $100-400 vs buying new wireless printer ✅ Learned print server administration and CUPS configuration

Key benefits:

  • Cost savings - Much cheaper than buying wireless printer
  • Convenience - Print from any device, anywhere in house
  • Reliability - Professional-grade print server software
  • Flexibility - Support multiple printers and advanced features
  • Sustainability - Extends life of existing equipment

Next steps:

  • Add multiple printers for different purposes
  • Set up scanning server for multi-function printers
  • Integrate with home automation systems
  • Explore advanced print management features

This project showcases how Raspberry Pi can modernize and network-enable older equipment, providing enterprise-level functionality at consumer prices.


Ready to make your printer wireless? Follow this guide and transform your printing experience!

Enjoyed this guide?

Get more beginner-friendly tech explanations and guides sent to your inbox.

No spam. Unsubscribe at any time. We respect your privacy.

Related Guides