Muirium wrote: 05 Oct 2023, 09:31
modelf wrote: 05 Oct 2023, 00:55
it works great out-of-the-box. However, I want to…
There's nothing to "upgrade" to.
I feel like you didn't exactly read the original post, nor the Amazon product review it linked to...
OP doesn't want to "upgrade". They want to ensure that the firmware they're running is the genuine article, and not potentially some derivative work that has been tampered with.
Now, I agree that if it's working, then that would seem to suggest that whatever problem(s) the Amazon reviewer was suffering from, don't apply here...so what's the big deal? Well, in OP's defense, I definitely remember reading some post recently where it was speculated that some outfit that is mass-producing these may be shipping with somewhat modified Soarer's firmware...either that, or some of them that are escaping that particular factory are doing so with a
corrupt load of the firmware that is causing weird (and also somewhat vaguely-defined...?) problems for some people.
Assuming these are shipping out with "modified" firmware, how would that even be possible, if the actual Soarer's firmware isn't open-source? Well, as I understand it, there was an attempt to clone/rewrite it, semi-clean-room style. And while the person behind that effort decided ultimately not to publish it, my understanding is that it did see extremely limited distribution, and somehow got into the hands of somebody
else who ultimately studied and then re-implemented the
cloned version. I even ran into the Github repo at one point...I didn't try downloading and building, but it looked legit. So, a copy of a copy. Hard to know what fidelity to the original has been lost.
I could easily see some overseas mass-producer of these smelling an opportunity & also stumbling upon this code, deciding in the end to build some variant of new firmware off of it (to change some defaults? to accommodate a design tweak made to the hardware? who knows). And even if a source re-implementation of the firmware didn't exist, some clever person who understands AVR machine language and who is armed with a hex editor can also do amazing things, I'm sure.
Anyway. I think the post that the Amazon reviewer is likely referencing (& which is also the same post that I remembered having read recently) is
this one. At least the photo exactly matches the one from the Amazon listing (though I also found a couple of eBay listings with the same image).
To OP, the trick here is that there are multiple potential ways that new firmware can be loaded onto an ATmega's flash memory. So there is no one set of global instructions that will work for everybody and for every variant of this device that anybody has ever built. The only (mostly-)guaranteed-to-work method is by getting very low-level and physically hooking up an In-System-Programmer (ISP) to the chip itself. Fortunately, under most circumstances, you don't need to resort to that & can actually perform a (re-)flash of the chip via USB. But this method requires additional software support in the form of a bootloader shim that may or may not be already present on the chip. And there are multiple different implementations of bootloaders for ATmega chips that support flashing-via-USB, some which are open-source, some which are not, but many of which use different & incompatible protocols to accomplish the flash (there is a list and description of various bootloaders both for AVRs as well as other MCUs over on the
QMK Github repo). Thus, you need to ensure you have the right flashing application on your host PC that is meant to be matched to whatever bootloader your device already has loaded on to it.
Fortunately,
QMK Toolbox supports most of these bootloaders. And is probably the easiest and most "universal" way of accomplishing a flash to most MCUs embedded on a keyboard controller, whether you want to flash QMK firmware or something entirely different, like Soarer's! Virtually all firmware for AVR MCUs is distributed as a ".hex" file, in
Intel hex format, which is very similar in both concept and execution to Motorola S-Record encoding. QMK Toolbox will work with a Soarer's hex because it doesn't really know or care whether the flash payload you feed to it is actually a QMK firmware, or something else entirely.
According to the poster in that other thread, these mass-produced adapters appear to have
ATmega32U4 MCUs loaded with the bootloadHID bootloader, instead of either Atmel/Microchip's own "atmel-dfu" bootloader or the popular Caterina one from Arduino & clones (Pro Micro and friends). QMK Toolbox claims to support all 3 of these bootloaders, though, so I don't see why you wouldn't be able to flash this converter with a fresh copy of "official" Soarer's 1.12 firmware using QMK Toolbox, after using the "scboot" command to kick the controller into bootloader mode. Just make sure you pick "ATmega32U4" from the MCU drop-down.
The disclaimer I'll offer is that I've never used Soarer's. I've just become familiar with these AVRs via my dabbling with pandrew's port of QMK to the Xwhatsit.