

The GM803 is a versatile barcode scanner module designed to read both 1D and 2D barcodes with high efficiency. Utilizing advanced CMOS imaging technology, it ensures accurate and fast barcode decoding. The module supports both TTL and USB interfaces, making it easy to integrate into a wide range of electronic systems, including embedded devices, kiosks, and point-of-sale (POS) systems.








| Parameter | Specification |
|---|---|
| Barcode Types Supported | 1D (e.g., Code 128, EAN-13) and 2D (e.g., QR Code, Data Matrix) |
| Sensor Type | CMOS |
| Interface Options | TTL, USB |
| Operating Voltage | 3.3V to 5V |
| Current Consumption | < 120mA |
| Scanning Speed | Up to 300 scans per second |
| Resolution | 640 x 480 pixels |
| Operating Temperature | -20°C to 60°C |
| Dimensions | 21mm x 15mm x 10mm |
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | VCC | Power supply input (3.3V to 5V) |
| 2 | GND | Ground |
| 3 | TXD | Transmit data (TTL level) |
| 4 | RXD | Receive data (TTL level) |
| 5 | Trigger | External trigger input (active low) |
| 6 | Beeper | Beeper control output |
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | VBUS | USB power supply (5V) |
| 2 | D- | USB data negative |
| 3 | D+ | USB data positive |
| 4 | GND | Ground |
Below is an example of how to connect and use the GM803 with an Arduino UNO via the TTL interface.
| GM803 Pin | Arduino UNO Pin |
|---|---|
| VCC | 5V |
| GND | GND |
| TXD | RX (Pin 0) |
| RXD | TX (Pin 1) |
| Trigger | Digital Pin 2 |
#include <SoftwareSerial.h>
// Define RX and TX pins for the GM803 module
SoftwareSerial barcodeScanner(10, 11); // RX = Pin 10, TX = Pin 11
// Define the trigger pin
const int triggerPin = 2;
void setup() {
// Initialize serial communication
Serial.begin(9600); // For debugging
barcodeScanner.begin(9600); // For GM803 communication
// Configure the trigger pin
pinMode(triggerPin, OUTPUT);
digitalWrite(triggerPin, HIGH); // Set trigger pin to inactive state
Serial.println("GM803 Barcode Scanner Initialized");
}
void loop() {
// Trigger a scan
digitalWrite(triggerPin, LOW); // Activate the scanner
delay(100); // Wait for the scan to complete
digitalWrite(triggerPin, HIGH); // Deactivate the scanner
// Check if data is available from the scanner
if (barcodeScanner.available()) {
String barcodeData = "";
while (barcodeScanner.available()) {
char c = barcodeScanner.read();
barcodeData += c;
}
Serial.println("Scanned Barcode: " + barcodeData);
}
delay(1000); // Wait before the next scan
}
No Data Output from the Scanner
Scanner Does Not Trigger
Unreadable or Inaccurate Scans
Module Overheating
Can the GM803 read barcodes on screens?
What is the maximum scanning distance?
Is the GM803 compatible with Raspberry Pi?
Does the module require additional drivers for USB communication?