Closed rhaberkorn closed 1 year ago
Thanks for the info. Can you check keyboard ID of this with hid_listen?
For break sequence('F012F000') isn't that 'E0F012E0F000' instead? Also share debug log when typing the TermFunc key if you have time.
The break code is E0 F0 00 E0 F0 12. Here is a complete hid_listen log after startup including one key press of the "Term Func" key.
TMK:b604da/LUFA:d6a7df
USB configured.
Loop start.
I2500 I2500
2501 PRT:10 ISR:EA90 rAA A5501 wFF rFA A5504 wFF R R R R R R R R R R rAA W6213
6213 ERR:11 ISR:8000 wF2 rFA rAB r83 R6719
ID:AB83(AT) S6719 wED rFA w02 rFA L6726 X6726
rE0 r12 rE0 r00 rE0 rF0 r00 rE0 rF0 r12
btw. From previous experiments with Soarer's Converter, I found out that the keyboard is in Set 1 after powerup. It seems that the Reset performed by tmk switches the board into Set 2.
Perhaps the code for recovery from receiving keyboard errors (code 0) should be factored out into its own function.
Thanks for the debug log.
Does the keyboard support support XT/CodeSet1 with Soarer's? It would be intriguing if the keyboard supports both AT and XT. From the debug log it seem to be a nomal AT keyboard.
I'll refactor the error handling code and add support the key soon later.
I refactored error handling in this branch.
https://github.com/tmk/tmk_keyboard/tree/ibmpc_f500_support/converter/ibmpc_usb/binary
Can you check if my change works with your F500?
Checked. Works flawlessly!
Great.
Just curious. Does the keyboard work with Soarer's in Code Set1?
Yes, in principle it did. But you couldn't make use of the cursor keys and a bunch of other keys since Soarer's did not handle the prefixed scan codes that the keyboard sends.
I'm not sure how the keyboard switches protocols automatically, very interesting.
I just merged the fix now. Thank you https://github.com/tmk/tmk_keyboard/commit/db4268bfa14c2f536c5bd71270dd0ebae0423a6b
I'm not sure how the keyboard switches protocols automatically, very interesting.
I was also surprised. It is apparently after the reset command that tmk sends.
This sends a non-standard E012E000 (Make) and F012F000 (Break). Therefore, we must no longer check for 0 codes in the CS2_E0 and CS2_E0_F0 states. The check for 0 codes has therefore been moved into the individual process_csX() methods.
The "Term Func" key is mapped to "Volume Down" by default, since that matches the keyboard geometry.