Codablock is a family of stacked 1D barcodes (Codablock A,.[1] Codablock F,[2] Codablock 256) which was invented in Identcode Systeme GmbH in Germany in 1989[3][4] by Heinrich Oehlmann. Codablock barcodes are based on stacked Code 39 and Code 128symbologies and have some advantages of 2D barcodes.
Codablock codes invention were proceeded from 1989 to 1995 year. Codablock A was invented in 1989[8] and standardized as AIM standard in 1994.[9][10] Codablock A was based on stacked Code 39 barcodes and wasn’t widely used because of Code 39 restrictions.
The next Codablock F[11][12] was based on stacked Code 128 symbology and was standardized as AIM standard in 1995.[13] As this time Codablock F is officially accessed as historical standard and isn’t recommended to use in new applications.[14]
Codablock 256[15] was invented as internal ICS Identcode-Systeme standard and wasn’t standardized. It was also based on stacked Code 128 symbology. Codablock 256 could encode all 256 symbol ISO 8859-1 charset with FNC4 character and each line had error correction. Because of it has issues with reading by code128 scanners, 8-bit charset encoding was added to Codablock F standard and Codablock 256 almost was not used.
The Codablock also played an important pioneering role in the advance of 2D codes, because only it could be read reliably with the slightest modification of the laser scanners used at the time.
Codablock types
Codablock symbologies[16][17] has been developed as a stacked version of Code 39 and Code 128 barcodes and has some advantages of 2D barcodes. They allow to utilize rectangular space more effectively then 1D barcode and have additional checking characters to ensure the content of the overall message.
Codablock can be compared with a line break in a text editor. As soon as one line is full, the next is broken, whereby the line number is inserted into each line and the number of lines is inserted into the finished block. First line contains row counts. Each code line also contains an indicator for orientation for the readers and additional checksum values at the end of last line.
Codablock A
Codablock A[18][19] is based on the Code 39 barcode, consists of 2 to a maximum of 22 barcode lines of 1 to 61 data character each and can encode up to 1,340 characters. The checksum for the error correction is calculated according to modulo 43 over the entire code block.
Codablock F
Codablock F is based[20] on Code 128 barcode,[21] consists of 2 to a maximum of 44 lines, of 4 to 62 data character each and can encode up to 2,725 characters.[22] Codablock F can encode full ISO 8859-1 8-bit charset. Codablock F start character always must be Start A(Code 128).
Codablock 256
Codablock 256 has the same structure as Codablock F with the difference that each line has its own start character. Codablock 256, like Codablock F can encode a maximum of 2,725 characters. Additionally, each code line has its own error correction so small damage can be repaired. This version of Codablock was not standardized as international standard and left as internal Identcode Systeme GmbH development.
Codablock F structure
Codablock F consists from stacked Code 128 barcode lines and have the following features:
has from 2 to 44 lines;
each line has from 4 to 62 data characters;
can encode up to 2,725 characters;
can more effectively use rectangular space then any 1D barcode;
can use any code 128 reading equipment with slight modification or even without it;
when printing consists from standard Code 128 rows;
secured by two mod-86 check sums in addition to the row check sums;
can encode full ASCII character set. 8-bit character set is available using the ISO 8859-1 (Latin-1) character set (FNC4);
numeric compression: allows to encode blocks of numbers (minimum 4) using only the half of the usual space;
additionally, secured by a row checksum with modulo 103.
Codablock F constructed[23] from Code 128 data rows which are blocked between Start A (Code128) character and Code 128 Stop character. Every row has its number in second position after encoding mode selector or data character. The first row has rows count on the number place. The last row has two additional checksum characters.
Codablock F structure
Start
Data(Code 128)
Stop
Mode/Data
Row Number
Row Data(Code 128)
Row CS
Start A(Code 128)
MD1
Rows Count
Row 1 Data
CS1
Stop(Code 128)
MDX
RX
Row X Data
CSX
MDN
RN
Row N Data
CBS1
CBS2
CSN
MDX - encoding mode selector or data character if data can be encode in Code A mode.
Rows Count - count of rows in barcode, set in the first row.
RX - row number.
Row X Data - encode data in the code 128 row.
CSX - Code 128 checksum.
CBS1, CBS2 two Codablock F checksum characters.