Skip to content

Instantly share code, notes, and snippets.

@JBarberU
Last active December 1, 2023 21:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save JBarberU/98df13fe965532b34ab1c91f6f3174f4 to your computer and use it in GitHub Desktop.
Save JBarberU/98df13fe965532b34ab1c91f6f3174f4 to your computer and use it in GitHub Desktop.
SNES Macropad Build Guide

SNES Macropad Build Guide

The kit

Included in the kit

# Item Optional
1 Main PCB
1 Top plate (FR4)
1 Bottom plate (FR4)
4 Rubber feet
7 8mm M2 brass standoffs
14 4mm M2 screws
1 RPi Pico Lite (16MB flash)
1 128x32 pixels OLED
1 3.5mm TRRS jack (for I2C, not audio)
1 JST SM04B-SRSS connector (QWIIC)
1 Angled SNES connector
1 Reset switch
2 10k Ohm resistors
1 2N7000 TO-92-3 N-Channel MOSFET
12 Signal diodes (1N4148 DO-35)
12 SK6812MINI-E
12 Kailh Brown (Box brown or Speed Copper) yes
12 Keycaps yes

Not included in the kit

  • USB-C cable
  • SNES Controller

Tools/equipment needed

  • Soldering iron or station
  • Flush cutters
  • Small phillips screw driver
  • Some small tweezers (recommended)
  • Solder & flux

The build

Recommended build order

  1. Flash QMK to the RPi Pico Lite
  2. Pop key switches into the top plate)
  3. Solder diodes
  4. Solder resistors
  5. Solder JST connector, reset switch and 3.5mm jack
  6. Solder MOSFET
  7. Solder pin headers for RPi Pico Lite to PCB
  8. Solder RPi Pico Lite
  9. Solder OLED
  10. Solder SNES connector
  11. Plug into a computer and test the key matrix
  12. Solder keyswitches
  13. Solder SK6812MINI-Es
  14. Plug in to check that all the LEDs light up
  15. Attach rubber feet to bottom plate
  16. Screw on the bottom plate
  17. Attach key caps

Flash QMK to the RPi Pico Lite

If you're new to QMK, you'll need to set up your environment. Follow the instructions here: https://docs.qmk.fm/#/newbs_getting_started

Once you have QMK setup you can follow the instructions here to flash either the default or test keymap to the microcontroller.

Pop key switches into the top plate

Mount the switches to the top plate. Make sure the orientation of the plate is correct and the switches have the RGB passthrough south facing (towards the bottom edge).

Mount Switches to plate

Switches mounted to plate

Test fit the plate to the main PCB, make sure the mounting holes line up, and then put it aside for later.

Solder diodes

Now for the fun! First up is the diodes.

Start with diodes

I like to pre-bend all the diode legs so it's quick and easy to pop them all into the PCB. Diodes have polarity and I find it's better to have the legs already bent so you can focus on mounting the diodes in the correct orientation rather than having to stop, bend legs, mount, repeat. The dark band on the diodes should match the band on the silk screen on the PCB.

Pre-bend legs of diodes

I tend to put all the diodes in at once (bending the legs) and then solder them in one go. It is a bit of a mess with all the legs getting in the way of the soldering iron, so you could do them a few at a time instead.

Prep diode legs for soldering

After the diodes have been soldered, cut the legs off.

Cut diode legs

Double check the polarity of the diodes,

Double check polarity of diodes

Solder resistors

Next up it's resistors. The ones included in the kit are 10k Ohms, but anything between 2k Ohms and 20k Ohms would probably work (these are pullup resistors).

Pre-bend legs of resistors

I like to make sure the resistor stripes are aligned, for aesthetic reasons, pop them in, bend the legs and solder.

Align resistors for aesthetics

Solder JST connector, reset switch and 3.5mm jack

Next up is the JST connector (QWIIC), reset switch and 3.5mm TRRS jack. The reset switch and 3.5mm jack like to fall out so I normally use some kapton tape to hold them in place while soldering them. The JST connector is an SMD part and is soldered on the topside. I usually pre-tin one of the pads just a little bit and then tac the connector in place, then solder the rest of the pins + anchoring points. If you have a hot-air station and solder paste, that would probably be a much better option.

(These pictures were taken while assembling the kit in a different order, so ignore the OLED and microcontroller, we'll get to those!)

Solder reset button, QWIIC and 3 5mm jack

Solder MOSFET

Next up is the MOSFET. Just align it with the silkscreen, bend the legs, and solder.

(Another out-of-order picture, this is where I learned it's better to do the connectors and MOSFET before the OLED and MCU...)

Solder MOSFET

Solder pin headers for RPi Pico Lite to PCB

Now it's time to solder the RPi Pico Lite. I put the pin headers, shorter legs down, in first and then place the RPi. To keep everything in place I like to use some kapton tape.

Use MCU to align headers

Solder some of the pins of the headers, to hold them in place. I like to use GP0, GP17, RUN and GP18 (or 19 for some reason in the picture). It's better to wait with VBUS, VSYS and GND since those connect to large copper areas on the PCB and thus require lots of heat to solder to.

Tac down MCU headers

Remove the RPi Pico to prevent it from getting damaged due to too much heat while soldering in the rest of the pin headers.

Remove MCU once headers are tacked down

Solder MCU Headers

Solder RPi Pico Lite

Once the pin headers are soldered to the PCB, you can put the RPi Pico back and solder that to the pin headers. These boards can be a bit more sensitive to heat so I like to set my iron to around 300C while doing the MCU. Remember the GND, AGND, VSYS and VBUS are connected to large copper areas meaning they'll be trickier to solder than the rest of the pins. For these particular pins I usually increase the temperature to 330C or so, rather than having to apply heat for too long. Don't be shy with the flux here!

Solder MCU

Solder OLED

Unfortunately I did't take any good pictures of how I do the OLED. I have two approaches:

  • Pre-tin one pad for the OLED, hold it in place, flip the board over, remelt the solder so the pins for the OLED sink through.
  • Place the OLED where you want it to go, use kapton tape to keep it there and then solder

I tend to prefer the second approach, but either will work and both are a bit finicky.

Solder OLED

Solder SNES connector

Now it's time for the SNES connector. The pins tend to move around a bit and may require some bending to get aligned properly. Unfortunately the pads on the PCB are a lot bigger than they need to be (will be fixed in a future revision) meaning you'll need to put a lot of solder down to secure the connector. This one can also be a bit tricky to align, so my recommendation is to solder one pin, check alignment and readjust as necessary. Once you're happy with the connector alignment solder in the rest of the pins.

Plug into a computer and test the key matrix

At this point it's a good idea to plug in the macropad to give it a test. To activate the "switches" you just need to bridge the solder pads for each switch with something conductive, I like to use some blunt metal tweezers. The OLED display should light up, and when the keys are "pressed" you should see something along the lines of:

Layer: Numpad
0x0, k95:

The 0x0 above being row 0, column 0. This is a great way to make sure all of the diodes are wired correctly and that your macropad will work.

At this point the SNES connector should also work, so if you fire up visual boy advance or mgba you should be able to use the controller for GBA games.

Solder keyswitches

If all has gone well so far, it's time to solder in the keyswitches. This is a good time to fasten the brass standoffs to the top plate, using a small phillips screwdriver (the purpose of doing this now is to make sure the switches are mounted in the right orientation, as otherwise you'd need to desolder all the switches to fix it!). Place the top plate upside down and mount the main PCB upside down on top of it. Solder everything down.

Undfortunately I didn't get a good picture of this step, but should be fairly straightforward.

Solder SK6812MINI-Es

Next is the RGB LEDs. For these I find it's easiest to take all of them out of the packaging and line them all up in the correct orientation. Then you plop them in one at a time on the PCB and solder them.

The correct orientation is the pin with an angle to it (GND) in the lower left corner. My recommendation is to do the bottom row, closest to the SNES connector first (this is the first LED in the chain) and plug it in and make sure it lights up.

Solder RGB LEDs

Then it's just a matter of doing the rest of them. I usually test every two or three LEDs still, to make troubleshooting easier if there's a problem.

Plug in to check that all the LEDs light up

If you haven't already, now is a good time to plug in again and make sure all the LEDs light up.

Attach rubber feet to bottom plate

Mount the rubber feet to the bottom plate

In the picture I screwed on the bottom plate first, but I think it's probably better to put them on first.

Assemble case

Screw on the bottom plate

Attach the bottom plate with the remaining M2 screws.

Attach key caps

Mount the key caps, and you're done!

Done

Notes

You might have noticed footprints for a bunch of diodes that aren't included in the kit (D13-D24). These are ESD protection diodes. These footprints are SOD-523 diodes, and absolutely tiny. I underestimated how small they were and didn't stand a chance with hand soldering these and, while it's best practice to use them for anything that plugs into a board, aren't super necessary. I decided to omit them from the kits.

Contact/Feedback/Help

If you need help with your kit, firmware or have ideas for improvement I'd love to hear it! You can reach me through email at john@lsrkttn.com, jbarberu on discord and github.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment