geekhack
geekhack Projects => Making Stuff Together! => Topic started by: Micheal on Wed, 27 December 2017, 11:12:39
-
Hi All,
I am looking for some advice on the best way to convert an old built-in keyboard on the Amstrad PPC640 to a USB for use with a Raspberry Pi model 3B ? The layout is similar to an M Model IBM keyboard, but I no longer have the PCB or any internals to the laptop. Would it be easier to buy an M model or similar to fit the existing unit, or is there a schematic I could build to convert it?
-
I can tell you that that would likely not fit in a Model M case because of the bottom row.
The only thing that comes to mind with a bottom row like that would be a Zenith ZKB-2, which are pretty hard to find, but there may be clones or other boards with the same layout, as it appears yours may be
https://deskthority.net/wiki/Zenith_ZKB-2 (https://deskthority.net/wiki/Zenith_ZKB-2)
edit: The little blockers threw me off>< Thats a weird one, still curious about the switches!
-
thanks for the heads up, I'll have a look for that model.
I have had a look round but struggled to find anything that would be of any help with the age of the laptop. “102-key keyboard (standard AT layout)” is as much as I can find, but it is obviously not connected by 5-pin DIN connector, with the internal ribbon connection.
If a ribbon conversion wasn’t possible, I am happy to do some minimal alterations on the casing for the refit. Removing these two small pieces of plastic is a small job, if I can source a keyboard that fits. Finding measurements specs this specific doesn’t seem easy?
-
I can see immediately that the Zenith is not compatible inside that case: the Ctrl keys are 1.75, not 1.5 and the spacing between key numeric row and function key row is too large.
Even if you do find a replacement keyboard that has the right layout, it could be too large on the inside, so do google for images of how the innards look like!
If you do know some rudimentary C programming and can solder, you could go with what you have got. I would assume that the two ribbon cables are connected directly to the matrix of key switches - where each key switch consists of a pair of conductive pads on a membrane.
One cable would be the (logical) columns and the other is (logical) rows -- which is which does not really matter unless it is a fancy keyboard with a diode at each switch (but this is Amstrad and they never made any fancy stuff that I can recall). Each switch is on the intersection between a row and column, connecting one to the other when pressed.
The layout of a keyboard matrix almost never corresponds very well with the actual layout of the keys - you will have to find it in a manual, from someone that has already reverse-engineered it (if someone has), or reverse-engineer it yourself using a multimeter.
First, count the number of leads. You will need to either connect all of them to GPIO pins, or use a multiplexer of some kind for (what you choose for) the columns as only one needs to be strobed at a time.
Is there any keyboard software for the Raspberry Pi and the OS you are planning to use?
Most DIY:ers here use a Teensy 2.0 (25 GPIO pins) or Teensy++ 2.0 (https://www.pjrc.com/store/teensypp.html) (more pins) microcontroller board and the TMK (https://github.com/tmk/tmk_keyboard) keyboard firmware with a specialisation for the keyboard matrix.
-
This is great thanks. Amstrad did indeed refrain from making this fancy, so if I can’t find a matrix I may have a go myself.
I think I can solder a voltage regulator to the Teensy++ USB Development Board and use it with the raspberry Pi, seems like a solid way forward. I think this will be simpler than trying to source and exact match for the existing! Cheers
-
Hi I just wondered if you got anywhere with this mod? I have also acquired a PPC 640 and looking to either try to upgrade it in any ways possible or use its keyboard and case for a raspberry pi or such. Did you find anything that worked well? I'd love to swap out that LCD screen somehow and fit a modern higher res colour LCD...
Thanks for any help at all.
-
Hi,
I have fitted a 7" screen and the Pi is running nicely, needs a few heat sinks, but I am still working on the integration of the keyboard. It might have to take back seat for a few month as I have to finish my studies as an OT. I will happily share everything when done!
Apart from the keyboard, everything else has been easily fitted. I just stripped it out, resprayed all the casing and used perspex to fill any large opening left from the floppy or hardware removal.
I'll update this when I have moved forward, hope your retrofit goes well
-
Hi,
I have fitted a 7" screen and the Pi is running nicely, needs a few heat sinks, but I am still working on the integration of the keyboard. It might have to take back seat for a few month as I have to finish my studies as an OT. I will happily share everything when done!
Apart from the keyboard, everything else has been easily fitted. I just stripped it out, resprayed all the casing and used perspex to fill any large opening left from the floppy or hardware removal.
I'll update this when I have moved forward, hope your retrofit goes well
That sounds really good! I look forward to seeing what you've done. I'm probably going to use something like an Asus Tinkerboard just to squeeze a little more cpu power. I'd hoped there may also be a bit bigger screen option too like a 9" screen? The oldschool one is 9" right? But yeah it is the keyboard that is worrying me the most, if there is a way to make the original one work it would be truly awesome. Also what are your thoughts on reusing the original power buttons and maybe cutting out the battery dividers and fitting some kind of rechargeable laptop style battery pack??
-
Yeah the Asus Tinkerboard at a quick glance will fit and work well on the same premise on which I am building mine. The are 8" screens that may fit, the 7 fits nicely, as you can fit the control switches below it in the same compartment, without much alteration to the original casing. There was a kickstarter for a HDmini 9" a few years back, but the site has been down for maintenance for a while, you might be able to source one.
I don't think the power button will be a big job, and I did look into a power bank, again should be pretty straight forward, as long as you get one with that will be able to support the screen and cpu and anything additional you add. I would fit what you need to get it running first and see what space you have, batteries might start increasing temperature depending on where you fit everything, I know the Pi3 recommends using a fan as it can run hot. Maybe check some Tinkerboard heat sink check on youtube or the like?
It will probably be june/July before I have proper time to start mapping out the Keyboard, but I will certainly drop back in and post whatever I can.
-
@Micheal: Hey there bud, i hope i'm not too late to reply on your thoughts; you're actually the reason i registered on geekhack! LOL
Anyway, been through this project myself, and still working on it after a few years. Initially i went with an IBM keyboard, but had to change to a Lenovo one. Here's my build thread on Amibay: http://www.amibay.com/showthread.php?39171-Another-(winter)-new-project
The reason i switched from IBM to Lenovo is that the IBM was a PS2, and would not work even with adapter on the Pi's USB port. The Lenovo is a USB one, model SK-8825 (L). The layout on both keyboards fits the Amstrad, but be prepared for some cutting and sanding to fit it in there.
Of course the original Amstrad's keycaps won't fit on either, so you'd have to compromise with the black ones..
-
The is amazing news, I will have a look at this this week! Thank you for registering to let us know!
-
The is amazing news, I will have a look at this this week! Thank you for registering to let us know!
wow cool reading before I embark on a similar project! Hopefully I can get some more ideas from what you've done there... :)
-
Hey,
salaxi54, thanks for the keyboard info. I ordered the closest I can get.
simulant just in case you move on this before I get mine fitted I have chosen to slight different method but using the parametres of keyboard salaxi54 kindly supplied.
I didn't want to mod the casing, so I have decided that since the keyboard membrane of the Lenovo SK-8825 nearly matches the old, I am going to use the original keyboard of the amstrad, with new membrane and USB connection. Which requires a very small mod to the casing to fit the Circuit board. I managed to get it measured up and check fittings. I'll let you know when I have made the mods and changed the key configuration. Fingers crossed it will all fit and work nicely!
I have added a few images of what I have done so far, I'll add more when I get round to fitting it.
-
Hey,
salaxi54, thanks for the keyboard info. I ordered the closest I can get.
simulant just in case you move on this before I get mine fitted I have chosen to slight different method but using the parametres of keyboard salaxi54 kindly supplied.
I didn't want to mod the casing, so I have decided that since the keyboard membrane of the Lenovo SK-8825 nearly matches the old, I am going to use the original keyboard of the amstrad, with new membrane and USB connection. Which requires a very small mod to the casing to fit the Circuit board. I managed to get it measured up and check fittings. I'll let you know when I have made the mods and changed the key configuration. Fingers crossed it will all fit and work nicely!
I have added a few images of what I have done so far, I'll add more when I get round to fitting it.
Hi that sounds and looks a good move. I definitely want to use the original keyboard too if possible. I hope the membrane works ok with the original keys!
-
@Micheal : Cool thinking! If it's close to the SK-8825, can you please mention your exact model? We all need to have alternatives, especially if parts are rather old. What exactly are your modding intentions? Is it the markings on the case plastic, which i assume you are about to cut? Don't do that before you manage to test the USB parts with the original keyboard to make sure please. And let us know how it went! :thumb:
-
@Micheal : It appears your idea was correct! I had to cut a piece off the original keyboard plastic plate, so as not to cover the USB controller:
(https://postimg.cc/CdLSTbhT)
(https://postimg.cc/VJMcBRRM)
(https://postimg.cc/N5ZcHV1B)
It looks as if something more needs to be cut, probably along the top length of the plastic, because the case does not snap tight, leaving a small gap on the top of the cover. But we're getting there!
(https://postimg.cc/r0gTRw9P)
Once i figure out what needs cutting, next step will be testing the operation of it. I'll let you know. :-)
-
Excellent news! I presume the small cut marked on the casing above the circuit board still needs to be made to help with that last bit of wiggle room? Finger crossed the function works. If I remember right the alt keys and space will need reassigned, but most of the other keys seem to line up well. Did you use the original metal back plate when fitting it?
My confidence in completing this has definitely increased with the support of this forum, thanks for the continued posts! Good luck with the function test! I will see what time I have this weekend to do the same!
-
Nope, not gonna happen! There's far too many switches not being pressed.. It's not just SPACE or ALT, remember, the USB keyboard has extra keys like the Win logo, and the ones surrounding the Enter key, which also has a location problem. As about the Amstrad plate, no, i kept the Lenovo one at the bottom, so i avoided cutting the original plate too. I will return to the previous condition, and maybe find alternate keycaps in the future. Micheal, i would suggest not cutting the case plastic, but instead cut part of the pcb to fit. It is a ground signal, and would not affect it much, at least in my case.
-
Fast work I wish I had more time! I was aware of the alt keys and space, not the return. I was going to reassign and make a couple dead. Thanks for letting me know what we are up against. I will see if I can make a work around of keys assignment before I do any modes.
-
@Micheal: Your Lenovo is a different model from mine, maybe you will have far less work than me. First, your Enter key is different from mine. Seems to match the Amstrad one. What is your actual model?
-
Hey, sorry yeah so the info that came was:
IBM Lenovo Preferred Pro USB Keyboard SK-8825 (L) (Business Black) - US English
I hope this helps, it marrys up pretty well. I will get it out again at the weekend and let you know if it is more successful.
-
@Micheal: any news on your attempt? If anyone is reading, i'd like to ask a favour:
Can anyone try an external USB floppy drive on the pi3? As soon as i open the .adf request menu on my UAE Amiga emulator, the floppy makes the machine stuck. Has anyone had negative experience with their external floppies at all?
Thanks in advance!
-
Its come to a standstill for now, I will get chance to come back to it in around 6 weeks or so. I'll update you when I can, good luck with the floppy drive.
-
this is not original keyboard mod.
using old case and new keyboard.
i want to convert original keyboard to usb with org keycaps
-
hi again.
i made modification of PPC512 keyboard with teensy 2.0 (24 IO is enough) (same hardware with ppc640 )
ppc512 is without capslock led. i installed.
pre programmed matirx are not usable. need to make new one.
full NKRO supported
and i must tell leds are common anode
br
https://i.hizliresim.com/QPG4MV.jpg
https://i.hizliresim.com/dLEWbL.jpg
https://i.hizliresim.com/M14PJa.jpg
https://i.hizliresim.com/XbpD46.jpg
https://i.hizliresim.com/5Nz7ol.jpg
https://i.hizliresim.com/dLE3Wr.jpg
https://i.hizliresim.com/bvRDg0.jpg
-
Here's a video of my current status https://m.youtube.com/watch?v=KKwlPl84iUU
-
Just joined the forum to post here - I'm doing something very similar.
I managed to find a connector that work with the original ribbon cables
[attach=1]
I'm using a Teensy LC but the idea is the same - more than enough I/Os
[attach=2]
Here's an handy project for taking the hard work out of figuring out the matrix
https://github.com/thedalles77/USB_Laptop_Keyboard_Controller
Happy to report that I've got it all working except for the caps lock LED - appreciate some pointers on that one
The code for my matrix is currently defined by the Teensy pins (not much use if someone wires it differently). I'll translate is to show the connectors from the keyboard and post here so in case someone else needs the help.
-
For anyone looking for at doing the same see attached code - it'll need modifying for any differences in wiring but at least it's a start.
-
For anyone looking for at doing the same see attached code - it'll need modifying for any differences in wiring but at least it's a start.
Thank you so much!