Thursday, July 12, 2007

Barcodes and all that

One of the neat things my old colleague Ian Staite did was to introduce me to the joys of barcodes! Since we had to keep a tight reign on tape management at Big Brother and Fame Academy we developed some nice templates for printing tape labels with all the salient data carried in a barcode. Code 39 (sometimes called Code 3 from 9) is a discrete barcode. This means that a fixed pattern of bars represents a single character.
Each character is made up of 9 bars - 3 of which are wider than the others. (In this context a bar can be the printed black bar or the white space between the bars.) A single character therefore consists of 5 black bars and 4 white bars.
The ratio of the bar widths can range from 2.2:1 to 3:1. To read a barcode reliably the decoder must be able to differentiate between the wide and narrow bars. In practice it is better to use barcodes close to the 3:1 ratio which allows nearly a 50% barwidth error to occur before ambiguity occurs. The space between each barcode character is called 'The intercharacter gap'. Its width is undefined but is usually equivalent to a narrow white bar.
There are a couple of things to remember when using this barcode fount;
  • Each barcode has to start and stop with an asterisk

  • Don't try and pack too much data in or make the barcode too small - the Lindy hand-scanner I'm using (which just emulates a USB keyboard - it's like someone types in the numeric value of the code very quickly! The software doesn't know it came from a barcode scanner). I've found 120mm wide is the max and 8-point fount-size is the lowest you want to go before the scanner doesn't read it accurately every time. Using those figures you can reliably encode about 25 bytes.
This is for another production company who have asked me to set them up with tape labelling and barcodes.
I also found a great article about data validation in Excel.

3 comments:

Graham said...

great arcticle.

Anonymous said...

"Colour blind vision engineer"? Not on my watch! Harumph!

Phil Crawley said...

Dude, I'm sorry - they wanted me to populate all of the fields with text and I thought I'd keep it humerous.
Of course I was refering to other vision engineers!