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
- Raspberry Pi 4 – Best performance for multiple users
- Raspberry Pi 3 B+ – Good for basic printing needs
- Raspberry Pi Zero 2 W – Budget option for light use
Storage
- SanDisk 128GB microSD Card – Plenty of space
- Minimum: 16GB for basic setup
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
- Pi 4 Case – If using Pi 4
- Pi 3 B+ Clear Case – If using Pi 3 B+
- Pi Zero 2 W Clear Case – If using Zero 2 W
- Protects Pi and looks professional
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:
- Raspberry Pi 4 or Pi 3 B+ – $35-55
- SanDisk 128GB microSD – $15-20
- Appropriate case – $8-10
- Power supply – $8-10
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:
- Download from raspberrypi.com/software
- Choose OS: Raspberry Pi OS (64-bit) – Full version preferred
- Configure advanced options (gear icon):
- Hostname:
printserver - Enable SSH
- Set username and password
- Configure Wi-Fi
- Set locale settings
- Hostname:
- Write to microSD card
Step 2: Boot and Initial Setup
- Insert SD card into Pi
- Connect printer via USB
- Power on Pi
- 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:
- Open web browser
- Go to:
http://printserver.local:631orhttp://[PI_IP]:631 - Click "Administration" tab
- Click "Add Printer"
- Login with Pi username and password
Add printer wizard:
- Detected printers: Should show your USB printer
- Select your printer and click "Continue"
- Name: Give it a descriptive name (e.g., "Office-HP-Laser")
- Description: Optional description
- Location: Optional location info
- Share This Printer: Check this box (important!)
- Driver selection: CUPS will suggest driver
- 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:
- Go to Administration
- Click "Edit Configuration File"
- 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:
- From CUPS interface, go to Printers
- Your printer should show "Accepting Jobs" and "Idle"
- Try printing a test page
Step 6: Connect Devices to Network Printer
Windows Connection
Method 1: Auto-discovery (easiest)
- Control Panel → Devices and Printers → Add a printer
- Windows should auto-detect your network printer
- Select and install
Method 2: Manual IP address
- Add a printer → The printer that I want isn't listed
- Select a shared printer by name:
http://[PI_IP]:631/printers/[PRINTER_NAME] - Example:
http://192.168.1.50:631/printers/Office-HP-Laser - Install driver when prompted
Mac Connection
Auto-discovery:
- System Preferences → Printers & Scanners
- Click "+" to add printer
- Your Pi printer should appear automatically
- Select and add
Manual connection:
- Add Printer → IP tab
- Address:
[PI_IP](e.g., 192.168.1.50) - Protocol: Internet Printing Protocol (IPP)
- 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):
- Settings → Printers
- Add → Network Printer
- Enter Pi IP address
- Select printer and add
iOS/iPhone Connection
AirPrint (if supported):
- Some printers automatically support AirPrint through CUPS
- Print from any app → Select printer
Third-party apps:
- Install "Printer Pro" or "PrinterShare"
- Add network printer with Pi IP
- Print from supported apps
Android Connection
Google Cloud Print alternative:
- Install "PrintShare" or "Print Spooler"
- Add network printer
- Enter Pi IP and printer details
- Print from supported apps
Advanced Configuration
Multiple Printer Setup
Connect multiple printers:
- Use powered USB hub
- Connect each printer to hub
- In CUPS, add each printer separately
- 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
Print Queue Management
Monitor print jobs:
- CUPS interface → Jobs tab
- View active, completed, and canceled jobs
- 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
Print Jobs Stuck in Queue
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:
- Use IP address instead of hostname
- Install printer driver on Windows first
- 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
Print Speed Optimization
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
Print Accounting and Quotas
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!
