USB Keyboard IF

Nagging hardware related question? Post here!
Nasta
Gold Card
Posts: 444
Joined: Sun Feb 12, 2012 2:02 am
Location: Zapresic, Croatia

Re: USB Keyboard IF

Post by Nasta »

It is an 8x8 matrix, thus 64 keys (mind the double shift keys!). However, shift, ctrl and alt are treated with extra diodes because there are some limitations to what keys can be pressed without 'phantom' keypresses being generated. Won't go into why here, suffice to say shift-ctrl-alt can be pressed together in any combination, and 3 keys pressed together can, without separate diodes inserted into the matrix, generate phantom keys - therefore shift-ctrl-alt have special treatment, each with it's own diode.


User avatar
bwinkel67
QL Wafer Drive
Posts: 1202
Joined: Thu Oct 03, 2019 2:09 am

Re: USB Keyboard IF

Post by bwinkel67 »

Sorry, I'm a dunce. I saw the 9 and 11 line on a keyboard membrane and googled to find this image and never actually looked at it. 1 row and 3 columns only have shift, ctrl, and alt and there are three empty slots in the middle's 8x8 so 64 total. Makes sense now.
ql_matrix_fit.png


User avatar
bwinkel67
QL Wafer Drive
Posts: 1202
Joined: Thu Oct 03, 2019 2:09 am

Re: USB Keyboard IF

Post by bwinkel67 »

Maskenlos wrote:I just counted the keys on my QL, if not miss-count there are 65 keys. Could anyone kindly double confirm :D
To be honest, there are no keys missing, even better, there are keys on the PC Keyboard which not even exist on the QL keyboard:
- Backspace
- Delete
- / (on the Key-Pad)
- x (on the Key-Pad)

Also its a mystery that the QL has a 9x11 Matrix, the 8049 IPC only supports 8x8 Matrix. Kindly check the diagram below. So a MT8812 and 3 external diodes will do the job. 8 & 9 ribbon cable are correct, as I do not use pins 1,2 & 11 from J12.
Btw, if you end up making a board out of it, perhaps replacing the RF Modulator and using that opening in the back for a PS-2 plug (or USB I suppose...maybe mount it sideways).


User avatar
xelalex
Bent Pin Expansion Port
Posts: 94
Joined: Thu Aug 04, 2011 9:55 am

Re: USB Keyboard IF

Post by xelalex »

I don't expect any problems with CTRL, ALT, and SHIFT & their combinations, because Spectratur hooks directly into the QL's keyboard matrix. Activating a switch in the MT88xx switch matrix is pretty much identical to pressing a real key. So should be fine, but Stephan will report.

BTW, the Spectratur project is not limited to the QL. It's fairly generic.To use it with a particular target machine, you just create a new header file with the desired key mappings. I use it with a Spectrum and a ZX80/81 clone. These mappings are already contained in the project.


User avatar
Pr0f
QL Wafer Drive
Posts: 1308
Joined: Thu Oct 12, 2017 9:54 am

Re: USB Keyboard IF

Post by Pr0f »

Maskenlos wrote:Pr0f, anything particular you want me to test? So far I only tested the basic combinations with CTRL (e.g. CTRL + arrow left) and with SHIFT. This works well. I do not have a Hermes, so I can not test Hermes specific things.

Peter, fully understand your demand. Probably this is useful to you:

http://www.deblauweschicht.nl/tinkering/qlkeys1.html

Maybe I will give it a try after I have finished this small project. But in your special case the Arduino may be omitted?

Stephan
These were the special key combinations I was thinking of:

Key Click

This can be toggled on/off by pressing CTRL ALT ESC 4. It can also be
turned off or on by "IPCEXT 6" and "IPCEXT 7" respectively.

Note that it doesn't know about auto-repeat, which is controlled by the
software in the 68008.


Reset/INT7

This can be invoked with CTRL ALT ESC 7.

CTRL ALT 7 used to "freeze" a QL. It resets the code in the 8049 and,
if there was no code added to the QL to handle the situation, or
indeed, sometimes even when such code was present, the effect was
disastrous: fairly similar to hitting the QL with a hammer...
repeatedly.

On HERMES, the ESC key must also be pressed, making everything a little
cleaner and safer. A few spurious characters will crop up, but at the
time of requesting a reset, this hardly matters.


User avatar
Pr0f
QL Wafer Drive
Posts: 1308
Joined: Thu Oct 12, 2017 9:54 am

Re: USB Keyboard IF

Post by Pr0f »

As your matrix switch is actually a 12x8 - that gives you 4 extra lines not in the 8x8 matrix - so you have some spare lines for those awkward control keys - as you can't put diodes inside the chip's matrix.


User avatar
xelalex
Bent Pin Expansion Port
Posts: 94
Joined: Thu Aug 04, 2011 9:55 am

Re: USB Keyboard IF

Post by xelalex »

I discussed the special keys of the QL keyboard with Stephan before he set out to build this. I came up with a solution that replicates the original, using three diodes. You can see them in the breadboard picture Stephan posted at the top of this thread. I'm sure he'll draw up a schematic once he's done ;)


Maskenlos
Over Heated PSU
Posts: 142
Joined: Sat Nov 03, 2018 12:14 pm

Re: USB Keyboard IF

Post by Maskenlos »

Yes, I will do a proper drawing in the next days. In the meantime I consider to post your "working paper" do give more details. Do you mind if I share it with the community?

Stephan


User avatar
xelalex
Bent Pin Expansion Port
Posts: 94
Joined: Thu Aug 04, 2011 9:55 am

Re: USB Keyboard IF

Post by xelalex »

Sure, no problem!


Maskenlos
Over Heated PSU
Posts: 142
Joined: Sat Nov 03, 2018 12:14 pm

Re: USB Keyboard IF

Post by Maskenlos »

Find attached schematics from Alex how to connect MT8812 with 3 additional diodes.
In addition A5 from Arduino must be connected to AX3 from MT8812. The rest of the setup as shown on the Github page from Alex.
schematics.png


Post Reply