What Code 39 is for
Code 39, also called Code 3 of 9, was developed in the 1970s and became common in defence logistics, the car industry and some healthcare labelling. It is still the format on many ID badges, parts bins and older inventory systems, because it needs no check digit and can be read by almost any scanner.
The name comes from how each character is built: nine elements, five bars and four spaces, of which three are wide. Each character stands alone with a small gap after it, which makes Code 39 tolerant of printers that are not very precise.
The 43 characters, and what to do with lowercase
The 43 characters are the digits 0 to 9, the capital letters A to Z, and the symbols hyphen, full stop, space, dollar, slash, plus and percent. The star * is a 44th character that is used only to start and end the barcode, so it never appears in your text.
Lowercase letters are converted to capitals here, and a note says so. Accented letters and other symbols give an error. If you need lowercase letters or more symbols, use Code 128. There is also a Full ASCII version of Code 39 that uses pairs of characters to make lowercase, but many scanners do not have it switched on, so this tool does not make it.
The optional check character
Code 39 does not need a check digit, and plain Code 39 barcodes do not have one. Some industries add a mod 43 check character at the end. To work it out, give each character its value (0 to 9 for digits, 10 to 35 for A to Z, then 36 to 42 for hyphen, full stop, space, dollar, slash, plus and percent), add the values up and divide by 43. The remainder picks the check character.
Switch the check character on and the tool shows the sum step by step. Be careful: most scanners are not set up to check it. They pass it to your software as an ordinary last character, so only use it when the system that reads your barcodes is built to expect and remove it.