DISCLAIMER: The information in this page comes with ABSOLUTELY no warranty, or guarantee as to is accuracy, either express or implied. I can in no way be held responsible if you damage your PC or Sun keyboard using this device. I didn't invent this adaptor, this was accomplished by Ove Risberg, who owns the copyrights on the assembler code, PCB layout and deserves the gratitude of all us who love the Sun Type 5 keyboard.
Many people have dreamed of having their Sun Type 5 keyboard attached to their PC. Now with this adapter, it is finally possible. Because the standard Sun keyboards use TTL RS232 at 1200 bps to talk to the Suns, it's relatively easy to make them talk to any non-Sun computer by converting this to true RS232. However PC's don't understand keyboards hooked up to serial ports without special drivers. While such drivers do exist you will still need to keep a PC keyboard about if you want to change the BIOS setup etc.
Presented here is a simple micro-controller device that will talk to the Sun keyboard and the PC's keyboard interface and convert between the two. You can now throw away those nasty cheap PC keyboards and use a real keyboard on your PC. While the original schematics seem to indicate that it converts the Sun mouse to a serial PC mouse, it does not work for me.
Be warned, to be able to make this device you need to have some electronic and soldering skills and a method of creating a PCB. The Press 'n' Peel system is probably incapable of making this PCB due to the fine tracks. I gave it a go anyway and it did not work.
For those not brave enough to build there own, there is at least one commercial device that can be purchased of the shelf. It comes from Ultra Spec cables and can be seen at http://www.ultraspec.com/5189.asp?Id=379. Bear in mind that this device is not cheap and is probably out the reach of private individuals.
Apart from the micro-controller all the parts are readily available. The MC68HC11A1 is no longer being manufactured by Motorola. If you can't get hold of a MC68HC11A1 you could either try the MC68HC11E1 which is it's closest relative (I have no idea if it will work though), or I have a limited supply of the MC68HC11A1 which I am selling. I had to purchase a whole tube of the MC68HC11A1 and therefore have about 20 left. I am willing to sell them on at cost (and pre-programmed), email me for more details.
For residents of the United Kingdom I have included Maplin parts numbers in the PDF. Note that Maplin no longer sell 52pin PLCC sockets or 1mF capacitors with standard 5mm lead spacing so I have included Farnell part numbers for these instead.
It is worth while taking some time to consider how you are going to house the completed circuit before beginning construction. What ever you choose it will need to be screened, so a metal box is preferable. I chose to house the circuit in an extruded aluminium box which would take PCB's up to 55mm wide and 120mm long. The PCB is 50mm by 100mm so I was able to make the PCB on a piece of size 1 board and chop it down till it was 55mm wide. I then mounted eight and six pin mini-DIN sockets on the end plate and used a six pin male to male mini-DIN lead to connect to the PC and plug the Sun keyboard straight into the box. This required some metal work as the mini-DIN sockets required cutting down to size in order to fit. However the result was worth it and as the end plates are purchased separately I could always get another if I botched it on the first go.
The M68HC11 needs to be programmed under MS-DOS on the mentioned slow PC. If the loadall program sends data to fast, the circuit cannot handle it. For me a 486SX 20MHz laptop in power save mode (half clock speed) was too fast. What I did was to use a DOS TSR program to slow the computer down. The program I used for this purpose was called Bremeze and was able to slow a Pentium 75MHz laptop enough to program the device. I have also included a binary patched version of loadall.exe called loadall1.exe. This version uses the COM1 port instead of COM2 in case you are using a laptop with only one serial port.
If your are going to be using the keyboard under a Unix type operating system use xev to discover how your X-server interprets what it gets from the new keyboard. Under XFree86 I use the following in the .xmodmaprc file (loaded from .xinitrc):
keycode 121=Redo keycode 122=SunProps keycode 123=SunUndo keycode 124=SunFront keycode 125=SunCopy keycode 126=SunOpen keycode 127=SunPaste keycode 128=SunFind keycode 129=SunCut keycode 130=Help