barcode-scannerhidpyusbhoneywell

PyUSB Barcode Scanner without Button by Honeywell


I have a Honeywell N5600 that I'm trying to use, but I don't get it to scan anything.

The device is recognized as /dev/hidraw1, but as it does not have any button to press, I cannot trigger the scan and thus, when I try to read from it, it just waits forever.

I started creating a python program, that seems to be able to communicate with it (different return values):

VENDOR_LEGO = 0x0c2e
PRODUCT_EV3 = 0x0967
device = usb.core.find(idVendor=VENDOR_LEGO, idProduct=PRODUCT_EV3)
device.detach_kernel_driver(0)

#"TRGMOD8." would - when scanned (which I cannot do, at this point) - activate a permanent scanning mode
device.ctrl_transfer(0x21, 0x9, wValue=0x200, wIndex=0x00, data_or_wLength='TRGMOD8.')
#8 is returned

device.ctrl_transfer(0x21, 0x9, wValue=0x200, wIndex=0x00, data_or_wLength='PAPSPC.')
#7 is returned

Unluckily the link given in this post is not reachable anymore. It seems like it would have solved my problem.

How can I activate the scanning?


Solution

  • The document on Honeywell N5600 is as follows.
    N5600 OEM 2D Imager Data Sheet
    N56XX Decoded Engine User's Guide

    You need a Windows PC that can connect to the Internet, but there is a tool called EZConfig-Scanning that configures and maintains the scanner.
    EZConfig Device Management Data Sheet

    Perhaps the recognition device /dev/hidraw1 is probably because the scanner is set to USB HID Bar Code Scanner mode.

    If you change the setting to USB Keyboard(PC/Mac), it is always readable and the barcode you read will be notified as keyboard input.

    By changing the setting to USB Serial, reading start/stop can be controlled by SerialPort command transmission. The barcode read is notified by receiving data from SerialPort.