Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
wants to merge 1 commit into from
Closed

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

wants to merge 1 commit into from

Conversation

rhaberkorn
Copy link
Contributor

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.

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
Copy link
Owner

tmk commented Jun 10, 2023

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
Copy link
Contributor Author

rhaberkorn commented Jun 10, 2023

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
Copy link
Contributor Author

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

@tmk
Copy link
Owner

tmk commented Jun 10, 2023

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 pushed a commit that referenced this pull request Jun 10, 2023
TERM FUNC key sends a non-standard E0 12 E0 00(Make) and E0 F0 00 E0 F0 12(Break).
Therefore, we must no longer check for 0 codes in the CS2_E0 and CS2_E0_F0 states.

The "Term Func" key is mapped to "Volume Down" by default, since that matches the
keyboard geometry.
@tmk
Copy link
Owner

tmk commented Jun 10, 2023

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
Copy link
Contributor Author

Checked. Works flawlessly!

@tmk
Copy link
Owner

tmk commented Jun 15, 2023

Great.

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

@rhaberkorn
Copy link
Contributor Author

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
Copy link
Owner

tmk commented Jun 16, 2023

I'm not sure how the keyboard switches protocols automatically, very interesting.

I just merged the fix now. Thank you
db4268b

@tmk tmk closed this Jun 16, 2023
@rhaberkorn
Copy link
Contributor Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants