kriomant / ch57x-keyboard-tool

Utility for programming ch57x small keyboard
MIT License
527 stars 65 forks source link

Error: single endpoint is expected #33

Open gtohlms opened 1 year ago

gtohlms commented 1 year ago

Running the upload command results in this error

ch57x-keyboard-tool upload < gto-mapping.yaml Error: single endpoint is expected

blakwolf88 commented 1 year ago

I'm getting the same error. What does it mean?

HidetoKoudanshi commented 1 year ago

I'm getting the same error as well.

xcruel commented 11 months ago

bump. and im using the ch552g that has no layers or led lsubs -v gives the following devices:

also:

cruel@cruel-noti:~/.cargo/bin$ ./ch57x-keyboard-tool --vendor-id 1189 --product-id 8890 upload < masodik.yaml 
Error: find USB device

Caused by:
    CH57x keyboard device not found. Use --vendor-id and --product-id to override settings.
bluecursor commented 11 months ago

Any Help on this yet?

omejia10 commented 9 months ago

For a second I thought the problem was plugging the device to a usb hub. however conecting directly to a usb on the motherboard still gives this issue.

robonxt commented 9 months ago

Fix for Windows users:

  1. Make sure you use Command Prompt, not Powershell.
  2. Make sure to install the USBdk driver (it's in the description)

Gonna guess that Linux users is missing a driver somewhere. No idea since I haven't programmed the keyboard on Linux.

joshrosario310 commented 9 months ago

I am having the same error, using CMD and USBdk is installed

bluecursor commented 9 months ago

My device is:

SayoDevice 2x6F RGB:

          Product ID: 0x0004
          Vendor ID: 0x8089
          Version: 0.5e
          Serial Number: 03009F5A0A7B5450
          Speed: Up to 12 Mb/s
          Manufacturer: SayoDevice
          Location ID: 0x14220000 / 12
          Current Available (mA): 500
          Current Required (mA): 100
          Extra Operating Current (mA): 0

| +-o SayoDevice 2x6F RGB@14220000 <class AppleUSBDevice, id 0x100000a11, registered, matched, active, busy 0 (1 ms), retain 13> | { | "sessionID" = 3278391397444 | "idProduct" = 4 | "iManufacturer" = 1 | "bDeviceClass" = 0 | "bMaxPacketSize0" = 64 | "bcdDevice" = 94 | "iProduct" = 2 | "iSerialNumber" = 3 | "bNumConfigurations" = 1 | "Bus Power Available" = 250 | "USB Address" = 12 | "Built-In" = No | "locationID" = 337772544 | "bDeviceSubClass" = 0 | "bcdUSB" = 272 | "USB Product Name" = "SayoDevice 2x6F RGB" | "PortNum" = 2 | "non-removable" = "no" | "kUSBSerialNumberString" = "03009F5A0A7B5450" | "bDeviceProtocol" = 0 | "AppleUSBAlternateServiceRegistryID" = 4294969871 | "IOCFPlugInTypes" = {"9dc7b780-9ec0-11d4-a54f-000a27052861"="IOUSBHostFamily.kext/Contents/PlugIns/IOUSBLib.bundle"} | "IOPowerManagement" = {"DevicePowerState"=0,"CurrentPowerState"=3,"CapabilityFlags"=65536,"MaxPowerState"=4,"DriverPowerState"=3} | "Device Speed" = 1 | "USB Vendor Name" = "SayoDevice" | "idVendor" = 32905 | "kUSBCurrentConfiguration" = 1 | "IOGeneralInterest" = "IOCommand is not serializable" | "kUSBProductString" = "SayoDevice 2x6F RGB" | "USB Serial Number" = "03009F5A0A7B5450" | "kUSBVendorString" = "SayoDevice" | "IOClassNameOverride" = "IOUSBDevice" | }

config is valid 👌

$mymac@Francescos-MacBook-Pro ch57x-keyboard-tool-universal-apple-darwin % ./ch57x-keyboard-tool upload < /Users/mymac/Downloads/ch57x-keyboard-tool-universal-apple-darwin/untitled.yaml

Error: find USB device

Caused by: CH57x keyboard device not found. Use --vendor-id and --product-id to override settings.

$mymac@Francescos-MacBook-Pro ch57x-keyboard-tool-universal-apple-darwin % ./ch57x-keyboard-tool --vendor-id 32905 --product-id 4 upload < /Users/mymac/Downloads/ch57x-keyboard-tool-universal-apple-darwin/untitled.yaml

Error: single endpoint is expected

untitled.yaml.zip

iwishiknewtoprogram commented 8 months ago

Hello everyone,

Im getting the same error as bluecursor

/users/xxxxxxx/ch57x-keyboard-tool --vendor-id 0x1189 --product-id 0x8890 upload < example-mapping.yaml Error: single endpoint is expected

Has anyone figured this out?

kriomant commented 8 months ago

Please try version 1.2.3 It won't fix your issue, but will print additional information which may be useful for troubleshooting.

iwishiknewtoprogram commented 8 months ago

Please try version 1.2.3 It won't fix your issue, but will print additional information which may be useful for troubleshooting.

Thank you! This is what i get now:

/users/xxxxxx/ch57x-keyboard-tool --vendor-id 0x1189 --product-id 0x8890 upload < example-mapping.yaml Error: single interrupt endpoint is expected, got: EndpointDescriptor { bLength: 7, bDescriptorType: 5, bEndpointAddress: 130, bmAttributes: 3, wMaxPacketSize: 8, bInterval: 10, } EndpointDescriptor { bLength: 7, bDescriptorType: 5, bEndpointAddress: 2, bmAttributes: 3, wMaxPacketSize: 8, bInterval: 10, }

kriomant commented 8 months ago

I've added --endpoint-address option in 1.2.4. Try different addresses and report if any will work.

iwishiknewtoprogram commented 8 months ago

I've added --endpoint-address option in 1.2.4. Try different addresses and report if any will work.

Hey i really appreciate taking the time to deal with this, I'm sure you have more important things to do.

So now that i can select the end point the command finishes without returning any errors.But the macropad is unresponsive after receiving the program, im assuming its because its missing one button in the first row.

My macropad has 3 rows of buttons BUT the first row has 4 buttons and the second and third row have 5 buttons. Image attached. https://ibb.co/j6y8J5Q

â–„ â–„ â–„ â–„ O â–„ â–„ â–„ â–„ â–„ O â–„ â–„ â–„ â–„ â–„ O

I did assign a fifth button for the first row just so the .yaml could be validated. Is there any way you could make it specify how many buttons each row has.

Thanks for you time.

bluecursor commented 8 months ago

Error: single interrupt endpoint is expected, got: EndpointDescriptor { bLength: 7, bDescriptorType: 5, bEndpointAddress: 130, bmAttributes: 3, wMaxPacketSize: 64, bInterval: 1, } EndpointDescriptor { bLength: 7, bDescriptorType: 5, bEndpointAddress: 3, bmAttributes: 3, wMaxPacketSize: 64, bInterval: 1, }

You may try to choose one using --endpoint-address mymac@Francescos-MacBook-Pro ch57x-keyboard-tool-universal-apple-darwin % sh runme.sh Error: claim interface

Caused by: Access denied (insufficient permissions)

kriomant commented 8 months ago

Since you use shell script you didn't show, it's not clear whether you tried both endpoints and whether you used sudo or not.

bluecursor commented 8 months ago

I tried with/without sudo and both endpoints (130/3) separately and they all gave errors.

On Feb 17, 2024, at 5:14 PM, Mikhail Trishchenkov @.***> wrote:

Since you use shell script you didn't show, it's not clear whether you tried both endpoints and whether you used sudo or not.

— Reply to this email directly, view it on GitHubhttps://github.com/kriomant/ch57x-keyboard-tool/issues/33#issuecomment-1950433395, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AHQBMGVGAGZBQMUVNJ3GIY3YUETWHAVCNFSM6AAAAAA4SL5CE6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNJQGQZTGMZZGU. You are receiving this because you commented.Message ID: @.***>