# Industrial 2 of 5

Industrial 2 of 5. (also known as Standard 2 of 5) is a variable length, discrete, two width symbology. Industrial 2 of 5 is a subset of two-out-of-five codes.
Industrial 2 of 5 is one of the first 1D and oldest barcodes and can encode only digits (0-9). It was invented in 1971 by Identicon Corp. and Computer Identics Corp. At this time, it has only historical value because of low encoding density and restricted charset. Previously it was used for cardboard printing, photo developing envelopes, warehouse sorting systems and for management of physical distribution.
Industrial 2 of 5 has low encoding density because an information can be encoded only in black bars and white spaces are just ignored. Industrial 2 of 5 barcode may include an optional check digit. Most of barcode readers support this symbology.

## Encoding

Industrial 2 of 5 can encode digits from 0 to 9. The digit can be encoded in 5 black bars on digit and white spaces are ignored. Any black bar can have two width: wide or narrow. Any white space can have any width by not more than narrow black bar.
Industrial 2 of 5 start/stop patterns and data patterns are split by white space. Industrial 2 of 5 could include optional checksum character which is added to the end of the barcode.
Industrial 2 of 5 features:
* character set is a number (0-9);
* encoding density low: barcode length on 50% longer than Interleaved 2 of 5 symbology and on 172% than Code 128;
* variable length of symbol;
* can include optional checking character.
Four bars in encoding scheme, except zero, have own weights which encode value of the symbol. Also, last black bar is used as parity bit to avoid single error. Symbol consists of five bars: two wide bars and three narrow bars. Value of the symbol is a sum of nonzero weights of first four bars.
As an example, we can see digit 3 is encoded. Weight 1 and 2 is not zero and parity bits is 0 means the count of bits is divisible on 2. The result: 1*1 + 1*2 + 0*4 + 0*7 = 3. The same with digit 4: weight 4 is not zero and parity bit is 1, which means that count of bits is not divisible on 2. 0*1 + 0*2 + 1*4 + 0*7 = 4.
Industrial 2 of 5 digits encoding :
| Digit | Bar weight | Bar weight | Bar weight | Bar weight | Bar weight | Bars | Encoding | Mnemonic (using weights) |
| Digit | 1 | 2 | 4 | 7 | Parity Bit | Bars | Encoding | Mnemonic (using weights) |
| 0 | 0 | 0 | 1 | 1 | 0 | ||▮▮| | NSNSWSWSN | 4+7=11, replaced by 0 |
| 1 | 1 | 0 | 0 | 0 | 1 | ▮|||▮ | WSNSNSNSW | 1+0=1 |
| 2 | 0 | 1 | 0 | 0 | 1 | |▮||▮ | NSWSNSNSW | 0+2=2 |
| 3 | 1 | 1 | 0 | 0 | 0 | ▮▮||| | WSWSNSNSN | 1+2=3 |
| 4 | 0 | 0 | 1 | 0 | 1 | ||▮|▮ | NSNSWSNSW | 4+0=4 |
| 5 | 1 | 0 | 1 | 0 | 0 | ▮|▮|| | WSNSWSNSN | 1+4=5 |
| 6 | 0 | 1 | 1 | 0 | 0 | |▮▮|| | NSWSWSNSN | 2+4=6 |
| 7 | 0 | 0 | 0 | 1 | 1 | |||▮▮ | NSNSNSWSW | 7+0=7 |
| 8 | 1 | 0 | 0 | 1 | 0 | ▮||▮| | WSNSNSWSN | 1+7=8 |
| 9 | 0 | 1 | 0 | 1 | 0 | |▮|▮| | NSWSNSWSN | 2+7=9 |
N - narrow black bar. W - wide black bar. S - white space between bars, in most cases must be same size as narrow black bar.
Industrial 2 of 5 Start/Stop values :
| Value | Bars | Encoding |
| Start | ▮▮| | WSWSN |
| Stop | ▮|▮ | WSNSW |
The barcode has the following physical structure: 1. Quiet zone 10X wide 2. Start character 3. Variable length digit characters, properly encoded 4. Optional check digit 5. Stop character 6. Quiet zone 10X wide

## Checksum

Industrial 2 of 5 may include an optional check digit, which is calculated as other UPC checksums. This is not required as part of the specification, but check digit is added as last digit in the code to improve the accuracy of the symbology. $x_{check}=10-((3x_{1}+x_{2}+3x_{3}+x_{4}+\cdots +x_{2n}+3x_{2n+1}){\pmod {10}})$, where $x_{1}$ is the most right data digit.
Example for the first 6 digits 423456:
Calculating the Industrial 2 of 5 checksum :
| Digit | 4 | 2 | 3 | 4 | 5 | 6 |
| Position | $x_{6}$ | $x_{5}$ | $x_{4}$ | $x_{3}$ | $x_{2}$ | $x_{1}$ |
| Weight | 1 | 3 | 1 | 3 | 1 | 3 |
| Weighted sum | 4 | 6 | 3 | 12 | 5 | 18 |
| Check digit | 10 - (48 mod 10) = 2 | 10 - (48 mod 10) = 2 | 10 - (48 mod 10) = 2 | 10 - (48 mod 10) = 2 | 10 - (48 mod 10) = 2 | 10 - (48 mod 10) = 2 |
Result: 4234562 barcode

## IATA 2 of 5

IATA 2 of 5 (also known as Computer Identics 2 of 5, Airline 2 of 5) is a variable length, discrete, two width symbology, which is fully similar to Industrial 2 of 5 symbology except start/stop symbols. In this way it has all advantages and issues of Industrial 2 of 5 symbology.
IATA 2 of 5 Start/Stop values :
| Value | Bars | Encoding |
| Start | || | NSN |
| Stop | ▮| | WSN |
N - narrow black bar. W - wide black bar. S - white space between bars, in most cases must be same size as narrow black bar.
IATA 2 of 5 was invented in 1974 by Computer Identics Corp. The barcode was used by International Air Transport Association (IATA) for managing air cargo.
IATA 2 of 5 version used by International Air Transport Association had fixed 17 digits length with 16 valuable package identification digit and 17-th check digit. Some readers currently still support this symbology