A Linux tool for configuring Honeywell barcode scanners via USB.
Find a file
2024-11-25 23:16:49 +01:00
pcap feat: first version 2024-11-25 23:10:11 +01:00
.gitignore feat: first version 2024-11-25 23:10:11 +01:00
honeywell-config.c feat: first version 2024-11-25 23:10:11 +01:00
LICENSE feat: first version 2024-11-25 23:10:11 +01:00
Makefile feat: first version 2024-11-25 23:10:11 +01:00
README.md docs: add hint to run the tool as root 2024-11-25 23:16:49 +01:00

Honeywell Barcode Reader Config Tool

What?

A Linux tool for configuring Honeywell barcode scanners via USB.

Why?

I had obtained a used Honeywell Hyperion 1300G scanner, however it was locked down and secured with a password, and the password was unknown. There is a Windows-only configuration tool from Honeywell called "EZconfig" with which the barcode scanners can be configured via USB, even when locked down. To not rely on a Windows VM for configuring the scanner, I sniffed the USB traffic using Wireshark and extracted the relevant messages, and wrapped them in this tool.

Usage

First of all, compile the program using make. It depends only on libusb-1.0.

The configuration strings need to be provided as command line arguments. You can provide multiple:

./honeywell-config <string1> [... <stringN>]

In general, please refer to your scanner's manual for configuration strings.

Here are some examples. Please not that this tool most likely needs to run as root.

Factory Reset

./honeywell-config DEFOVR. DEFALT.

Switch Operation Mode

USBHID:

./honeywell-config PAP131.

Keyboard:

./honeywell-config PAP124.

Add Prefix to Output

The following adds the string FCKAFD (ASCII hex 46 43 4B 41 46 44 20) in front of every scanned barcode:

./honeywell-config PREBK246434B41464420.

Note how this behaves differently from if you were to configure the scanner in-band via scanning config barcodes. There you would scan a lot of individual codes from the manual:

  1. PREBK2.
  2. K4K.
  3. K6K.
  4. ...
  5. K2K.
  6. K0K.
  7. MNUSAV.

On the USB config interface, all of that goes into a single string instead.

Adapting for Other Scanners

The tool currently has hardcoded USB vendor/product IDs for a Honeywell Hyperion 1300G in Keyboard or USBHID modes. If you have a different Honeywell scanner, and the tool doesn't find it, you can try making this tool work for it:

  1. Obtain the USB vendor and product IDs for your scanner, e.g. through lsusb.

  2. Replace the VID/PID in the following line of code in honeywell-config.c:

    libusb_device_handle *devh = libusb_open_device_with_vid_pid(ctx, 0x0c2e, 0x0b07);
    
  3. Recompile the tool with make clean; make

License

MIT License