zpl.tools
Media and sensors

^XS - Set Dynamic Calibration

Turns the printer's automatic between-label recalibration on or off.

^XS controls whether the printer keeps re-measuring as it prints. Each argument switches off one part of that: the label length, the sensor thresholds, or the sensor gain. All three are on by default, which lets a printer cope with a roll that changes as it goes. Switch them off to pin the printer to values set by hand.

Syntax

^XSa,b,c

Support

Recognised, deliberately skippedparsed: none · state: none · rendered: none

Accepted and skipped, because it configures the printer rather than the label. It cannot change the rendered output, and Labelary skips it too.

This command decides whether the printer recalibrates the length, threshold and gain during the print. A recalibration changes printer settings, never the image. The renderer does not parse this command. It reports IGNORED_COMMAND at info severity, which does not reach X-Warnings. Labelary is also silent, so the rendered label is identical in both engines. — not pinned by a test

Labelary renders this command.

Parameters

aDynamic lengthoptional · Y or N

Whether the printer measures the label length again automatically.

Default
Y
Invalid value
not documented, and we have not measured it. The renderer does not parse or measure this command.
Test coverage
No documented value is exercised by a test (Y, N).
Y
Enable dynamic label-length calibration (default)
N
Disable it
bDynamic thresholdoptional · Y or N

Whether the printer measures the sensor thresholds again automatically.

Default
Y
Invalid value
not documented, and we have not measured it. The renderer does not parse or measure this command.
Test coverage
No documented value is exercised by a test (Y, N).
Y
Enable dynamic threshold calibration (default)
N
Disable it
cDynamic gainoptional · Y or N

Whether the printer measures the sensor gain again automatically.

Default
Y
Invalid value
not documented, and we have not measured it. The renderer does not parse or measure this command.
Test coverage
No documented value is exercised by a test (Y, N).
Y
Enable dynamic gain calibration (default)
N
Disable it

Behavior

This command decides whether a manual override survives. Dynamic calibration re-measures the same values ^SS and ^SI set, so on a printer it overwrites them sooner or later unless the matching argument here is N. An ^SS with dynamic calibration still on is the common reason a hand-tuned threshold does not stick.

Each argument is independent, so the useful combinations are partial. ^XSN,Y,Y fixes the label length and leaves the printer free to re-measure the sensor thresholds.

None of that reaches the image. The renderer does not parse this command. It reports IGNORED_COMMAND at info severity, which does not reach X-Warnings. Labelary is also silent, so the rendered label is identical in both engines.

Differences from the specification

Labelary against the ZPL II guide

Where Labelary — our compatibility target — behaves differently from the printed specification.

  • ^XS has no page and no command-index entry in the guide edition this service holds (45541L-004, 2006). Every parameter fact on this page comes from Labelary's reference. — not pinned by a test

Example

All three kinds of dynamic calibration switched off ahead of a label:

^XA
^XSN,N,N
^FO50,50^A0N,40,40^FDNo dynamic calibration^FS
^XZ

Open in viewer

  • ~JC Set Media Sensor CalibrationThis command runs a full calibration of both the label length and the sensor thresholds.
  • ~JL Set Label LengthThis command makes the printer feed media to measure the label length.
  • ^SS Set Media SensorsThis command overrides every media-sensor threshold and LED intensity by hand, without a calibration.
  • ^MN Media TrackingThis command tells the printer whether the stock is continuous, or has a gap, web or black mark between labels.