User Rating 0.0
Total Usage 0 times
Supports full ASCII (128 chars). Native set: 0-9, A-Z, -, ., $, /, +, %, SPACE
Presets:

Enter data and click Generate

Is this tool helpful?

Your feedback helps us improve.

About

Code 93 is a variable-length, continuous linear barcode symbology developed by Intermec in 1982 as a higher-density alternative to Code 39. Each character encodes into 9 modules (bars and spaces), compared to Code 39's 15 modules per character. This yields roughly 40% shorter barcodes for identical data. The symbology mandates two modulo-47 check characters (C and K), making misread probability significantly lower than Code 39. Incorrect barcode generation in supply chain or military logistics (MIL-STD-1189B) causes scan failures, shipment misroutes, and compliance violations that cost measurable time and money.

This tool computes both check digits algorithmically, renders the barcode to a pixel-accurate canvas, and exports at configurable resolution. The native character set covers 47 symbols: digits 0 - 9, uppercase A - Z, and seven special characters. Full ASCII encoding is supported via four shift characters (($), (%), (/), (+)), enabling all 128 ASCII values. The tool approximates standard print density. Actual scanner compatibility depends on print DPI, quiet zone width, and substrate contrast ratio.

code 93 barcode generator code 93 barcode barcode creator linear barcode

Formulas

Code 93 uses two modulo-47 check characters appended after the data payload. The first is check C, computed over the original data values. The second is check K, computed over the data values plus the already-computed C value.

C = ni=1 wi vimod 47

Where the weight wi cycles from 1 to 20 starting from the rightmost character. vi is the numeric value of the i-th character from the right.

K = n+1i=1 wi vimod 47

For check K, the weight wi cycles from 1 to 15. The data set now includes the C check value as the rightmost element. The final barcode structure is: Start (*) + Data + C + K + Stop (*) + Termination bar (1 module).

Where vi = character value (0 - 46), n = number of data characters, wi = positional weight cycling right to left.

Reference Data

CharacterValuePattern (Binary)Weights
00100010100b=3,s=1,b=1,s=1,b=1,s=2
11101001000b=1,s=1,b=1,s=2,b=1,s=3
22101000100b=1,s=1,b=1,s=3,b=1,s=2
33101000010b=1,s=1,b=1,s=4,b=1,s=1
44100101000b=1,s=2,b=1,s=1,b=1,s=3
55100100100b=1,s=2,b=1,s=2,b=1,s=2
66100100010b=1,s=2,b=1,s=3,b=1,s=1
77101010000b=1,s=1,b=1,s=1,b=1,s=4
88100010010b=3,s=1,b=1,s=2,b=1,s=1
99100001010b=3,s=2,b=1,s=1,b=1,s=1
A10110101000b=1,s=1,b=1,s=1,b=2,s=3
B11110100100b=1,s=1,b=1,s=2,b=2,s=2
C12110100010b=1,s=1,b=1,s=3,b=2,s=1
D13110010100b=1,s=1,b=2,s=1,b=1,s=3
E14110010010b=1,s=1,b=2,s=2,b=1,s=2
F15110001010b=1,s=1,b=2,s=3,b=1,s=1
G16101101000b=1,s=1,b=1,s=1,b=1,s=3
H17101100100b=2,s=1,b=1,s=2,b=1,s=2
I18101100010b=2,s=1,b=1,s=3,b=1,s=1
J19100110100b=2,s=2,b=1,s=1,b=1,s=2
K20100011010b=3,s=1,b=1,s=1,b=1,s=2
L21101011000b=1,s=1,b=2,s=1,b=2,s=2
M22101001100b=1,s=1,b=2,s=2,b=2,s=1
N23101000110b=1,s=1,b=2,s=3,b=2,s=1
O24100101100b=1,s=2,b=2,s=1,b=1,s=2
P25100010110b=3,s=1,b=2,s=1,b=1,s=1
Q26110110100b=1,s=1,b=1,s=1,b=2,s=2
R27110110010b=2,s=1,b=1,s=1,b=2,s=1
S28110101100b=1,s=1,b=2,s=1,b=2,s=1
T29110100110b=2,s=1,b=2,s=2,b=1,s=1
U30110010110b=2,s=2,b=2,s=1,b=1,s=1
V31110011010b=2,s=2,b=1,s=1,b=2,s=1
W32101101100b=1,s=1,b=1,s=2,b=2,s=1
X33101100110b=2,s=1,b=2,s=1,b=1,s=2
Y34100110110b=2,s=2,b=1,s=2,b=1,s=1
Z35100111010b=2,s=2,b=1,s=1,b=1,s=1
36100101110b=1,s=2,b=1,s=1,b=2,s=1
.37111010100b=1,s=1,b=1,s=1,b=1,s=2
SPACE38111010010b=1,s=1,b=1,s=2,b=1,s=1
$39111001010b=1,s=1,b=2,s=1,b=1,s=1
/40101101110b=1,s=1,b=1,s=1,b=2,s=1
+41101110110b=2,s=1,b=1,s=1,b=1,s=1
%42110101110b=1,s=1,b=1,s=1,b=1,s=1
($)43100100110Shift a
(%)44111011010Shift b
(/)45111010110Shift c
(+)46100110010Shift d

Frequently Asked Questions

Code 93 encodes each character in 9 modules versus Code 39's 15 modules, producing barcodes approximately 40% shorter. Code 93 mandates two check characters (C and K) using modulo-47 arithmetic, while Code 39 has an optional single check digit. This dual-check system makes Code 93 statistically more resistant to substitution errors.
Yes. The native character set covers 47 symbols (digits, uppercase, and seven specials). Full ASCII (128 characters) is supported via four shift characters: ($), (%), (/), and (+). Each non-native character is encoded as a two-character pair: a shift character followed by a letter. This doubles the bar count for those characters.
The Code 93 specification requires a minimum quiet zone (clear space) of 10 times the narrow module width (X dimension) on each side of the barcode. This tool includes a configurable quiet zone. Insufficient quiet zones are the most common cause of scan failures in production environments.
Check C is the weighted sum of all data character values (weights cycling 1 - 20 from right) modulo 47. Check K uses the same method but includes C as the rightmost value, with weights cycling 1 - 15. Scanners recompute both values and reject the barcode if either mismatches.
The minimum recommended X dimension is 0.19mm (7.5mil) for high-quality printing. Barcode height should be at least 15% of the total width or 6.35mm (0.25in), whichever is greater. This tool renders at screen resolution. For thermal or offset printing, export at the highest scale factor available.
Yes. After the stop character (*), a single narrow bar (one module width) is appended as a termination bar. This is part of the Code 93 specification and distinguishes the stop pattern from data characters. Omitting it causes decoders to fail.