Introduction
Code 39 (also known as USS Code 39, Code three of nine) is the first
alpha-numeric symbology developed to be used in non-retail environment. It
is widely used to code alphanumeric information, such as the model number
etc.
Code39 is designed to encode 26 upper case letters, 10 digits
and 7
special characters:
A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V,
W, X, Y, Z
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
-, .,
*, $, /, +, %, SPACE.
It Is called code 39 or three of nine because each character encoded is
made up of 5 bars and 4 spaces for a total of 9 elements and 3 out of 9
element are always wide.
A complete code 39 barcode must include a start character * and a stop
character *. In this way code 39 is self-checking.
The height of the bars must be at least 0.15 times of the symbol’s
length or 0.25 inches, whichever is larger.
Code 39 is a discrete symbology. Two adjacent characters are separated
by an inter-character gap. To have the good barcode quality, the width of
the inter-character gap usually equals to the width of the narrowest
element, called X.
Code39 requires a starting quiet zone with the minimum 10 times of X
dimension or 0.10 inch whichever is greater. The same width
requirement applies to the trailing quiet zone.
Variants
Code 39 Mod 43 – In applications that require very high level of
accuracy a modulo 43 check sum digit is appended to the last character.
Also known as HIBC and LOGMARS.
Code 39 Extended – this encoding variant allows the full ASCII table,
128 characters to be encoded.
Structure of a code 39 barcode
A typical code 39 barcode has the following structure:
- A start character – the
asterisk(*)
- Message encoded
- A stop character – the second asterisk(*)
Check Digit Calculation
To calculate the optional checksum digit, follow the following steps.
|
CODE39 CHAR TABLE |
|
Ch |
Val |
Ch |
Val |
Ch |
val |
ch |
Val |
|
0 |
0 |
A |
10 |
N |
23 |
- |
36 |
|
1 |
1 |
B |
11 |
O |
24 |
. |
37 |
|
2 |
2 |
C |
12 |
P |
25 |
sp |
38 |
|
3 |
3 |
D |
13 |
Q |
26 |
$ |
39 |
|
4 |
4 |
E |
14 |
R |
27 |
/ |
40 |
|
5 |
5 |
F |
14 |
S |
28 |
+ |
41 |
|
6 |
6 |
G |
16 |
T |
29 |
% |
42 |
|
7 |
7 |
H |
17 |
U |
30 |
|
|
|
8 |
8 |
I |
18 |
V |
31 |
|
|
|
9 |
9 |
J |
19 |
W |
32 |
|
|
| |
|
K |
20 |
X |
33 |
|
|
| |
|
L |
21 |
Y |
34 |
|
|
| |
|
M |
22 |
Z |
35 |
|
|
- Take the value (0 through 42)
of each character in the barcode. The start and stop
characters are not included in the checksum
calculation.
- Sum the value of each of the
values of each of the characters described in step 1.
- Divide the result from step 2
by 43.
- The remainder from the division in step 3 is the checksum character
that will be appended to the data message before the stop character.
Code 39 Extended
The code 39 symbology can be extended to encode all 128 characters in
the ASCII table. In the full ASCII mode, the symbols $ / % and + are used
as precedence codes with the 26 letters as shown below. Since the same
symbol now can be interpreted as one character in Extended Code 39 mode and
two characters in Code 39 mode, the readers must be set to extended mode to
read the data correctly. We listed the mapping chart at the left.
Code39 extended is sometimes called Code39 Full ASCII.
Web Tool
At barcode knowledge library we provide free web-based utilities for
readers to calculate check digits, performing number conversions. To
calculate Code39 Mod43 check digit, refer to this page. If you have
purchased Morovia Code39 Font, you may consider checking out
this
page for additional utilities for character mapping.
|