How to connection IDWedgeKB using USB Serial CDC driver to Linux Operating system

IDWedgeKB is a drivers license scanner with embedded drivers license parsing that interfaces to a computer as a USB Keyboard or USB Serial port.

This post details how to connect from Linux to the IDWedgeKB when it’s setup as a serial device and is targeted at developers who which to communicate directly with the IDwedgeKB via the USB Serial port on Linux computers.  

Most clients will use the USB keyboard interface which is plug and play on Linux, Windows and Apple operating systems.

Step By Step instructions

Configure IDWedgeKB to use USB Serial Port instead of USB Keyboard.  This is done by changing configuration parameters stored in config.txt file inside IDwedgeKB flash drive.  See IDwedgeKB User manual for details – visit for IDWedgeKB user manual.

Plug in IDWedgeKB into any USB port of computer.  The IDWedgeKY LED will blink green for about 3 seconds and a flash drive named upload disk may be recognized by the computer.  Then the IDwedgeKB LED will blink WHITE which indicates its in serial port mode.

Start a terminal window on linux and

type—  lsusb – which lists the USB devices.  The screenshots shown in this post are for a Raspberry Pi.

linux idwedgekb lsusb













The device 2d94:0004 is the CDC USB Serial driver of the IDWedgeKB.

Type —  dmesg | grep ‘2d94’  — 2d94 is TokenWorks vendor ID














Note: the usb value 1-1.3 – the product ID 0001 is the upload disk which appears briefly during boot and the product ID 0004 is the Serial USB CDC driver.

Type —  dmesg grep | ‘usb 1-1.3′ to list details about this USB device

idwedgekb id scanner linux dmesg













This displays all the information known to linux based on the IDwedgeKB based on its USB descriptors.

The IDwedgeKB is recognized as a ttyACM0 device.  To find all the TTY devices recognized by LINUX,

type —  dmesg |grep ‘tty to list all the tty devices

dmesg grep 'tty' idwedgekb serial linux













There are a few TTY devices, The USB ACM device ttyACM0 is the IDWedgeKB.

To check the baud rate, type —  stty -F /dev/ttyACM0

linux determine serial port settings idwedgekb













The baud rate is at 9600, but IDWedgeKB uses 115200, so set the baud rate to 115200 by

Type —   stty -F /dev/ttyACM0  115200  – this will set the baud rate to 115K

idwedgekb set baud linux id scanner drivers license reader













Note: The baud rate has been changed on the Raspberry Pi to 115200

Next – run the screen application to open a serial emulator and interface with the IDWedgeKB.

If the screen app is not installed on the computer – type — sudo apt-get install screen – note: an internet connection is required

Type —  screen /dev/ttyACM0 – this will launch screen and allow communication with IDWedgeKB

screen linux serial terminal idwedgekb












A new terminal screen will open.

Hit the enter key a couple of times, you should see ?? which is IDwedgeKB’s response to an unrecognized command.

Scan a drivers license in IDWedgeKB – it will output a comma delimited string of fields to the serial port which is displayed below.

idwedgekb linux id scanner













This shows the drivers license field data output via the USB serial port from IDWedgeKB

Other IDWedgeKB serial commands are

eseek – this displays the IDwedgeKB serial number

rawdata – this displays the raw data from the last scan

lastscan – this displays the last parsed scan data.


This concludes the post.  Hopefully it helps developers who which to communicate directly with the IDwedgeKB via the USB Serial port on Linux computers



Note: This has been tested on a Dell C610 laptop running Ubuntu and a Raspberry Pi Zero W running RASPBIAN STRETCH WITH DESKTOP Version:August 2017



Shopping cart0
There are no products in the cart!
Continue shopping