Connecting to the Expansion Port

SNES expansion port

Both the Super Nintendo and Super Famicom have an expansion port on the underside of the console. This expansion port is normally hidden by a removable plastic cover and gives peripherals direct access to the console's B-Bus, allowing for a variety of physical add-ons to the console. Most users never even notice that it is there unless they have used a Satellaview or Exertainment Lifecycle with their console. The connector inside the port is a proprietary 28-pin card edge-style connector. It has a "card" (center piece) 2mm thick (1.9mm for the card, with each contact being 0.05mm thick) with a pin pitch of 2mm. You won't be able to find a connector out of the box that will fit this, but there are some similar options that can be modified into an effective connector with a little effort.

The closest suitable replacement that I've found is an 80-pin card edge connector with a 2mm pitch for 1.57mm cards. It is the Samtec MEC2-40-01-L-TH1-WT, which I purchased from Digikey for about 8 USD. The inside of the connector is about 0.4mm more narrow than the expansion port expects, but it will flex out a bit. It will be a tight fit, but it will still fit. So, the pitch is right and the inside is a useable width, but what about the length? You need a 28-pin connector and the listed one is an 80-pin. The solution is to cut the 80-pin connector carefully with a hobby knife or razor blade to make two 28-pin connectors (one from each end).

Unfortunately, cutting the connector leaves us with a problem. Because the card width of the connector is a bit too narrow, the connector will flare outwards and away from the contacts of the expansion port on the connector's open end. You'll need to "pinch" the connector shut against the expansion port's contacts. Depending on how fancy you want to get with this, you can make a fairly solid and reliable connection.

Using paper wedges to fit the connector

The easiest approach is also the least reliable: wedge paper between your connector and the edges of the expansion port. Simply fold a piece of paper over and over until you reach the desired thickness and then wedge the paper into the expansion port against the side of your connector. This will work, but the slightest wiggle of the connector (when, say, breadboarding the wires from the connector) will pull it out. You also have to be careful that the closed (non-cut) side of the connector stays flush against the card edge of the expansion port. Otherwise, you risk bridging two expansion port contacts with a single connector pin.

The best approach is to put a sleeve of padding around the outside of the connector to make it fit exactly where and how you need it to within the expansion port. To do this, I 3D printed a PLA filament sleeve around the connector. The sleeve slides over the connector, squeezing the open connector end shut and keeping the connector from slipping side-to-side. You'll need a decent 3D printer to print the sleeve, since the exterior of the sleeve is only about 0.8mm thick. I used an Anycubic Mega X to print mine, which has a nozzle diameter of 0.4mm. I modeled the sleeve with Blender, exported a .stl file to Cura, and then generated the final g-code for the printer. I found that specifying a sleeve thickness of less than 0.8mm caused that wall of the sleeve to simply not print, so it took several iterations of model-slice-print to get something that worked.

You may also find the connection a bit too snug on the outside of the sleeve (depending on your printer's accuracy), so use fine grit sandpaper to sand down and round the edges as needed. I tried a sleeve that completely surrounded the connector (as pictured here), and I had to sand it down to get it to fit. I ended up using another design that skipped the side of the sleeve on the non-cut side of the connector. This three-sided sleeve worked out well for me, and it is the .STL model that I've made available for download below.

3D printed connector sleeve

What if you don't have access to a 3D printer, but still want something better than folded paper? This is where you need to get a bit creative. You could try using something more substantial than paper wedges as shims around the connector. Styrafoam, balsa wood, or cardboard might work. Putting a bead of hot glue on the open end of the connector may work to keep it pinched shut and keep it from sliding laterally along the expansion port contacts. After a few months of messing around with a flaky connector, though, I really recommend that you go the 3D-printed route. You'll spend far less time troubleshooting issues that are the result of a connector that "just was working an hour ago" but stopped working when you turned your back on it for a few minutes.

Now that you have a connector that gives you a reliable connection to the expansion port, what is the best way to interface with it? If you're handy with a soldering iron, the quickest way is to solder 28 breadboarding wires to the connector to give you breadboard access to the connector. For BeagleSatella, I laid out a PCB (panelized off of BeagleSatella's cape) that accepts the connector on one side and provides a 28-pin IDE ATA-style connector on the other side. That way, you can use a (very common) 40-pin IDE ribbon cable to interface your connector with your own circuits. Just plug breadboard wires into the other end of the IDE cable, or design your own PCB to accept the IDE cable (which is what BeagleSatella does).

Connector/Expansion Port Resources

Additional pictures

Thickness of the expansion port cardLength of the expansion port cardBlender model of the connectorConnector with IDE cable