Printers and Cash Drawers
Hyvä POS is in closed beta
Hyvä POS is currently in a closed beta (pilot phase) with a small group of merchants. It is not yet generally available: the App Store release follows the pilot, and features and configuration may still change - possibly in backwards-incompatible ways - before the general release. Want to take part? Sign up at hyva.io/pos.
Printer support comes in tiers, and we are explicit about them: hardware we have tested on real devices, hardware the drivers support but we have not physically exercised, and two best-effort paths (generic ESC/POS and AirPrint) that cover almost everything else. When in doubt, order from the tested list.
What to Order
Our recommendation after testing, for a fixed counter:
- Epson TM-m30III, the favourite: powers the iPad over USB-C, prints receipts, kicks the cash drawer, and hosts the Epson DM-D30 customer display. One clean cable, no network dependency.
- Star mC-Print3, the Star one-cable counter: powers the iPad over USB-C, kicks the drawer, hosts the Star SCD222U display. Order the USB-C variants, MCP31CI or MCP31CBI: the MCP31L/LB variants have no iPad USB-C and run over the network instead.
- Star mPOP for tight counters: printer and cash drawer in one chassis, powers the iPad over USB-C, hosts the Star SCD222U display.
- Brother RJ series for mobile use: battery-powered Bluetooth printers for markets and pop-ups; some models print barcode labels too.
- Zebra ZD411 for dedicated barcode-label printing.
Watch the model variants
Printer families ship in many SKU variants and not all of them talk to an iPad. Example: the Star TSP143IV-UEWB (Wi-Fi + Bluetooth) works great, but the TSP143IV-UE variant's USB-C speaks Android-AOA, not iPad, and it has no Bluetooth, leaving Ethernet as the only iPad path. Check the connectivity of the exact SKU before ordering.
Tested by Hyvä
Physically exercised against real hardware by us:
| Printer | Type | iPad connections |
|---|---|---|
| Epson TM-m30III | Counter receipt | USB-C (powers the iPad), Bluetooth, Ethernet |
| Star mPOP | Counter receipt + integrated drawer | USB-C (powers the iPad), Bluetooth |
| Star mC-Print3 (MCP31CI) | Counter receipt | USB-C (powers the iPad), Bluetooth, LAN |
| Star TSP100IV | Counter receipt | Network (no iPad USB-C) |
| Star TSP143IV-UEWB | Counter receipt | Wi-Fi, Bluetooth |
| Brother RJ-3230B | Mobile receipt/label | Bluetooth (MFi) |
| Brother RJ-2035B | Mobile receipt | Bluetooth (MFi) |
| Zebra ZD411 | Barcode labels | Bluetooth |
Supported by the Drivers (Not Yet Tested by Us)
The vendor SDKs support these models and the app implements them; we have not put them on our own bench. They should work, and we debug together with you if something is off:
- Epson (ePOS SDK): TM-T20II, TM-T88V, TM-T88VI, TM-m10, TM-m30, TM-m30II, TM-m30II-NT
- Star (StarXpand SDK): mPOP variants (POP10CI, POP10CBI), mC-Print2 (MCP21LB), the remaining mC-Print3 SKUs (MCP31L, MCP31LB, MCP31CBI)
- Brother (mobile RJ series): RJ-2050, RJ-2150, RJ-3050Ai, RJ-3150Ai, RJ-3235B, RJ-3250WB, RJ-3255WB, RJ-4030Ai, RJ-4230B, RJ-4235B, RJ-4250WB, RJ-4255WB, RJ-2035B, RJ-3035B, and the RJ-2055WB / RJ-3055WB
- Zebra (Link-OS, labels): ZD421, ZD611, ZD621
Brother RJ-2055WB / RJ-3055WB
These two models connect over Bluetooth LE or Wi-Fi (no MFi identity), and the hardware cannot report its own model name over BLE, so the app asks you to pick the model once during setup. Everything else works normally after that.
Generic ESC/POS Network Printers (Best Effort)
Any printer that accepts raw ESC/POS over TCP port 9100 on your network works through the generic path: Epson, Star, Citizen and most generic thermal printers. Text, formatting, cut and drawer kick are supported. Two limitations to know:
- No status read-back: this path streams bytes to the printer. Paper-out, cover-open or offline states cannot be reported; a failed print shows as a connection error. The vendor SDK paths above give richer status.
- Models outside the tested list are unverified; they usually just work, and we look at issues together when they do not.
AirPrint (Fallback and A4)
Any AirPrint-certified printer on the network prints receipts through the iOS print panel, no setup on our side. Use it as the fallback when the thermal printer is offline, and for full-size A4/Letter copies. Receipts render from the same template as thermal output, so they look consistent.
Technical Notes Worth Knowing
- Accents and the euro sign print correctly on the ESC/POS path: the app selects a Western European code page rather than plain ASCII, so é, ä, ö and € survive.
- Native QR and logo printing on generic ESC/POS printers is opt-in per printer. Some older thermal firmwares print unknown commands as garbage characters instead of ignoring them; the per-printer toggles exist so you enable these only after a successful test print.
- A "force text mode" escape hatch exists per printer for the rare hardware where image printing misbehaves; it applies to printers with a text pipeline (Epson, Star, generic ESC/POS).
- Brother over Bluetooth LE is slow for images by SDK design (tiny 20-byte writes). The app's native text-receipt mode for the RJ BLE models sends a few hundred bytes instead of an eight-kilobyte raster, which makes receipts print in a fraction of the time; if a text print ever fails, the app falls back to the image automatically.
- Receipts render for 1-bit thermal output: no anti-aliasing, bold fonts, thick dividers. That is deliberate; grey pixels and hairlines disappear on thermal paper.
-
Quality knobs per printer: darkness (three levels), speed, receipt size scaling and double-strike for bolder text.
-
Tear-off printers pause between copies: on Brother RJ printers the app shows a "tear merchant copy" confirmation before printing the customer copy, so two receipts never end up on one uncut ribbon.
- Brother halftone setting: receipts with a logo look best with Error Diffusion; text-only receipts print faster and crisper with Threshold. It's a per-printer picker in the app.
- Epson TM-m30III-H: has an internal USB hub - its USB-A ports enumerate through the iPad, so peripherals can share the printer's single cable to the iPad.
Cash Drawers
Cash drawers have no connection of their own: they open on an electric pulse from the receipt printer's RJ11/RJ12 "DK" port. The iPad tells the printer, the printer kicks the drawer, which means any kick-driven drawer with an RJ11/RJ12 plug works, regardless of brand (APG, Star, Epson, bundled generics).
| Printer | Drawer support |
|---|---|
| Epson TM series | Yes. The app pulses both drawer pins, so wiring variants work without configuration |
| Star mC-Print, TSP100 series | Yes, via the DK port |
| Star mPOP | Built in: printer and drawer share one chassis |
| Generic network ESC/POS printers | Yes, via the standard kick command |
| Brother RJ mobile printers | No drawer port (portable) |
| Zebra label printers | No drawer port |
| AirPrint office printers | No drawer port |
The drawer opens automatically on cash payments (configurable) and manually for a no-sale check. Every opening lands in the register's audit trail, so the Z report accounts for each time the drawer was open.