This symbology was developed by the MSI Data Corporation and is based on the Plessey Code symbology. MSI is most often used in warehouses and inventory control.
This is a continuous non-self-checking symbology meaning it has no predetermined length and there is no validation built into the barcode itself. If you want to validate the data stored in the barcode, you would need to use a check digit. Mod 10 is the most common check digit used with MSI but you can also use mod 1010 or mod 1110. It is allowed but generally not a good idea to omit the check digit all together.
There is a start marker which is represented by three binary digits 110 (where 1 is black and 0 is white). There is also a stop marker which is represented by four binary digits 1001. The remaining markers represent the numeric digits 0-9 (no text or special characters) and each digit is represented by twelve binary digits. Below is a table that describes all of the possible markers. The start and stop markers are the main difference between MSI and Plessey. That and the fact that MSI only covers digits 0-9. You can read these stripes as a binary values where 110 is binary 1 and 100 is binary 0. The stop marker simply has an extra bit on the end.
|Character||Stripe Bits||Binary Value|
|STOP||1001||0 + extra stripe|
To create a graphical barcode using this process, you can simply string together a series of 1 and 0 graphic images once you have calculated what your barcode should look like using the table shown above. You can view the source code of this page if you want to see how we created the example shown below.
|Bits:||110 100100110110 100110110110 100110100110 1001|
This is just an example of one way to perform the graphic encoding. It is often easier to just draw the lines instead of tacking together individual images. If you would like to create free MSI barcodes, please visit our barcode generator page. You can save the images you make and use them as needed.