Skip to content

Ultracode

Terry Burton edited this page Oct 18, 2026 · 10 revisions

Ultracode

The Ultracode symbology is a colour, 2D matrix-style barcode symbology that can encode full 256 character extended-ASCII.

Standards: AIM ISS - Ultracode, ISO/IEC CD 25449.

Data and Options

  • The data field can contain any extended ASCII data. The default interpretation of data by readers is in accordance with ISO/IEC 8859-1. When supported by the receiver, characters from other code pages can be encoded using Extended Channel Interpretation (ECI).
  • The encoder chooses the shortest encodation, compacting digits in Numeric Submode and text in C43 groups.
  • The encoder compresses ISO/IEC 15434 messages in Format 06 into a single codeword, except in a Structured Append symbol.
  • When the parse option is specified, any instances of ^NNN in the data field are replaced with their equivalent ASCII value, useful for specifying unprintable characters.
  • When the parsefnc option is specified, non-data function characters can be specified by escape sequences:
    • ^FNC1: FNC1
    • ^FNC3: FNC3
    • ^ECI000000 to ^ECI811799: ECI indicators
    • ECIs are not available with FNC1 in first position, and FNC1 is not available in second position.
  • The eclevel option is used to specify the error correction level:
    • eclevel=EC1 - Low
    • eclevel=EC2 - Medium (default)
    • eclevel=EC3
    • eclevel=EC4
    • eclevel=EC5 - Highest
  • The fixedeclevel option will prevent the error correction level from being opportunistically raised when a better fit to the current symbol is possible.
  • Deprecated: eclevel=EC0, error detection only, is accepted only with rev=1, the legacy revision.
  • The rows and columns options are used to specify the size of the symbol:
    • rows is the number of rows of tiles, from 2 to 5.
    • columns is the number of data columns, including the secondary vertical clock tracks, which are columns 15, 31 and 47. Valid ranges are 5 to 21 for 2 rows, 13 to 30 for 3 rows, 22 to 43 for 4 rows and 29 to 60 for 5 rows.
    • If rows and columns are unspecified the encoder will default to creating the smallest symbol that holds the data.
  • The adctype option links the symbol to an Associated Data Carrier that holds the remaining data, such as adctype=8 for a secure website URL or adctype=20 for an RFID transponder. The value is a type from ISO/IEC CD 25449 Table 11, from 0 to 69, excluding the reserved values. It is not available with Structured Append.
  • The sampos and samtotal options make the symbol one of a Structured Append Group of 2 to 8 symbols, which a reader reassembles into a single message. Both are required:
    • sampos is the position of the symbol in the group, from 1 to samtotal.
    • samtotal is the number of symbols in the group.
    • The optional File Number of a Structured Append Group is not supported.
    • Structured Append is not available for revision 1 symbols, with FNC1 in first position, with FNC3 or with the raw option.
  • The raw option denotes that the data field is providing the input as pre-encoded codewords in ^NNN format, suitable for direct low-level encoding:
    • The start option gives the Start Character, 257 by default. It is also accepted with rev=1.
    • The link1 option signals that the codewords begin with a Symbol Control Region.
  • The rev option selects the revision of the specification: rev=2, the default, is ISO/IEC CD 25449; rev=1 is the legacy AIM Ultracode 2016, which encodes the data without compaction.

Examples

A symbol with increased error correction:

Data:    Nice colours!
Options: eclevel=EC3
Encoder: ultracode


Symbologies Reference

Point of Sale

GS1 DataBar

Supply Chain

Two-dimensional Symbols

One-dimensional Symbols

Postal Symbols

Pharmaceutical Symbols

Less-used Symbols

GS1 Composite Symbols

Raw Symbols

Partial Symbols

Clone this wiki locally