Quick answer: type your text in capitals – letters, digits, spaces and - . $ / + % – and the barcode is created with its * start and stop characters. Switch on “Add check digit” only if your system expects the mod 43 check, and “Full ASCII” if you need lower-case letters.
Why Code 39 is still everywhere
Code 39, created in 1974, was the first alphanumeric barcode and became a de-facto standard before anything better existed. The US Department of Defense adopted it as LOGMARS, the automotive industry's AIAG labels used it, and health-care product labelling (HIBC) built on it. Because each character stands alone between narrow gaps, it is very forgiving of poor printing – even dot-matrix and inkjet printers produce readable Code 39.
| Character set | 43 characters: 0–9, A–Z, space, - . $ / + % |
| Start/stop | * (asterisk), added automatically, usually not printed |
| Check character | Optional, modulo 43 |
| Width per character | About 13–16 bar widths – roughly twice Code 128 for digits |
| Quiet zone | 10 bar widths or 2.5 mm, whichever is larger |
How to make a Code 39 barcode
- Type the text. Use A–Z, 0–9, space and - . $ / + %. Lower case is changed to capitals unless you switch on Full ASCII.
- Decide on the check digit. Most systems read Code 39 without a check character. Turn it on only when your specification (for example HIBC or some government forms) requires mod 43.
- Size it. Code 39 is wide. A bar width of 0.25–0.33 mm suits badges and part labels; increase the height for handheld scanners.
- Download or batch. Save one file, or paste a list for a ZIP or label sheet.
Full ASCII mode
Full ASCII (also called Code 39 Extended) stores characters that standard Code 39 lacks as pairs: a lower-case “a” becomes “+A”, an exclamation mark becomes “/A”. The scanner must be set to Full ASCII to turn the pairs back; otherwise it shows the pairs literally. Use it only if your scanners are configured for it – for new projects Code 128 is the better choice for mixed-case text.
Do you need the asterisks in your data?
No. Many Code 39 fonts make you type *TEXT* yourself. This generator adds the start and stop characters for you, so just type the text.
Code 39 on ID cards and badges
Many access-control, time-clock and library systems from the 1990s and 2000s expect Code 39 on staff and student cards. When replacing cards, match the old ones: the same number of characters, the same use (or absence) of the mod 43 check character, and a similar bar width so the existing readers keep working.
Frequently asked questions
Is Code 39 the same as Code 3 of 9?
Yes. The name comes from the structure: each character has 9 elements (5 bars, 4 spaces), 3 of which are wide.
Should I add the mod 43 check digit?
Only if the receiving system expects it. A scanner set up without check-digit verification will show the check character as an extra character at the end.
Why were my lower-case letters changed?
Standard Code 39 has no lower case. Turn on Full ASCII if you need it and your scanners are set to read Full ASCII.
Can Code 39 hold a long serial number?
It can, but it gets very wide. For long data Code 128 or Data Matrix is more compact.
Will a phone app read Code 39?
Most barcode-scanning apps and every handheld scanner read Code 39. Test with our Barcode Reader.