Game Boy Link Cables
General info
Game Boy link cables can be used to send and receive data from a GB or GBA. Unfortunately depending on which cables you buy, manufacturer and model, there are many differences in the way they are wired. First of all, the basic design follows the following pinout (looking at the cable, if you are looking at the console port make sure to mirror it):
---------
| 6 4 2 |
| 5 3 1 |
\-------/
- 1: Vcc
- 2: Serial Out (SO)
- 3: Serial In (SI)
- 4: Serial Double (SD)
- 5: Serial Clock (SC)
- 6: Ground
For reference:
---------------
| GND SD SO |
| SC SI Vcc |
\-------------/
Note that when operating on a classic GB or GBC the voltage of these signals is of 5V, as opposed to the 3.3V while running a GBA game.
In many cases SO and SI should be crosswired between the two cable connectors. In case of the GBA, it is a little bit more complicated. The best way of knowing which cable connects to which pin is to cut them open and use a multimeter to do continuity check for each pin. There is an example of how this looks like with a GBC compatible cable. Note that we have 7 leads, one of them being connected to the outer ring outside of the connector.
On the other hand I got a cable for the GBA in which each end has a different number of pins:
Big Small
/-------\ /-------\
| 6 4 x | | x 4 2 |
| 5 3 x | | 5 3 x |
+--. .--+ +--. .--+
- -
As you can see the big end of the connector lacks the SO and VCC connections, and the small end has no ground or VCC.
Building a CV adapter to STEPPER
As of v1.4, STEPPER can send and receive CV triggers to play in sync with external gear. STEPPER should be compatible with either type of link cable and both sides of the GBA cable can be used. STEPPER uses the general purpose SIO mode to send and receive data, which means that each of the 4 data pins can be used send or receive a 3.3V signal. In Sync In mode, STEPPER will listen to any of the 4 data pins for a signal, raising an interrupt if detected. In Sync Out mode, both SO and SC will be set to high during the clock trigger, keeping the rest of the pins at 0 level.
IMPORTANT: Sending too much voltage/current to the Sync In GBA may cause problems or fry your console. Try this at your own risk, I’m not responsible with any damages they may occur in this process.
In theory this means that a link cable could be connected between 2 GBA consoles directly, but I don’t own two consoles so couldn’t really test it. Instead I made a couple of different adapters to test things out with my hardware instruments.
I’m using two different extremes of the aforementioned GBA link cable for testing sync in and out independently, but one cable can be used to connect both adapter ends. Alternatively a switch could be wired to switch between the connected pins, the world is your oyster!
The input port is made by soldering the tip of a jack adapter to the SI pin (3) and the ground pin (6) to the ground of the jack adapter. The output port on the other hand uses SD (4) as the ground connection and SO (2) as the tip of the jack. This works because STEPPER always keeps SD at a low level regardless of sync mode so it can act as ground when needed.
Link cable tester
I created a little program to test link cable pins and adapters, you can download it here. The code, as usual is freely available on this repository.
To use, press the A, B, L and/or R buttons to send a 3.3V signal to the corresponding pins. Pressing Start toggles between input and output testing. In input testing, any logic “high” signal received in any of the data pins will increment the number of received inputs.



