sgikbd - indigo R3000 hack

If you don't care about the theory, feel free to jump straight to the instructions.

Problem description

It is reported by multiple users of sgikbd, that it doesn't work with R3000 indigos, because contrary to what the the SGI documentation I used while designing the sgikbd states, they don't provide the -8v supply voltage on the keyboard/mouse port.

KEYBOARD CABLE PINOUT
PinSignalDescription
1KRCDKeyboard Receive
2MRCDMouse Receive
3GNDGround
4+8VdcPower
5KTXDKeyboard Transmit
6-8VdcPower

sgikbd uses the -8v rail, regulated to -5v by a 7905, to power the LM358 opamp which inverts and performs level translation for the data transmitted to the workstation.

Theory of the hack

Lacking a -8v supply, we could derive the necessary -5v for the opamp by tapping into the "keyboard transmit" data line. That line is used by the workstation to send commands to the keyboard during initialization, and to toggle lock lights. At all other times, it's idling at a steady -5v level (logic 1).

The idea is to remove the 7905 regulator, and use its existing capacitors to store charge while the line is idling at -5v, to smooth out momentary transitions to +5v when the workstation is transmitting. Then just use that smoothed input line as a negative supply rail to the opamp.

Risk assesement

The only potential risk involved is for the opamp to draw too much current from the KTXD line, damaging the RS423 output drivers. To determine if that's possible we need an indication of the maximum current drawn by the opamp during normal operation.

SGI schematic RS423 receiver

The output of the opamp is fed into a 75175 line receiver IC on the workstation side, which has high-impedance inputs. This means that the opamp isn't doing any amplification really, and we can approximately expect it to draw little above its quiescent current.

LM358 quiescent current

According to the datasheet, the LM358 quiescent current for a supply voltage of 10v (-5v to 5v) is approximately 330μA per amplifier, so 660μA for both. Double that to leave a good margin for the maximum current, and we end up with 1.3mA, let's call it 2mA to leave even more room.

SGI schematic RS423 driver

The KTXD line is driven by a ds3691 line driver. According to its datasheet, first of all it has short-circuit protection for source and sink outputs, so even if we exceed its capabilites we shouldn't be able to damage it. But more importantly, it states that its output current can go up to 80 to 150 mA, which is at least an order of magnitude higher than our maximum current draw figure, even if we quadrupled it.

DS3691 output current

Instructions

The instructions for performing the hack are very simple, and slightly simpler if done before assembly, because you can skip step 1 if you have not already soldered the -5v regulator.

  1. Desolder and remove the 7905 regulator (U7)
  2. Cut the traces goinf from pin 6 of the DIN (indigo/onyx) connector to the right side of the electrolytic capacitor C5. Optionally, if you intend to use the DB15 connector, also cut the trace going to pin 15 of the DB15 connector.
  3. Make a solder bridge shorting the two bottom pads of the 7905 regulator footprint
  4. Connect a wire between pin 4 of the DB15 footprint (U9) and the bottom side of the capacitor C9, or the shorted pads of step 3.
instructions

... step 5: drop me an email, to tell me how it went.

References