C cenaly.com
Start free

The GS character: scanner setup for GS1 codes

Why a scanner drops part of a GS1 or DataMatrix code and how to check it with the in-app wizard

4 min read Admin panel demo
On this page 11

The GS character: setting up a scanner for GS1 and DataMatrix product codes

A GS1 DataMatrix with a lot and expiry date — and a track-and-trace product code — consists of several fields. Between the fields there is an invisible control character GS (Group Separator, code 29). If the scanner drops it, the fields stick together: the lot "eats" the following fields and the expiry date isn't recognised. On the phone handheld you set this up once.


What GS is and why it gets lost#

Where it occurs What happens without GS
GS1 DataMatrix and GS1-128 with a lot (AI 10) and expiry (AI 17) the lot swallows the next fields, the expiry isn't read
Track-and-trace DataMatrix product codes the code fails verification
An ordinary EAN/UPC barcode there is no GS — nothing to set up

The phone camera and the built-in scanner of an Android handheld usually pass GS through as is. It is most often lost by a scanner in keyboard (HID) mode: a keyboard has no key for character 29, so by default the scanner simply skips it.


What you need to start#

What Why
A 2D scanner (imager) a 1D laser scanner can't read DataMatrix at all
The programming sheet of your model — a PDF on the vendor's site the service barcodes that change the scanner's mode
A test GS1 DataMatrix code to check the result with the wizard

Step 1. Turn on GS output in the scanner#

In the programming sheet, find the section about GS / FNC1 / Group Separator (sometimes "non-printable character replacement" or "function key mapping"). The scanner should send, instead of the invisible character, a key the app understands:

What the scanner sends Understood by the app
F8 yes
Ctrl+] yes
Tab yes
the character with code 0x1D ("as is") yes

Also check the Enter suffix after the code — without it the phone can't tell the scan has ended (a scanner without a suffix works too, but is distinguished from typing more slowly).


Step 2. Check with the wizard#

On Android, open "Scanner check" on the handheld home screen and scan a test code. The wizard reports one of three results:

Result Meaning
OK the code arrived whole, GS is in place
Incomplete code GS is lost — go back to step 1, the wizard suggests how to turn it on
OK with a warning GS was lost, but the app restored it by the code template — better to set up the scanner anyway

The wizard also shows the input speed (for a keyboard scanner). On iPhone there is no wizard — check the scanner with your first receiving: the app marks an incomplete code.


Built-in scanner of an Android handheld#

The built-in scanner passes the code to the app directly (broadcast), and GS usually arrives as is. If not, in the handheld's scanner settings (DataWedge on Zebra, "Scanner settings" on others) turn on GS1/FNC1 output and the DataMatrix and GS1 DataMatrix decoders. On Zebra the app's profile is created automatically with the right decoders.


Camera#

The phone camera reads DataMatrix together with GS — nothing to set up. If the code is small, move closer, turn on the torch or zoom.


Limitations#

  • Restoring GS by template works only for track-and-trace codes; for GS1 with a lot and expiry the scanner has to be set up.
  • The "Scanner check" wizard exists only on Android.
  • We describe scanner settings from the vendors' documentation.

Troubleshooting#

Symptom What to check
The wizard says "Incomplete code" GS isn't on, or is replaced by a key the app doesn't understand (not F8, Ctrl+], Tab, 0x1D)
The expiry from the barcode wasn't filled in GS lost in the GS1 code — step 1
Extra ]C1, ]d2 characters after a scan the scanner sends the symbology identifier (AIM ID) — the app understands it, but for other programs it's better off

FAQ#

Do I need GS if I don't work with track-and-trace codes?#

Only if your GS1 barcodes carry a lot and expiry and you want the phone to fill them in. For ordinary EAN codes — no.


Was this article helpful?