Help with 1990s laptop keyboard.

ViciousPenguin

31 Jan 2015, 11:07

How can I fix the polarity? Turn the diodes around?

User avatar
Halvar

31 Jan 2015, 11:25

Sorry, I don't understand. Matrix diodes or LEDs?

What do you mean by fix the polarity?

User avatar
Halvar

31 Jan 2015, 11:49

From how I understand your notes on the piece of paper, your leds and the matrix are connected. 8 10 11 and 12 belong to the matrix, right? If that's really the case you'll need to disconnect them, or the leds can interfere with the sensing.
If you disconnect the leds from 8,10, 11 an 12, your matrix should probably work.

Also, are you sure you got the polarity of the LEDs right on your notes? To get the LEDs to work, their anodes need to be connected to a dedicated teensy pin each, and their cathodes to a resistor each and then GND.

ViciousPenguin

31 Jan 2015, 12:31

I have just done some more probing with a meter and it seems all the rows are connected together. I also probed between pin 12 (PB4) and Pin 16 (PF6). The keypress does not register with the positive probe on pin 12 and the negative on pin 16, but swap the probes around with positive on pin 16 and negative on pin 12 and it works.

Interestingly the working keys react to a key press with the probes in any position.

The conclusion is that the LEDs are blocking the keys, presumably if I bridge over the diodes the keys will work. I could test that theory and if it's correct then break the circuit and wire in the LEDs to the teensy with a common GND. Correct?

User avatar
Muirium
µ

31 Jan 2015, 13:45

Without a circuit diagram, who knows!

User avatar
Halvar

31 Jan 2015, 15:39

ViciousPenguin wrote: I have just done some more probing with a meter and it seems all the rows are connected together.
That should not be the case, unless maybe if all keys are pressed. I this were true, no keys should work at all. How and where on the circuit did you measure that? Did you measure a resistance between them at all? How high?
I also probed between pin 12 (PB4) and Pin 16 (PF6). The keypress does not register with the positive probe on pin 12 and the negative on pin 16, but swap the probes around with positive on pin 16 and negative on pin 12 and it works.
That actually looks to be how it's supposed to be. Pin 16 is a strobe (output port on the teensy), Pin 12 is a sense (input port on the teensy). So positive on pin 16 and negative on pin 12 is correct. The other way around might be blocked by a diode, I don't know. There seem to be only 7 diodes on the PCB (D1 to D7), I don't know where they go logically in the circuit, the pictures of the PCB are too dark / too low-res to follow traces even where they're visible.

R1 to R4 are probably for the 4 LEDs.
Interestingly the working keys react to a key press with the probes in any position.
Could mean that there are no diodes on those columns, but there are some on the columns that don't work.
The conclusion is that the LEDs are blocking the keys, presumably if I bridge over the diodes the keys will work. I could test that theory and if it's correct then break the circuit and wire in the LEDs to the teensy with a common GND. Correct?
There are 4 LEDs and 7 normal diodes on this board. If anything, the normal diodes should be part of the matrix, and the LEDs should be connected to their own circuits, in line with their resistors. So I would start by bridging the normal diodes and see what happens. Alternatively, you could transpose the matrix in the software (make the row pins the column pins and vice versa) and test that.

Also, could you re-check the LEDs? Are the resistors R1 to R4 connected to the LEDs, and where does the other end of each resistor and LED go? I still have trouble believing that they are part of the matrix.

ViciousPenguin

31 Jan 2015, 18:50

I've left the workshop for the rest of the weekend. I'll have a crack at it tomorrow and see what's what. I like the douns of transposing the matrix. I'll give that a go first.....

Thanks for the help :)

ViciousPenguin

03 Feb 2015, 13:32

Super fantastic Success, it works!

Turning the matrix around fixed it. Here's the config file as it is now having been transposed.

Code: Select all

# Matrix config for ICL NB386S keyboard.
# http://deskthority.net/workshop-f7/help-with-1990s-laptop-keyboard-t9726.html

matrix
	scanrate 1
	debounce 5

	sense			PF0			PF1			PF4			PF5			PF6			PF7			PB6			PB5			
	strobe	PC6		UNASSIGNED	UNASSIGNED	UNASSIGNED	SCROLL_LOCK	PRINTSCREEN	UNASSIGNED	UNASSIGNED	LALT
	strobe	PD3		UNASSIGNED	RSHIFT		UNASSIGNED	UNASSIGNED	UNASSIGNED	UNASSIGNED	LSHIFT		UNASSIGNED
	strobe	PD2		RIGHT		Z			A 			Q			1			UNASSIGNED	TAB			ESC
	strobe	PD1		DOWN		X			S			W			2			F1			CAPS_LOCK	BACKSLASH
	strobe	PD0		SLASH		BACKSLASH	SEMICOLON	P			0			MINUS		LEFT_BRACE	BACK_QUOTE
	strobe	PB7		INSERT		COMMA		K			I			8			EQUAL		RIGHT_BRACE	F6
	strobe	PB3		SPACE		ENTER		UNASSIGNED	DELETE		F10			F9			BACKSPACE	F5
	strobe	PB2		LEFT		UNASSIGNED	FN1			UNASSIGNED	UNASSIGNED	LCTRL		F12			F11
	strobe	PB1		PAUSE		C			D			E			3			F2			F3			F4
	strobe	PB0		B			V			F			R			4			5			T			G
	strobe	PD7		N			M			J			U			7			6			Y			H
	strobe	PB4		NUM_LOCK	PERIOD		L			O			9			F8			F7			UP
	
end
The LEDS are definitely part of the circuit...
led.jpg
led.jpg (153.97 KiB) Viewed 1749 times
Caps Lock = PB4
Scroll Lock = PB0
Num Lock = PD7
Pad Lock = PB2

I can only surmise that the polarity changes on the relevant pin when the caps lock etc is pressed which in turn lights up the LED. I expect I can take them out the circuit as mentioned before but they will have to wait for the time being though. Next I need to sort out the FN1 layer........

Thanks guys you have all been a great help :)

User avatar
Halvar

03 Feb 2015, 14:11

That's cool, congrats! Looks like a very nice keyboard.

edit: s
Last edited by Halvar on 03 Feb 2015, 17:35, edited 1 time in total.

User avatar
Muirium
µ

03 Feb 2015, 14:15

Indeed. Good job. Show us your finished hardware!

ViciousPenguin

03 Feb 2015, 17:21

Will do, I'm replacing all the internals with new parts. I have a 10" LCD, Raspberry Pi B+ / 2, or an Odroid C1, not sure which yet, to go inside. Plus of course all the power circuits and a LiPo.

The keyboard was the only bit I didn't know how to do, until now :)

Post Reply

Return to “Workshop”