barcode_scanning:introduction_and_setup

This is an old revision of the document!


15.01. Barcode scanning

Added: Version 4.01

mSupply has the ability to use barcode scanners to read the barcodes on stock to help speed up and improve the accuracy of some processes.

Please be aware that using barcode scanning is not to be entered into lightly and is not the problem-free solver of all supply chain problems that some people think it is. It can have large implications for your organisation, in terms of changing processes and increasing workload in other areas.

Currently, very few barcodes on pharmaceutical products contain batch and expiry information. Our own checking (2018) shows it's only around 10% in typical warehouses. So, for barcodes to be really useful, you will probably need to print and stick new labels on most stock as it comes into your warehouse. And you'll need to do it again if you have barcode labelled the outer carton and you need to split the carton - you will need to label each of the inner packs. This alone can be a huge amount of work and can easily outweigh any benefits of using barcode scanners.

With those warnings out of the way, let's find out how barcode scanning works in mSupply.

mSupply follows the GS1 specification for the barcodes that it uses and you can find out all about them here. Barcodes are stored against items in mSupply and these stored ones are compared with what is read by a scanner to tell mSupply what it is dealing with.

A single barcode scanner can be attached to each computer running mSupply. The barcode scanner must:

  • be able to read both the 1D 128 bit barcodes and 2D datamatrix barcodes used by the GS1 standard.
  • communicate with the computer through a serial port. Note that this does not mean that it must connect to the computer via a serial port (these disappeared from computers many, many years ago!). The best way of achieving this is to buy a scanner that connects by USB and has serial port emulation software provided by the manufacturer.
  • append a carriage return character to the end of all its scans. Other whitespace characters can also be appended but a carriage return character must be appended as mSupply will use this to detect that a scan has been completed.

To set the barcode scanner up, the first thing to do is connect it to the computer (usually by a USB port) and make sure it can communicate with it. You may need to install a driver for the scanner, depending on the scanner make and model and the operating system of the computer. The best way to check the scanner is communicating correctly with the computer is to install a piece of dedicated serial port reading software, and make sure that scans from the scanner appear in the software. If you are using Windows, you could use this one here.

Once you are happy that the scanner is communicating correctly with the computer, you can open mSupply, enter the port settings and check that mSupply can receive the scans. See the mSupply settings section below for details.

The label printer is used for printing barcode labels for the stock in your warehouse. You will need to do this if the stock does not have barcodes containing batch and expiry information already on it, or if you repack the stock into a different pack size.

The label printer must:

  • be able to communicate with the computer by Ethernet, USB or serial connection
  • be able to understand ZPL 2 (Zebra programming language 2) commands

We recommend Zebra printers, like the GK420t model for this purpose.

To set the printer up, attach it to the computer or your local area network (if using an Ethernet connection), and enter the settings into mSupply; see instructions for this on the Label printing preferences page here.

See the full description of the preferences and their use on the 16.09. Barcode scanning preferences page.



  • Last modified: 2023/01/19 13:07
  • by Gary Willetts