Reddit Fix: How to Print from iPhone & Android to HP LaserJet 1020
How to turn the legendary HP LaserJet 1020 and 1018 USB printer into a wireless phone printer for iPhone and Android without buying new hardware.
On tech forums like Reddit’s r/printers and r/BuyItForLife, the HP LaserJet 1020 (alongside its close siblings, the HP 1018 and 1022) holds near-mythical status. First released in 2005, these machines are virtually immortal. Powered by the ultra-cheap, omnipresent HP Q2612A (HP 12A) toner cartridge—which yields 2,000+ pages and costs under $12 from third-party suppliers—the 1020 prints crisp monochrome text without ink nozzles drying out or software subscriptions locking your hardware.
However, modern smartphone owners constantly run into a frustrating roadblock: the HP LaserJet 1020 has only a single USB Type-B port.
There is zero built-in Wi-Fi, no Ethernet port, and no Apple AirPrint or Mopria support. Furthermore, modern HP apps like HP Smart completely refuse to recognize legacy USB printers, demanding cloud logins, telemetry tracking, and subscriptions.
If you have a Windows 10 or Windows 11 PC connected to your HP LaserJet 1020, you don’t need expensive AirPrint dongles or finicky Linux boxes. Using Printman, you can turn your existing PC into an instant LAN print server that lets any iPhone, iPad, or Android phone print directly to your HP 1020 over your home Wi-Fi.
The Driver Quirk: Why Linux CUPS Hangs on the HP 1020 (ZjStream Architecture)
Many tech-savvy users try setting up a Raspberry Pi or home server running CUPS to share the HP LaserJet 1020 over the network. They almost always end up on Reddit asking why the printer locks up after a reboot.
The reason lies in the Zenographics ZjStream host-based protocol:
- Volatile Firmware Architecture: Unlike standard PCL or PostScript printers, the HP LaserJet 1020 contains no persistent operating firmware in on-board ROM. Every time the printer is turned on or plugged into USB, the host computer must upload a proprietary ARM microcode firmware file (commonly known in Linux as
sihp1020.dl) across the USB bus before the engine will accept a single print job. - The CUPS / foo2zjs Pitfall: On Linux and Raspberry Pi systems, the open-source
foo2zjsdriver relies on udev rules to push this firmware file. If the USB bus glitches, the Pi reboots, or the printer enters a low-power state, the firmware upload fails silently, leaving CUPS in a permanent “Processing - printer may be offline” hang. - The Windows Advantage: The native Windows 10/11 HP host-based driver handles the ZjStream handshake and USB initialization automatically and flawlessly at the kernel level.
By running Printman on Windows, you leverage Windows’ rock-solid ZjStream driver while exposing a lightweight, mobile-friendly web app to your local network.
Comparing Your Options
| Feature | HP Smart / Mobile Apps | Raspberry Pi + CUPS / foo2zjs | Printman Windows LAN Bridge |
|---|---|---|---|
| Hardware Cost | Requires buying a new printer | Raspberry Pi ($45–$80) + SD Card | $0 (Uses existing Windows PC + USB) |
Firmware Upload (.dl) |
Unsupported | Unstable udev scripts, frequent hangs | Handled natively by Windows spooler |
| Mobile Compatibility | None for USB-only printers | Requires manual Avahi / AirPrint config | Universal (Safari, Chrome, Firefox) |
| Cloud / Telemetry | Mandatory HP Account & internet | None | 100% offline, zero cloud calls |
| Setup Time | Impossible | 1–2 hours of terminal debugging | Under 2 minutes |
Step 1: Ensure Your HP 1020 is Ready on Windows 10 or 11
Before launching Printman, verify that Windows can print over USB.
- Connect the HP LaserJet 1020 to your Windows PC with a USB cable and turn the power switch ON.
- In Windows, go to Settings > Bluetooth & devices > Printers & scanners.
- If Windows 10/11 does not detect it automatically:
- Download the official HP LaserJet 1020 Host-Based Basic Driver from HP’s support site.
- If using Windows 11 (including 24H2), run the installer in Windows 7 compatibility mode if prompted, or choose Add a printer manually > The printer that I want isn’t listed > Add a local printer with manual settings, select port
DOT4_001orUSB001, and select HP LaserJet 1020.
- Open Printer properties and click Print Test Page.
- Listen for the printer’s signature mechanical whir as the firmware uploads and outputs the Windows test sheet.
Step 2: Download and Run Printman
Printman is a zero-dependency, self-contained Windows executable with an integrated high-performance Kestrel web server.
- Download the latest standalone release (
printman-win-x64-standalone.zip) from the Printman GitHub Releases. - Extract
printman.exeto a permanent location (such asC:\Tools\Printman). - Open PowerShell or Windows Terminal in that folder and start the server:
./printman.exe serve --no-auth
Need a PIN code? In shared households or student apartments, run
./printman.exe servewithout--no-auth. Printman will generate a temporary 6-digit PIN on startup so only authorized users on your Wi-Fi can submit print jobs.
Printman binds immediately to your network IP and displays your access address:
==============================================================
PRINTMAN SERVER - EMBEDDED KESTREL LAN ENGINE
==============================================================
[WEB SERVER RUNNING] Port: 5000
[SECURITY] Open Access (No PIN required)
Access from this machine or your phone on the same Wi-Fi:
Local: http://localhost:5000/
Network: http://192.168.1.135:5000/
Step 3: Print Documents from Any Smartphone
- Ensure your iPhone, iPad, or Android device is connected to the same home Wi-Fi network as your Windows PC.
- Open Safari or Chrome on your phone and browse to your network URL (e.g.,
http://192.168.1.135:5000). - Add the page to your phone’s Home Screen for one-tap access anytime.
Submitting a Print Job:
- Tap Select Documents to upload any PDF, shipping label, image, or document.
- Select HP LaserJet 1020 from the printer dropdown.
- Choose your print preferences:
- Copies: Choose your desired quantity.
- Paper Size:
LetterorA4(dynamically queried from your Windows driver). - Page Range: All pages or specific pages (e.g.,
1-3, 5).
- Tap Print.
Printman processes the document, rasterizes pages using native Windows WinRT APIs, and feeds the job sequentially to winspool.drv. The HP 1020 will kick into gear and print within seconds.
Pro Tip: Automatic Background Startup on Boot
To ensure your HP LaserJet 1020 is always available without ever opening a terminal window:
- Press
Win + R, typeshell:startup, and press Enter. - Right-click an empty space in the Startup folder and select New > Shortcut.
- In the target box, enter:
"C:\Tools\Printman\printman.exe" serve --no-auth - Name the shortcut
Printman Serverand save it.
Every time your Windows PC starts or awakens, Printman runs quietly in the background, keeping your vintage HP 1020 wireless-ready 24/7.
Frequently Asked Questions (FAQ)
What about the HP LaserJet 1018 and 1022—does this exact method work for them?
Yes! The HP LaserJet 1018, 1020, and 1022 all share the exact same Zenographics ZjStream host-based engine and the HP 12A cartridge chassis. Printman queries the Windows spooler, detects whichever model you have connected, and allows full wireless mobile printing across all three variants.
Why does my HP 1020 fail to print on Raspberry Pi CUPS after a reboot?
The HP 1020 has no non-volatile ROM firmware; it requires the host to upload sihp1020.dl upon USB enumeration. Linux foo2zjs scripts often fail to re-trigger this firmware upload when the printer enters sleep mode or when the Pi reboots without a physical power-cycle of the printer. Windows handles this USB state transition natively without user intervention.
Can I print double-sided (duplex) on the HP LaserJet 1020 from my smartphone?
The HP 1020 does not contain an internal mechanical duplexer, but it supports manual duplex printing. With Printman, you can specify odd pages first (1, 3, 5), take the printed stack, place it back into the paper input tray with the printed side face down, and submit the even pages (2, 4, 6).
Is the HP Q2612A (12A) toner cartridge still worth keeping this printer alive in 2026?
Absolutely. The HP 12A cartridge is one of the most widely cloned and remanufactured cartridges on Earth. Replacement cartridges cost roughly $10 to $14 each, yielding over 2,000 crisp pages at an unbeatable cost of less than half a cent per page—with zero risk of dried printheads or software DRM chip lockouts.
Written by EslaMx7
Printman is an open-source tool built to keep resilient USB printers out of landfills.