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:

  • C — zint/zint — ~771★, active 2026. Lists "UK Plessey" (the original Plessey) among supported symbologies, separately from MSI.
  • JavaScript — bwip-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 · content/standards/plessey-code/index.md