Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 03:59 17 Sep 2025 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Keyboard for Micromite Plus

     Page 3 of 14    
Author Message
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2948
Posted: 09:21pm 14 Aug 2015
Copy link to clipboard 
Print this post

Hi G,

Any reason why not output PS2 signals so that it can connect straight into the MM as it is?
The PS2 protocol is easy to mimic although the timings would require use of a CFunction (if you were basing the 'interface' on MMBasic.

WW
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9641
Posted: 09:23pm 14 Aug 2015
Copy link to clipboard 
Print this post

Do tell - what's involved in mimicing PS/2?
Smoke makes things work. When the smoke gets out, it stops!
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9641
Posted: 02:40am 15 Aug 2015
Copy link to clipboard 
Print this post

UPDATE: I have removed the FPC(flexible Printed Circuit) socket from the circuit board using Chip-Quik, and have used it to find some new replacements. You can buy 10 of these connectors for US$5 with free freight from eBay.

FPC connector to suit blue keyboard matrix

I also designed an extremely simple breakout PCB for this connector, so that I can experiment with the matrix decoding. This PCB I will etch here at home tomorrow, as it is so small and simple, and then I can get to experimenting with the matrix right away.





At this stage, I am going to try the "Rob method"(robert.rozee) to decode the matrix - a small plug-pack, and an LED + resistor. I will translate the keypresses from the matrix, into a spreadsheet for future reference, and also for including in the constructors pack.
Smoke makes things work. When the smoke gets out, it stops!
 
Positron

Newbie

Joined: 09/08/2015
Location: Argentina
Posts: 15
Posted: 04:51pm 15 Aug 2015
Copy link to clipboard 
Print this post

Grog, Frank, others, below is the link to the spreadsheet I made to document the key layout in row/column fashion for the Chatpad matrix used in my mini terminal project (arduino based) some time ago. It's output was simple one byte ASCII codes.

I used a chinese clon that had a non programmable chip, so I removed it and used the matrix directly connected by the TP points ( refered in the table) that are easy solderable to thin cables.

Maybe I'll resurrect it and reprogram the mappings for the MMite+
Chatpad_Matrix_Link


 
Frank N. Furter
Guru

Joined: 28/05/2012
Location: Germany
Posts: 950
Posted: 12:12am 16 Aug 2015
Copy link to clipboard 
Print this post

Hi Positron,

thank you very much!

Frank
 
CircuitGizmos

Guru

Joined: 08/09/2011
Location: United States
Posts: 1427
Posted: 12:45pm 16 Aug 2015
Copy link to clipboard 
Print this post

  Grogster said   At this stage, I am going to try the "Rob method"(robert.rozee)


There are so many Robs running around.

-Rob (CG)
Micromites and Maximites! - Beginning Maximite
 
bigmik

Guru

Joined: 20/06/2011
Location: Australia
Posts: 2956
Posted: 02:13pm 16 Aug 2015
Copy link to clipboard 
Print this post

Robs,

At least we aren't flooded with Micks.



Mick


Mick's uMite Stuff can be found >>> HERE (Kindly hosted by Dontronics) <<<
 
OA47

Guru

Joined: 11/04/2012
Location: Australia
Posts: 1000
Posted: 02:43pm 16 Aug 2015
Copy link to clipboard 
Print this post

@Grogster, I take it from your change of avatar that you are now at peace with the mosfets
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9641
Posted: 03:02pm 16 Aug 2015
Copy link to clipboard 
Print this post

Yes, as I was teaching myself about MOSFET's being a NPN/PNP man, I thought it was time for a change of avatar at the same time as I put up the new website. That avatar is actually my company logo, so I figured I might as well use it - I paid to get the logo designed, I might as well use it!

The company logo used to be just the bitmap version of the same MOSFET, and I gave that to the graphics guys doing the site, and they designed the "New" MOSFET logo, and I must say - it looks much better then the B/W bitmap - but then, I would say that!

However, I digress.......

Smoke makes things work. When the smoke gets out, it stops!
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 02:48pm 20 Aug 2015
Copy link to clipboard 
Print this post

G,

Did you already figure out the keyboard matrix? I ordered the same keyboard but mine did not arrive yet.
I think i want to use a small pic and maybe a 3-8 decoder to change it into a usb hid or serial keyboard. Before ordering some chips i need to know how many ros and columns there are.

Microblocks. Build with logic.
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9641
Posted: 03:55pm 20 Aug 2015
Copy link to clipboard 
Print this post

Yes, last night, as it happened!

Here are some shots:











From what I can see, it would appear to be a 8 x 16 matrix, with the eight on the top layer, and the 16 on the bottom.

The hand-written chart above lists the keycode connections in the CODE column, in a BOTTOM LAYER,TOP LAYER format. Therefore, the ENTER key is CODE 12,20 - meaning lines 12 and 20 will give a closure if ENTER is pressed. There is a normal resistance on this matrix ranging from about 50R through to about 350R for the longest traces.

EDIT: The chart is missing one data point for the ':' key - it should read 12,18.
Pin '1' is the trace closest to the writing on the FPC cable: 'HASKEY.....' etc.

Edited by Grogster 2015-08-22
Smoke makes things work. When the smoke gets out, it stops!
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 05:51pm 20 Aug 2015
Copy link to clipboard 
Print this post

G,

I found some small mistakes in your table.
J and L are both 09,20
F8 and F12 are both 10,15
F10 and F11 are both 12,15
! is missing
: is 12,21 and in your edit it is 12,18

I have sorted a list by row and column.
[code]
---------- 1 ---------
Fn 01 20
Command 01 22

---------- 2 ---------
Alt 02 18

---------- 3 ----------
Shift 03 18

---------- 4 ----------
Ctrl 04 15

---------- 5 ----------
Esc/~ 05 15
F1/1 05 16
Q 05 17
Tab 05 18
A 05 20
Z 05 21

---------- 6 ----------
F2/2 06 16
W 06 17
Caps 06 18
S 06 20
X 06 21

--------- 7 -----------
F3/3 07 16
E 07 17
D 07 20
C 07 21

---------- 8 ----------
F5/5 08 15
F4/4 08 16
R 08 17
T 08 18
F 08 20
G 08 22
V 08 23

---------- 9 ----------
F6/6 09 15
F7/7 09 16
O 09 17
Y 09 18
*J 09 20
*L 09 20
N 09 21
H 09 22
B 09 23

---------- 10 ---------
*F8/8 10 15
*F12/+ 10 15
I 10 17
K 10 20
M 10 21

---------- 11 ---------
F9/9 11 15
U 11 17
< 11 21

---------- 12 ---------
*F10/0 12 15
*F11/- 12 15
P 12 17
? 12 18
Enter 12 20
: 12 21
> 12 23

---------- 13 ---------
Left 13 23
Up 13 22

---------- 14 ---------
Del 14 18
Shift 14 21

---------- 15----------
Ctrl 04 15
Esc/~ 05 15
F5/5 08 15
F6/6 09 15
*F8/8 10 15
*F12/+ 10 15
F9/9 11 15
*F10/0 12 15
*F11/- 12 15

----------- 16 ----------
F1/1 05 16
F2/2 06 16
F3/3 07 16
F4/4 08 16
F7/7 09 16

----------- 17 ----------
Q 05 17
W 06 17
E 07 17
R 08 17
O 09 17
I 10 17
U 11 17
P 12 17

----------- 18 -----------
Alt 02 18
Shift 03 18
Tab 05 18
Caps 06 18
T 08 18
Y 09 18
? 12 18
Del 14 18
*! 18

---------- 19 -----------
Space 19 22
Down 19 23

---------- 20 -----------
Fn 01 20
A 05 20
S 06 20
D 07 20
F 08 20
*J 09 20
*L 09 20
K 10 20
Enter 12 20

---------- 21 ----------
Z 05 21
X 06 21
C 07 21
N 09 21
M 10 21
< 11 21
: 12 21
Shift 14 21

---------- 22 -----------
Command 01 22
G 08 22
H 09 22
Up 13 22
Space 19 22

---------- 23 ----------
V 08 23
B 09 23
> 12 23
Left 13 23
Down 19 23
Right 24 23

---------- 24 ---------
Right 24 23
[/code]


Edited by TZAdvantage 2015-08-22
Microblocks. Build with logic.
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9641
Posted: 05:56pm 20 Aug 2015
Copy link to clipboard 
Print this post

Thanks for that!

I will re-probe those ones, and find out where I went wrong.

'!' is SHIFT F1/1 - 05,16 (plus SHIFT key)
Smoke makes things work. When the smoke gets out, it stops!
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 06:28pm 20 Aug 2015
Copy link to clipboard 
Print this post

Here is the matrix.
[code]
15 | 16 | 17 | 18 | 20 | 21 | 22 | 23 |
----------|------|------|------|------|------|------|------|
01 | | | | | Fn | | Cmd | |
02 | | | | Alt | | | | |
03 | | | |Shift | | | | |
04 | Ctrl | | | | | | | |
05 | Esc/~| F1/1 | Q | Tab | A | Z | | |
06 | | F2/2 | W | Caps | S | X | | |
07 | | F3/3 | E | | D | C | | |
08 | F5/5 | F4/4 | R | T | F | | G | V |
09 | F6/6 | F7/7 | O | Y | J?L? | N | H | B |
10 |F8F12?| | I | | K | M | | |
11 | F9/9 | | U | | | < | | |
12 |F10F11| | P | ? | Enter| : | | > |
13 | | | | | | | Up | Left |
14 | | | Del | | | Shift| | |
19 | | | | | | | | Down |
24 | | | | | | | | Right|
[/code]

I think you can get away with less rows when combining rows 1,3,4,14 and 19.
I named it CR (Combined rows) in the matrix below resulting in a 12x8.
[code]
15 | 16 | 17 | 18 | 20 | 21 | 22 | 23 |
----------|------|------|------|------|------|------|------|
CR | Ctrl | | Del | Shift| Fn | Shift| Cmd | Down |
02 | | | | Alt | | | | |
05 | Esc/~| F1/1 | Q | Tab | A | Z | | |
06 | | F2/2 | W | Caps | S | X | | |
07 | | F3/3 | E | | D | C | | |
08 | F5/5 | F4/4 | R | T | F | | G | V |
09 | F6/6 | F7/7 | O | Y | J?L? | N | H | B |
10 |F8F12?| | I | | K | M | | |
11 | F9/9 | | U | | | < | | |
12 |F10F11| | P | ? | Enter| : | | > |
13 | | | | | | | Up | Left |
24 | | | | | | | | Right|
[/code]
After some more thinking it can be a 9x8 matrix.
A pity it can not be an 8x8,that would have been easier to use.
In this configuration most control keys are in one row.
[code]
15 | 16 | 17 | 18 | 20 | 21 | 22 | 23 |
----------|------|------|------|------|------|------|------|
05 19 | Esc/~| F1/1 | Q | Tab | A | Z | | Down |
06 | | F2/2 | W | Caps | S | X | | |
03 07 13 | | F3/3 | E | Shift| D | C | Up | Left |
08 | F5/5 | F4/4 | R | T | F | | G | V |
09 | F6/6 | F7/7 | O | Y | J?L? | N | H | B |
10 |F8F12?| | I | | K | M | | |
11 | F9/9 | | U | | | < | | |
12 |F10F11| | P | ? | Enter| : | | > |
01 02 04 14 24 | Ctrl | | Del | Alt | Fn | Shift| Cmd | Right|
[/code]

Edited by TZAdvantage 2015-08-22
Microblocks. Build with logic.
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9641
Posted: 06:45pm 20 Aug 2015
Copy link to clipboard 
Print this post

Excellent, TZA.

I see you have a new Avatar of your own....

I am back from a job, so I will probe those wrong keys now, and post an update.
Smoke makes things work. When the smoke gets out, it stops!
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9641
Posted: 06:59pm 20 Aug 2015
Copy link to clipboard 
Print this post

UPDATE:


F8/8/* - (10,16)
F12/+/= - (10,15)
J - (09,20)
L - (11,20)
: - (12,21)


Your compressed row/column chart is excellent - that was to be my next step, so thanks.

EDIT: I should warn others reading this, that you basically have to destroy the keyboard, to get it to reveal it's matrix to you, so the one I have been probing is the sacrificial one. I have another blue one, and a couple of black ones from a different trader coming - I hope and expect the matrix to be exactly the same across all colours and suppliers. Wishful thinking perhaps, but I will hold onto that theory for now!!!!

I will now pull apart the other one, and hook up and LED arragement, and test each and every one of those keys on the chart I have, to ensure it is correct before anyone designs anything from it - only to find out I have made another silly mistake! Edited by Grogster 2015-08-22
Smoke makes things work. When the smoke gets out, it stops!
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 07:24pm 20 Aug 2015
Copy link to clipboard 
Print this post

G,

Can you check F10/F11.

Microblocks. Build with logic.
 
Grogster

Admin Group

Joined: 31/12/2012
Location: New Zealand
Posts: 9641
Posted: 07:48pm 20 Aug 2015
Copy link to clipboard 
Print this post

UPDATE:

Three more keycode errors, that failed the LED test with the 2nd keyboard.

F9, F10 and |

I am re-tracing them, and will post update soon. All other keys right across the KB have passed the LED test when each one is pressed.
Smoke makes things work. When the smoke gets out, it stops!
 
WhiteWizzard
Guru

Joined: 05/04/2013
Location: United Kingdom
Posts: 2948
Posted: 07:59pm 20 Aug 2015
Copy link to clipboard 
Print this post

Gents,

You may find the following useful to cross reference against. This is a 'standard' matrix that appears to have been adopted by many manufacturers so probably worth running your eyes over . . . .

2015-08-21_055818_Grogs_KeyMatrix.pdf

Hope this helps . . . .

WW
 
MicroBlocks

Guru

Joined: 12/05/2012
Location: Thailand
Posts: 2209
Posted: 08:28pm 20 Aug 2015
Copy link to clipboard 
Print this post

I am thinking of using a pic16f1455 to do the decoding of the matrix, together with a 4040B 12 stage counter.
You can then hookup the columns directly to the pins of the pic and use 2 pins for controlling the 4040B that will 'walk' through the rows.
In total 10 pins are needed. In the PIC software you will need to count the pulses to know which row you are scanning. Should be pretty easy to do. To make sure software and hardware are in sync the 4040 can be reset to start with 0.
The pic16f1455 supports HID so it will be possible to make a USB/Serial/I2C capable keyboard.
When used with this little keyboard there will be 3 outputs of the 4040 available to add some more 8 bit input/output ports. Maybe a joystick or touch to have some more choices for input.
I plan to use http://www.codeproject.com/Articles/832135/Microchip-PIC-F-USB-Stack-Part as the basis to get it to work.

Edited by TZAdvantage 2015-08-22
Microblocks. Build with logic.
 
     Page 3 of 14    
Print this page
The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025