Put a USB Receipt Printer on the Network
Turn a USB-only receipt printer into a network printer: print servers, a Raspberry Pi, or a palm-size node that speaks port 9100 and reports live status.
Published 2026-07-24 · Updated 2026-08-02 · For restaurants →
There are four ways to put a USB-only receipt printer on your network: a generic USB print server box ($20–60), a Raspberry Pi running a small print service, the vendor route (a new interface card or a new printer), or a bridge node — the Station Hub, a Proxy Nodes device — that presents the printer as a normal network printer on port 9100. Which one fits depends on a question most guides skip: does your POS only need to send bytes to the printer, or does it also need to hear back — paper out, cover open, drawer status?
If it only needs to send, almost anything below works. If it needs to hear back, most of the low-cost options quietly fail.
Why this problem exists
USB receipt printers are the least expensive printers you can buy — the $40–90 generics on Amazon's best-seller list are usually USB-only or USB-plus-serial. Ethernet models of the same printer typically cost $30–80 more, and name-brand network printers like the Epson TM-m30III run $275–541.
Meanwhile, most POS systems — tablets especially — expect a network printer: an IP address they can reach over the LAN, usually speaking raw ESC/POS (the command language nearly all receipt printers understand) on TCP port 9100 (see how port 9100 printing works). A tablet has nowhere to plug a USB printer in, and even a Windows POS often routes kitchen tickets by IP address, one per station (see kitchen printer setup).
So you have a working printer with the wrong plug. Here are your options, honestly compared.
Option 1: a generic USB print server ($20–60)
The classic answer is a small "USB print server" box: TP-Link, IOGEAR, and a rotating cast of unbranded ones. You plug the printer into the box, the box into your switch, and it forwards a TCP port to the USB port.
For one-way printing this often works. The catches:
- Most are one-way. They forward bytes to the printer but do not reliably return the printer's replies. ESC/POS status queries (
DLE EOT— the command a POS sends to ask "do you have paper?") either time out or come back garbled. Your POS will show the printer as online when it's out of paper, or offline when it's fine. - They're built for office printers. Many expect IPP or LPD, not the raw byte streams receipt printers use. Look specifically for "RAW/port 9100" support in the spec sheet before buying.
- Setup is a coin flip. Configuration utilities that only run on old Windows versions, fixed IPs on the wrong subnet, firmware from 2016. When they work, they work for years; when they don't, there's no one to call.
The one-way test
Before trusting any print server, run your printer out of paper and watch what your POS says. If it keeps reporting "ready," the status path is dead — fine for a bar printer someone watches, risky for a kitchen printer nobody looks at until orders stop coming out.
Option 2: a Raspberry Pi bridge
A Raspberry Pi running a small Python or Node service is the DIY answer, and it genuinely works: the Pi talks USB to the printer and exposes port 9100 (or an HTTP endpoint) to the network. If you can follow a terminal tutorial, our companion guide walks through the whole build: Raspberry Pi receipt printer server.
The honest trade-offs: a Pi is $35–80 plus an SD card and power supply, it boots in 30+ seconds after a power cut, and SD cards corrupt under the abrupt power-offs that happen constantly in restaurants. It's a great fit when you want the bridge to do more — logging, reformatting tickets, driving multiple devices — and a lot of machine when all you need is "make this USB printer look like a network printer."
Option 3: the vendor route
If your printer is a name-brand model with a modular interface (many Epson TM and Star TSP printers), the manufacturer sells Ethernet interface cards — typically $50–150, plus finding the right part number for your exact model. For a $300+ printer you already own, this is clean and supported.
For a $60 generic, the math fails: the card can cost more than the printer, if a card exists at all (most generics have soldered, non-modular interfaces). The vendor's real answer is "buy the Ethernet model," which means paying the price difference again and putting a working printer in a drawer.
Option 4: the Station Hub — a bridge that speaks printer, both directions
This is the gap the Station Hub fills. It's a Proxy Nodes device: a palm-size node that plugs into the printer's USB port, joins your Wi-Fi, and makes the printer behave like an ordinary network printer:
- It listens on TCP port 9100 and passes raw ESC/POS through to the USB printer — the same way a built-in Ethernet interface would.
- It answers
DLE EOTstatus queries with the printer's real state: paper out, cover open, drawer open. This is exactly the part generic print server boxes drop. - It announces itself with mDNS (
proxynodes-<id>.local), and can present a printer compatibility profile —epson-tm-m30,epson-tm-t88,star-tsp100— so software that discovers printers by model identity can find it. Switching profiles is a setting, applied live, no reboot. - It also serves a plain HTTP/JSON API:
POST /print,GET /status,POST /drawer/kick, and a live event stream — for software that would rather send JSON than raw bytes.
Setup is a printed slip, not a terminal: an unprovisioned node opens its own setup Wi-Fi network and prints a QR code; scan it, enter your Wi-Fi password, done. There's a status page you can open in any browser, and the drawer kick fires in 0.15 s. And when a status reading genuinely can't be taken — some printers stay silent — the API says the state is unknown rather than guessing. A bridge that invents printer status is worse than no bridge.
Where Proxy Nodes is today
The Station Hub ships with firmware 1.0.24 and drives real thermal printers in production form today: port-9100 pass-through with live DLE EOT status, the HTTP/JSON API, mDNS discovery with compatibility profiles, a measured 0.15 s drawer kick, and a printer and barcode scanner running simultaneously on one node (printer bound in 1,012 ms behind a powered USB hub). Behind it: 123 conformance specs that run against the simulator and real hardware alike. Ethernet, PoE, and RS-232 transports are in development; today's connection is Wi-Fi.
Wiring and power notes
Whatever bridge you choose, two practical details:
- Power from the printer itself. Many receipt printers — including most Epson TM-m30 family units and a lot of generics — have a powered USB-A port intended to charge a tablet. That port can power a small bridge device, so the whole setup runs off the printer's own power brick: one outlet, and the bridge turns on and off with the printer. A Pi is the exception — it wants 2.5–5 A, more than most of those ports supply, so give it its own official power supply.
- Pin the bridge's IP address. Your POS is almost certainly configured to print to a fixed IP, so give the bridge a DHCP reservation in your router — its address then never changes across reboots. If your bridge offers wired Ethernet, use it; kitchens are hostile RF environments. The Station Hub connects over Wi-Fi (wired transports are in development), which is why the reservation matters — set it once during install.
Which option, in one table
| Option | Cost | Status reporting | Best for |
|---|---|---|---|
| Generic USB print server | $20–60 | Usually none | One-way printing you can watch |
| Raspberry Pi bridge | $50–100 all-in | Yes, if you build it | Tinkerers; bridges that do extra work |
| Vendor Ethernet card | $50–150 | Yes, native | Name-brand printers with modular interfaces |
| New Ethernet printer | $70–540 | Yes, native | When the old printer is dying anyway |
| Station Hub (Proxy Nodes) | Shown at checkout | Yes — port 9100 plus DLE EOT, plus HTTP/JSON | USB printers that need to act like real network printers, with live status |
FAQ
Frequently asked questions
- Can I just use a USB-to-Ethernet adapter cable?
- No. Those adapters add an Ethernet port to a computer — they don't make a USB device reachable over the network. You need something with a processor in the middle: a print server box, a Pi, or a bridge node that speaks both USB and TCP.
- What is port 9100 and why does it keep coming up?
- Port 9100 is the de facto standard for raw network printing: the POS opens a TCP connection to the printer's IP on port 9100 and writes printer commands straight through. Nearly every POS that supports network receipt printers uses it, which is why any USB-to-network bridge needs to speak it.
- Will my POS know the printer is out of paper through a bridge?
- Only if the bridge passes status traffic both ways. POS software asks with the ESC/POS DLE EOT command and expects a one-byte reply. Most inexpensive print server boxes never return it; a Pi can if your software forwards replies; a node answers it from the printer's live state as a native feature.
- Can the printer's USB tablet-charging port really power the bridge?
- Usually, for small devices. Those ports typically supply 1–2 A at 5 V, which is plenty for a palm-size node and not enough for a Raspberry Pi 4 or 5 under load. Check your printer's manual for the port's rated output.
- Does the Station Hub need the internet to print?
- No. Everything in the print path — port 9100, DLE EOT status, the HTTP API — runs on your local network. If your internet goes down, printing keeps working; only optional cloud features like account presence pause.
- Is a used name-brand Ethernet printer a better buy than a bridge?
- Sometimes. Used TM-T88 series printers are plentiful and nearly indestructible, and if your POS requires a certified model it may be your only option — see using any printer with your POS. If your POS just prints to an IP address, bridging the printer you already own costs less.
More on the network side of this: port 9100 printing explained · kitchen printer setup · the full Raspberry Pi build · use any printer with your POS · everything else for operators at Proxy Nodes for restaurants.
Related reading
- Raspberry Pi Receipt Printer Server — and an AlternativeBuild a Pi-based thermal printer server with python-escpos — real costs, SD-card pitfalls, and when a dedicated palm-size node is the better tool.
- Port 9100 Printing: Raw TCP for POS, ExplainedHow raw port 9100 printing works, why every POS uses it, how to test it with netcat, and its blind spots — status, discovery, and error handling.
- Kitchen Printer Setup: a No-Nonsense GuideSetting up a restaurant kitchen printer: thermal vs impact, Ethernet vs Wi-Fi, static IPs, routing by station, and surviving printer swaps.