kiibohd / controller

Kiibohd Controller
GNU General Public License v3.0
807 stars 270 forks source link

Infinity Ergodox not completing/reseting after flash #211

Closed p-callaghan closed 7 years ago

p-callaghan commented 7 years ago

Hello,

I have downloaded and compiled the newest version. When I flash to the keyboard, the keyboard stays in flash mode and doesn't reset.

Even if I pull the cable and plug it back in, it stays in flash mode.

If I flash my previous version of the binary, from March it works as expected. I notice that the new compile is 55K vs the 45K. I did find a post stating that this behavior can occur if the binary is larger than the chips memory size, but the chip specs seem to list the memory size as 256K.

Any troubleshooting advice would be appreciated.

Output of the kii-dfu:

Found DFU: [1c11:b007] ver=0000, devnum=22, cfg=1, intf=0, alt=0, name="Kiibohd DFU", serial="mk20dx256vlh7"

* New Code - Sept 11, 2017 ** U:\shared\Bins>dfu-util-static.exe -v -R -D Sep_11_2017_08h14-R-kiibohd.dfu.bin dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2014 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to dfu-util@lists.gnumonks.org

DFU suffix version 100 Match vendor ID from file: 1c11 Match product ID from file: b007 Opening DFU capable USB device... ID 1c11:b007 Run-time device DFU version 0110 Claiming USB DFU Interface... Setting Alternate Setting #0 ... Determining device status: state = dfuIDLE, status = 0 dfuIDLE, continuing DFU mode device DFU version 0110 Device returned transfer size 1024 Copying data from PC to DFU device Download [=========================] 100% 57348 bytes Download done. Sent a total of 57348 bytes state(7) = dfuMANIFEST, status(0) = No error condition is present unable to read DFU status after completion can't detach Resetting USB to switch back to runtime mode

* Working code from March 6, 2017 ** U:\shared\Bins>dfu-util-static.exe -v -R -D Mar_06_2017_09h15-R-kiibohd.dfu.working.bin dfu-util 0.8

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc. Copyright 2010-2014 Tormod Volden and Stefan Schmidt This program is Free Software and has ABSOLUTELY NO WARRANTY Please report bugs to dfu-util@lists.gnumonks.org

DFU suffix version 100 Match vendor ID from file: 1c11 Match product ID from file: b007 Opening DFU capable USB device... ID 1c11:b007 Run-time device DFU version 0110 Claiming USB DFU Interface... Setting Alternate Setting #0 ... Determining device status: state = dfuIDLE, status = 0 dfuIDLE, continuing DFU mode device DFU version 0110 Device returned transfer size 1024 Copying data from PC to DFU device Download [=========================] 100% 45664 bytes Download done. Sent a total of 45664 bytes state(7) = dfuMANIFEST, status(0) = No error condition is present unable to read DFU status after completion can't detach Resetting USB to switch back to runtime mode

jceaser commented 7 years ago

Sometimes I have had to clear the memory on the processor and start over before I could get any new code onto it. Is this something you have tried?

haata commented 7 years ago

Hmm, would you mind trying again @p-callaghan. I've pushed a bunch of fixes so things should be working again.

p-callaghan commented 7 years ago

The problem persists with the newest build. The flash completes but the Ergodox doesn’t reset.

Also, probably unrelated, I am getting the following errors around the Function keys when I include both my layout and the mdergo1Overlay layout. If I remove the mdergo1Overlay, I can compile fine.

KeyError: ':0 HID(USBCode)"KEY_FUN6"'

Not working: DefaultMap="callaghp mdergo1Overlay lcdFuncMap"

Working: DefaultMap=”callaghp lcdFuncMap"

Thanks, Peter

From: Jacob Alexander [mailto:notifications@github.com] Sent: Tuesday, October 03, 2017 12:40 AM To: kiibohd/controller Cc: p-callaghan; Mention Subject: [External] Re: [kiibohd/controller] Infinity Ergodox not completing/reseting after flash (#211)

External Sender - Use Caution with Links and Attachments

Hmm, would you mind trying again @p-callaghanhttps://github.com/p-callaghan. I've pushed a bunch of fixes so things should be working again.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/kiibohd/controller/issues/211#issuecomment-333753646, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AQRzYtsIy5ot4-UbI9FLmqhjZHsSwX2_ks5soda7gaJpZM4PTSgl.


IMPORTANT NOTICE: This message is intended for the individual or entity to which it is addressed and may contain information that is privileged, confidential, and/or exempt from disclosure under applicable law. If you are not the intended recipient, you are hereby notified that copying, forwarding or other dissemination or distribution of this message is prohibited and that taking any action in reliance on the content of this message is to be avoided. Should you receive this e-mail in error, please notify the sender immediately via e-mail or call (403) 699-4000 and delete this message from your system. Thank you.


haata commented 7 years ago

@p-callaghan Would you mind providing your callaghp kll file? Likely a parsing bug somewhere.

Also, when did you receive your Infinity Ergodox? I'm trying to figure out which bootloader you have. If you're on Linux (and possible macOS), it'd be nice to see the lsusb output of the bootloader. For example:

[master]: lsusb -d 1c11: -v                                          [~/Source/controller/Macro/PartialMap](hyatt@Mas12:pts/2)

Bus 003 Device 036: ID 1c11:b007
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x1c11
  idProduct          0xb007
  bcdDevice            2.80
  iManufacturer           1 Kiibohd
  iProduct                2 Infinity_Ergodox
  iSerial                 3 A421000070E1000B002B401831374E45 - mk20dx256vlh7
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           27
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          5 qq
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass       254 Application Specific Interface
      bInterfaceSubClass      1 Device Firmware Update
      bInterfaceProtocol      2
      iInterface              4 Kiibohd DFU
      Device Firmware Upgrade Interface Descriptor:
        bLength                             9
        bDescriptorType                    33
        bmAttributes                       11
          Will Detach
          Manifestation Intolerant
          Upload Supported
          Download Supported
        wDetachTimeout                      0 milliseconds
        wTransferSize                    1024 bytes
        bcdDFUVersion                   1.01
Device Status:     0x0000
  (Bus Powered)

Yours will look a little bit different than that, just make sure you're in bootloader/flash mode.

p-callaghan commented 7 years ago

I have the Ergodox purchased through Massdrop in Mar, 2015.

I am building the firmware with RHEL6 running on Virtualbox.

Here is the DFU identification. Found DFU: [1c11:b007] ver=0000, devnum=12, cfg=1, intf=0, alt=0, name="Kiibohd DFU", serial="mk20dx256vlh7"

I did have to play around with my layout to get it working with version 0.5 from 0.3 that I was running, but it compiled with the previous version of 0.5.

Thanks, Peter

/shared/layout/callaghp.kll Author = "HaaTa (Jacob Alexander) 2015"; Base = "Blank"; Date = "2015-09-12"; Generator = "KIICONF 0.2"; KLL = "0.5"; Layout = "Default"; Name = "MDErgo1"; Version = "0.1";

U"5" : U"5"; U"4" : U"4"; U"3" : U"3"; U"2" : U"2"; U"1" : U"1"; U"EQUALS" : U"BACKTICK"; U"Function1" : U"Function2"; U"T" : U"T"; U"R" : U"R"; U"E" : U"E"; U"W" : U"W"; U"Q" : U"Q"; U"BACKSLASH" : U"TAB"; U"G" : U"G"; U"F" : U"F"; U"D" : U"D"; U"S" : U"S"; U"A" : U"A"; U"TAB" : '|'; U"LALT" : U"PRINTSCREEN"; U"LCTRL" : U"LGUI"; U"Function2" : U"Function1"; U"B" : U"B"; U"V" : U"V"; U"C" : U"C"; U"X" : U"X"; U"Z" : U"Z"; U"LSHIFT" : U"LSHIFT"; U"HOME" : U"HOME"; U"END" : U"ENTER"; U"DELETE" : U"BACKSPACE"; U"BACKSPACE" : U"SPACE"; U"Function5" : U"ESCAPE"; U"Function4" : '+'; U"Function3" : U"\"; U"BACKTICK" : U"RALT"; U"LGUI" : U"LCTRL"; U"Function6" : layerLock( 1 ); U"6" : U"6"; U"7" : U"7"; U"8" : U"8"; U"9" : U"9"; U"0" : U"0"; U"MINUS" : U"MINUS"; U"LBRACE" : U"LBRACE"; U"Y" : U"Y"; U"U" : U"U"; U"I" : U"I"; U"O" : U"O"; U"P" : U"P"; U"RBRACE" : U"RBRACE"; U"H" : U"H"; U"J" : U"J"; U"K" : U"K"; U"L" : U"L"; U"SEMICOLON" : U"SEMICOLON"; U"QUOTE" : U"QUOTE"; U"RALT" : U"PAGEUP"; U"RCTRL" : U"PAGEDOWN"; U"Function7" : U"Function1"; U"N" : U"N"; U"M" : U"M"; U"COMMA" : U"COMMA"; U"PERIOD" : U"PERIOD"; U"SLASH" : U"SLASH"; U"RSHIFT" : U"RSHIFT"; U"PAGEUP" : U"END"; U"PAGEDOWN" : U"ENTER"; U"ENTER" : U"BACKSPACE"; U"SPACE" : U"SPACE"; U"RIGHT" : U"RIGHT"; U"RGUI" : U"DELETE"; U"LGUI" + U"1" : layerLock( 1 ) U"LGUI" + U"2" : layerLock( 2 ); U"LGUI" + U"RGUI" : U"LCTRL" + U"RBRACE";

From: Jacob Alexander [mailto:notifications@github.com] Sent: Tuesday, October 03, 2017 10:29 AM To: kiibohd/controller Cc: p-callaghan; Mention Subject: [External] Re: [kiibohd/controller] Infinity Ergodox not completing/reseting after flash (#211)

External Sender - Use Caution with Links and Attachments

@p-callaghanhttps://github.com/p-callaghan Would you mind providing your callaghp kll file? Likely a parsing bug somewhere.

Also, when did you receive your Infinity Ergodox? I'm trying to figure out which bootloader you have. If you're on Linux (and possible macOS), it'd be nice to see the lsusb output of the bootloader. For example:

[master]: lsusb -d 1c11: -v ~/Source/controller/Macro/PartialMap

Bus 003 Device 036: ID 1c11:b007

Device Descriptor:

bLength 18

bDescriptorType 1

bcdUSB 2.00

bDeviceClass 0

bDeviceSubClass 0

bDeviceProtocol 0

bMaxPacketSize0 64

idVendor 0x1c11

idProduct 0xb007

bcdDevice 2.80

iManufacturer 1 Kiibohd

iProduct 2 Infinity_Ergodox

iSerial 3 A421000070E1000B002B401831374E45 - mk20dx256vlh7

bNumConfigurations 1

Configuration Descriptor:

bLength                 9

bDescriptorType         2

wTotalLength           27

bNumInterfaces          1

bConfigurationValue     1

iConfiguration          5 qq

bmAttributes         0x80

  (Bus Powered)

MaxPower              100mA

Interface Descriptor:

  bLength                 9

  bDescriptorType         4

  bInterfaceNumber        0

  bAlternateSetting       0

  bNumEndpoints           0

  bInterfaceClass       254 Application Specific Interface

  bInterfaceSubClass      1 Device Firmware Update

  bInterfaceProtocol      2

  iInterface              4 Kiibohd DFU

  Device Firmware Upgrade Interface Descriptor:

    bLength                             9

    bDescriptorType                    33

    bmAttributes                       11

      Will Detach

      Manifestation Intolerant

      Upload Supported

      Download Supported

    wDetachTimeout                      0 milliseconds

    wTransferSize                    1024 bytes

    bcdDFUVersion                   1.01

Device Status: 0x0000

(Bus Powered)

Yours will look a little bit different than that, just make sure you're in bootloader/flash mode.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/kiibohd/controller/issues/211#issuecomment-333897431, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AQRzYrYZJDNZ7Vgf5m6I8fny71LoJ8boks5somDjgaJpZM4PTSgl.


IMPORTANT NOTICE: This message is intended for the individual or entity to which it is addressed and may contain information that is privileged, confidential, and/or exempt from disclosure under applicable law. If you are not the intended recipient, you are hereby notified that copying, forwarding or other dissemination or distribution of this message is prohibited and that taking any action in reliance on the content of this message is to be avoided. Should you receive this e-mail in error, please notify the sender immediately via e-mail or call (403) 699-4000 and delete this message from your system. Thank you.


borgel commented 7 years ago

I'm seeing similar symptoms with an IC601.1a. I had to go back to c05ac8d4710b195f451f93f076140ccb8fbe23a8 (last commit before KType merge) before I got a bootloader that would reset and run (without immediately faulting and returning to DFU). I have a mk20dx128vlf5.

haata commented 7 years ago

@p-callaghan I think the KEY_FUN6 issue should be fixed with https://github.com/kiibohd/kll/commit/5002a268e8504b6ddc926e37e4277a2d4b0c5049

p-callaghan commented 7 years ago

I have just confirmed that compilation works properly now.

I have also figured out the issue with flashing the Ergodox and it not resetting.

I have an script that searches for *.dfu.bin and moves it to a directory where I can flash it to my Ergodox.

It looks like my script was picking up the new kiibohd.secure.dfu.bin file and not the kiibohd.dfu.bin file.

The flash works properly with the kiibohd.dfu.bin file.

This issue can be closed.

Thanks, Peter

From: Jacob Alexander [mailto:notifications@github.com] Sent: Thursday, November 02, 2017 12:18 AM To: kiibohd/controller Cc: p-callaghan; Mention Subject: [External] Re: [kiibohd/controller] Infinity Ergodox not completing/reseting after flash (#211)

External Sender - Use Caution with Links and Attachments

@p-callaghanhttps://github.com/p-callaghan I think the KEY_FUN6 issue should be fixed with kiibohd/kll@5002a26https://github.com/kiibohd/kll/commit/5002a268e8504b6ddc926e37e4277a2d4b0c5049

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHubhttps://github.com/kiibohd/controller/issues/211#issuecomment-341327969, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AQRzYtddKHi6GlQsuCMnZkTmd7sUCNGUks5syV57gaJpZM4PTSgl.


IMPORTANT NOTICE: This message is intended for the individual or entity to which it is addressed and may contain information that is privileged, confidential, and/or exempt from disclosure under applicable law. If you are not the intended recipient, you are hereby notified that copying, forwarding or other dissemination or distribution of this message is prohibited and that taking any action in reliance on the content of this message is to be avoided. Should you receive this e-mail in error, please notify the sender immediately via e-mail or call (403) 699-4000 and delete this message from your system. Thank you.


haata commented 7 years ago

Awesome! Yeah, the kiibohd.secure.dfu.bin requires the updated bootloader to flash correctly.

mseidl commented 6 years ago

I just tried to update the firmware on my infinity yesterday, and I flashed the just the bin(not secure), but now my keyboard is stuck in this program mode, and I cannot type anything.

I didnt' change any klls or do anything else besides check out and compile.

jbondeson commented 6 years ago

@mseidl Did you update the kll repository (a subdirectory) as well?

mseidl commented 6 years ago

@jbondeson Sorry forget this comment. I did not update that directory. But, I ended up rebuilding using a script that I was unaware of. And I added a couple of flags to dfu-util and it seemed like it flashed the same, but for some reason it worked. I used dfu-util -v -R -D file.bin and it worked.