honeywell-config/README.md

126 lines
3.4 KiB
Markdown
Raw Normal View History

2024-11-25 23:10:11 +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.
2024-11-25 23:10:11 +01:00
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.
2024-11-25 23:10:11 +01:00
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:
```
usage: ./honeywell-config [-v vendor] [-p product] [-o] [-r] [-d] command1 [command2 [... commandN]]
-v vendor USB vendor ID of the barcode scanner
-p product USB product ID of the barcode scanner
-o Print response on one line, rather than one token per line
-r Reset device after configuration
-d Debug mode (more verbose output)
2024-11-25 23:10:11 +01:00
```
If no vendor ID or product ID is provided, the following set of IDs is tried:
- `0c2e:0b01` (Honeywell 1300G, USB Kkeyboard mode PC)
- `0c2e:0b02` (Honeywell 1300G, USB Keyboard Apple)
- `0c2e:0b07` (Honeywell 1300G, USB HID POS mode)
2024-11-25 23:10:11 +01:00
USB serial mode (`0c2e:0b0a`) is skipped because USB configuration does not seem to work for it (and it isn't found by EZconfig either).
For the actual configuration commands, please refer to your scanner's manual. Here are some examples.
2024-11-25 23:10:11 +01:00
### Factory Reset
```
$ ./honeywell-config DEFOVR. DEFALT.
DEFOVR.
DEFALT.
2024-11-25 23:10:11 +01:00
```
### Switch Operation Mode
USBHID:
```
$ ./honeywell-config PAP131.
PAP131.
2024-11-25 23:10:11 +01:00
```
Keyboard (PC):
2024-11-25 23:10:11 +01:00
```
$ ./honeywell-config PAP124.
PAP124.
```
Keyboard (Apple):
```
$ ./honeywell-config PAP125.
PAP124.
2024-11-25 23:10:11 +01:00
```
Please note that when switching modes, the scanner restarts on its own, so some error messages are to be expected.
2024-11-25 23:10:11 +01:00
### 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 PREBK29946434B41464420.
PREBK29946434B41464420.
2024-11-25 23:10:11 +01:00
```
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.` (command)
1. `K9K.` (argument "99" = all code types)
1. `K9K.`
1. `K4K.` (ASCII hex 46)
2024-11-25 23:10:11 +01:00
1. `K6K.`
1. ...
1. `K2K.` (ASCII hex 20)
2024-11-25 23:10:11 +01:00
1. `K0K.`
1. `MNUSAV.` (finish and save)
2024-11-25 23:10:11 +01:00
On the USB config interface, all of that goes into a single string instead.
### Query Current Beeper Settings
```
$ ./honeywell-config 'BEP?.'
BEPFQ12550,FQ2100,RPT1,ERR1,BEP1,BIP0,LVL0,EXZ,GRX,EXE,DFT,LED1.
```
### List all Settings and Their Possible Values
```
$ ./honeywell-config '*.'
BEPFQ1100-5000.
BEPFQ2100-5000.
...
AXXMOD0|1|2|3|4|5|6|7|8|9|10.
```
## USB Device Access
Please note that this tool normally needs to run as root. Alternatively, you can set up a udev rule to grant access to the USB device to non-root users.
An example for this can be found in the file `99-honeywell.rules`.
Put this file into `/etc/udev/rules.d`, and run `sudo udevadm control --reload` to load the new ruleset.
Once you replug the scanner, you should have access to it as a regular user.
2024-11-25 23:10:11 +01:00
## License
MIT License