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.
Important note for R3000 indigo owners!
The R3000 indigo is missing the -8v supply voltage on the keyboard port, and you need to perform a quick and easy hack to the sgikbd board to make it work with it. Check out details and instructions for the indigo R3000 hack. No other pre-PS/2 SGI computer has been reported to have the same issue, and need such a hack so far. Certainly on the R4000 indigo sgikbd works out of the box. Please send me an email if you encounter issues with other computers. |
Copyright (C) 2017-2024 John Tsiombikas <nuclear@mutantstargoat.com>
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 # |
---|---|---|---|---|
22pF capacitor | 2 | C1,C2 | 0805 | 187-CL21C220JBANNNC |
0.1uF capacitor | 4 | C3,C6,C7,C9 | 0805 | 187-CL21B104KBFNNNE |
0.33uF electrolytic capacitor | 3 | C4,C5,C8 | SMD electrolytic 4.0x5.4 | 647-UWP1HR33MCL |
1N4148 diode | 1 | D1 | SOD-123 | 241-1N4148W_R1_00001 |
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 |
4.7k resistor | 4 | R1,R2,R3,R4 | 0805 | 603-RT0805FRE074K7L |
tactile push button | 1 | SW1 | SMD tactile button 6x6mm | 179-TS046670BK160SMT |
Atmega328PB microcontroller | 1 | U1 | TQFP-32 | 556-ATMEGA328PB-AU |
Mini-DIN 6pin connector | 3 | U2,U3,U5 | Mini-DIN 6pin through-hole | 571-5749180-1 |
LM358 opamp | 1 | U4 | SOIC-8 | 863-LM358EDR2G |
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
fw/sgikbd
from
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
make fuses
.
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
the case/sgikbd.scad
source file in
OpenSCAD and export to STL yourself. Make sure
to check case/README.md
for details on various options you can set to
customize the case.