Somehow missed Kugelkopf's post here last year...
Kugelkopf wrote: ↑30 Jun 2022, 22:57
NathanA's files work nicely, thanks for sharing!
Just in case anybody finds their way to this thread later and sees the link to my Vial firmwares supplied by OP Kurk at the top, there are newer/updated versions & I definitely recommend those.
Here is the link to the latest publicly-available versions. If you look for whatever my most recent post is in that thread that has attachments, it's likely that is going to be the latest version. (Though sometimes I do post minor test versions for specific people using specific board models to play with...if it is a general release it will most likely be referred to by release # in the body of the post.)
Kugelkopf wrote: ↑30 Jun 2022, 22:57
What had caused me some headaches before advancing was the fear to lose the ability to enter bootloader mode. Better prepared readers may shake their heads but for those equally unaware I'm clarifying here, that NathanA's files override this combination, indeed, but "Reset" is still within reach at layer 2 ("Fn" + "Space" + "r"). [...] I wasn't successful yet to redefine that combination in Vial's "combo" tab, but will investigate further.
I'll dive further into the various ways to enter bootloader mode in more detail in my response to billm below this, but I did not "override" the LShft+RShft+B combination. That is a built-in QMK combo called a "Command Key" (or "Magic Key" in older versions). This QMK feature is
documented here and includes more than just a bootloader enter feature. The modifier combo needed to access Command Keys is LShft+RShft by default & this can only be changed by editing your config.h and recompiling QMK from source. No need to bother with that in the case of my Vial firmwares, though...any change made to the Command Key combo will be wholly ineffective
as I have DISABLED Command Keys in my Vial firmwares.
THAT is why LShft+RShft+B does not work on them.
The poor ATmega chip just doesn't have enough space to fit all of the QMK and Vial features desired, so something had to give. The fact is that most people using QMK or a derivative on their Xwhatsit-controller-based boards were only using that bootloader feature from Command Keys, though, and since there are many many other ways to get to the bootloader, this sacrifice didn't strike me as a particularly big deal (and still doesn't).
One such method for entering the bootloader is to define a particular key on a particular layer to have the key code of 'RESET' (raw hex 0x5C00). Pressing that key will kick your controller over to the bootloader. Vast majority of default layouts that Ellipse came up with program the 'R' key on Layer 2 to 'RESET', and access to Layer 2 is also set to Layer 1's Spacebar on the vast majority of Ellipse layouts, too. So, "Fn" (to access Layer 1 from Layer 0) + Spacebar (to access Layer 2 from Layer 1) + R will trigger bootloader mode. You can change this by just
programming whatever key on whatever layer you want to be the 'RESET' key. Simple as that. (By the way, this holds true whether you are using VIA, Vial, or even base-line QMK firmwares that you are compiling yourself or obtaining via pandrew's instance of the web QMK Configurator. Also, most keyboards that shipped with basic QMK instead of Vial have this key defined
in addition to having Command Keys enabled, so
both LShft+RShft+B
and Fn+Space+R work on those keyboards running that firmware. Given that Fn+Space+R works universally across all, it seems most logical to me to have
that combo documented for people to use, and not the LS+RS+B combo. Anyway...)
Kugelkopf wrote: ↑30 Jun 2022, 22:57
A minor annoyance for the really unexperienced is the lack of a "clear" button in Vial to get rid of overhastily made key assignments.
As you noted, KC_NO (0x0) is the way to blank a key to have no action. This is identical to using the blank key under the Basic tab. There is also KC_TRNS (0x1), identical to the upside-down triangle key right next to it on the Basic tab. This key code is what you use if you want a key press on a higher layer to "fall through" to whatever the layer below it has programmed as the action for that key. If you set a key to KC_TRNS on the lowest layer (0), then pressing it does nothing, so it is effectively equal to KC_NO on layer 0.
Muirium wrote: ↑10 Oct 2023, 11:47
I can’t answer the pins issue as my hardware is original IBM with Xwhatsit controller.
Original Xwhatsit and wcass "shrunk" Xwhatsit are nearly identical electrically...it's the same design functionally, just with a reduced physical footprint. I quickly Googled for images of the original Xwhatsit PCB, and it too has a set of pads on it labeled "PROG", also located on the back. It serves exactly the same function.
billm wrote: ↑10 Oct 2023, 01:46
I've tried shorting the PROG pads about 10 times. NOTHING. I've tries l shift + r shift + b about 50 times. NOTHING.
I too have found the PROG-shorting trick to be somewhat finicky. I suspect it is just tricky to make solid contact to both pins with one hand at the same time that one is fumbling around with attempting to plug the USB cable back in with the other. I only have so many limbs and fingers, people! I will once again lament how these were left as unpopulated pads on the production boards, rather than populated with a button, or a switch, or -- heck -- just give me a couple of freaking pins, for Pete's sake. But alas, it is what it is.
I realize that you mentioned elsewhere that you finally got this working. As you noted in your reply to the other thread, the best strategy is probably just to leave QMK Toolbox open and running, and watch its console while you are attempting to get the controller into bootloader mode, since it will immediately tell you when it detects an MCU that's in bootloader mode.
Assuming, though, that you have a functioning keyboard with working firmware already, there are far, far easier ways to get into bootloader mode. As I noted earlier in this reply, on keyboards where LShft+RShft+B doesn't seem to be working, Fn+Space+R likely will (assuming you haven't changed anything about the default layout). However, assuming you were actually running the original QMK firmware that shipped with the keyboard, and not VIA or Vial or something else entirely, LS+RS+B really should have worked...which makes me think that you actually WEREN'T running base-line QMK. Is it possible that you got this keyboard second-hand? In which case, you really have no idea what was done to it firmware-wise before it became yours...
If this keyboard was from the very earliest batches shipped out, they would have been preloaded with xwhatsit's original IBM USB Capsense firmware. If you run the Xwhatsit config utility on your computer with the keyboard plugged in, it will have a menu option that allows you to kick the keyboard into bootloader mode.
If you're already running Vial firmware, Vial itself knows how to kick the keyboard into bootloader mode, too: go to Security menu > click Reboot to bootloader.
If this keyboard is running either the original QMK firmware or my Vial firmware, you can use the pandrew QMK capsense util to enter bootloader mode. The latest version of this (at the time of writing) for both Windows and Mac that supports all known firmwares across all keyboard models released to-date is attached to my post about my Release 4 firmwares. The "Enter Bootloader" button is very prominently displayed on the main window.
In fact, the pandrew util can ALSO kick controllers flashed with the original Xwhatsit firmware into bootloader mode, too! So it is (nearly) one-stop shopping! I'd just keep a copy of the most recent version on hand at all times, as using it is absolutely the easiest way to do this across most firmwares for this controller (again, assuming your controller works and isn't running corrupt or broken firmware, in which case you'd have no choice but to crack the keyboard open anyway in order to access the PROG pads).
The only (non-broken) scenario that I'm aware of where the pandrew util
can't help you is if you are running one of the old builds of VIA firmware that either darkcruix or Ellipse released. It doesn't know how to talk to those & won't detect them. Assuming the keyboard works, though, you can just launch the VIA app, configure a given key to be the 'RESET' (0x5C00) code, and then press that key. (Or look to see if possibly R on Layer 2 is already configured to be that, in which case Fn+Space+R probably already works anyway.)