/NES-controller-to-GB-linkport

An NES controller PCB designed to interface with the Game Boy link port

Primary LanguageC++OtherNOASSERTION

NES controller to Game Boy linkport PCB

A remote controller in the shape of an NES controller that connects to the Game Boy Link Port

The PCB is 1:1 the size of an NES controller PCB allowing it to fit inside an OEM shell.

NOTE: This board is meant interface with HerrZatacke's custom Game Boy Camera ROM 2bit PXLR Studio and Toxa's Game Boy Camera ROM Photo!. Currently, it does not work with any other ROMs.

ko-fi

Materials Needed

  • NES Controller to Game Boy Link Port PCB
    • Order from PCBWay - If you're new to PCBWay, sign up using THIS LINK to support me & get $10 off
      • Solder Mask & Silkscreen any color, surface finish HASL or ENIG (HASL may not last as long)
  • Attiny84
    • Available at various stores such as LCSC.com
  • Programming tool such as an USBasp or an Arduino
    • For the sake of ease, instructions will be for the USBasp (video tutorals for programming Attiny with an Arduino are available on YouTube)
      • USBasp is available at various stores such as Amazon.com
      • Ensure the USBasp includes the 10pin cable & 10pin to 6pin adapter
  • Game Boy game link cable
    • Available at various stores such as RetroModding.com
      • Use code "gameboycamera" at checkout for 5% off
  • NES controller parts
    • Shell (screws included), buttons, silicone pads available at RetroModding.com
      • Use code "gameboycamera" at checkout for 5% off
      • Game Boy DMG dpad & A/B buttons will also fit
    • OR use an OEM controller for parts

Optional materials:

  • 2x3 2.54mm shrouded angled pin headers
    • Available at various stores such as LCSC.com
    • Recommended if you are new to programming Attiny
    • Also useful if you wish to reprogram the Attiny84 later
  • 10k through-hole resistor & 3mm LED
    • If you choose to add the LED and resistor, the LED will light when a button is pressed
    • The LED can also assist with troubleshooting button presses and removed later

Instructions

DISCLAIMER: I am not responsible for any damage done to you, your posessions, or your family. Please take care when building this.

1. Program the Attiny84 with arduino-pxlr-remote.ino

  1. Download the following software:
  2. With USBasp inserted in your computer, open Zadag and install WinUSB
    • You may need to select Options > List All Devices in order for the USBasp to appear
  3. Install Arduino IDE on your computer
  4. Install Attiny board manager in Arduino IDE
    • Under File > Preferences, scroll to "Additional board manager URLs"
    • Input the following URL: http://drazzy.com/package_drazzy.com_index.json and click "OK"
    • Under Tools > Board > Board Manager, search for Attiny and install "ATTinyCore"
  5. Wire Attiny84 to the USBasp
    • If you are new to programming an Attiny, it is recommended you now solder the Attiny and pin headers to the BOTTOM of the board per silkscreen diagram
    • If it is still connected to your computer, remove the USBasp
    • Connect the USBasp, 10pin cable, and 6pin adapter - connect it all to the pin headers on the board
      • Ensure the GND marking designated on the controller PCB with the line coincide with the GND on the 6pin adapter
    • Insert the USBasp into your computer
  6. Program the Attiny84 via Arduino IDE
    • Go to File > Open and open arduino-pxlr-remote.ino file
    • Under Tools, change to the following settings:
      • Note: Port options may or may not appear and will be grayed-out - you can ignore this
    • Once all settings are as above, under Tools, select Burn Bootloader
    • When that is finished, go to Sketch > Upload Using Programmer

2. Cut & strip the link cable. Use a multimeter to determine which wire coincides with the respective pin

  • Do NOT rely on wire colors! They are rarely correct - confirm the correct wire with a multimeter

3. Use the diagram on the back of the board to solder the wires - wires should extend from the BACK of the board

4. Solder the Attiny and optional components (if not already done)

  • Note: LED & resistor should be placed on the front of the board

5. Test to ensure everything works prior to installing the PCB into the NES controller enclosure

  • If the LED lights on button press but input is not received in the Game Boy, this is probably a wiring issue - double-check the wiring diagram and use your mutimeter to ensure you've soldered the correct wires
  • Mind the spokes inside the shell for cable routing to ensure the wires aren't ripped from the solder joints from tension or pulling, as seen below

Contributions

Troubleshooting

[Under construction]

Need help?

In the Game Boy Camera Club Discord #Projects channel, find the NES Controller projects and ask your questions there.

ko-fi