This project is a converter for connecting PS/2 keyboards and mice to old Silicon Graphics computers which had a proprietary keyboard/mouse interface. It should work on every non-PS/2 SGI computer with 6pin mini-din, 9-pin D-sub, or 15-pin D-sub keyboard/mouse connectors, such as:
The kicad design files and firmware source code are available in the project github repository.
Under the github releases page you will also find official release archives with pre-compiled firmware, exported gerber files, and PDF schematics, which are not part of the source repository.
Also you might be interested in this video on youtube where I'm showing the board in action and explaining how it works.
I got a report from an R3000 indigo owner, that his computer lacks the -8V power rail on pin 6 of the mini-din keyboard/mouse port. SGI documentation (man keyboard) specifies pin 6 as carrying -8V and this adaptor uses it and will not work if it's not present. My R4000 indigo at least does have it, which is why it works for me.
If you intend to build this adaptor, it would be best to check if your computer has -8V DC present on pin 6 first. Please report your findings via email, so that I can get a better picture of which machines have this issue.
Copyright (C) 2017-2022 John Tsiombikas <firstname.lastname@example.org>
Both hardware designs, and software parts of this project, are released under the terms of the GNU General Public License v3, or at your option any later version published by the Free Software Foundation.
You are free to use, reproduce, modify, and redistribute any part of this project, provided you make any derivative work you release freely available, under the same terms.
Download the schematic in PDF format.
Download gerber files for manufacturing the PCB.
|Description||Count||Designator||Footprint||Mouser part #|
|0.33uF electrolytic capacitor||3||C4,C5,C8||SMD electrolytic 4.0x5.4||647-UWP1HR33MCL|
|AVR programming header||1||J1||2x3 mane pin header 2.54mm pitch (shroud)||710-61200621621|
|2N7002 n-channel MOSFET||1||Q1||SOT-23||757-T2N7002AKLM|
|tactile push button||1||SW1||SMD tactile button 6x6mm||179-TS046670BK160SMT|
|Mini-DIN 6pin connector||3||U2,U3,U5||Mini-DIN 6pin through-hole||571-5749180-1|
|7805 linear voltage regulator||1||U6||SOT-252||621-AS7805ADTR-G1|
|7905 linear voltage regulator||1||U7||SOT-89||511-L79L05ABU-TR|
|DSUB-9 female connector||1||U8||DSUB-9 female through-hole||649-ID09S33E4GV00LF|
|DSUB-15 female connector||1||U9||DSUB-15 female through-hole||649-ID15S33E4GX00LF|
|Crystal 3.6864MHz||1||Y1||SMD HC49-SD||815-ABLS-3.6864M-T|
Download the BOM in CSV format
To build this board you will have to:
Simply download the gerber zip file from this page, or zip the gerber directory from the latest release archive on github, and upload it to a PCB manufacturer of your choice. I usually use JLCPCB. Another popular choice is PCBWay, and there are of course many more PCB manufacturers out there. JLCPCB charged me 1.5 euros plus shipping for 5 of these boards in 2022. Shipping to europe was about 30 euros.
I usually shop for components from mouser, and for convenience I've included mouser part numbers in the BOM. This means you can just download the BOM CSV file, upload it to mouser, and create a shopping cart with all the necessary components. If you do so, make sure to also adjust the number of each component to something which makes sense. Buying a single transistor or 3 resistors is ridiculous, and it's useful to have spares just in case.
If you don't have experience with SMD soldering, the only slightly tricky part should be the microcontroller. The trick is to use lots of good rosin flux, a flat-tipped soldering iron with temperature control, and good thin (~0.5mm) rosin-core solder. Tack two opposite corner pins first, then drench in flux, add a bit of solder to the iron tip, and drag it slowly and gently along the pads. If you introduce any shorts, simply clean the iron tip thoroughly, add more flux, and pull the excess solder out with the iron tip.
The rest of the components should not pose any trouble, when in doubt, use flux. Just populate the smallest components first, before the larger ones, to have space to maneuver.
If you want to compile the firmware yourself, go into the
fw directory, and
type "make". You will need to have the GNU AVR toolchain installed: gcc-avr,
avr-libc, and GNU make.
Alternatively you can just use the code-compiled firmware image
the release archive.
For programming the microcontroller with the firmware image, you'll need
"avrdude", and a suitable AVR programmer. Connect the programmer to the 6-pin programming
header on the board and to the computer, and type
make program and
The "program" and "fuses" rules in the Makefile are written for
Lady Ada's USBtinyISP
programmer, which is what I'm using, so you might need to modify the command line
slightly to match yours. Probably only the "
-c usbtiny" part needs to change.
There's also an enclosure design for the sgikbd board, designed for 3D printing.
You can find pre-exported ready-to-print STL files in the release archive, or open
case/sgikbd.scad source file in
OpenSCAD and export to STL yourself. Make sure
case/README.md for details on various options you can set to
customize the case.
Back to my web page