Plain English

Sets **three independent media-feed speeds** in inches per second (ips): `p` = **print speed** (head heating active, pixels being marked), `s` = **slew speed** (blank media advancing between fields or between labels — head idle), `b` = **backfeed speed** (reverse motion, e.g. tear-off retract or peel-and-present indexing). The valid range is model-dependent — typically 1–14 ips on industrial printers, 2–6 ips on desktop models; values are silently clamped to the printer's supported range. Trailing parameters default to `p` if omitted, so `^PR5` sets all three to 5.

When to use

Print speed is the **dominant quality lever** — every doubling of `p` measurably reduces edge sharpness because the print head has half the dwell time per dot. **Drop `p` to 2–3 ips** for high-density 1D barcodes (Code 128 narrow-bar < 8 dots), small text (< 8 pt at 203 dpi), or fine GS1 DataMatrix; **stay at `p` = 5–6 ips** for typical shipping labels; **push to 8+ ips** only when the print is purely large text/graphics with no scan-critical content. `s` and `b` only affect throughput, not quality — leave them at the printer default unless minimising cycle time matters. Persisted via `^JU`; some firmware exposes the same setting in the operator menu.

Syntax

^PRp,s,b

Parameters

ParameterDescription
pPrint speed in inches per second; range 1–14 (model-dependent, clamped silently)
sSlew speed (blank-media advance) in ips; range 1–14. Defaults to `p` if omitted
bBackfeed speed (reverse motion for tear-off/peel) in ips; range 1–14. Defaults to `p` if omitted

Example

^XA
^PR3,6,6
^FO50,50^BY2^BCN,80,Y^FD12345^FS
^XZ

Print at 3 ips (sharp edges for the Code 128 barcode), but slew and backfeed at 6 ips so blank-media motion does not slow throughput. For high-density barcodes always lower `p` first — slewing fast on blank media costs nothing in scan reliability.

Try it in the playground View all ZPL commands