Technical Specifications
- Standard
- ANSI/AIM BC1 / ISO/IEC 16388 / MIL-STD-129
- Character Set
- 43 characters: 0–9, uppercase A–Z, and symbols (- . $ / + % space)
- Check Digit
- Optional Modulo-43 checksum calculation
- Density Type
- Variable-length discrete symbology with start/stop asterisk (*) characters
- Export Options
- Crisp Vector SVG, 300 DPI Thermal Print, Avery Label Sheets
Standard Industry Use Cases
- IT hardware asset tags (laptops, monitors, networking gear)
- US Department of Defense (DoD) military supply shipments under MIL-STD-129
- Hospital and clinical laboratory specimen tube tracking
- Automotive manufacturing sub-assemblies (AIAG standard)
Key Benefits of Code 39 Asset
Full Alphanumeric Character Support
Encodes capital letters A–Z, numbers 0–9, and key operational symbols (- . $ / + % space) for intuitive asset naming.
Defense & Military (MIL-STD-129) Ready
Fully compliant with US Department of Defense LOGMARS logistics standards for military supply contracts.
Self-Checking Robust Architecture
Inherent parity check pattern minimizes misread risks, with optional Modulo-43 check digit support for mission-critical tracking.
What Code Do I Need for My Product? (Customer Decision Guide)
Choosing the right barcode format depends on where your product is sold, the packaging substrate, and scanner infrastructure:
When should I choose Code 39 over Code 128?
Choose Code 39 when encoding shorter alphanumeric IDs (like ASSET-104) where legacy scanners or government contracts (MIL-STD-129) require it. Choose Code 128 if you have longer strings or space constraints on small labels.
Should I enable the Modulo-43 check digit?
Enable Mod-43 if you are tracking high-value assets, medical specimens, or defense shipments. For casual office inventory, standard Code 39 without check digit is scannable on all hardware.
Code 39 Technical Standards & Quiet Zone Rules
- Code 39 requires a minimum quiet zone (blank white margin) of 10 times the narrow bar width on both the left and right sides.
- Standard Code 39 is not case-sensitive; lowercase letters are automatically capitalized upon encoding.
- Ensure start and stop asterisks (*) are preserved in the optical pattern to allow bi-directional scanning.
Frequently Asked Questions
What is the difference between Code 39 and Code 128?
Code 39 is a simpler, self-checking symbology widely adopted by government, defense, and healthcare due to its reliability on older scanners. Code 128 is more compact (encodes data in less physical bar space) and supports the full 128 ASCII character set.
Do Code 39 barcodes require a check digit?
Code 39 includes inherent self-checking architecture, making a check digit optional in most commercial uses. However, high-integrity environments (such as DoD LOGMARS or healthcare) often enable the Modulo-43 checksum for maximum error prevention.
Can Code 39 encode lowercase letters or symbols?
Standard Code 39 natively encodes uppercase A–Z, numbers 0–9, and seven special symbols (- . $ / + % and space). Extended Code 39 uses two-character pairs to encode the full ASCII table.
Why do I see asterisks (*) at the beginning and end of Code 39 data?
The asterisk (*) serves as the start/stop pattern that tells the optical barcode scanner which direction the barcode is being read. Our generator automatically renders the start/stop bars.