Plain English

Puts the printer into a **low-power sleep state** to save energy (and, on battery-powered models like the QLn / ZQ-series, extend battery life). While asleep, the printer's **CPU, display, and most I/O subsystems are powered down** — incoming bytes on the serial/USB/network ports may be **buffered, deferred, or dropped entirely** depending on the model and the channel; the printer will not respond to status queries (`^HH`, `~HS`, `~HI`) and will not start a print job until it wakes. The wake condition depends on **how `^ZZ` was issued**: with a timeout argument `t`, the printer auto-wakes after `t` seconds; without `t` (or with `t=0`), the printer sleeps **until an external wake signal arrives** — a button press on the front panel, a host-side wake command (`~WC` on supporting firmware, or a low-level USB/serial wake-up byte sequence), or on networked models a `WoL` magic packet to the printer's MAC. Optional second parameter `b` controls whether to **beep on wake** (audible confirmation that the printer is again ready). Sleep state is **not persistent across power cycles** — a power-on always resets to fully-awake.

When to use

For **battery-powered or unattended deployments** where idle power consumption matters: handheld units (QLn220/QLn320, ZQ-series) parked between print jobs, kiosk printers in low-traffic windows, or fixed-location printers in shift-based workflows where overnight sleep saves measurable wattage. ⚠️ **Critical caveat — the printer may stop responding to the host until woken.** Status polling (`~HS`, `^HH`), `^XF` recall queries, and even raw incoming labels can be dropped on the floor while the printer is asleep on some firmware. **Always pair `^ZZ` with a known wake path** before issuing it: either give it a finite timeout `t` so it auto-wakes (preferred for fire-and-forget host workflows), or guarantee the host can issue the wake command (and that the channel transports the wake byte through to the asleep printer). **Never issue `^ZZ` without a timeout from a host that has no wake mechanism** — you will lose the printer until someone walks over and pushes the power button. For diagnostic and integration testing, default to `^ZZ60,Y` (sleep 60s, beep on wake) so you get an audible signal the printer came back. Avoid issuing `^ZZ` from inside a long-running print job — the sleep transition can interrupt motion control on some models and cause label misregistration.

Syntax

^ZZt,b

Parameters

ParameterDescription
t**Sleep timeout in seconds** — how long the printer remains in low-power state before auto-waking. Range: typically `1`–`65535` (model-specific upper bound; consult the printer's programming guide for the QLn/ZQ/ZD/ZT model in question). **`0` or omitted** = sleep until an external wake signal (button press, host wake command, magic packet) — the printer will *not* wake on its own. Default: `0` (indefinite sleep). For host-driven workflows that have no out-of-band wake path, **always supply a finite timeout** so the printer cannot be lost forever.
b**Beep-on-wake flag**: `Y` = sound the printer's built-in beeper when waking (audible confirmation, useful for unattended/kiosk deployments and for diagnostic verification), `N` = silent wake. Default: `N`. Only meaningful on models with a beeper — silently ignored on models without one.

Example

^XA
^ZZ300,Y
^XZ

Sleep for **300 seconds (5 minutes)** then auto-wake with an audible beep. Suitable for a battery-powered handheld parked between print runs in a warehouse shift — the printer drops to low-power state immediately, drains negligible battery for 5 minutes, and signals readiness when it wakes. To sleep until an external wake signal instead (no auto-wake): `^XA^ZZ0^XZ` — but only do this when you have a guaranteed wake path (front-panel button, `~WC` host command, or magic packet) or you will lose the printer until someone power-cycles it. ⚠️ Do not use `^ZZ` without a timeout from a host that polls the printer for status — the polls will time out (or be silently dropped on the floor) until the printer wakes.

Try it in the playground View all ZPL commands