BarcodeFree

Code 39 Barcode Generator – Free Online Tool

Generate Code 39 barcodes instantly — no signup required, completely free. Enter alphanumeric text, preview the barcode in real time, and download it as a PNG. All processing happens in your browser.

Format

100px600px
50px300px

What is Code 39?

Code 39 (also written as Code 3 of 9) is one of the oldest and most widely used one-dimensional barcode symbologies. Developed in 1974 by David Allais and Ray Stevens at Intermec Corporation, it was the first barcode to encode alphanumeric characters — not just numbers. The name “39” originally referred to the 39-character set it supported (later expanded to 43 characters).

Each Code 39 character is represented by five bars and four spaces — nine elements total — of which exactly three are wide and six are narrow. This self-checking property means that a single print defect is very likely to produce an unreadable barcode rather than a misread, contributing to the format’s reputation for reliability. The barcode also includes a start and stop character (represented by an asterisk *) that is not part of the encoded data.

Code 39 does not require a check digit, which simplifies implementation in legacy systems. Its low data density compared to newer formats like Code 128 or QR codes means Code 39 barcodes are physically larger for the same data — but this characteristic also makes them easier to print and scan with older or lower-resolution equipment.

Code 39 Character Set

Code 39 supports 43 characters. All uppercase letters, all decimal digits, a space, and six special symbols are valid input. Lowercase letters are not supported in standard Code 39.

CategoryCharactersCount
Digits0 1 2 3 4 5 6 7 8 910
Uppercase lettersA B C D E F G H I J K L M N O P Q R S T U V W X Y Z26
Space(space)1
Special symbols- . $ / + %6
Total43

Code 39 vs Code 128

Both Code 39 and Code 128 are widely used 1D barcode standards. Choosing the right one depends on your character set requirements, label space, and scanner compatibility:

FeatureCode 39Code 128
Character set43 characters (uppercase, digits, 6 symbols)128 ASCII characters (full set including lowercase)
Data densityLow — requires more space per characterHigh — roughly twice as compact as Code 39
Check digitOptional (Modulo 43)Mandatory (Modulo 103)
Primary use casesAutomotive, defense, healthcare (HIBC), asset tagsShipping labels, retail, GS1-128, general-purpose
Legacy supportExcellent — supported by virtually all scannersVery good — universal support in modern equipment
LicensingPublic domain — free to usePublic domain — free to use

Where is Code 39 Used?

Code 39 has been in continuous use for over 50 years and remains a staple across several industries. Its simplicity, self-checking design, and public domain status have made it a trusted choice for organizations with long-lived infrastructure.

Automotive industry. Both Ford and General Motors adopted Code 39 in the late 1970s for parts identification and just-in-time manufacturing logistics. The Automotive Industry Action Group (AIAG) standardized on Code 39 for the AIAG B-10 label standard, which is still referenced in some supplier compliance programs today.

US Department of Defense. The DoD mandated Code 39 in its MIL-STD-1189 standard for military logistics and supply chain management. Asset tags on military equipment, vehicles, and supplies frequently use Code 39 to encode part numbers, serial numbers, and contract identifiers.

Healthcare. The Health Industry Bar Code (HIBC) standard, administered by the Health Industry Business Communications Council, specifies Code 39 for labeling healthcare products including medical devices, pharmaceuticals, and lab specimens.

Industrial and asset management. Code 39 is commonly used for internal asset tracking, work-in-progress labels, employee ID badges, and inventory management in manufacturing and warehousing environments where the full ASCII character set is not needed.

Frequently Asked Questions

What characters does Code 39 support?

Code 39 supports exactly 43 characters: the digits 0–9 (10 characters), uppercase letters A–Z (26 characters), a space character (1 character), and six special symbols: hyphen (-), period (.), dollar sign ($), forward slash (/), plus sign (+), and percent sign (%). Lowercase letters are not supported in standard Code 39. If you need lowercase letters or the full ASCII character set, you need Code 39 Full ASCII or Code 128, which supports all 128 ASCII characters.

Does Code 39 require a check digit?

No, a check digit is optional in Code 39 and is not required by the standard. The name "Code 39" refers to the original 39-character set, not a check digit. When a check digit is used, it is calculated using the Modulo 43 algorithm: assign a numeric value to each character (0–9 = 0–9, A–Z = 10–35, space = 36, - = 37, . = 38, $ = 39, / = 40, + = 41, % = 42), sum all character values, then take the remainder after dividing by 43. The character corresponding to this remainder is appended as the check digit. Some industries such as healthcare (HIBC standard) require the check digit.

What is the difference between Code 39 and Code 128?

Code 39 and Code 128 are both 1D linear barcodes but differ significantly. Code 39 supports only 43 characters (uppercase letters, digits, and 6 symbols), while Code 128 supports all 128 ASCII characters including lowercase letters and control codes. Code 128 is also significantly more compact — it encodes data in roughly half the space of Code 39 for the same input, making it preferable when label space is limited. Code 39 has the advantage of simplicity and broad legacy scanner support. Code 128 is generally preferred for new implementations due to its higher data density and full character set coverage.

Where is Code 39 used?

Code 39 is widely used across industries that require alphanumeric identification. Common applications include: automotive parts identification (Ford and General Motors standardized on Code 39 in the 1970s), US Department of Defense logistics and military supply chain management (MIL-STD-1189), healthcare product labeling under the HIBC (Health Industry Bar Code) standard, government and federal agency identification cards and asset tracking, industrial manufacturing for part numbers and work orders, and retail inventory management systems where legacy scanner infrastructure is in place. Despite newer formats like Code 128 and QR codes, Code 39 remains prevalent due to its long history and installed scanner base.

What is Code 39 Full ASCII?

Code 39 Full ASCII is an extension of standard Code 39 that encodes all 128 ASCII characters by using two-character sequences to represent characters not in the standard 43-character set. For example, lowercase "a" is encoded as the pair "+A", lowercase "b" as "+B", and so on. Uppercase letters, digits, and the standard Code 39 symbols are encoded normally. Code 39 Full ASCII barcodes are longer than standard Code 39 barcodes for the same data because extended characters require two symbol characters. While it expands the character set, Code 128 is generally a better choice if you need full ASCII support, as it is more compact and widely supported.

What is the minimum size for a Code 39 barcode?

The minimum recommended size for a Code 39 barcode depends on the printing method and scanner capability. The GS1 and industry guidelines recommend a minimum X-dimension (narrow bar width) of at least 0.191 mm (7.5 mils) for high-quality laser printing, with a preferred minimum of 0.25 mm (10 mils) for general industrial use. The barcode height should be at least 15% of the barcode width or 6.35 mm (0.25 inches), whichever is larger, to ensure reliable scanning. The quiet zones (blank spaces before and after the barcode) must be at least 10 times the X-dimension on each side. For label printers, a resolution of 203 DPI or higher is recommended.

Is Code 39 free to use?

Yes, Code 39 is a public domain barcode standard with no licensing fees or royalties. The specification is freely available and any party can implement or use Code 39 without payment. This is one reason for its historical popularity — unlike some proprietary barcode formats, Code 39 was never patent-encumbered. This generator creates Code 39 barcodes entirely in your browser at no cost, and the generated barcodes can be used freely for any personal or commercial purpose.