Hey all,
I have also just recently looked at marfrit's port to QMK of IBMPC_USB, and I hit the same bug related to the lock lights, and
fixed it. Both the situation where lock lights are not updated correctly, and the situation where pressing the lock keys causes the keyboard to reset, and not work for a few seconds is caused by the same bug.
Here's the fix
The explanation is that the TMK firmware disables the clock edge sensitive interrupt that is normally used to receive data from the keyboard, while it's sending the lock light update commands. This is okay, however, what really _should_ be happening is that all interrupts should be disabled, because something else stopping the ibmpc_host_send routine could result in clock cycles being lost (reminder: the clock is ALWAYS generated by the keyboard on PS/2, so the converter must react to clock cycles also when sending data). The reason this worked in pure TMK is probably because interrupts just don't tend to trigger during ibmpc_host_send on tmk.
Anyway, I believe my fix has already been taken up in marfrit's repository.
I also built a VIAL firmware for ibmpc-usb-converter:
https://github.com/purdeaandrei/vial-qm ... -converter
Including the following changes:
- I completely reworked the layouts and the code set maps, so that it now matches TMK. This firmware should support all the same code sets as TMK does.
- Enabled VIAL support.
- I added VIAL layouts for all layouts supported by the TMK's web configurator (Full-Key, 122-key terminal, 84-key AT, 83-key XT), plus I added a DEC Televideo layout. (NOTE: These are VIAL layouts, as a pure qmk layout macro only Full-Key is supported at the moment.)
- I made variants for atmega32u4 for all possible bootloaders.
- For pro micros you should normally use atmega32u4_caterina.
- For teensy 2.0 you should probably use the atmega32u4_halfkay variant, although I haven't tested this one.
- I have also tested this now with Orihalcon's Soarer's Converter cables (USB to SDL). The firmware that allows these to go into bootloader mode when commanded by VIAL is the atmega32u4_atmel_dfu variant. (Note: the bootloader on these seems to be bootloadHID-compatible protocol, but the bootloadHID variant of the firmware is not able to go into bootloader mode. So when flashing the cables you need need to first use 'scboot' to send it into bootloader mode, then use bootloadHID's command line utility, or QMK Toolbox, which autodetects what to use, but you should NOT flash the bootloadHID version of the firmware, you must flash the atmel_dfu version).
WARNING: if you make a mistake, and flash the wrong firmware, or a firmware that can't enter bootloader mode, then the only way to get these cables into bootloader mode, is to cut them open, and to short the RESET pin to GND. Here's a tutorial how to do it: https://imgur.com/a/HT6RKKI
- I backported Televideo DEC keyboard support that is in current TMK, but isn't in Marfrit's port, because he started from a version that didn't yet have it.
You can download the pre-build VIAL images from the
Releases page of the github project. The official
downloadable VIAL host app works perfectly with it, and also the
Vial Web client, if your browser supports giving access to the usb port.
Another minor note: the VIAL unlock combination has been set to Esc+non-keypad-Enter. If you use it with an SSK, and want to unlock the keyboard to do something that's normally blocked by security (such as going into bootloader mode), then make sure that Num Lock is not active, because Num Lock changes the Enter Key to Numpad Enter on the SSK. Anyway, we may change the combination in the future, if it's found to be not good enough.