qmk / qmk_firmware

Open-source keyboard firmware for Atmel AVR and Arm USB families
https://qmk.fm
GNU General Public License v2.0
17.97k stars 38.63k forks source link

[Feature Request] AT Keyboard Converter #17779

Closed Muirium closed 1 year ago

Muirium commented 2 years ago

Hi guys, longtime Soarer’s Converter user here, first time QMK. (All my QMK so far has been via Pandrew’s capsense port for IBM Model F and beamspring.)

I’d like to run QMK on my Teensy converted AT/PS2 keyboards. (Some have an internal Teensy, some hook up via their original cable to a Teensy in a box; in either case it’s always an AT protocol keyboard being converted to USB via a 32u4.) Ideally, I’d like to be able to select the basic, generic full-size AT layout in QMK Configurator, and define layers there to my heart’s content, then compile, download and flash the hex file to the Teensy. But I see no AT converters in QMK Configurator’s menu. Really? There’s ADB support but not the ubiquitous AT/PS2? Woah!

Here’s a thread I wrote about this on Deskthority. I’m not alone in desiring this:

https://deskthority.net/viewtopic.php?f=7&t=27412

I know my way around TMK Unimap and QMK Configurator a bit, as a user, but I don’t know how to define new targets. An AT converter would get a lot of use!

keyboard-magpie commented 2 years ago

I think this might be the QMK conversion, but I am by no means a SME in this area. The relevant config.qmk.fm entry would to match would be this

snacksthecat commented 2 years ago

It looks like that may be only for code set 3 (terminal), but worth a shot. Give it a go, @Muirium.

"It supports PS/2 Scan Code Set 3 and runs on USB AVR chips such like PJRC Teensy."

Thanks @keyboard-magpie

sigprof commented 2 years ago

From looking at https://www.win.tue.nl/~aeb/linux/kbd/scancodes-10.html, converter/ibm_terminal has a high chance to fail with many PC keyboards:

(vii) The Microsoft Keyboard Scan Code Specification writes: In the very early days of Windows NT, an attempt was made to use the much more orthogonal Scan Code Set 3, but due to bugs in the implementation of this Scan Code Set on numerous OEM keyboards, the idea was abandoned. And also: Scan Code Set 3 is not used or required for operation of Microsoft operating systems.

(As usual, any feature that is not used by Windows is almost guaranteed to be either not implemented or broken.)

There was an attempt to add a converter suitable for PC keyboards (#12821), but looks like it was abandoned.

Muirium commented 2 years ago

There was an attempt to add a converter suitable for PC keyboards (#12821), but looks like it was abandoned.

I'd like to see that completed and brought to QMK Configurator. I can vouch for TMK's ibmpc_usb converter myself, as that's what I'm using now. QMK Configurator is an improvement on Hasu's Unimap, however, so I'm still missing that. Besides, I'm sure many people have this exact use case.

github-actions[bot] commented 1 year ago

This issue has been automatically marked as stale because it has not had activity in the last 90 days. It will be closed in the next 30 days unless it is tagged properly or other activity occurs. For maintainers: Please label with bug, in progress, on hold, discussion or to do to prevent the issue from being re-flagged.

github-actions[bot] commented 1 year ago

This issue has been automatically closed because it has not had activity in the last 30 days. If this issue is still valid, re-open the issue and let us know. // [stale-action-closed]

ifohancroft commented 1 year ago

I'd love that feature as well by the way.

rljacobson commented 1 year ago

There was an attempt to add a converter suitable for PC keyboards (https://github.com/qmk/qmk_firmware/pull/12821), but looks like it was abandoned.

It looks to me more like it wasn't accepted because the author added mouse support in his second to last commit that was written in C++, and someone said it should be written in C. A week later he removed the C++ mouse support he had added ("for now") and then closed the PR himself without explanation, so I don't really know. It's not clear what actually happened there. It looks complete to me. Maybe he couldn't get anyone interested in it, or maybe he was frustrated that his hard work on the mouse stuff was met with a negative comment. (It's all too easy to infer a tone in words written in text on the internet that isn't intended by the author.)

Maybe it's worth opening an issue to discuss if that PR could be re-opened, rebased, and merged. I'm not super familiar with how QMK development works w.r.t. code maintenance "ownership," for lack of a better phrase, but I would imagine that responsibility requires almost no work to meet.

marfrit commented 1 month ago

At the time being I just made the TMK stuff work somehow with QMK.

There's a vial fork out there with a bit more polished version. https://github.com/purdeaandrei/vial-qmk-with-ibmpc-usb-converter

I myself have moved to RP2040 and PIO based code. There's a mouse/ keyboard version in my repo (pio_m4_converter iirc) https://github.com/marfrit/qmk_firmware/tree/pio_m4_converter which is also wip, since my offsprings are quite demanding over keyboard hobbying ;-)