:label: LabelSis
May 11, 2026 ยท View on GitHub
Network print server for the Brother PT-P700 family of label printers, running on ESP32-S3 or ESP32-S2 with a self-hosted web UI for label design.

Why
Brother ships P-touch Editor (Windows-only desktop) and a mobile app that talks Bluetooth to a select few models. There is no first-party way to put a USB-tethered PT-P700 on the LAN and print to it from any browser. LabelSis fills that gap: a single ESP32-S3 turns the printer into a stand-alone network device with no driver install, no app, no cloud account, no telemetry.
How
- get an ESP32-S3 (or ESP32-S2)
- upload firmware
- connect ESP via USB to the P-touch label printer
- add power
- start designing in web ui
Highlights
- Browser-based label designer -- text, images, barcodes, QR codes, icons, rectangles, CSV-templated batch printing. Vanilla HTML/CSS/JS, no install, runs straight from device flash.
- Captive-portal Wi-Fi onboarding -- phones land on the setup page automatically; no need to know an IP.
- Multi-AP Wi-Fi list -- up to 4 saved networks tried in last-used-then-priority order on boot; AP-mode onboarding only when every entry fails. Optional pre-scan skips APs not on air. Designed for a portable device that travels between sites.
- Over-the-air firmware update --
POST /api/otafrom the SPA Status panel or thescripts/labelsis-ota.pyCLI. Two physical gates open the endpoint (printer in P-Lite mode, or hold-and- release the device's BOOT button 2-30 s). Bootloader rolls back if the new image fails to confirm. - Status LED (single GPIO or WS2812 RGB) -- glance at the device, don't grep serial logs.
- mDNS at
labelsis.local; falls back gracefully when blocked. - Mock dev server (Python stdlib only) -- iterate the SPA without flashing or even owning the printer.
Integrating into PT700
I integrated the ESP32-S2/ESP32-S3 board into my Brother P-touch PT700 label printer:

I used a Wemos Lolin S2 mini ESP32-S2 which does not come with an addition USB-serial IC on board, so the device is now "WIFI only".
The PT700 microcontroller needs to detect a voltage on the VBUS pins of the USB port. 3.3V is sufficient for detection.
This is why 3.3V is connected to VBUS.
Supported printers
Same protocol family per Brother's SDM v1.11. All must be in normal print mode (slider in E, not EL / P-Lite -- see USAGE.md).
| Model | VID:PID | Notes |
|---|---|---|
| PT-H500 | 04F9:205E | Handheld |
| PT-P700 | 04F9:2061 | Reference platform; tested on hardware |
| PT-P750W | 04F9:2062 | P700 with on-printer Wi-Fi (irrelevant when wired) |
| PT-E500 | 04F9:205F | Handheld |
Quick start
git clone <repo> labelsis && cd labelsis
. ~/esp/esp-idf/export.sh
idf.py -D BOARD=devkitc_s3 set-target esp32s3
idf.py flash monitor
Other boards: pass -D BOARD=<name> (with the matching set-target).
Shipped profiles + how to add your own: boards/README.md.
Connect a phone or laptop to the labelsis-setup Wi-Fi the device
brings up on first boot; the captive-portal page leads you through
joining your home network. After that, visit http://labelsis.local/.
Full instructions: doc/INSTALL.md. Hardware list and cabling: doc/HARDWARE.md.
Documentation
- Install -- flashing, Wi-Fi onboarding, status LED, BOOT-button reset
- OTA -- over-the-air updates (gated on the printer's P-Lite slider)
- Usage -- using the SPA, CSV templating, P-Lite handling
- Hardware -- devkit notes, cabling, board variants
- Development -- mock server, SPA dev tricks, CLI, host tests, architecture
- Troubleshooting -- first-hour symptom catalog
- Third-party notices -- bundled OSS attributions
Status
Beta. Works on a real PT-P700 over Wi-Fi for label design, printing, and OTA on both the ESP32-S3-DevKitC-1 (reference) and the Wemos LOLIN S2 Mini (deployed -- this device is the one shown integrated into the PT700 above). PT-H500 / PT-E500 / PT-P750W are protocol-family matches per the Brother SDM but untested on hardware.
TODO
- attach the ESP board neatly to the PT700 printer (currently, it is a mess of wires)
Security
The HTTP API has no authentication: anyone who can reach the device on the network can print, scan Wi-Fi, or rewrite credentials. This is a deliberate trade-off for a single-user appliance on a trusted LAN -- the same posture as a typical home printer's web panel. Run it on a trusted network, do not expose port 80 to the public internet, and treat the device the way you'd treat any other unauthenticated LAN appliance.
License
MIT. Bundled third-party components keep their own licenses; see THIRD_PARTY_NOTICES.md.