N0ciple / gbopyrator

A command line tool and library for the GB Operator
17 stars 1 forks source link

Different vendor and product IDs #1

Closed akouzoukos closed 1 year ago

akouzoukos commented 1 year ago

When running gbopyrator I get an "Unable to find GB Operator device" error. Poking around the source code, I see that gbopyrator tries to find the reader/device by the vendor and product IDs 0x1d50 and 0x6018 respectively. But when I run lsusb I see that my device has the IDs 0x16d0 and 0x123d.

N0ciple commented 1 year ago

With the release of version 1.0.0 of their software, Epilogue apparently also released a firmware update for the GB Operator. Maybe they changed their product and vendor ID, or yours has different IDs.

Have you recently updated your firmware? Or does the Epilogue software notify you of an update when you connect your GB Operator?

N0ciple commented 1 year ago

The changelog says:

We've reengineered the device communication backend from the ground up. The result is a more robust system that now supports communication with multiple devices and is compatible with the SN Operator.

It looks like I'll have to do the reverse engineering for the new protocol 🥲️

akouzoukos commented 1 year ago

I should be on the latest software and firmware. I don't see any notifications on the Epilogue Software (here's a screenshot from the "About" section)

image

N0ciple commented 1 year ago

Thanks 👍

I'll update mine (since I assume that is what most people will do anyway) and compare it with the info you provided. Chances are that the new protocol is not so different 🤷‍♂️

Out of curiosity, on which OS are you running Epilogue's software?

I won't be able to look at this issue thoroughly tonight, but I'll sure do so tomorrow !

akouzoukos commented 1 year ago

Great! Hope the changes aren't too big.

I swap between linux and windows daily, so I use it on both. I actually booted into windows to check for updates since the linux version sometimes gives me trouble (like hanging when trying to install firmware updates)

N0ciple commented 1 year ago

I've updated GB Opyrator to v0.5, now everything should work !

For the record, I added the logic to search for both the old and new vendor/product IDs and warn the user if the old firmware is detected. I've had a very quick look at the protocol. It seems that some message IDs changed but I was not relying on them anyway so everything is still working (for now 🤞).

Don't forget to update the udev rules on Linux since the prod and vendor IDs changed :

# add udev rules for the new IDs
echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="16d0", ATTR{idProduct}=="123d", MODE="0666", GROUP="plugdev"' | sudo tee -a /etc/udev/rules.d/98-epilogue.rules

# update udev rules without reboot
sudo udevadm control --reload-rules && sudo udevadm trigger

Feel free to reopen if needed !