Skip to content
barcoder

Standards/plessey-code

Plessey Code

Type1D Linear
Completeness80%high

Overview

Plessey Code is one of the earliest 1D linear barcode symbologies, developed in 1971 by The Plessey Company plc, a British electronics firm [1, 2]. It is a pulse-width-modulated, hexadecimal (0–F) symbology in which each character is encoded as 4 bits, with a bit-level bar/space representation and an 8-bit CRC check for error detection [1, 3]. It is historically important as the direct ancestor of msi-plessey (MSI, "Modified Plessey") and is famous as one of the very first barcodes used in real-world retail — by J. Sainsbury in the early 1970s [1].

This entry covers the original 1971 Plessey Code (sometimes called UK Plessey), which is distinct from msi-plessey: MSI was developed by MSI Data Corporation based on Plessey but redefines the module structure and replaces the CRC with conventional Mod-10/Mod-11 check digits [1, 4].

History

Plessey Code was developed in 1971 by The Plessey Company plc, a British-based electronics and telecommunications company [1, 2]. Its first commercial use was in the early 1970s by J. Sainsbury, the UK supermarket chain, to identify all of its products on supermarket shelves in a product-restocking system [1] — one of the earliest documented retail barcode deployments anywhere.

Plessey Code went on to be adopted for library shelf tags and book/catalogue identification, a niche where it persisted long after general retail had moved to EAN/UPC [1, 2].

Relationship to MSI (msi-plessey) [1, 4]: MSI Data Corporation developed the MSI barcode based on the original Plessey Code, which is why MSI is commonly called "Modified Plessey." MSI inherited Plessey's numeric/BCD heritage but redesigned the bar/space module structure and substituted standard Mod-10 (Luhn) / Mod-11 check digits for Plessey's CRC. A further descendant, Anker Code (by ADS and Telxon), is also derived from Plessey [1].

The original Plessey specification is now difficult to obtain — surviving mainly as discontinued paper documentation [1].

Technical specification

Plessey Code is a pulse-width-modulated, bit-oriented 1D symbology encoding hexadecimal characters [1, 3]:

Parameter Value
Symbology family 1D linear (pulse-width modulation)
Character set Hexadecimal 0–F (4 bits per character) [1]
Encoding basis Pulse-width modulation, reversed BCD (binary-coded decimal) for character representation [1]
Bit "0" Narrow bar + wide space [1]
Bit "1" Wide bar + narrow space [1]
Bits per character 4 [1]
Forward start code 1101 [1]
Reverse start code reversed 0011 (enables bidirectional read) [1]
Check code 8-bit CRC, generator polynomial g(x) = x⁸ + x⁷ + x⁶ + x⁵ + x³ + 1 (binary 111101001) [1]
Termination Full-pitch termination bar [1]
Bidirectional Yes — left-to-right or right-to-left [1]

Pulse-width modulation / bit encoding [1]: rather than a "n-of-m" element rule, Plessey encodes each bit as a bar/space pair — a 0 is a narrow bar followed by a wide space, a 1 is a wide bar followed by a narrow space. Four such bit-pairs make one hexadecimal character, using a reversed BCD mapping [1].

CRC error detection [1]: Plessey's distinguishing technical feature is its 8-bit cyclic-redundancy check computed by polynomial division with generator x⁸ + x⁷ + x⁶ + x⁵ + x³ + 1. This is a genuine CRC — substantially stronger error detection than the single Mod-10/Mod-11 check digits used by most contemporary symbologies (including its own descendant msi-plessey).

Bidirectional framing [1]: distinct forward (1101) and reverse (reversed 0011) start codes plus a full-pitch termination bar let a reader determine scan direction and decode the symbol scanned either way.

Use cases

Plessey Code's documented deployments are early retail and library systems [1, 2]:

  • Retail shelf labelling — J. Sainsbury's early-1970s product-restocking system, marking all products on supermarket shelves [1].
  • Library shelf tags / catalogue identification — a long-lived niche where Plessey persisted in some library systems [1, 2].
  • General shelf-edge inventory — numeric location and stock identifiers, the same niche its descendant msi-plessey still occupies [2].

Implementations

Plessey Code is a legacy format retained for backward compatibility in barcode libraries [1, 5]:

  • Czint/zint — ~771★, active 2026. Lists "UK Plessey" (the original Plessey) among supported symbologies, separately from MSI.
  • JavaScriptbwip-js (BWIPP) exposes plessey (and msi for the Modified Plessey descendant).
  • Commercial — Seagull/BarTender documents both Plessey Code and the Anker Plessey variant in its barcode guide [2]; other commercial scanner/print SDKs retain it for reading legacy library and retail labels.

Comparison

vs. msi-plessey (MSI / Modified Plessey) — the central relationship. MSI was developed by MSI Data Corporation based on Plessey Code ("Modified Plessey") [1, 4]. Key differences: Plessey encodes hexadecimal 0–F and protects data with a true 8-bit CRC; MSI is numeric-only (0–9) and replaces the CRC with conventional Mod-10 (Luhn) / Mod-11 check digits, and redefines the bar/space module structure [1, 4]. Plessey is the British 1971 original; MSI is its American derivative that became more widespread in warehouse shelf-labelling.

vs. the 2-of-5 family (standard-2-of-5, itf, matrix-2-of-5) — entirely different encoding principle: the 2-of-5 codes use an "n-of-m wide-element" rule on decimal digits, while Plessey uses per-bit pulse-width modulation on hexadecimal characters [1]. Plessey is cited as having higher density than 2-of-5 and Code 39 (3 of 9) codes of its era, and its CRC gives stronger error detection than their optional single check digits [1].

vs. Anker Code — Anker (ADS / Telxon) is another Plessey-derived variant, alongside MSI [1].

Fun facts

Plessey Code's J. Sainsbury restocking deployment in the early 1970s makes it one of the first barcodes ever used in real retail [1] — predating the 1974 launch of UPC at retail checkout in the United States. Sainsbury's used it for shelf-level restocking rather than checkout scanning.

Plessey is unusual among 1D symbologies in carrying a genuine CRC rather than a simple check digit [1] — a level of error detection its own commercially-successful descendant msi-plessey actually dropped in favour of simpler Mod-10/Mod-11 digits.

The original Plessey specification has become a lost document in practice — Wikipedia notes the spec is now difficult to obtain and survives mainly as discontinued paper documentation [1], a reminder of how quickly early-1970s industrial standards can slip out of reach.

Status

Legacy / largely obsolete. Plessey Code is "largely obsolete today" [1], surviving in rare library and retail shelf-tag systems and as a backward-compatibility format in barcode libraries (zint "UK Plessey," bwip-js) and commercial SDKs (Seagull/BarTender) [1, 2, 5]. Its descendant msi-plessey outlasted it in warehouse/shelf-labelling use, but it too is legacy. New deployments use code-128, itf, or 2D codes instead.

Sources

  1. Plessey Code — Wikipedia
  2. Plessey Code — Seagull BarTender Barcode Guide
  3. Plessey & MSI Symbology — Barcode Format (crifan)
  4. MSI Barcode — Wikipedia
  5. zint/zint — GitHub

Deployments

No country reports mention this standard by name.

Regions / aggregations not mapped to a single country

  • Universal
source · docs/standards/plessey-code/index.md