^SC - Set Serial Communications
Configures the serial port: baud rate, framing, flow control and protocol.
^SC reconfigures the serial port the format arrived on, which gives it a trap of
its own. It takes effect immediately, so from the next byte the host still uses the
old settings and must switch too. One wrong argument makes the printer unreachable
over serial until an operator resets it from the front panel.
Syntax
^SCa,b,c,d,e,fSupport
Accepted and skipped, because it configures the printer rather than the label. It cannot change the rendered output, and Labelary skips it too.
The command sets transport settings for the wire the format arrived on, which cannot change the format's meaning. 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
aBaud raterequired · one of a setSerial line speed in bits per second.
- Invalid value
- enough to make the whole command be ignored. The renderer does not parse or measure this command. The guide is explicit: the printer ignores the whole command if any argument is missing, out of specification, or unsupported.
- Test coverage
- No documented value is exercised by a test (110, 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200). The invalid-value rule is not pinned by a test.
110- 110 bps
300- 300 bps
600- 600 bps
1200- 1200 bps
2400- 2400 bps
4800- 4800 bps
9600- 9600 bps
14400- 14400 bps
19200- 19200 bps
28800- 28800 bps
38400- 38400 bps
57600- 57600 bps
115200- 115200 bps
bWord lengthrequired · one of a setData bits per character.
- Invalid value
- enough to make the whole command be ignored. The renderer does not parse or measure this command. The guide is explicit: the printer ignores the whole command if any argument is missing, out of specification, or unsupported.
- Test coverage
- No documented value is exercised by a test (7, 8). The invalid-value rule is not pinned by a test.
7- Seven data bits
8- Eight data bits
cParityrequired · one of a setParity bit used for error detection.
- Invalid value
- enough to make the whole command be ignored. The renderer does not parse or measure this command. The guide is explicit: the printer ignores the whole command if any argument is missing, out of specification, or unsupported.
- Test coverage
- No documented value is exercised by a test (N, O, E). The invalid-value rule is not pinned by a test.
N- None
O- Odd
E- Even
dStop bitsrequired · one of a setStop bits sent after each character.
- Invalid value
- enough to make the whole command be ignored. The renderer does not parse or measure this command. The guide is explicit: the printer ignores the whole command if any argument is missing, out of specification, or unsupported.
- Test coverage
- No documented value is exercised by a test (1, 2). The invalid-value rule is not pinned by a test.
1- One stop bit
2- Two stop bits
eFlow controlrequired · one of a setHandshake method that throttles the sender.
- Invalid value
- enough to make the whole command be ignored. The renderer does not parse or measure this command. The guide is explicit: the printer ignores the whole command if any argument is missing, out of specification, or unsupported.
- Test coverage
- No documented value is exercised by a test (X, D, R, M). The invalid-value rule is not pinned by a test.
X- XON/XOFF
D- DTR/DSR
R- RTS
M- DTR/DSR with XON/XOFF
fProtocolrequired · one of a setAcknowledgement protocol used on the link.
- Invalid value
- enough to make the whole command be ignored. The renderer does not parse or measure this command. The guide is explicit: the printer ignores the whole command if any argument is missing, out of specification, or unsupported.
- Test coverage
- No documented value is exercised by a test (A, N, Z). The invalid-value rule is not pinned by a test.
A- ACK/NAK
N- None
Z- Zebra protocol; Labelary's reference calls this value reserved
Behavior
The guide treats the six arguments as a set, not as independent fields. The printer
ignores the whole command if any one argument is missing, out of specification, or
unsupported by that printer model. It also ignores it if a DIP switch overrides the
ZPL configuration. No partial application exists, so ^SC,,,,,A does nothing and does
not change the protocol alone.
The settings are also not persistent on their own. ^JUS carries a communications
change through a power cycle or a software reset.
None of this changes the meaning of a format the printer already received, so the renderer ignores this command. Measured on 2026-07-30, a label with and without it renders to identical pixels on Labelary and on the renderer.
Differences from the specification
Labelary against the ZPL II guide
Where Labelary — our compatibility target — behaves differently from the printed specification.
- Labelary accepts two values absent from the 2006 guide's tables: 300 bps as a baud rate, and
M(DTR/DSR with XON/XOFF) as a flow-control mode. — not pinned by a test - The guide names protocol
Z"Zebra"; Labelary's reference calls it reserved. — not pinned by a test
Example
19200 baud, eight data bits, no parity, one stop bit, XON/XOFF flow control and the ACK/NAK protocol — all six arguments present, as the guide requires:
^XA
^SC19200,8,N,1,X,A
^FO50,50^A0N,30,30^FDSerial configured^FS
^XZ
Related commands
^NCSet Primary Network DeviceNames the network device the printer treats as primary.^JUConfiguration UpdateSaves the printer's current settings to non-volatile memory, or reloads saved or factory settings.^CC / ~CCChange CaretChanges the character that introduces a format command.