At the C4 EXPO, I modded the firmware to run with the new board. KB to PS2 worked at the show, but PS2 to 64 wasn;t right. I found the bug last night, an error in my utility that converts the key row/col fields. With that fixed, there was a small bug I spent all last night fixing, only to determine it was not a bug. At the show, I could not get the CAPS LOCK LED to light up on the SX KB. The PC should be sending me the LED ON/LED OFF cmds, but it was not. After spending all night scoping and logic analyzing the difference between a normal KB and my code, I determined that the protocol was fine. I was missing a byte I needed to send back as a response to the PC GET KEYB ID command. With that fixed, all the LED commands are coming back.
Since I was not able to prototype the whole thing before making the boards in all circumstances, I found a few design bugs I need to fix:
o PS2 socket is backwards. Easy fix o PS2 DATA and CLK lines got mixed up. Fixed o SX64 KB requires 5V sent to it. Still thinking about that, as I have a diode in the 5v to prevent backfeeding a 64 if someone accidentall plugs the entire board into a PC while still in a 64.
But, I'm very happy with the design. It works on my laptop, my KVM, and other PCs around here.
Post by techiejohn on Dec 28, 2007 16:16:40 GMT -5
How is the C=Key coming? Haven't seen an update recently... Is it possible to get one or 2 still? I am thinking about 1 of those OLED Keyboards with all the commie chars mapped out on them... I think that could be pretty awesome...
That would make the ultimate 128D... built in Ethernet, CF or SD reader, hard drive, serial port and the OLED keyboard...
I think 2008 is the right time to finish the project and move on.
I've resisted selling kits or finished units until now because I am a perfectionist, and I didn't want someone to get the interface, find a bug (or three) and lambast me on the forums for putting out a crappy product. However, I realize I am making decisions for all of the folks who have inquired about units that are not my decisions to make. As well, without more people to test, the code will never be better than it is today.
Thus, if you are still interested in this interface, I am ready to make it available in any form you would like.
Some details on the interface:
* It will interface a CBM keyboard to a PS/2 compatible PC * It will interface a PS/2 keyboard to a CBM machine * It comes ready to operate with the following keyboards or computers: o VIC-20 o C64 o SX64 o C128 o C128D (DB25 gender changer required for PS/2 KB to C128D operation) * The firmware can be extended to support any CBM (or non CBM) machine with up to a 8x12 keyboard matrix. PET/CBM machines and Plus/4 machines come to mind. * The original keyboard can still be used (VIC/C64 has built in passthrough on circuit board, C128 can use existing connector, other machines will require wiring up a keyboard connector) * It does not require modification of the computer. (You do have to open the machine to install) * The firmware contains 4 keyboard mappings (C64 positional, C64 symbolic, C128 positional, C128 symbolic). Other mappings can be added. Positional mappings use VICE mappings, though that too can be changed. * keyboard mapping is retained on power-down * C64DTV can be used with the interface * Optional "RESET" line can be installed which will reset machine upon Ctrl/Alt/Del keypress * Interface can be configured via the attached keyboard. * Dual Joystick connectors are passthrough when using the interface on a CBM machine. Joysticks actions map to keypresses when used with a PC.
* Ability to record powerup or RESET macros (LOAD "*",8,1 for example) * Keyboard remapping
Now, if you are interested, here are the ways to obtain the interface:
* The entire project is GPL. Schematics, EAGLE CAD PDB files, source, and firmware executables will be posted to a project page, but are available now in my SVN repository at www.jimbrain.com/svn/c=key/ (http://www.jimbrain.com/WebSVN/listing.php?repname=c=key&path=%2Ftrunk%2F&rev=0&sc=0 is the human friendly web view) $0.00 cost * A programmed ATMEGA162 is $10.00 + Shipping * A programmed CPU and MT8812 crosspoint switch (needed to use interface with CBM machine) is $20 + Shipping * A programmed CPU and bare board is $30 + Shipping * CPU, PCB, and MT8812 is $40 + Shipping. * Actual hardware o Base prices: + C128D to PC: $43.00 + C128 to PC: $39.00 + VIC/C64 to PC: $40.00 + SX-64 to PC: $41.00 + PC to C128D: $50.00 + PC to C128: $47.00 + PC to VIC/C64: $49.00 + PC to SX64: $50.00 + All integration options: $52.00 o Kits come without joystick receptacles. Add $5.40 to kit price for 2 sockets. o US shipping is $4.60 o Assembled units are $10.00 more.
Currently, I have no source for PS/2 mice cords with the molded miniDIN plug (I use those for the CBM KB to PS/2 PC integration options, so the prices above assume you can snag your own cable. There are only 4 wires to solder/plug onto the board. Or, you can mail me a cord and I will solder it on for assembled units
If you're paying attention, you'll no doubt notice my PCB costs are a bit high. Prototype board runs are not cheap, though that price should come down if I do a production board run. I only have 10 prototype boards, so if I get a cheaper rate, I'll pass it on.
If you've gotten here are are still interested, here are the caveats:
* I'd prefer the early adopters be comfortable reprogramming the CPU (a programmer is $2.00 in parts bin parts and needs only a PC parallel port and Windows or UNIX/Linux/*BSD). I expect there to be some firmware updates (I don't use VICE all that much, and the SX64 code is very lightly tested.) * I can accept Paypal, checks, or MOs at this time. I'll entertain bank transfers if no other option is viable. * If you are expecting a finished product firmware and the carefree freedom it will provide, wait. I don't want to be held responsible for someone's overly high expectations. It does work, and it works well, but some of the mappings might be off on some more esoteric keys, and the PS/2 protocol is implemented many ways on many machines.
Whew. So, if you got here, let's chat.
P.S. Many thanks to Sean M. Pappalardo for continuing to bug me about the interface. Sometimes, folks need a constant periodic nidge to get things done (or close enough to done)