When we choose a 2d QR barcode scanner for transportation like metro and bus station, usually we would consider:

– Ensure passengers can scan their barcode and go through quickly, especially when the flow of people is large, and avoid long queues.

For this:

  1. The scanning speed must be fast enough.
  2. when users show their bar codes from different angles, from different distances, make sure the bar code can be read every time.
  3. when the bar code is shown in the user’s phone screen, the size of the phone screens would be various, and we need to make sure the barcode scanner can read the barcode from all of those different sizes of mobile phone screens.

– Avoid failures as much as possible, reduce the cost of subsequent maintenance to the greatest extent, and facilitate maintenance.

Consider these challenges, RTscan recently launched a new product RT820. This RT820 is a fast 2d and QR barcode scanner, which is specially designed for the Metro, train, and bus ticketing system.

embedded / fixed ount design
Metro station QR code ticketing system

 

This RT820 is outstanding in:

Large scanning window and excellent Bar Code Reading Performance

With 70cm*50cm large scanning window, the bar code can be easily enter into the visible area of the scanner, so that the scanner can capture and read the code easily. In addition, whatever with a small size screen or big size screen, the scanner can read the code from the phone easily.

Scan 2d QR and bar codes from 360 degree as you want, 90ms per scan, reading distance from 0cm to 11cm.

Durable and flexible design for easy installation and disassemble

IP66 industrial level, water-proof and dust-proof, use quick installation buckle on both sides, no screws required.

Easy to install and disassemble.

IP66 water / dust proof

 

robust design
Easy to be installed / fixed

For full detailed information of this new product, please read:

https://www.rtscan.net/Code-Readers/bus-metro-station-2d-barcode-scanner-rt820/

 

 

 

Read More


Presently, more and more access control system begins to mix bar code reading and NFC reading together. What’s more, wireless data transfer becomes a trend for access control.

In order to meet these different requirements of our clients and different projects, RTscan recently launched a new product RTX200: NFC barcode Reader with Wifi interface.   

This RTX200 serial aims to this kind of application and the trend. It can read 1d and 2d QR bar code, but optionally, and also read the NFC card, which makes it as a two-in-one terminal.

Except for the USB (USB-HID) interface and RS232 interface, the RTX200 also supports Wi-Fi communication.

For RTX200, we launched three models, RTX200-A External embedded version, RTX200-B internal embedded version, and RTX200-C on-counter version, suitable for different occasions and applications.

RTX200-A: use quick installation buckle on both sides, no screws required. Easy to be installed.

RTX200-B: tighten the nut from the back through the hole inside diameter, or crew the column directly through the scanner to fix the round hole internal diameter.

RTX200-C: simple desktop type, easy to be used with bracket (optional).

Application:

Cinema self-service ticketing machine

Car parking self-service payment machine

Queuing machine

hour unmanned shop

Visitor turnstile

Intelligent guidance machine in hospital

Refuse machine

Video Demo:

For full detailed information of this new product, please read:

Read More


Presently, more and more access control system begins to combine bar code reading and NFC reading together, while traditionally, the Wiegand interface is widely used for the access control system. But at the same time, wireless or Ethernet data transfer becomes a trend and would be more and more popular for access control data transfer, because wireless or Ethernet is somehow more convenient, easy to install, supports remote control, and also it would be more cost-effective.

In order to meet these different requirements of our clients and different projects, RTscan recently launched a new product RTMU86.   

This RT-MU86 aims to meet this market requirement and the trend, it supports either Wiegand interface or Ethernet, read both bar codes and NFC.

It’s an ideal choice for current and future all kinds of access control projects.

This RT-MU86 is outstanding in:

1. Capable to read both bar code and NFC card

The RT-MU86 can read 1d code, 2d and QR bar code, and NFC card. This makes it a two-in-one terminal.

2. Support Ethernet or Wiegand (optional)

Except for the USB (USB-HID) interface and RS232 interface, the RT-MU86 also supports Wiegand and Ethernet communication. It’s a Wiegand barcode Scanner and also an ethernet barcode scanner.

3.Built-in relay

With a Built-in relay and 12V-24V wide voltage input, the RTMU86 can connect to the access control system directly, and no need for Voltage conversion equipment.

4.Holder design for easy installation

Just fix the holder in the wall via 2 screws, then fix the reader in the holder and lock it by the screw from the bottom, done.

Application:

Can be widely used for all kinds of access control applications.

Office visitors access control

Building access control

Factory  access control

Museum

Tourist sites

School

Video Demo:

 

For full detailed information of this new product, please read:

https://www.rtscan.net/Code-Readers/wiegand-and-ethernet-barcode-scanner/
Read More


QR Code scanner for Arduino: Use 2d and QR barcode scanner with Arduino microcontroller (MCU)

If you are using Arduino MCU (microcontroller) to develop your system, and need a 1D/ 2D QR barcode scanner to work with it, then this article would be helpful for you. Here we introduce how we connect the Arduino Uno micro-controller with RTscan QR barcode scanners, and how to make them work with each other.

When we try to integrate a QR barcode scanner with the Arduino microcontroller board, we would meet these problems:

  1. The QR barcode scanner normally goes with a USB cable and RS232 cable, but Arduino board without this type of connector, then how can we connect them together?
  2. Whatever QR barcode scanners we choose, how can we control the barcode scanner by Arduino and also upload decoded data to the Ardunio system?

Read below and find how RTscan provides solutions for the above questions.

Contents

Part I: Introduction of Arduino UNO and RTscan QR barcode scanner

Part II: Connection solutions

  • Solution 1: Connect via UART/ 12PIN TTL-232
  • Solution 2: Connect via USB interface

Part III: Sample code/ Control the QR barcode scanner via Arduino system

  • TTL-232 Communication
  • USB CDC Communication
  • USB-HID Communication

Part VI: Video Demo


 

Part I:  Introduction of Arduino UNO and RTscan QR barcode scanner

Arduino UNO: The UNO is the most used and documented board of the whole Arduino microcontrollers family, many people choose this model for their projects. Arduino Uno has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz quartz crystal, a USB connection, a power jack, an ICSP header, and a reset button. It contains everything needed to support the microcontroller.

And for our application to connect with the QR barcode scanner, we need the 3.3V (or the 5.0v) power supply pin, and GND pin, RXD, TXD pins.

Arduino UNO:

Arduino UNO Pinout

RTscan QR barcode scanners:

 

In this article, we choose RT870 and RT830C as examples to introduce our solutions.

 

 

Part II: Connection solutions:

Solution 1: Connect the QR barcode scanner via a 12pins flat cable (TTL-232 signal) interface ( for RT830C): 

RTscan developed a multi-interface Shield, connect the shield with Arduino UNO, then connect the RT830C via a 12pins flat cable:

 
 

Solution 2: Connect the QR barcode scanner via a 4 pins UART (RS232 signal) interface ( for RT830C): 

Use the multi-interface Shield, connect the shield with Arduino UNO, then connect the RT830C via a 4pins cable. The RT830C comes out RS232 signal to the shield, and the shield converts it to TTL-232 signal and transmits to Arduino board.

 

Note: to learn more about RT830C, please view:   https://www.rtscan.net/Code-Readers/fixed-mount-embedded-kiosk-barcode-scanner-rt830c/

 

Solution 3: Connect the 2D QR barcode scanner via USB interface ( for RT870)

The RT830C without its own glass window, if you prefer an embedded barcode scanner with its own glass window, then you can choose our RT870 and use this solution: use an Arduino USB host shield as shown below.

 

 

Part III: Sample code/ Control the QR barcode scanner via Arduino system

We developed sample code to work with our scanners so that you can copy our source codes and program your system very quickly and no need to write the whole code one by one; save your time and speed up your integration work!

1. TTL-232 Communication (compatible with above solution 1 and solution 2)

Step 1: Hardware connection

Follow above solution 1 or solution 2 to connect the RT830C with Arduino Uno.

 

Step 2: RT830C barcode scanner settings

RT830C needs to be set up with 232 output, scan the following barcode
Set to 232 Mode, the default baud rate is 115200, 8-n-1

Scan the below code to set the baud rate to 9600:

For more details, please refer to the full user manual.

 

Step 3: Run the sample code

Upload the below sample code rt830c_test_demo.ino to Arduino UNO.

 
/*
RT830c Test demo
by RTSCAN 20200903
*/
#include "SoftwareSerial.h"
SoftwareSerial mySerial(2, 3); // RX, TX
 
void printHex(char *p, int len)
{
  char tmp[5];
  for (int i = 0; i  lt; len; i++)
  {
    sprintf(tmp, "%02x ", p[i]);
    Serial.print(tmp);
  }
  Serial.println();
}
 
bool check_response(unsigned long timeout, String response)
{
  char c;
  String buffer;
  bool found = false;
  unsigned long t = millis();
 
  while (millis() - t  lt; timeout)
  {
    if (mySerial.available()  gt; 0)
    {
      c = mySerial.read();
      buffer += c;
      if (buffer.indexOf(response) != -1 || buffer.equals(response))
      {
        found = true;
        break;
      }
    }
  }
 
  while (mySerial.available()  gt; 0)
  {
    c = mySerial.read();
    buffer += c;
  }
 
  Serial.println(buffer);
  printHex(buffer.c_str(), buffer.length());
 
  return found;
}
 
void send_cmd(char *p)
{
  mySerial.print(p);
  check_response(100, p + 3);
}
 
void factory_defaults()
{
  
...

Please contact us to get full sample codes: sales@rtscan.net
 

 

 

And the RT830c automatically detects and reads bar codes.

 


Introduction of the serial port commands protocol for RT830c

 

Command example: if we want to set the unit default, the command data as below

 

2.USB CDC Communication (compatible with above solution 3 )

In this solution, the scanner is set to USB Com port emulation mode, and the Arduino recognizes the scanner via the USB host shield.

 

Step 1: Hardware connection

Connect the RT870 scanner to the USB port of the Arduino USB host shield through a USB data cable.

 

Step 2: RT870 settings

RT870 set to USB CDC mode, scan the following Setting bar code

Firstly, Set to USB cable

Then, Set to USB-CDC mode

*Recognized as USB com port device on the computer.

 

Step 3:Include the library

 

Arduino Library Manager

First, install Arduino IDE version 1.6.2 or newer, then simply use the Arduino Library Manager to install the library.

Please see the following page for instructions:

http://www.arduino.cc/en/Guide/Libraries#toc3

Manual installation

First download the library by clicking on the following link:

https://github.com/felis/USB_Host_Shield_2.0

Then uncompress the zip folder and rename the directory to “USB_Host_Shield_20”, as any special characters are not supported by the Arduino IDE.

Now open up the Arduino IDE and open “File>Preferences”. There you will see the location of your sketchbook. Open that directory and create a directory called “libraries” inside that directory. Now move the “USB_Host_Shield_20” directory to the “libraries” directory.

The final structure should look like this:

  • Arduino/
    • libraries/
      • USB_Host_Shield_20/

Now quit the Arduino IDE and reopen it.

Now you should be able to open all the examples codes by navigating to “File>Examples>USB_Host_Shield_20”, and then select the example.

For more information please visit the following sites:

http://arduino.cc/en/Guide/Libraries

https://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use.

 

Step 4: Run the sample code

Run: acm_terminal. ino

#include  "cdcacm.h"
#include  "usbhub.h" 
#include "pgmstrings.h"
 
// Satisfy the IDE, which needs to see the include statment in the ino too.
#ifdef dobogusinclude
#include  "spi4teensy3.h"<br />#endif
#include  "SPI.h"<br /> 
class ACMAsyncOper : public CDCAsyncOper
{
public:
    uint8_t OnInit(ACM *pacm);
};
 
uint8_t ACMAsyncOper::OnInit(ACM *pacm)
{
    uint8_t rcode;
    // Set DTR = 1 RTS=1
    rcode = pacm- gt;SetControlLineState(3);
 
    if (rcode)
    {
        ErrorMessage lt;uint8_t gt;(PSTR("SetControlLineState"), rcode);
        return rcode;
    }
 
    LINE_CODING lc;
    lc.dwDTERate = 115200;
    lc.bCharFormat = 0;
    lc.bParityType = 0;
    lc.bDataBits = 8;
 
    rcode = pacm- gt;SetLineCoding( lc);
 
    if (rcode)
        ErrorMessage lt;uint8_t gt;(PSTR("SetLineCoding"), rcode);
 
    return rcode;
}
 
USB     Usb;
//USBHub     Hub( Usb);
ACMAsyncOper  AsyncOper;
ACM           Acm( Usb,  AsyncOper);
 
void setup()
{
  Serial.begin( 115200 );
#if !defined(__MIPSEL__)
  while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
#endif
  Serial.println("Start");
  Serial.println("Please set the scanner to USB CDC mode");
 
  if (Usb.Init() == -1)
      Serial.println("OSCOKIRQ failed to assert");
 
  delay( 200 );
}
...

Please contact us to get full sample codes: sales@rtscan.net

 

Open the serial port for debugging

Scan any barcode and it will be shown as below:

 

3.USB-HIDCommunication

In this solution, the scanner is set to USB HID KBW mode. The Arduino recognizes the scanner via the USB host shield.

Step 1: Hardware connection

Connect the RT870 scanner to the USB port of the Arduino USB host shield through a USB data cable.

Step 2: RT870 settings

RT870 set to USB-HID mode, scan the following Setting bar code

Set to the USB output

Set to USB-HID mode

*Recognized as HID Keyboard Device on the computer.

 

Step 3: Include the library

Arduino Library Manager

First, install Arduino IDE version 1.6.2 or newer, then simply use the Arduino Library Manager to install the library.

Please see the following page for instructions:

http://www.arduino.cc/en/Guide/Libraries#toc3

Manual installation

First download the library by clicking on the following link:

https://github.com/felis/USB_Host_Shield_2.0

Then uncompress the zip folder and rename the directory to “USB_Host_Shield_20”, as any special characters are not supported by the Arduino IDE.

Now open up the Arduino IDE and open “File>Preferences”. There you will see the location of your sketchbook. Open that directory and create a directory called “libraries” inside that directory. Now move the “USB_Host_Shield_20” directory to the “libraries” directory.

The final structure should look like this:

  • Arduino/
    • libraries/
      • USB_Host_Shield_20/

Now quit the Arduino IDE and reopen it.

Now you should be able to open all the examples codes by navigating to “File>Examples>USB_Host_Shield_20”, and then select the example.

For more information please visit the following sites: 

http://arduino.cc/en/Guide/Libraries 

https://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use.

 

Step 4: Run the sample code

Run:

Scanner_USBHIDUniversalKbd. ino

#include  lt;hidboot.h gt;
#include  lt;usbhid.h gt;
#include  lt;hiduniversal.h gt;
 
#include  lt;SPI.h gt;
 
class KbdRptParser : public KeyboardReportParser
{
  public:
    void PrintKey(uint8_t mod, uint8_t key);
 
    bool isScanEnd();
    void PrintScanCode();
 
  protected:
    void OnControlKeysChanged(uint8_t before, uint8_t after);
 
    void OnKeyDown  (uint8_t mod, uint8_t key);
    void OnKeyUp    (uint8_t mod, uint8_t key);
    void OnKeyPressed(uint8_t key);
 
    String ScanCode = "";
    uint32_t FreeTime = 0;
    bool StartScan = false;
};
 
void KbdRptParser::PrintKey(uint8_t m, uint8_t key)
{
  MODIFIERKEYS mod;
  *((uint8_t*) mod) = m;
  Serial.print((mod.bmLeftCtrl   == 1) ? "C" : " ");
  Serial.print((mod.bmLeftShift  == 1) ? "S" : " ");
  ...

Please contact us to get full sample codes: sales@rtscan.net

 

Open the serial port for debugging

Scan any barcode and it will be shown as below:

 

Part VI: Video Demo

Please refer to the following video for specific operations:

 

If you need an OEM barcode scanner module for Arduino, please read: 

Arduino Barcode Scanner

If you need an OEM barcode scanner for Raspberry Pi, please read:

Raspberry Pi Barcode Scanner

If you need an Embedded barcode scanner for Raspberry Pi, please read:

Embedded barcode scanner for Raspberry Pi

Read More


If you are using Raspberry Pi microcontroller / single-board computer to develop your system, and at the same time, you need a 1d/ 2d embedded barcode scanner to work with it, then this article would be helpful for you:

Here we introduce how we connect the Raspberry Pi 3 Model B+ micro-controller with RTscan embedded barcode scanner and how to make them work with each other.

When we try to integrate an embedded barcode scanner with the Raspberry Pi microcontroller board, but we would meet these problems:

  1. How can we connect the embedded barcode scanner with the Raspberry Pi board together?
  2. When we choose an embedded barcode scanner, how can we control the barcode scanner by Raspberry Pi, meanwhile, how to upload decoded data to the Raspberry Pi system?

Read below and find how RTscan provides solutions for above questions.

Contents

 

Part I: Introduction of Raspberry Pi 3 model B+ and RTscan embedded barcode scanner

Part II: Connection solutions

  • Solution 1: Connect via Dupont interface
  • Solution 2: Connect via USB interface

Part III: Python Sample code/ Make the embedded barcode scanner work with Raspberry Pi system:

  • TTL-232 Communication& Python Sample code
  • USB CDC Communication
  • USB-HID

Part VI: Video Demo

 

Part I: Introduction of Raspberry Pi 3 model B+ and RTscan embedded barcode scanners

Raspberry Pi 3B+:

Raspberry Pi 3 Model B is the latest iteration of the most popular single-board computer. It provides a quad-core 64-bit ARM Cortex-A53 CPU running at 1.2GHz, four USB 2.0 ports, wired and wireless networking, HDMI and composite video output, and a 40-pin GPIO connector for physical interfacing projects.

 

Raspberry Pi 3 Pinout

And for our application to connect with embedded barcode scanners, we need the 3.3V (or the 5.0v) power supply pin, and GND pin, RXD, TXD pins.

And also, we will demo how to connect our embedded barcode scanners: with raspberry Pi via USB interface.

RTscan embedded barcode scanners:

In this article, we choose RT870 as an example to do the connection and integration.

RT870 has RJ45 and micro USB output.

Part II: Connection solutions:

RTscan provides two types of solutions:

  • Solution1: Dupont interface 

RTscan provides the following DuPont interface to connect the embedded barcode scanner with Raspberry Pi:

This is a simple solution, just connect the 5.0V power supply (the EVK needs 5.0v power supply), GND, RX, and TX pins.

 

RT870 RJ45 Pinout

 

PIN Connection:

RT870 Raspberry Pi 3B+
Pin4 VDD 5V(Pin2 / Pin4)
Pin8 GND GND(Pin6)
Pin6 RX Tx(Pin8)
Pin7 TX Rx(Pin10)

Solution 2: Connect via USB interface

For Raspberry Pi, if you prefer to connect the embedded barcode scanner via USB interface, it also is fine, setup RTscan’s barcode scanner to HID mode (work directly) or USB CDC/Virtual Com mode (follow Part III/USB CDC communication).

 

 

Part III: Python Sample code/ Make the embedded barcode scanner work with Raspberry Pi system:

 

We developed Python sample code to work with our scanners so that you can copy our source codes and program your system very quickly and no need to write the whole code one by one; save your time and speed up your integration work!

In this article, we choose the RT870 as an example to do the programming. Below we show how they work together when they connect via TTL-232, USB-CDC, and USB-HID.

 

 

TTL-232 Communication& Python Sample Code

 

Step 1: Hardware connection

Connect the 5.0v power supply pin, and GND pin, RXD, TXD pins via Dupont cable.

Raspberry RT870
TX(GPIO14)(PIN8) RX
RX(GPIO15)(PIN10) TX
5V POWER
GND GROUND

 

Step 2: RT870 settings

RT870 needs to be set up with RS232 mode, scan the following barcode
Set to RS232 Mode, the default baud rate is 115200, 8-n-1

For more details, please refer to “User-Manual-RT830A-RT870-RT860_V1.2.3”

 

 

Step 3: Raspberry Pi Settings

Use serial port 0 in Raspberry Pi,

/dev/ttyS0

More settings would be required to enable Raspberry Pi serial0, please see below (If you already opened it, then ignore this):

1.Enable serial port ttyS0

Open the serial port/dev/ttyS0 
Via command window, input:
sudo rasp-config

2.Open the system configuration interface as shown below, select Interfacing Options

Then select serial:

Select No:

Choose Yes:

Finally, save and exit.

Now, please enter the following command, check the serial port ttyS0:
ls -la /dev/
But, if it still cannot be used, please double-check and re-configure it.

3. Close the Console

In the terminal, input:

sudo systemctl stop serial-getty@ttyS0.service
sudo systemctl disable serial-getty@ttyS0.service

Then, restart

And input:

sudo systemctl mask serial-getty@ttyS0.service

Now it works!

4. Modify Raspberry Pi CPU frequency (optional, you would no need to do this)

After the above steps 1 and 2, the settings are theoretically completed. But some times:

(1)After sending a string via serial port, in most cases the receiver shows up garbled data.

(2) When the serial port receives data, if it appear data like: **\xe8 \xe9**

This would be caused by the wrong working frequency of the Raspberry Pi, information link:
Raspberry Pi 3 login via UART on GPIO Baud Rates broken

The modification method is described as below:

sudo vim /boot/config.txt

Find out whether the sentence core_freq=250 is enabled. If not, remove the # number in front of this sentence, or add core_freq=250 at the boot/config.txt, done.

 

 

Step 4: Run the Python sample code

Run: RT870_TTL_RS232.py

#RT870 python test demo
#ttl-232 readme
#by RTSCAN 20200901
 
 
import sys
import serial
import time
 
#default usb device /dev/ttyS0 115200 8n1
ser = serial.Serial("/dev/ttyS0",115200,timeout=0.5)
 
print('serial test start ...')
if ser != None:
    print('serial ready...')
else:
    print('serial not ready')
    sys.exit()
 
...

Please contact us to get full sample codes: sales@rtscan.net

 

And the RT870 automatically detects and reads bar code.

Output:

 

Introduction of commands protocol for RT870

Example:

Response: 30 44 30 31 30 30 06 2e

For more details, please refer to 《Programming_Commands_Guide(RT203-RT830).pdf》

 

 

USB CDC Communication

If we want to use the USB port and make it work as a virtual serial port, set up the RT870 to USB Com port emulation mode. And the RT870 scanner will be detected as a COM device in Raspberry Pi.

 

Step 1: Hardware connection

Connect RT870 to the USB port of Raspberry Pi through a data cable

Step 2: RT870 Settings

RT870 set to USB CDC mode, please scan the following Setting bar code

Set to USB output

Set to USB CDC mode

 

Step 3: Raspberry Pi Settings

The RT870 USB CDC mode is the USB Com port emulation mode, the device name usually is:

/dev/ttyACM0

 

 

Step 4: Run the Python sample code

Run:  python RT870_USB_CDC.py

#RT870 python test demo
#USB-CDC readme
#by RTSCAN 20200901
 
 
import sys
import serial
import time
 
#default usb device /dev/ttyS0 115200 8n1
ser = serial.Serial("/dev/ttyACM0",115200,timeout=0.5)
 
print('serial test start ...')
if ser != None:
    print('serial ready...')
else:
    print('serial not ready')
    sys.exit()
 
ser.timerout=1 #read time out
ser.writeTimeout = 0.5 #write time out.
 
def printHex(str):
    for i in str:
        print('0x%02x'%ord(i)),
    print("")
 
def send_cmd(str):
    ser.write(str)
    time.sleep(0.2)
    t = ser.read(ser.in_waiting)
   ...

Please contact us to get full sample codes: sales@rtscan.net

 

Output:

 

 

USB-HID

If you prefer to connect the embedded barcode scanner via USB Keyboard simulation, it also is fine, setup RTscan’s barcode scanner to HID mode:

Then open “Text editor” from Raspberry Pi software, now run the bar code scanning, the decoded data will show up directly.

The above python sample code can be used for other embedded barcode scanners, e.g: RT830B.  But we can provide sample code for most of our embedded scanners, if you want to learn more about them, please view the links below: 

https://www.rtscan.net/barcode-readers/fixed-mount-barcode-readers/

Part VI: Video Demo

You can also refer to the following video demo, to see how the embedded barcode scanner work with Raspberry Pi:

https://www.youtube.com/watch?v=V32ZUt18ljM&feature=youtu.be

 

 

If you need an barcode scanner module/ engine for Arduino, please read: 

Arduino Barcode Scanner

If you need an OEM barcode scanner for Raspberry Pi, please read:

Raspberry Pi Barcode Scanner

 

Read More




16th-March-2020

Dear All Customers,

So far, our production has fully recovered, and almost all of our supplies are also fully recovered, includes all of our shipping forwarders. So all of the delivery and lead time recover to normal time.

At the same time, in order to help our customers to protect themselves from the Corona-virus, our company decided to send masks free of charge to some of our customers. All masks will be purchased from the regular pharmacies in China to ensure the quality of masks.

Please apply to our sales department if you need masks. We will arrange to send to you as soon as possible.

Read More


Dear Customers,

As the government policy for resisting Corona-virus, most of the companies are partly return to work or still stop out until the government gives permission; and the logistics companies are also partly return to work. So product delivery would be some days’ delay.

RTscan sales team and technical support team has returned to work, we will keep in touch with you and do our best to support you in this period.

We are sorry for any inconvenience caused. It’s much appreciated for your understanding and we will do best to arrange production & shipping as soon as the condition permits.

RTscan technoligy Limited

12th-Feb.2020

Read More


Imagen Escaner DNI , Escáner para cédula / Carnet de identidad

IDe200 captura imágenes a todo color y también imágenes ultravioleta (UV) e infrarrojo (IR) de la tarjeta de identificación, cédula / Carnet de identidad o la licencia de conducir.

Es compatible con Reconocimiento óptico de caracteres (OCR, Optical Character Recongition) para la zona legible por máquina (MRZ, machine readable zone). Este dispositivo cumple con ICAO9303, y también es apoya la lectura de códigos de barras PDF417 y QR.

Se diseña para uso sobremesa y incrustrado en quioscos.


 

Lector documentos de identidad y Pasaporte: IDE302

Los documentos de identidad y Pasaportes impreso con codigo OCR-B MRZ (zona de lectura mecánica ) , podemos usar nuestro IDE302 para leer el MRZ y obtener datos personales del tipo de documento, Número de documento, Fecha de nacimiento , Sexo, Fecha de caducidad , Nacionalidad,  Apellido y nombre.
El IDE302 utiliza tecnología de reconocimiento óptico de caracteres (OCR) que leer y transformar los datos del documento en un texto que puede editar en computador, y se lo cargan a otras aplicaciones. Con esta tecnología, el IDE302 puede captar la información de documentos de identidad con rapidez y precisión.

El lector IDE302 también puede leer el código PDF417 y QR desde la Cédula de Identidad o licencia de conducir. El código PDF417 es de tamaño muy grande y alta densidad, un lector común no puede leerlo, pero IDE302 es capaz de leerlo bien.


 

 

Lector fijo para documentos de identidad y Pasaporte: IDE237

Si usted está encontrando un Lector documentos de identidad y Pasaporte para uso de integración, este IDE237 sería su buena elección.

El IDE237 con el mismo rendimiento de IDE302, el también puede leer el código OCR desde documentos de identidad y Pasaporte.

Puede detectar y leer el código OCR desde documentos automáticamente.


 

 

Lector documentos de identidad y Pasaporte Inalámbrico Móvil : IDE101

IDE101+ una computadora móvil / tableta = sistema móvil de lectura de documentos de identidad.

IDE101 es un lector inalámbrico (Bluetooth) para documentos de identidad y Pasaporte .

Con esta solución portátil, podemos ahorrar tiempo, recopilar y registrar información de identidad de manera más fácil y eficiente, al mismo tiempo que mejoramos la satisfacción del cliente.. ¡Es un lector ideal para ti!

Tradicionalmente, para escanear documentos de identidad para el control de acceso o la aplicación de recopilación de datos personales, las personas utilizan un ordenador + un escáner, la solución no se puede utilizar para aplicaciones móviles. Ahora tenemos este lector móvil inalámbrico IDE101, junto con una tableta, se puede utilizar para la aplicación móvil, y su costo es mucho menor que la solución de ordenador + escáner de escritorio.

IDE 301 / IDE 237 / IDE 101 se pueden usar para control de acceso, sistema de registro de visitantes, tiendas libres de impuestos, tiendas de alquiler de automóviles, tiendas de cambio de dinero, sistemas de venta de boletos, sistemas de boletos de lotería, aduanas, casinos, transporte, etc.

 

Contáctenos Ahora!



Enviar
Read More


Raspberry Pi barcode scanner: connect OEM barcode scanners modules with Raspberry Pi microcontroller (MCU)

 

If you are using Raspberry Pi microcontroller / single-board computer to develop your system and need a 1d/ 2d OEM barcode scanner module at the same time, then this article would be helpful for you: here we introduce how we connect the Raspberry Pi 3 Model B+ micro-controller with RTscan OEM barcode scanner modules and how to make them work each other.

When we try to integrate an OEM barcode scanner with the Raspberry Pi microcontroller board, we would meet these problems:

  1. The OEM barcode scanner module with 12pins TTL interface, but Raspberry Pi board without this type of connector, then how can we connect them together?
  2. Whatever the OEM barcode scanner module we choose, how can we make the barcode scanner to work with Raspberry Pi and also upload decoded data to the Raspberry Pi system?

Read below and find how RTscan provides solutions for the above questions.

 

Contents

Part I: Introduction of Raspberry Pi 3 Model B+ and RTscan OEM barcode scanner modules

Part II: Connection solutions

  • Solution 1: Dupont interface
  • Solution 2: Connect via USB interface

Part III: Make the OEM barcode scanner module work with Raspberry Pi system/ Python Sample code:

  1. TTL-232 Communication& Python Sample code
  2. USB CDC Communication
  3. USB-HID

Part VI: Video Demo

 

Part I: Introduction of Raspberry Pi 3 Model B+ and RTscan OEM barcode scanners

Raspberry Pi 3B+:

Raspberry Pi 3 Model B is the latest iteration of the most popular single-board computer. It provides a quad-core 64-bit ARM Cortex-A53 CPU running at 1.2GHz, four USB 2.0 ports, wired and wireless networking, HDMI and composite video output, and a 40-pin GPIO connector for physical interfacing projects.

Raspberry Pi 3 Pinout

And for our application to connect with the OEM barcode scanner module, we need the 3.3V (or the 5.0v) power supply pin, and GND pin, RXD, TXD pins.

And also, we will demo how to connect our OEM barcode scanner with Raspberry Pi via the USB interface.

 

RTscan OEM barcode scanners:

They all with 12pins connector and TTL-232 signal, and use FFC cable and connector like this :

And if we use an EVK board, they can come out with a USB interface:

In this article, we choose RT214 as an example to do the connection and integration.

 

Part II: Connection solutions:

RTscan provides two types of solutions:

Solution1: Dupont interface

 

RTscan provides the following DuPont interface EVK kit (with trigger button and buzzer) to connect the OEM barcode scanner module with Raspberry Pi:

This is a simple solution, just connect the 5.0V power supply (the EVK needs a 5.0v power supply), GND, RX, and TX pins.

 

RT214-12pins Pinout

PIN# Signal Name I/O State Function
1 NC
2 VDD 3.3V power input
3 GND Power-supply ground
4 RXD I TTL level 232 receives data
5 TXD O TTL level 232 transmits data
6 USB_D- USB_D- signal
7 USB_D+ USB_D+ signal
8 NC
9 BUZ O Beeper output
10 LED O Good Read LED output
11 nRST I Reset signal input
12 nTRIG I Trigger signal input

After connecting with the EVK board, it comes out 6pins:

 

PIN Connection:

PIN# Signal Name I/O State Function
1 GND Ground Power-supply ground
2 RXD I/O TTL level 232 receive
3 TXD I/O TTL level 232 transmits
4 USB_D+ I/O USB_D+ signal
5 USB_D- I/O USB_D- signal
6 VBUS Power-supply 5V

PIN Connection:

RT203/RT206/RT207/RT208/RT211/RT214/ RT830B+EVK board 6pins out Raspberry Pi 3B+
Pin6 Vin 5V(Pin2)
Pin1 GND GND(Pin6)
Pin2 RX Tx(Pin8)
Pin3 TX Rx(Pin10)

 

♠ OEM Scanner Modules that compliant with this solution:

RT203 RT206 RT207 RT208 RT212 RT211 RT214

∗please click the model number to view the full product introduction page.

 

Solution 2: Connect via USB interface

For Raspberry Pi, if you prefer to connect the OEM barcode scanner module via USB interface, it also is fine, setup RTscan’s barcode scanner to HID mode (work directly) or USB CDC/Virtual Com mode (follow Part III/USB CDC communication).

 

♠ Barcode Scanner Modules that compliant with this solution:

All barcode scanners that have a USB interface.  All OEM scanner modules, all fixed-mount types, all handheld types. 

 

Part III:

Make the OEM barcode scanner module work with Raspberry Pi system/ Python Sample code:

We developed Python sample code to work with our scanners so that you can copy our source codes and program your system very quickly and no need to write the whole code one by one; save your time and speed up your integration work!

 

In this article, we choose RT214 as an example to do the programming. Below we show how they work together when they connect via TTL-232, USB-CDC, and USB-HID.

 

1. TTL-232 Communication& Python Sample Code

Step 1: Hardware connection

Connect the 5.0v power supply pin, and GND pin, RXD, TXD pins via Dupont cable. Please refer to the image in “Solution1: Dupont interface”

 

RT214+EVK board 6pins out Raspberry Pi 3B+
Pin6 Vin 5V(Pin2)
Pin1 GND GND(Pin6)
Pin2 RX Tx(Pin8)
Pin3 TX Rx(Pin10)

 

Step 2: RT214 settings

RT214 scanner needs to be set to TTL-232 mode, scan the following barcode:

For more setting codes, please refer to “RT214_User_Guide”.

 

Step 3: Raspberry Pi Settings

(Ignore if you already have done this.)

1.Enable serial port ttyS0

Open the serial port/dev/ttyS0 
Via the command window, input:
sudo rasp-config

Open the system configuration interface as shown below, select Interfacing Options

Then select serial:

Select No:

Then Yes:

Finally choose to save and exit.

 

At this time, enter the following command to see the serial port ttyS0:
ls -la /dev/
But if it still cannot be used, please double-check and re-configure it.

 

2. Close the Console

In the terminal, input:

sudo systemctl stop serial-getty@ttyS0.service
sudo systemctl disable serial-getty@ttyS0.service

Then, restart.

And then input:

sudo systemctl mask serial-getty@ttyS0.service

Then it works!

 

3. Modify Raspberry Pi CPU frequency (optional)

After the above steps 1 and 2, the settings are theoretically completed, but some times:

(1)After sending a string via serial port, in most cases the receiver shows up garbled data.

(2)When the serial port receives data, it appears data like **\xe8 \xe9**

This would be caused by the wrong working frequency of the Raspberry Pi, information link:
Raspberry Pi 3 login via UART on GPIO Baud Rates broken

The modification method is described as below:

sudo vim /boot/config.txt

Find out whether the sentence core_freq=250 is enabled. If not, remove the # number in front of this sentence, or add core_freq=250 at the boot/config.txt, done.

 

Step 4: Run the Python sample code

Run: RT214_TTL_RS232.py

#RT214 python test demo
#ttl232 readme
#by RTSCAN 20200901

import sys
import serial
import time


#default usb device /dev/ttyACM0 9600 8n1
ser = serial.Serial("/dev/ttyS0",115200,timeout=0.5)


print('serial test start ...')
if ser != None:
    print('serial ready...')
else:
    print('serial not ready')
    sys.exit()

ser.timerout=1 #read time out
ser.writeTimeout = 0.5 #write time out.


def printHex(str):
    for i in str:
        print('0x%02x'%ord(i)),
    print("")



def trigger_stop_settings():
    print("Trigger_stop_settings");
    # time.sleep(0.1)
    # t = ser.read(ser.in_waiting)
    t = ser.read()
    print("reply")
    printHex(t)
    return


def analog_trigger_setting():
    print("analog_trigger_setting");
    ser.write("\x1b\x31")
    # time.sleep(0.1)
    # t = ser.read(ser.in_waiting)
    t = ser.read()
    print("reply")
    printHex(t)
    return



def automatic_reading_settings():
    print("Automatic reading settings");
    ser.write("\x1b\x32")
    t = ser.read()
    print("reply")
    printHex(t)
    return



def continuous_reading_settings():
    print("Continuous reading settings");
    ser.write("\x1b\x33")
    t = ser.read()
    print("reply")
    printHex(t)
    return




def query_ESN():
    print("query ESN");
    ser.write("\x7E\x00\x00\x05\x33\x48\x30\x32\x30\xB3")
    ...

Please contact us to get full sample codes: info@rtscan.net

 


Output:And the RT214 automatically detects and reads bar code.

 

 

2. USB CDC Communication

If we want to use the USB port and make it work as a virtual serial port, set up the RT214 to USB Com port emulation mode. And the RT214 scanner will be detected as a COM device in Raspberry Pi.

 

Step 1: Hardware connection

Connect RT214 + USB Kit board to the USB port of Raspberry Pi:

 

Step 2: RT214 settings

RT214 set to USB CDC mode, scan the following Setting bar code

Enter setup

Set to USB-CDC mode

 Exit setup

 

Step 3: Raspberry Pi Settings

The RT214 USB CDC mode is the USB Com port emulation mode, the device name usually is:

/dev/ttyACM*

 

Step 4: Run the Python sample code

Run:  python RT214_USB_CDC.py

#RT214 python test demo
#
#by RTSCAN 20200901



import sys
import serial
import time


#default usb device /dev/ttyACM0 9600 8n1
ser = serial.Serial("/dev/ttyACM0",115200,timeout=0.5)



print('serial test start ...')
if ser != None:
    print('serial ready...')
else:
    print('serial not ready')
    sys.exit()



ser.timerout=1 #read time out
ser.writeTimeout = 0.5 #write time out.



def printHex(str):
    for i in str:
        print('0x%02x'%ord(i)),
    print("")



def trigger_stop_settings():
    print("Trigger_stop_settings");
    ser.write("\x1b\x30")
    time.sleep(0.1)
    t = ser.read(ser.in_waiting)
    print("reply")
    printHex(t)
    return



def analog_trigger_setting():
    print("analog_trigger_setting");
    ser.write("\x1b\x31")
    time.sleep(0.1)
    t = ser.read(ser.in_waiting)
    print("reply")
    printHex(t)
    return
...

Please contact us to get full sample codes: info@rtscan.net


Output:

 

 

3. USB-HID

 

If you prefer to connect the OEM barcode scanner module via USB Keyboard simulation, it also is fine, setup RTscan’s barcode scanner to HID mode,

Then open “Text editor” from Raspberry Pi software, run the bar code scanning, the decoded data will show up directly.

 

The above python sample code can be used for most of our OEM barcode scanners, includes RT206 RT207 RT208 RT209 RT214,  if you want to learn more about them, please view the link below: 

 

https://www.rtscan.net/barcode-readers/oem-barcode-scanners/

Part VI: Video Demo

You can also refer to the following video demo to see how the OEM barcode scanner works with Raspberry Pi:

https://www.youtube.com/watch?v=M9ATa9BmlrU&feature=emb_logo

If you need a barcode scanner module for the Arduino microcontroller, please read:

 Arduino barcode scanner

 

If you need an embedded type 2d and QR barcode scanner for Arduino, please read:

Embedded QR Code scanner for Arduino

 

If you need an Embedded barcode scanner for Raspberry Pi, please read:

Embedded barcode scanner for Raspberry Pi

 

Read More


Arduino barcode scanner: connect OEM barcode scanners modules with Arduino microcontroller (MCU)

If you are using an Arduino microcontroller to develop your system, and you need a 1d/ 2d OEM barcode scanner module at the same time, then this article would be helpful for you:

Here we introduce how we connect the Arduino Uno microcontroller with RTscan OEM barcode scanner modules and make them work.

When we try to integrate an OEM barcode scanner with the Arduino microcontroller board, we would meet these problems:

  1. The OEM barcode scanner with 12pins TTL interface, but Arduino board without this connector, how can we connect them?
  2. Whatever OEM barcode scanners we choose, how can we control the barcode scanner by Arduino and also upload decoded data to the Ardunio system?

Read below and find how RTscan provides solutions for the above questions.

 

Contents

Part I: Introduction of Arduino UNO and RTscan OEM barcode scanner modules

Part II: Connection solutions

Part III: Get the OEM barcode scanner module work with the Arduino system /Arduino C++ sample code:

  1. For TTL-232 Communication& Python Sample code
  2. For USB CDC Communication
  3. For USB-HID keyboard simulation communication

Part VI: Video Demo

 

 

Part I: Introduction of Arduino UNO and RTscan barcode scanners

Arduino UNO:

The UNO is the most used and documented board of the whole Arduino microcontrollers family, many people choose this model for their projects. Arduino Uno has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz quartz crystal, a USB connection, a power jack, and ICSP header, and a reset button. It contains everything needed to support the microcontroller.

 

Arduino UNO Pinout

And for our application to connect with the OEM barcode scanner, we need the 5.0v power supply pin, and GND pin, RXD, TXD pins.

 

RTscan OEM barcode scanners:

They all with 12pins connector and TTL signal, and use FFC cable and connector like this :

In this article, we choose RT214 as an example to do the connection and integration.

 

 

Part II: Connection solutions:

RTscan provides two types of solutions:

 

 

Solution 1: UART TTL Interface

RTscan developed a multi-interface Shield, connect the shield with Arduino UNO, connect the OEM barcode scanners to our EVK board (with trigger button and beeper ), then connect them via a 6pins UART TTL cable:

 

Via this solution, we make the connection between the barcode scanner engine and Arduino much durable/ solid.


And for this solution, the RT214 scanner needs to be set to TTL-232 Communication (follow Part III/TTL-232 communication).

 

♠ OEM Scanner Modules that compliant with this solution:

RT217

RT206 RT207 RT208 RT214 RT214B RT214C

∗please click the model number to view the full product introduction page.

 

Note: we have similar solutions for fixed mount type scanner RT830C and RT830i

UART-TTL:

12pins flat cable TTL-232:

If you prefer this type of scanner, please contact our sales team to get detailed information: sales@rtscan.net

 

 

Solution 2: Connect via USB host A

If you prefer your barcode scanner with a USB interface instead of a UART TTL cable,  then you can use this solution:  use an Arduino USB host shield.

The Arduino USB Host Shield allows you to connect a USB barcode scanner to your Arduino board, set up RTscan’s barcode scanner to HID mode, or USB CDC (Virtual Com mode).

 

Please follow Part III/USB CDC Communication/USB-HID Communication to check how to make them work together.

 

♠ Barcode Scanner Modules that compliant with this solution:

All barcode scanners have a USB interface.  All RTscan’s OEM scanner modules, fixed-mount types, and handheld types. 

 

 

Part III:

Get the OEM barcode scanner module work with the Arduino system /Arduino C++ sample code:

 

We developed sample code (only compatible with RTscan’s scanners) to work with our scanners so that you can copy our source codes and program your system very quickly and no need to write the whole code one by one; save your time and speed up your integration work!

In this article, we choose RT214 as an example to do the programming.

 

 

1. UART-TTL Communication

 

Step 1: Hardware connection

Connect RT214+EVK board to Arduino UNO as said above

 

Step 2: RT214 settings

RT214 needs to be set up with TTL-232 mode, scan the following barcode

Set to TTL-232 Mode, the default baud rate is 9600, 8-n-1

Enter setup

Set to TTL-232 mode

For more details, please refer to “RT214_User_Guide”

 

Step 3: Run the sample code

Upload the below sample code rt214_test_demo.ino to Arduino UNO.

 

 
 
/*
RT214 Test demo
by RTSCAN 20200903
*/
#include <SoftwareSerial.h>
SoftwareSerial mySerial(10, 11); // RX, TX

void printHex(char *p, int len)
{
  char tmp[5];
  for (int i = 0; i < len; i++)
  {
    sprintf(tmp, "%02x ", p[i]);
    Serial.print(tmp);
  }
  Serial.println();
}

bool check_response(unsigned long timeout, String response)
{
  char c;
  String buffer;
  bool found = false;
  unsigned long t = millis();

  while (millis() - t < timeout)
  {
    if (mySerial.available() > 0)
    {
      c = mySerial.read();
      buffer += c;
      if (buffer.indexOf(response) != -1 || buffer.equals(response))
      {
        found = true;
        break;
      }
    }
  }

  while (mySerial.available() > 0)
  {
    c = mySerial.read();
    buffer += c;
  }

  Serial.println(buffer);
  printHex(buffer.c_str(), buffer.length());

  return found;
}

void send_cmd(char * p)
{
  mySerial.print(p);
  check_response(100, "\x06");
}

void trigger_stop_settings() 
{
  Serial.println("trigger_stop_settings");
  send_cmd("\x1b\x30");
}

void analog_trigger_setting() 
{
  Serial.println("analog_trigger_setting");
  send_cmd("\x1b\x31");
}

void automatic_reading_settings() 
{
  Serial.println("automatic_reading_settings");
  send_cmd("\x1b\x32");
}

void continuous_reading_settings() 
{
  Serial.println("continuous_reading_settings");
  send_cmd("\x1b\x33");
}

void query_ESN() 
{
  Serial.println("query_ESN");
  send_cmd("\x7E\x00\x00\x05\x33\x48\x30\x32\x30\xB3");
}

void setup()
{
  Serial.begin(115200);
  while (!Serial)
  {
    ; // wait for serial port to connect. Needed for native USB port only
  }

  Serial.println("RT214 Test demo");

  mySerial.begin(9600);

  query_ESN();
  
  trigger_stop_settings();
}
...
 
 

Please contact us to get full sample codes: sales@rtscan.net

 

And the RT214 automatically detects and reads bar codes.

Output:

 

Introduction of the serial port commands protocol for RT214

The often-used serial port commands are as below (HEX):

Trigger mode:1B 31

Stop scanning:1B 30

Auto mode:1B 32

Continuous read mode:1B 33

For more details, please refer to 《RTscan Serial Programming Command Manual.PDF》

 

 

2. USB CDC Communication

In this solution, we connect the OEM barcode scanner to Arduino via USB host shield, and firstly we need to set the scanner to USB Virtual Com emulation mode, and the Arduino recognizes the scanner as a USB CDC device. Follow the steps as below:

 

Step 1: Hardware connection

Connect the RT214 scanner to the USB port of the Arduino USB host shield through a USB data cable.

 

Step 2: RT214 settings

RT214 set to USB CDC mode, scan the following Setting bar code.

Enter setup

Set to USB-CDC mode:

Recognized as a COM port device on the computer:

 

Step 3: Include the library

Arduino Library Manager

First, install Arduino IDE version 1.6.2 or newer, then simply use the Arduino Library Manager to install the library.

Please see the following page for instructions:

http://www.arduino.cc/en/Guide/Libraries#toc3

 

Manual installation

First download the library by clicking on the following link:

https://github.com/felis/USB_Host_Shield_2.0

Then uncompress the zip folder and rename the directory to “USB_Host_Shield_20”, as any special characters are not supported by the Arduino IDE.

Now open up the Arduino IDE and open “File>Preferences”. There you will see the location of your sketchbook. Open that directory and create a directory called “libraries” inside that directory. Now move the “USB_Host_Shield_20” directory to the “libraries” directory.

The final structure should look like this:

  • Arduino/
    • libraries/
      • USB_Host_Shield_20/

Now quit the Arduino IDE and reopen it.

Now you should be able to open all the examples codes by navigating to “File>Examples>USB_Host_Shield_20” and then select the example you will like to open.

For more information please visit the following sites:

http://arduino.cc/en/Guide/Libraries

https://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use.

 

Step 4: Run the sample code

Run:

acm_terminal. ino

 
#include <cdcacm.h>
#include <usbhub.h>

#include "pgmstrings.h"

// Satisfy the IDE, which needs to see the include statment in the ino too.
#ifdef dobogusinclude
#include <spi4teensy3.h>
#endif
#include <SPI.h>

class ACMAsyncOper : public CDCAsyncOper
{
public:
    uint8_t OnInit(ACM *pacm);
};

uint8_t ACMAsyncOper::OnInit(ACM *pacm)
{
    uint8_t rcode;
    // Set DTR = 1 RTS=1
    rcode = pacm->SetControlLineState(3);

    if (rcode)
    {
        ErrorMessage<uint8_t>(PSTR("SetControlLineState"), rcode);
        return rcode;
    }

    LINE_CODING	lc;
    lc.dwDTERate	= 115200;
    lc.bCharFormat	= 0;
    lc.bParityType	= 0;
    lc.bDataBits	= 8;

    rcode = pacm->SetLineCoding(&lc);

    if (rcode)
        ErrorMessage<uint8_t>(PSTR("SetLineCoding"), rcode);

    return rcode;
}

USB     Usb;
//USBHub     Hub(&Usb);
ACMAsyncOper  AsyncOper;
ACM           Acm(&Usb, &AsyncOper);

void setup()
{
  Serial.begin( 115200 );
#if !defined(__MIPSEL__)
  while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
#endif
  Serial.println("Start");
  Serial.println("Please set the scanner to USB CDC mode");

  if (Usb.Init() == -1)
      Serial.println("OSCOKIRQ failed to assert");

  delay( 200 );
}
...
 



Please contact us to get full sample codes: sales@rtscan.net


 

Open the serial port for debugging:

 

Scan any barcode and it will be shown as below:

 

 

3. USB-HID Communication

In this solution, the scanner is set to USB HID KBW mode, and the Arduino recognizes the scanner as a USB keyboard simulation device.

 

Step 1: Hardware connection

Connect the RT214 scanner to the USB port of the Arduino USB host shield through a USB data cable.

 

Step 2: RT214 settings

RT214 set to USB CDC mode, scan the following Setting bar code

Enter setup:

Set to USB-HID mode:

Recognized as  on the computer:

 

Step 3: Include the library

Arduino Library Manager

First, install Arduino IDE version 1.6.2 or newer, then simply use the Arduino Library Manager to install the library.

Please see the following page for instructions:

http://www.arduino.cc/en/Guide/Libraries#toc3

 

Manual installation

First download the library by clicking on the following link:

https://github.com/felis/USB_Host_Shield_2.0

Then uncompress the zip folder and rename the directory to “USB_Host_Shield_20”, as any special characters are not supported by the Arduino IDE.

Now open up the Arduino IDE and open “File>Preferences”. There you will see the location of your sketchbook. Open that directory and create a directory called “libraries” inside that directory. Now move the “USB_Host_Shield_20” directory to the “libraries” directory.

The final structure should look like this:

  • Arduino/
    • libraries/
      • USB_Host_Shield_20/

Now quit the Arduino IDE and reopen it.

Now you should be able to open all the examples codes by navigating to “File>Examples>USB_Host_Shield_20” and then selecting the example you would like to open.

For more information please visit the following sites:

http://arduino.cc/en/Guide/Libraries

https://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use.

 

Step 4: Run the sample code

Run: Scanner_USBHIDUniversalKbd. ino

#include <hidboot.h>
#include <usbhid.h>
#include <hiduniversal.h>

#include <SPI.h>

class KbdRptParser : public KeyboardReportParser
{
  public:
    void PrintKey(uint8_t mod, uint8_t key);

    bool isScanEnd();
    void PrintScanCode();

  protected:
    void OnControlKeysChanged(uint8_t before, uint8_t after);

    void OnKeyDown  (uint8_t mod, uint8_t key);
    void OnKeyUp    (uint8_t mod, uint8_t key);
    void OnKeyPressed(uint8_t key);

    String ScanCode = "";
    uint32_t FreeTime = 0;
    bool StartScan = false;
};

void KbdRptParser::PrintKey(uint8_t m, uint8_t key)
{
  MODIFIERKEYS mod;
  *((uint8_t*)&mod) = m;
  Serial.print((mod.bmLeftCtrl   == 1) ? "C" : " ");
  Serial.print((mod.bmLeftShift  == 1) ? "S" : " ");
  Serial.print((mod.bmLeftAlt    == 1) ? "A" : " ");
  Serial.print((mod.bmLeftGUI    == 1) ? "G" : " ");

  Serial.print(" >");
  PrintHex<uint8_t>(key, 0x80);
  Serial.print("< ");

  Serial.print((mod.bmRightCtrl   == 1) ? "C" : " ");
  Serial.print((mod.bmRightShift  == 1) ? "S" : " ");
  Serial.print((mod.bmRightAlt    == 1) ? "A" : " ");
  Serial.println((mod.bmRightGUI    == 1) ? "G" : " ");
};

void KbdRptParser::OnControlKeysChanged(uint8_t before, uint8_t after) {

  MODIFIERKEYS beforeMod;
  *((uint8_t*)&beforeMod) = before;

  MODIFIERKEYS afterMod;
  *((uint8_t*)&afterMod) = after;

  if (beforeMod.bmLeftCtrl != afterMod.bmLeftCtrl) {
    Serial.println("LeftCtrl changed");
  }
  if (beforeMod.bmLeftShift != afterMod.bmLeftShift) {
    Serial.println("LeftShift changed");
  }
  if (beforeMod.bmLeftAlt != afterMod.bmLeftAlt) {
    Serial.println("LeftAlt changed");
  }
  if (beforeMod.bmLeftGUI != afterMod.bmLeftGUI) {
    Serial.println("LeftGUI changed");
  }

  if (beforeMod.bmRightCtrl != afterMod.bmRightCtrl) {
    Serial.println("RightCtrl changed");
  }
  if (beforeMod.bmRightShift != afterMod.bmRightShift) {
    Serial.println("RightShift changed");
  }
  if (beforeMod.bmRightAlt != afterMod.bmRightAlt) {
    Serial.println("RightAlt changed");
  }
  if (beforeMod.bmRightGUI != afterMod.bmRightGUI) {
    Serial.println("RightGUI changed");
  }

}

void KbdRptParser::OnKeyDown(uint8_t mod, uint8_t key)
{
  // Serial.print("DN ");
  // PrintKey(mod, key);
  uint8_t c = OemToAscii(mod, key);

  if (c)
    OnKeyPressed(c);
}

void KbdRptParser::OnKeyUp(uint8_t mod, uint8_t key)
{
  // Serial.print("UP ");
  // PrintKey(mod, key);
  
  FreeTime = millis();
  StartScan = true;
}

void KbdRptParser::OnKeyPressed(uint8_t key)
{
  // Serial.print("ASCII: ");
  // Serial.println((char)key);
  ScanCode = ScanCode + String((char)key);
};

bool KbdRptParser::isScanEnd()
{
  if(millis() - FreeTime > 200 && StartScan){
      StartScan = false;
      return true;
  }

  return false;
};

void KbdRptParser::PrintScanCode()
{
  Serial.print("ScanCode: ");
  Serial.println(ScanCode);
  ScanCode = "";
};

USB          Usb;
HIDUniversal Hid(&Usb);
KbdRptParser Prs;

void setup()
{
  Serial.begin( 115200 );
#if !defined(__MIPSEL__)
  while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
#endif
  Serial.println("Start");
  Serial.println("Please set the scanner to USB HID mode");

  if (Usb.Init() == -1)
    Serial.println("OSC did not start.");

  delay( 200 );

  Hid.SetReportParser(0, &Prs);
}
 ...



Please contact us to get full sample codes: sales@rtscan.net

 

 

Open the serial port for debugging:

Scan any barcode and it will be shown as below:

 

This article is a solution introduction for Arduino barcode scanners, if you are using Raspberry Pi and need an OEM barcode scanner, please read: Raspberry Pi barcode scanner

If you need an embedded type 2d and QR barcode scanner for Arduino, please read:

Embedded QR Code scanner for Arduino

If you need an Embedded barcode scanner for Raspberry Pi, please read:

Embedded barcode scanner for Raspberry Pi

We developed an Arduino solution for most of our OEM barcode scanners, includes RT203 RT206 RT207 RT208 RT209 RT211 RT830B, if you want to learn more about them, please view below: https://www.rtscan.net/barcode-readers/oem-barcode-scanners/

Read More











 

Congratulate RTscan move to Shenzhen BIT innovation building that located in new and High-tech Industrial Park of Shenzhen, in the park, there are lots of University-industry bases, more than 10 of Chinese first-class university invest their university-industry base here.

 

Shenzhen BIT innovation building is the University-industry base of Beijing Institute of Technology, which is the first-class high-tech university of China.

The Shenzhen City Government and Beijing Institute of Technology invest to build this building in the purpose of High-tech industrialization. To learn more about Beijing Institute of Technology, click here:

 

http://english.bit.edu.cn/AboutBIT/GeneralInformation/index.htm

 

In time of New Year 2017, RTscan move to this High-tech Industrial Park in hope to improve us and provide more valuable products and service to our customers.

Read More




Hand free barcode scanner -RT800 release


 

After nearly one year’s development, RTscan finally released its new scanner- hand free barcode scanner RT800.

RT800-hand-free-2D-Bar-code-scanner

This hand free barcode scanner with rich features:

  • Large scanning window, can scan full screen of a Iphone 4S
  • Omni-directional
  • Hand-free and Automatic scanning operation
  • Both Desktop and Kiosk-embedded use design , either can be use in all kinds of on-counter service or used by integrated inside Kiosks / ATM terminal
  • Support most of 1D/2D bar code decoding: 1D Code such as Code11, Code39, Code93, Code128, and mainstream, 2D Code such as DM Code, QR Code, micro QR Code, PDF417, micro PDF417
  • Scans bar codes on paper, smart phones LCD screen and computer/ Ipad displays

RT800-on-counter-barcode-scanner

For full detailed information of this new hand free barcode scanner, please read:

https://www.rtscan.net/Code-Readers/hand-free-2d-bar-code-scanner-rt800/

 

 

Read More


New version of the  handheld 2d barcode scanner  RT400


 

Recently, we released new version of the handheld 2d barcode scanner : RT400, this new version has been improved in terms of outlook, illumination and decode performance, below in details:

new RT400

Version 1                                                                                Version 2 (new)

1. The new version looks more nice and also more use friendly.

2. The new version improved the brightness of the aiming lights; improved the illumination light so as to improve the decode performance for reading bar codes from long distance away and the performance for reading bar codes from mobile phone screen.

 

The RT400 is a handheld 2d barcode scanner which outstanding for reading bar codes from phone screen and other LCD display, for example Iphone, Ipad, Laptop… Ideal for mobile ticket (e-ticket, e-coupon ) bar code reading which for application in restaurant, stores, Super market…

handheld-2d-barcode-reader-rt400 handheld-2d-barcode-scanner-rt400 USB-handheld-2d-barcode-scanner-rt400

Read More