serial-text project

See the serial-text project on Launchpad. Other serial character input devices should work, too.

Somebody should package and put this in the repository. Jiri Bohac wrote it and sent it to me in August of 2007, and until now I've neglected to post it anywhere. --LoyeYoung

Alternative Software

The above software didn't work for me personally (even after finding the code to compile from a link under "blueprints"). With some more googling I found an alternative available here --asifanwar98

Known Barcode Readers working

Hand Held Products (HHP) IT4410

Hand Held Products (HHP) 3800g

  • Works fine in 8.04 but needs to be set in USB keyboard mode. Otherwise, it won't do anything.

Motorola Symbol LS2208, LS1203

Laser Barcode Reader. Packed with features and works perfectly with 8.04

  • lsusb: Symbol Technologies
  • dmesg: USB HID v1.10 Keyboard [?Symbol Technologies, Inc, 2002 Symbol Bar Code Scanner]

No problem with the "-" to "+" on Code 39 Barcodes

Datalogic Touch 90

  • lsusb: Datalogic S.p.A. Gryphon D120 Barcode Scanner)
  • dmesg: Datalogic 2002 Datalogic Bar Code Scanner.

This barcode-reader converts "-" into "+"

Datalogic QuickScan QS6500

If your QS6500 is not detected as a USB device then you have to configure the Interface Selection first to "USB Keyboard". Download this Document (Page 30 / 33) and scan following barcodes: START, USB Keyboard, END.

  • lsusb: PSC Scanning, Inc.
  • messages: Datalogic Scanning, Inc. Point of Sale Handheld Scanner
  • messages: generic-usb 0003:05F9:2202.0010: input,hidraw1: USB HID v1.11 Keyboard [Datalogic Scanning, Inc. Point of Sale Handheld Scanner]

TechScan Korea Barcode reader(v3xx) - TSK-800

  • TSK-800 (from the TechScan site at ).

  • This is a generic re-branded DSE reader. The TSK-800 has a "plugable/swapable" tail (i.e. you can buy a new lead/tail and open the unit and swap out the lead/tail from a PS/2 to USB or vice versa).
  • Minor problems:
    • Was experiencing crashing and USB disconnects in dmesg the was possibly with the reader having problems responding to device interrogation requests.
    • Swapped to the PS/2 tail and that worked fine.
    • Replaced the USB tail with a newer tail (which seems to contain some sort of inline buffer/converter) and everything worked fine.

Cypress Semiconductor Corp. SO-800

  • SO-800 this is CMOS Barcode reader with PS/2, Serial or USB connector, mine is with USB and works perfectly with usbkbd module loaded

ADESSO and Acan 8100 CCD Contact Barcode USB Scanners

  • 7.10 sees the device as a USB HID v1.00 Keyboard, powers it up, but when you scan a valid barcode, it shuts off and doesn't output the barcode.
  • usbkbd.ko was loaded but still didn't work.

Both of these devices are sloppy about USB HID compliance. The trick is to let the usbkbd driver handle them. (usbkbd is a minimal alternative to usbhid for specialized applications) Inserting the usbkbd module isn't enough to fix it though -- the usbhid driver still grabs it first if you check dmesg.

Old Fix (Breaks USB keyboards and mice)

If you edit the modprobe blacklist file (/etc/modprobe.d/blacklist) and change the USB-input driver lines to look like this:

#blacklist usbmouse #blacklist usbkbd blacklist usbhid

New Fix

The ideal end-user fix shouldn't prevent other devices from using the usbhid driver. Debian actually created a script named check_driver specifically for this purpose. Adding the following line solved the problem on my system without denying my advanced USB HID devices:

KERNEL=="event[0-9]*", SYSFS{idVendor}=="04b4", SYSFS{idProduct}=="bca1", ACTION=="add", RUN+="/lib/udev/check_driver usbkbd $devpath $env{ID_BUS}"

The above idVendor and idProduct (USB vendor and product ID) values are for the Acan FG-8100. You may need to adjust them.

Final solution

A patch is queued for the next linux kernel update that adds support for the Acan FG-8100 barcode scanner. Once this has made it into the regular Ubuntu kernel, the acan will be supported out-of-the-box with the usbhid module. Technically, the Acan FG-8100 barcode reader (0x04b4/0xbca1) has the vendor ID of cypress and requires the same MIN/MAX swap descriptor quirk as other barcode readers from cypress.

CipherLab 1100 USB HID

works fine with usbkbd module (sudo modprobe usbkbd). laser barcode scanner (aka: Microvision ROV Scanner)

  • Have not been successful in getting the serial cable to work with or without the supplied Serial-to-USB adapter.
  • Using the "USB Cable - Straight" from Microvision (the supplier of the device's original Windows driver and wedge software) allows you to use it in keyboard emulation. ( )

    • In the manual that comes with the cable you have to use the Flic Control Bar Codes instead of the Rov Control Bar Codes (like you would think) to reset the Collectorz scanner to the Flic factory settings. The Rov codes would not work for me.
      • When you get the cable follow these steps:
        • Select the keyboard function on the inline control on the cable.
        • Then go to the back couple pages of the manual
        • Scan the "Flic Clear Bar Codes from Memory" option
        • Scan the "Flic Return to Factory Defaults" option
        • Scan the "Flic Bar Code Prefix (STX) is False" option
        • Scan the Flic Download Delay is 0 milliseconds" option (optional, I just like immediacy)
  • You may experience odd behavior with your scanner if you don't follow those steps and use it in Ubuntu right after using it in Windows for a while. For instance in Firefox (Ubuntu) if you attempt to scan a code into the search box the scanner will enter the first part of the code into the search box but then open the bookmarks side pane and enter the rest into the bookmarks search box. With these steps the scanner is reset to be a simple keyboard device with a carriage return. Basic enough to work with any basic code recording software. So for instance the code is entered into the Firefox search box followed by the carriage return to take you to the results page of your preferred search engine. This is also true of other programs that only require a carriage return to return results.
  • Keyboard mode is the only mode Microvision says that works with Linux distros. VCOM mode is only for Windows devices.
  • Cable stopped being recognized by all OSes (Linux, Windows, Mac OS X) for a while then started working again. It is unknown what prevented it from working but I isolated it to a cable malfunction of some sort. Possibilities could be bad wiring, incompatibility/intermittent compatibility, or USB device interference. The cable is an active device with circuitry inside of an inline cable wart instead of a passive cable.

Metrologic Eclipse MS5145LS USB

  • Works fine in 9.04 and 9.10 out of the box.

Metrologic (Honeywell) MS9520 USB

  • Works fine in 11.04.
  • Kernel module (serial converter): metro-usb

Microvision Flic Scanner

Seing as there wasn't any Linux software that supported this scanner using Bluetooth and only one non open source, non free software wedge that supported cabled connections I wrote my own in Perl. My software supports both cabled and Bluetooth connection, supports both server mode where scans are put into a FIFO queue and retrieved with a keyboard shortcut and non-server mode where scans are immediately processed, supports the use of the scanners memory (disconnect the scanner, scan lots of codes, reconnect the scanner and all codes are transfered), allows automatically adding a simulated press of the <Enter> key after processing a code, and is licensed under GPL.

Download and instructions: FlicServ 1.0.

datalogic PowerScan PD7100 and QuickScan QD2100

Works fine if set to "Keyboard USB-KBD-Apple"-mode. This is done by scanning the approbiate barcode from the user's manual of the device (keep the trigger pressed for approx. 5 seconds to switch the scanner into programming mode).

Warning /!\ The scanner seems to have problems with some BIOSses: sometimes it works right out of the boxes if set to USB-keyboard, sometimes it is recognized by the OS, but not activated.

Kezboard syndrome

If you are using a german keyboard layout (as I do), you have the scanner to be configured in german Country Mode. If you don't, "Y" and "Z" will be swapped, some other character will get misinterpreted ("-" changed to "ß" ... Sad :( ) Probably this applies to other country specific keyboard layouts as well.

How to set the Country Mode is described in the scanner's manual, pp. 73. You'll find approbiate scan codes there. The manual can be downloaded from the manufacturer's web site.

Other readers

Please add your barcode-readers to this list!

Keymap correction

Most barcode-readers work out-of-the-box, but have some problems with the selected keymap.

For example "-" is often converted into "+"


I'll try to find a fix for this!

If you have a fix, please add in!

Software for barcode creation



In the repository?


Easy GUI tool for barcode creation



Commandline tool for barcode creation


Online barcode creation

PHP barcode project
DataLogic QuickScan QS6500 with Ubuntu as USB Keyboard
EZ Barcodez


PS2 scanner, connected to USB with an adapter

There seems to be difficulties using an adapter.

Please just find a way to connect it to PS2. (You can buy a PS2 split-cable in most hardware stores!)

Karmic Koala

In Karmic, the usbkbd module is no longer present. Thus, any instructions above that recommend unloading the usbhid module and loading the usbkbd module or loading the usbkbd module only for the particular device that requires it do not apply to Karmic.


BarcodeReaders (last edited 2014-08-25 16:52:14 by jakob-flierl)