tmk / tmk_keyboard

Keyboard firmwares for Atmel AVR and Cortex-M
3.96k stars 1.7k forks source link

ibmpc_usb: added support for the Siemens F500 "Term Func" key #760

Closed rhaberkorn closed 1 year ago

rhaberkorn commented 1 year ago

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.

tmk commented 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.

rhaberkorn commented 1 year ago

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.

rhaberkorn commented 1 year ago

Perhaps the code for recovery from receiving keyboard errors (code 0) should be factored out into its own function.

tmk commented 1 year ago

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.

tmk commented 1 year ago

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?

rhaberkorn commented 1 year ago

Checked. Works flawlessly!

tmk commented 1 year ago

Great.

Just curious. Does the keyboard work with Soarer's in Code Set1?

rhaberkorn commented 1 year ago

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.

tmk commented 1 year ago

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

rhaberkorn commented 1 year ago

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.