Did you know Ribbon’s been hiding a dirty little secret from you? You can totally see the console on your SBC 1000’s ASM and interact with the machine directly! As per Damien’s article over here, Sonus/Ribbon provide VGA access to their ASM modules in the event you need to reflash the unit and don’t want to “just wait” hoping it’s flashing from your USB key or maybe tweak the bios settings. (Sorry Greig, I already checked, no way to disable auto power on)
You can find the VGA port hidden under the faceplate on the front of the SBC 1000, just push the 3 release tabs on the bottom and pull the faceplate up
As you can see, its not a “normal” VGA D-Sub 15 connector, its a .1 inch 2×5 header and it requires a special cable. Unfortunately, getting these cables is a pain in the ass as you need to be a partner, and typically, when you need a cable like this. You don’t have time to wait for your distie to send you one. If you just want to order one, the part number you need to order is UX1K-VGA-CAB.
So after having a quick look at the Ribbon documentation, I saw there is zero information on the pinouts of this port. Maybe they could take leaf from AudioCodes here in they document everything.
So I did what any self respecting nerd would do… I asked Damien for his cable.
When he couldn’t find it, I decided I’d figure out the pins myself! I mean, I have an oscilloscope and I haven’t blown that many things up, right?
The VGA Spec itself
A quick Bing search (yes, I use Bing. drop it) and I found the specs of the VGA standard and the VGA pinout itself.
Now, without going into too much detail, VGA is a purely analog signal similar to TV signals.
If you are interested in more after reading this, Technology Connections has some great content on it.
Anyway, what happens is the VGA card in your computer outputs 3 pixel signals. Red, Green and Blue at different voltages depending on how bright each pixel needs to be. These “Pixel Clocks” are only 0.7 volts peak to peak. So it’s easy to confuse them with noise. However, they are output with “blanking intervals” to match up with the H-sync and V-Sync
Sync Lines
Now, it’s theoretically easy for modern LCD’s to find those pixel blanking intervals and figure out the rest. However, the VGA spec was defined back when we had to drive older electron guns from the CRT days, so the monitor also expects 2 other signals, V-Sync and H-sync.
H-sync is a pulse at the end of every horizontal line and V-sync is a simple pulse at the end of every frame. They served two purposes, H-sync told the electron guns to move back to the left of the screen and Vsync was how often the gun needed to move from top to bottom, all the while the RGB pixel signals were driving how much power was being pumped into those electron guns, to illuminate the phosphor dots, to make pretty pictures! These days they are used to figure out what resolution your GPU is outputting.
Probing
That’s enough background. Let’s find the Sync lines so we can use them to find all the other pins by triggering from the H-Blank.
Having a look at the specs from above I found the image below, in it we can see what it’s supposed to look like on the scope, note the top rows are a single horizontal line out of the many hundreds per V-Sync.
So after grabbing some .1 inch DuPont M-F jumper leads from my parts pin, we can make a rudimentary connector, instead of trying to stuff my probe in that little cutout and shorting everything.
Realistically, we only care about a few pins, H-sync, V-sync and R,G,B and their associated grounds. There are other pins such as SDA, ID0 and SCL in the spec, but these are all additive to the video signal, for things like DDC monitor identification.
Finding the Sync pulses is quite easy, they are TTL level (5v) and are squarewave.
There we go, now we know where are sync clocks are, we only need to find 6 more pins. RGB and their respective grounds.
RGB Signals
VGA RGB signals are only 0.7v peak to peak, so initial looking may look like noise. We can check the pins we are probing are colour pins by looking for their Blanking Interval, this should line up with the porches on the H-sync signal.
In this image we can see the pixel signal represented by the yellow line, jumping up and down by about 1V. (2 cells at 500mV) and it has a blanking interval that matches with the H-sync represented in blue. We just found a pixel signal!
Another way to find and check them, is to look for their termination to ground. VGA RGB signals are 75ohms terminated. With our multimeter in ohms, lets find 3 pins with 75 ohms to ground.
After finding 2 more, I tried pumping these into a spare monitor to see what we got.
Finding Ground
We’re getting close, the monitor is trying to sync to the clocks, but we don’t have a proper ground sorted.
That’s easy enough. Grab our multimeter in ohms mode from before and look for a low impedance path to ground.
Lets doublecheck these are actually grounds with our scope to make sure there is no pixel or data clock on those pins.
Looks good, that “hairyness” is noise from nearby signals. We are down in 50mV per graduation range for channel 1 (yellow) whilst channel 2 (blue) is 2 volts per division.
So for context, the noise on that line is 100mV, or 0.0100V. Definitely not our VGA signal.
After more probing around, I found there are only 2 grounds on the 2×5 connector instead of the expected 5, So I assume they are tying all the RGB grounds together, along with sync ground and ground being tied together.
Probably because there is only 10 pins in the header and a standard VGA dsub is 15 pins.
Figuring out which pixel clock is which
Now we have the grounds and pixel clocks, we just try a a bit of “shove the pixel clocks in random orders till the colours look right” there’s only 6 possible permutations, so I’ll get there eventually.
Pin outs
Okay, I’ve done the hard part, so hopefully you don’t have to, if your just looking for the pinouts, here they are
Sonus ASM
Sonus header, Pin 1 top left corner, pin 2 bottom left corner and so-on.
Pin 1 | Pin 3 | Pin 5 | Pin 7 | Pin 9 |
Unknown | RGB Ground | Unknown | Sync Ground | Unknown |
Red | Green | Blue | V-Sync | H-Sync |
Pin 2 | Pin 4 | Pin 6 | Pin 8 | Pin 10 |
Now we are left with 3 unknown pins. Which will be for SDA, SCL and ID0, (or ID0,1,2j for an older monitor) these are for communications from the monitor to the host to tell the host what it supports and aren’t needed in this case.
I’ll also point out that finding some of these was a royal pain as the VGA output would constantly goto sleep! That poor SBA got rebooted so many times.
VGA Plug
VGA Pins. Looking into a cable from the pins side.
Making a Cable
Note, despite the image above suggesting you can tie pin 9 to ground. You shouldn’t, as the spec defines that it can be used as a voltage source (+5 v) from the VGA card. So unless you like catching the magic smoke, I’d avoid it.
Now we know all the respective pins, we just need to make a cable, now if your this far in the article with me, I HIGHLY suggest buying a female dsub 15 connector, a 2×5 Dupont connector and associated pins and doing it that way. This then would connect to your existing VGA cable. Sadly, I didnt.
Chopping up a VGA cable that you have laying around is quite difficult due to the way each colour and sync are shielded. This shielding is impossible to get off and TBH the wires inside are a PITA to solder. See below.
Once you’ve done everything, test it, shrink wrap it. use it for 5 minutes, put it away, lose it and never use it again.
Till next time!
Pingback: Running Doom on a Teams ISDN Gateway? - UcMadScientist.com
Pingback: Recovering a Sonus/Ribbon ASM with no OS on it - UcMadScientist.com