blahlicus / arbites-family

GUI keybinding editor for animus-family
Other
29 stars 16 forks source link

Switching to QMK #32

Open nitsujri opened 2 years ago

nitsujri commented 2 years ago

Disclaimer

I mean absolutely no disrespect to @blahlicus for what's been built over the years. I absolutely love my Diverge 3 and it continues to be my daily driver. Please close/delete this if it it does.

Switch to QMK

As other open threads have recommended, QMK has direct support for Diverge 3, Diverge TM2. Likely means Diverge 4 is supported but I'm simply guessing.

I made the jump today and wanted to document for others as it's a little confusing because of the Pro Micros.

Steps

  1. Visit https://config.qmk.fm (Diverge3: https://config.qmk.fm/#/diverge3/LAYOUT)
    • Select Keyboard, Layout
    • Diverge 3 only has 1 layout, LAYOUT.
    • Give your keymap a name
  2. Add a Reset button (very helpful for later)
    • Switch Quantum Tab
    • Click a random key on Keymap
    • Click Reset to assign this button to that position on the keyboard.
  3. Click Compile (top right)
    • Wait for Spinning potato to finish
  4. Click Firmware to download
  5. Download and run QMK Toolbox
    • OSX can simply download and open
    • Windows needs to download & install drivers (see any youtube video)
  6. Load your .hex file in QMK Toolbox
  7. Reset your keyboard - THIS IS KEY

    • Unplug your device
    • Reset Button/Pins
      • If you have a physical button, press & hold this.
      • Worst case (i.e. Diverge 3), jumper the RST & GND pins together w/ some metal.
    • Plug it in (w/ reset held)
    • Wait 5-7 seconds
    • "Let go" of reset
    • RESET AGAIN (Why twice? I don't know, but flashes failed until I did.)
    • Your QMK Tookbox console should look like this:

      QMK_Toolbox
      1. Press the Flash button.
        • Before it disconnects again. Otherwise you'll need to reset/jumper-the-pin again.
        • Good Flash looks like this: QMK_Toolbox

      If it doesn't, you'll need to start the reset process again.

After you flash, you now have a Reset key from earlier! No more jumpering, pressing a physical reset button or resetting twice!! 👍 🥳

Notes

Best of luck! Hope your love for the keyboards⌨️ @blahlicus built lives on!

benji-york commented 2 years ago

Thank you for this great write up!

leothelocust commented 2 years ago

And for the maybe 1 other person that uses a diverge 3 and also uses the "workman" layout.... I created a layout for you in the QMK repo :D you're welcome lol

ab12gu commented 2 years ago

Hey Justin, spent a few hours trying to get the original to work with diverge 4 before running into your fix :). I was wondering if there was a way to notify ppl to refer to your tip? via readme? I guess not since Blahicus is off the grid. Thanks SOOOO MUCH!

leothelocust commented 2 years ago

I can update the readme, great idea!

ab12gu commented 2 years ago

Project Update #33

Hey @leothelocust, I still can't get the diverge to flash. I created a hex file via QMK Toolbox based on instructions above. Downloaded the QMK toolbox desktop (on both mac and windows) and an unable to flash (flash button remains greyed out. Nor does QMK recognize my device. image Any advice? I did the jumper cables for reset on the back of both keyboard sides several times.

leothelocust commented 2 years ago

@ab12gu when you jump the reset/gnd pins does the qmk toolbox show your device in yellow?

leothelocust commented 2 years ago

Also, @ab12gu are you using a USB hub? QMK Toolbox require a direct connection to your keyboard IIRC.

leothelocust commented 2 years ago

@nitsujri Do you recall having to first install animus firmware before switching to QMK? I seem to remember the very first QMK flash requiring something first... but I can't remember what exactly.

ab12gu commented 2 years ago

@leothelocust, I changed to direct connection, still no progress. Post jump, there is no update on the console display for QMK toolbox (no device display in yellow 👎🏽 ) I have the diverge 4, and actually there is a reset button on both sides that I tried as well. Post reset, the device auto-uploads some default computer keymapping but the keys are obviously not really usable as they aren't in my preferred place :(.

ab12gu commented 2 years ago

There is never any change to the QMK toolbox, only when you change local file.... :(

nitsujri commented 2 years ago

Questions:

  1. Does the chip already have Animus firmware loaded?
  2. Does it work as a normal keyboard at the moment?
  3. What chip is it? The SMD variant of the Pro Micro?
  4. Different USB-C cable?

@leothelocust I'm not sure if I needed Animus loaded first (I did of course). Is there a Mac firewall/security setting needed for QMK(i looked, didn't see one)?

@ab12gu can you connect in general? i.e. have you tried Arduino software?

leothelocust commented 2 years ago

@nitsujri I don't know of any firewall/security settings needed. But I seem to remember if you havn Animus loaded, then the bootloader is reverted to a sane default. If not, the bootloader is a custom one that reloads the base keyboard settings after a "reset". So I'm feeling pretty confident that Animus is required prior to QMK. See Animus

nitsujri commented 2 years ago

@leothelocust mmmm i'm probably not familiar enough but isn't the bootloader always Caterina?

What you're describing seems more like firmware than bootloader and Animus being the firmware?

leothelocust commented 2 years ago

You're probably right, its just been far too long that i've looked into this, so I'm pretty rusty

ryanfreeborn commented 2 years ago

Thank you so much for all this amazing information. I'm trying to switch my Diverge 3 over to QMK, but I have limited electronics experience. Hoping you all can help me with some very basic questions:

  1. When you say jumper the ground and RST and GND, does it just mean completing a circuit between the two pins to short? Like connecting them with a jumper cable, or even a paper clip (something metal)?
  2. It says both halves need to be flashed the first time around. Do they have to be flashed simultaneously? Can I flash the master, then after flash the other?
  3. My left board is the master, so its controller is soldered upside down to accommodate the USB. Do I need to unsolder it so I can make connection with the top of the RST and GND pins, or can I jumper them from the bottom? Here's an image of my left controller for reference.

Thanks!

nitsujri commented 2 years ago

@ryanfreeborn

does it just mean completing a circuit between the two pins to short? Like connecting them with a jumper cable, or even a paper clip

Yes, I used a pair of scissors. Anything with exposed metal.

Do they have to be flashed simultaneously?

No, just flash one and then the other. No order; no special instructions. Disconnect the TRRS cable if you're unsure.

Do I need to unsolder it so I can make connection with the top of the RST and GND pins

No, no need to unsolder. Just be find the pins for RST and GND and put some metal across it, paper clip, scissors, etc.

can I jumper them from the bottom?

yep, go nuts!

ryanfreeborn commented 2 years ago

Kindness and helpfulness on the Internet never ceases to amaze me. Thank you @nitsujr!!

ryanfreeborn commented 2 years ago

One other question: when I flash the hex file built from the online QMK Configurator, everything works fine. However when I flash a file made from the QMK repo on my local machine, it only flashes to the left half. I've tried both default and workman. For default the right map gets flashed to the left half, and the right half has no output. For workman, the left map correctly flashes to the left half, but the right half still has no output. Any ideas?

nitsujri commented 2 years ago

@ryanfreeborn at this point no, anything outside of the Configurator is beyond me. Best of luck!

ryanfreeborn commented 2 years ago

Thanks! I did a fresh install of QMK MSYS and the repo, it's now making and flashing to both halves, but the layout is mirrored. Very weird. Easy fix though, I can just invert the layout. Thanks for all the help!

nitsujri commented 2 years ago

@ryanfreeborn are you plugging USB directly into both halves (instead of using the TRRS cable)? If that's the case, you need to work with EE_HANDS.

The firmware/chip can't automatically tell that it's the "right hand" vs the left. By default, it assumes the left hand master unless explicitly told otherwise (MASTER_RIGHT or EE_HANDS). w/ the TRRS cable & no usb plugged in, it then switches to right hand.

ryanfreeborn commented 2 years ago

Nope, USB is only plugged into left side. Right side is connected to left side via TRRS. I also tried flashing to just the left side, with the TRRS unplugged, and got the same result. It's possible when I initially built this years ago that I wired something wrong, but then that wouldn't explain why the QMK Configurator hex file works correctly. I think the answer lies somewhere in the config.h file in diverge3 repo, but I'm not knowledgeable enough to figure it out. For now I'm just going to rewrite my custom keymap in reverse.

ryanfreeborn commented 2 years ago

No sooner after I typed out my last comment I found this in the config file specific to the default build:

define MASTER_RIGHT

So I think that pretty easily explains it.

leothelocust commented 2 years ago

Sorry @ryanfreeborn I was on much needed vacation! Looks like you found the fix though. I had exactly the same issue (only reversed) when I went through this.

Just comment/uncomment the lines relating to defining your master side. So

#define MASTER_RIGHT
define MASTER_LEFT

or

define MASTER_RIGHT
#define MASTER_LEFT

For me oddly, I defined LEFT as master and hooked up my RIGHT side and everything worked. For you I suspect, you will define MASTER_LEFT and that should do it.

Hope you had a great Christmas / New Year!

ryanfreeborn commented 2 years ago

Yup, that's what I did. Worked perfect. Thank you for the help!