keyboardio / Kaleidoscope

Firmware for Keyboardio keyboards and other keyboards with AVR or ARM MCUs.
http://keyboard.io
GNU General Public License v3.0
744 stars 258 forks source link

Ergodox ez prog button #820

Open Kethku opened 4 years ago

Kethku commented 4 years ago

in the qmk firmware I think I saw that there was a way to bind a key which would set the keyboard into a mode which would accept a new firmware. On my model 01 this was hardwired to the prog key, but I'm wondering if there is an equivalent way to configure the ergodox

obra commented 4 years ago

Kaleidoscope doesn't need the button - it uses the serial port to reboot to the bootloader. On the Model 01, what we have is a safety lockout inside the bootloader: If that key isn't held the bootloader won't let you flash the keyboard. ᐧ

On Wed, Mar 4, 2020 at 12:02 PM Keith Simmons notifications@github.com wrote:

in the qmk firmware I think I saw that there was a way to bind a key which would set the keyboard into a mode which would accept a new firmware. On my model 01 this was hardwired to the prog key, but I'm wondering if there is an equivalent way to configure the ergodox

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/keyboardio/Kaleidoscope/issues/820?email_source=notifications&email_token=AAALC2F2CCVI2SQNQ5WNBALRF2XUHA5CNFSM4LBSBX42YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4ISQ446A, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALC2HQULY43BPTGA5AWTTRF2XUHANCNFSM4LBSBX4Q .

Kethku commented 4 years ago

Weird. Only way I've been able to upload a firmware is by pressing a paperclip button in the top right hand side of the keyboard. This lets the teensy uploader to actually send the hex file over.

obra commented 4 years ago

Oh. I forgot that it's running the Teensy's bootloader.

@algernon may have more input here ᐧ

On Wed, Mar 4, 2020 at 12:12 PM Keith Simmons notifications@github.com wrote:

Weird. Only way I've been able to upload a firmware is by pressing a paperclip button in the top right hand side of the keyboard. This lets the teensy uploader to actually send the hex file over.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/keyboardio/Kaleidoscope/issues/820?email_source=notifications&email_token=AAALC2FSN3MJAE4I4OTK3XLRF2YZBA5CNFSM4LBSBX42YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEN2BDWY#issuecomment-594809307, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALC2FKMAUNPMRGW3OW5X3RF2YZBANCNFSM4LBSBX4Q .

algernon commented 4 years ago

Hmm... I thought we had a macro in the ErgoDox EZ firmware shipped with Chrysalis that'd reset to bootloader mode, but we don't. I'll fix that soon!

Meanwhile, if you compile your own firmware, and add a macro that calls Kaleidoscope.device().rebootBootloader() on activation, and place that on a key somewhere (any layer will work), then you can activate that key to enter programmable mode, without having to use a paperclip.

Kethku commented 4 years ago

Very cool! Thanks so much!

Kethku commented 4 years ago

Quick question: I can't seem to get that line to compile. Is there something specific I need to import at the top of my ino file? It fails with "kaleidoscope::Kaleidoscope_ has no member named device".

algernon commented 4 years ago

Oh, you might be running an older version Kaleidoscope then. Try ErgoDox.resetDevice() instead.

Kethku commented 4 years ago

I've updated my sources and attempted the new line, but it seems like that doesn't trigger the teensy loader to install new firmware like the paperclip button does. Do you have any other ideas for how to emulate such a system? I know its possible with the qmk firmware, but I would really rather not swap to that given that I have a number of custom plugins written for kaleidoscope that I'd miss dearly.