Printer Bridge
The Printer Bridge is a small utility that runs on a Windows PC or Linux machine and bridges USB-connected printers to the network. Brother POS sends print jobs over the network, and the Printer Bridge translates them into USB commands for your printer. This is only needed if your printers connect via USB rather than Ethernet or Wi-Fi.

When You Need the Printer Bridge
You need the Printer Bridge if:
- Your receipt printer connects to your computer via USB (not Ethernet or Wi-Fi).
- Your label printer connects via USB.
- You want to use a USB printer with a cloud-hosted Brother POS instance.
You do not need the Printer Bridge if:
- Your printers connect via Ethernet or Wi-Fi directly to the network.
- Your printers support Star CloudPRNT (which uses HTTP polling).
How It Works
Brother POS ──(network)──> Windows PC ──(USB)──> Printer
(cloud) (Printer Bridge) (USB receipt/label)
When Brother POS sends a print job to the Windows PC's IP address, the Printer Bridge receives it and forwards it to the appropriate USB printer. The Printer Bridge uses the Windows default printer unless a specific printer name is configured in the script.
Cloud Deployments: Browser-Side Bridge Relay
On cloud-hosted (multi-tenant) deployments, the Brother POS server runs in the cloud and cannot reach a Printer Bridge running on the customer's localhost. To make USB printing work from the cloud, certain print paths relay through the browser instead of the server:
Cloud server ──> Browser (admin/POS) ──(localhost network)──> Printer Bridge ──(USB)──> Printer
- Product labels from the React POS already print this way -- the browser generates the label commands and POSTs them directly to the bridge.
- Loyalty card printing from the Rails admin now uses the same approach. When you click Print Card, the browser detects the bridge on the page load, fetches the card commands (base64) plus the bridge IP/port and printer type from the server, then POSTs the decoded bytes straight to the bridge on port 9101 (
application/octet-stream). If no bridge is detected (on-premise installs where the server can reach the printer), it falls back to the original server-side submit. - Non-Zebra Bluetooth printers (for example Munbyn) also use this client-side bridge path. Previously only the Zebra Bluetooth path was supported, and other printers fell through to a server API that could not reach the shop's local bridge -- causing a 422 error. The POS now renders the customer card template in the browser and POSTs commands to the bridge for any bridge-enabled printer.
Unlike product labels (printed from the React POS in the browser), loyalty cards are rendered by the Rails admin, which had no browser-side print path before. On a cloud deployment the server cannot reach the customer's localhost:9101, so the browser-side relay was added to use the same transport that already works for product labels.
Scale Relay for Network Scales
In addition to printing, the Printer Bridge now embeds a scale TCP→WebSocket relay in all three variants (the Windows CLI, the Windows GUI, and the Linux bridge). It exists so the POS in a browser or PWA can read a network scale that it otherwise cannot reach.
A network scale typically attaches to a USR-W610 serial-to-TCP bridge that speaks raw TCP (commonly on port 8899). A browser cannot open a raw TCP socket, so the relay runs on the POS machine, dials the W610 over TCP, and re-exposes the weight stream as a WebSocket on localhost port 9102 — which the browser can connect to even from an HTTPS page (localhost is an allowed secure context). The browser passes the scale's address in the WebSocket URL, for example ws://localhost:9102/?host=192.168.50.217&port=8899.
Network scale ──(serial)──> USR-W610 bridge ──(TCP :8899)──> Printer Bridge relay ──(WebSocket :9102)──> Browser/PWA
The relay sits alongside the existing receipt (9100) and label (9101) ports — it is the same single Printer Bridge process, so stores do not run a second program. It is best-effort: if the relay module is missing it never blocks printing, and the bridge can also be run scale-relay-only.
The native iPad/Capacitor app reads the W610 directly over TCP and does not need the relay. The relay is only for desktop browsers and the PWA. See Scales for the register-side configuration.
LAN Auto-Discovery (No IP Hunting)
You no longer have to find the bridge PC's IP address by hand. The Printer Bridge announces itself on the local network, and the POS can fill the bridge's IP and ports for you when you tap Auto-Detect in the label-printer settings. Three discovery paths run, so at least one works on every device:
| Method | Works on | What it does |
|---|---|---|
| Published address (most reliable) | iPad and browsers | The bridge tells your store its own network address, and any device reads it back. Nothing to allow or install. |
| Bonjour | iPad and desktop | The bridge announces itself on the network — the same way an AirPrint printer does. On an iPad, just allow the Local Network permission when asked. |
| Network probe | Browsers, Android, desktop | The POS looks for the bridge directly on your network. |
When you tap Auto-Detect, the POS tries each method in turn and fills in the bridge's address and ports for you. If none of them find it, you can still type the bridge's IP address in by hand.
The first two methods need nothing extra. If you're on Android or a desktop browser and Auto-Detect still comes up empty, ask your network person to allow UDP port 9200 on the bridge PC (alongside the print ports) — or just enter the bridge's IP address manually.
Bridge Config on the iPad (Behind a Flag)
By default the iPad app assumes the bridge lives on a Windows PC and hides the bridge host/port fields. For the rare case where an iPad prints to a remote bridge PC over the LAN, enable Remote Printer Bridge in Settings > Edit Settings. When on, the iPad's printer settings expose the bridge host and port so the day-to-day printer config can be done on the iPad without opening the Rails admin.
System Requirements
- Operating System: Windows 10, Windows 11, or Linux (Ubuntu/Debian)
- Python: Required only if running from source. A pre-compiled
.exe(built with PyInstaller from the GUI version) is also available and does not require Python. - USB Ports: One per printer (one for receipt, one for label)
- Network: The computer must be on the same network as the POS device
- Ports: The bridge listens on TCP port 9100 for receipt print jobs and TCP port 9101 for label print jobs (configurable via
--receipt-portand--label-portarguments). It also runs a scale TCP→WebSocket relay on port 9102 for network scales (configurable via--scale-relay-port, or disable with--no-scale-relay) — see Scale Relay below - Always On: The computer must remain powered on and the Printer Bridge must be running for printing to work
The Printer Bridge should run on a PC that is always on during business hours. A mini-PC or an inexpensive Windows laptop dedicated to this task is ideal. Do not rely on an employee's workstation that may be shut down or restarted.
New stores don't have to hunt for these downloads. The Setup Wizard has a "Set up & test your hardware" step that offers the right Printer Bridge download for your platform, tells you live whether the bridge is detected, and then runs a one-tap Test on your receipt printer, label printer, cash drawer, scanner, and scale — so you can confirm everything works before your first sale. This page is the full reference for doing it by hand or troubleshooting later.
Installation
Step 1: Install Python
The Printer Bridge is a Python script. Download and install Python from python.org if it is not already installed on the Windows computer.
Step 2: Get the Printer Bridge Script
Download the Printer Bridge for your operating system:
- Windows: Download
PrinterBridge.exefrom your Brother POS admin panel (linked from the register setup page). This is the standard, pre-compiled Windows download — no Python required. (An olderPrinterBridgeNew.execopy has been retired; always usePrinterBridge.exe.) - Linux: Download the Linux Printer Bridge package from your admin panel (available at
/downloads/printer_bridge_linux.zip).
Step 3: Connect Your Printers
- Connect your USB receipt printer to the Windows PC.
- Connect your USB label printer (if you have one) to a second USB port.
- Ensure the printers are powered on and detected by Windows (check Device Manager).
Configuration
Identifying Your Printers
The Printer Bridge uses the Windows default printer unless a specific printer name is configured in the script. To verify your printers are recognized:
- Open Device Manager on the Windows PC.
- Expand Printers or USB Devices.
- Confirm that your receipt and label printers are listed.
Running the Printer Bridge
From the compiled .exe (recommended):
- Double-click the Printer Bridge executable. A system-tray icon appears.
- The bridge starts listening for print jobs automatically on ports 9100 (receipt) and 9101 (label), and starts the scale relay on port 9102.
In the GUI, the scale relay starts and stops together with the printers.
From source (Python):
- Open a command prompt or terminal on the Windows PC.
- Navigate to the directory containing the Printer Bridge scripts.
- Run the multi-printer script:
python printer_bridge_multi.py. - Optionally specify printers:
python printer_bridge_multi.py --receipt-printer "Epson TM-m30II" --label-printer "Zebra ZD421". - You should see log output confirming the Printer Bridge is running and the printers are detected.
The scale TCP→WebSocket relay starts automatically on port 9102. Use --scale-relay-port to change it, or --no-scale-relay to disable it. The Linux bridge (linux_printer_bridge.py --multi) accepts the same flags.
To have the Printer Bridge start automatically when the PC boots:
- Press
Win + R, typeshell:startup, and press Enter. - Create a shortcut to the Printer Bridge script in the startup folder, or create a batch file that runs the Python script.
- Alternatively, use Windows Task Scheduler to run the script at login.
Configuring Brother POS
Once the Printer Bridge is running:
- Log in to the Admin Panel.
- Navigate to the Printers page.
- Add or edit a printer.
- Set the IP Address to the Windows PC's IP address (e.g.,
192.168.1.150). - The port settings will be configured automatically. If prompted, use the default values provided by the Printer Bridge.
- Click Save.
- Click Test Print to verify the connection.
Always configure your label printer as a Printer record on the /printers page rather than relying on the older Store-level label printer fields. The label print path now prefers a configured Printer record (including its bridge IP/port) over the legacy Store-level flag. This fixes a case where the Store-level "label printer enabled" flag was on but its IP fields were blank, which used to make the loyalty card print path report "Label printer not enabled" even though product label printing worked.
Verifying the Connection
Test Receipt Print
- In the admin panel, go to the Printers page.
- Click Test Print next to your receipt printer.
- The print job travels: Brother POS -> Network -> Printer Bridge -> USB -> Receipt Printer.
- A test receipt should print within a few seconds.
Test Label Print
- In the admin panel, go to the Printers page.
- Click Test Print next to your label printer.
- A test label should print.
If either test fails, check the Printer Bridge window for error messages.
Monitoring the Printer Bridge
The Printer Bridge logs all activity to its application window and to a log file.
Log entries include:
- Connection events -- When a print job arrives.
- Print status -- Whether the job was sent to the USB printer successfully.
- Errors -- USB disconnections, communication failures, or other issues.
Review the log if you experience intermittent printing issues.
Troubleshooting
Printer Bridge Does Not Start
| Problem | Solution |
|---|---|
| Script fails to run | Verify Python is installed and accessible from the command line. |
| "USB device not found" | Reconnect the USB cable. Check Device Manager. |
Print Jobs Not Arriving
- Check the network -- Verify the Windows PC is reachable from the POS device. Ping the PC's IP address.
- Check the firewall -- Windows Firewall may be blocking incoming connections on the ports used by the Printer Bridge. Add a firewall exception (see below).
- Check the Printer Bridge -- Is the Printer Bridge script still running? It may have crashed or been closed.
Adding Firewall Exceptions
- Open Windows Defender Firewall.
- Click Advanced Settings.
- Click Inbound Rules > New Rule.
- Select Port, click Next.
- Enter the ports used by the Printer Bridge (shown in the Printer Bridge window when it starts).
- Select Allow the connection.
- Apply to all profiles (Domain, Private, Public).
- Name the rule "Brother POS Printer Bridge" and save.
USB Printer Disconnects
If the USB printer disconnects intermittently:
- Try a different USB cable.
- Try a different USB port on the PC.
- Avoid using a USB hub -- connect directly to the PC.
- Check that the printer's power supply is stable.
If the Printer Bridge script is closed, printing will stop. The Printer Bridge must be running at all times during business hours. Consider using the auto-start method described above to ensure it launches when the PC boots.
Common Questions
Can the Printer Bridge run on macOS or Linux? The Printer Bridge is available for Windows and Linux. A Linux version is provided for Mini-PC deployments running Ubuntu or Debian. macOS is not currently supported -- contact support if you need macOS USB printing.
Can one PC bridge multiple receipt printers? The Printer Bridge supports one receipt printer and one label printer per installation. For multiple receipt printers, contact support for guidance on your setup.
Does the Printer Bridge work over VPN? Technically yes, as long as the POS device can reach the Windows PC's IP address over the VPN. However, network latency may cause slow printing.
Do I need the Printer Bridge just to use a network scale in a browser? Yes. A browser cannot open a raw TCP socket to the USR-W610, so it relies on the bridge's built-in scale relay (port 9102) running on the POS machine. The iPad/Capacitor app talks to the scale directly and does not need the bridge for the scale. See Scales.
What's Next?
- Receipt Printers -- Configure receipt printer settings in Brother POS.
- Label Printers -- Configure label printer settings.
- Scales -- Configure a network scale that reads through the bridge's scale relay.
- Cash Drawers -- Connect a cash drawer to your receipt printer.