An all-in-one Spartan Edge Accelerator shield implementation for the gbaHD

Overview

gbaHD AIO Shield

This is a Spartan Edge Accelerator shield which implements all the hardware connections needed for zwenergy's gbaHD, no wires required! The PCB incorporates the GBA motherboard, Arduino Nano, and SNES controller port used in a typical gbaHD installation, and interfaces directly with the Spartan Edge Accelerator board via pin header connections.

Disclaimer

Assembly of this PCB requires donor parts from a Game Boy Advance motherboard, and therefore also requires advanced soldering skills. Do not attempt this project unless you are comfortable and confident in your ability to desolder and solder both surface-mount and through-hole components, otherwise you risk irreparable damage to your original console and to this PCB. I claim no responsibility and accept no blame for any failed attempts.

Ordering the board

READ THE DISCLAIMER SECTION ABOVE BEFORE CONTINUING

The PCB can be ordered via the following links:

PCBWay (Full disclosure - this link gives me a small commission from each order - if you're new to PCBWay, feel free to use my referral link to sign up and get $5 off your order)

OSHPark

Or feel free to order from your preferred PCB fab using the gerbers on this repo.

Board thickness of 1.2mm or thinner is recommended. 1.6mm will work, but soldering of some of the through-hole components may be more difficult.

Bill of materials

There are a couple optional features on this PCB to keep in mind before ordering your parts:

Choice between an onboard ATmega328P or an external Arduino Nano

The onboard Arduino offers a cleaner look for the assembled PCB, but since ATmega chips are becoming prohibitively expensive during this chip shortage, there is also support for plugging in your own Arduino Nano via pin headers. These options are mutually-exclusive, pick one.

Master power switch

This may be useful for consolizer-style installations that use an enclosure, such that a toggle switch can be mounted to the case to switch power to the entire assembly while leaving the USB-C power supply plugged in. This is completely optional, since the power can be switched off using the Spartan Edge Accelerator's own switch or by unplugging the power supply.

The BOM below is separated between donor parts, required parts, and parts for optional features. Read carefully since the optional features may require components that are also listed in earlier sections.

Please source your own passive components, only values and footprints are listed for these.

Reference(s) Count Description Part Number Comments Purchase Link
From donor GBA U1 1 AGB CPU - - -
U2 1 AGB SRAM - - -
P1 1 Link port - - -
P2 1 Cart connector - - -
EM1, EM2 2 Common-mode choke ACM4532-102-3P - -
Required C1, C5, C6, C7, C8, C9, C10, C11, C12, C13, C14, C16, C17, C21, C26 15 0.1uF 0603 - - -
C2, C3, C4 3 100pF 0603 - - -
C15, C22, C27 3 10uF 0805 - - -
D1, D4, D6 3 Green LED 0603 LTST-C191KGKT Or generic https://lcsc.com/product-detail/Light-Emitting-Diodes-LED_Lite-On-LTST-C191KGKT_C125098.html
D2, D3 2 Schottky diode B5817WS - https://lcsc.com/product-detail/Schottky-Barrier-Diodes-SBD_Yangzhou-Yangjie-Elec-Tech-B5817WS_C699102.html
F1, F2, F3 3 1.25A fuse 0603 - - -
P3 1 SNES controller port - - https://aliexpress.com/item/32828768824.html
R1, R6, R8, R12 4 100kOhm 0603 - - -
R2, R3, R4, R5 4 330Ohm 0603 - - -
R7 1 270Ohm 0603 - - -
R9, R10 2 47Ohm 0603 - - -
R11 1 18kOhm 0603 - - -
R13 1 15Ohm 0603 - - -
R14 1 1kOhm 0603 - - -
S1 1 Spartan Edge Accelerator - - -
- 2 10-pin male header Or generic, cut to size https://lcsc.com/product-detail/Pin-Headers_XKB-Connectivity-X6511WV-10H-C30D60_C706882.html
- 2 8-pin male header Or generic, cut to size https://lcsc.com/product-detail/Pin-Headers_XKB-Connectivity-X6511WV-08H-C30D60_C706880.html
- 1 6-pin male header Or generic, cut to size https://lcsc.com/product-detail/Pin-Headers_XKB-Connectivity-X6511WV-06H-C30D60_C706878.html
- 2 10-pin female header Or generic, cut to size https://lcsc.com/product-detail/Female-Headers_XKB-Connectivity-X6511FV-10-C85D32_C718235.html
- 2 8-pin female header Or generic, cut to size https://lcsc.com/product-detail/Female-Headers_XKB-Connectivity-X6511FV-08-C85D32_C718237.html
- 1 6-pin female header Or generic, cut to size https://lcsc.com/product-detail/Female-Headers_XKB-Connectivity-X6511FV-06-C85D32_C718239.html
Onboard Arduino Only C18, C19 2 1uF 0603 - - -
C20 1 10uF 0805 - Total 4 pieces including "Required" count -
C23, C30, C31, C32 4 0.1uF 0603 - Total 19 pieces including "Required" count -
C24, C25 2 18pF 0603 - - -
D5 1 Red LED 0603 LTST-C191KRKT Or generic https://lcsc.com/product-detail/Light-Emitting-Diodes-LED_Lite-On-LTST-C191KRKT_C125099.html
P4 1 USB-C Port U262-161N-4BVC11 - https://lcsc.com/product-detail/USB-Connectors_XKB-Connectivity-U262-161N-4BVC11_C319148.html
P5 1 2x3-pin male header X6521WV-2x03H-C30D60 Or generic, cut to size https://lcsc.com/product-detail/Pin-Headers_XKB-Connectivity-X6521WV-2x03H-C30D60_C706893.html
R15, R16, R17 3 2.2kOhm 0603 - - -
R19 1 100kOhm 0603 - Total 5 pieces including "Required" count -
R22, R24 2 5.1kOhm 0603 - - -
R23, R25 2 1kOhm 0603 - Total 3 pieces including "Required" count -
SW1 1 Pushbutton TS-1101-C-W - https://lcsc.com/product-detail/Tactile-Switches_XKB-Connectivity-TS-1101-C-W_C318938.html
U3 1 2.5V linear regulator TLV71325PDBV - https://lcsc.com/product-detail/Linear-Voltage-Regulators-LDO_Texas-Instruments-TLV71325PDBVR_C90841.html
U4 1 Microcontroller ATmega328P-AU - https://lcsc.com/product-detail/ATMEL-AVR_Microchip-Tech-ATMEGA328P-AU_C14877.html
U5 1 USB-to-serial IC CH340C - https://lcsc.com/product-detail/USB-ICs_WCH-Jiangsu-Qin-Heng-CH340C_C84681.html
Y1 1 16MHz crystal Q24FA20H0023200 - https://lcsc.com/product-detail/Crystals_Seiko-Epson-Q24FA20H0023200_C255948.html
External Arduino Only A1 1 Arduino Nano - - -
- 2 15-pin female header B-2200S15P-A120 Or generic, cut to size https://lcsc.com/product-detail/Female-Headers_Ckmtw-Shenzhen-Cankemeng-B-2200S15P-A120_C124408.html
Master Power Switch Only C28, C29 2 1uF 0603 - Total 4 pieces including "Onboard Arduino" count -
Q1 1 P-Channel MOSFET SOT23 PJM3415PSA - https://lcsc.com/product-detail/MOSFETs_PJSEMI-PJM3415PSA_C411717.html
R20 1 100kOhm 0603 - Total 6 pieces including "Required" count -
R21 1 2.2kOhm 0603 - Total 4 pieces including "Onboard Arduino" count -
SW2 1 Rocker Switch RS601HL-1020011BB Or use any switch of your choice https://lcsc.com/product-detail/Rocker-Switches_HCTL-RS601HL-1020011BB_C2885783.html

Programming the Spartan Edge Accelerator

TO-DO. For now, refer to the documentation on zwenergy's repo.

Programming the Arduino bootloader (onboard Arduino only)

If you assemble this board with an onboard Arduino, the ATmega328p will not come with the Arduino bootloader installed, so it will not be programmable from the Arduino IDE right out of the gate. Follow the official documentation to program the bootloader via the ICSP header on the board (follow the steps to program it as an Arduino Nano, a second Arduino is required).

Programming the Arduino

The Arduino is used to interface between the SNES controller port and the GBA for button inputs and the reset function. It also interfaces with the Spartan Edge Accelerator for on-screen display controls. Upload this sketch.

By default, the button combos are L+R+X+Y to toggle the OSD, and L+R+START+SELECT to reset the GBA. This can be configured by modifying the `define macros in the Arduino sketch.

Acknowledgements

As always, thanks to the Gameboy Discord community for their continued support. Special thanks to zwenergy for his hard work on the gbaHD

You might also like...
All-in-One firmware for your 32-bit Prusa MK3S/+ Bear!
All-in-One firmware for your 32-bit Prusa MK3S/+ Bear!

Prusa All-in-One Marlin Firmware About All-in-One firmware for your 32-bit Prusa MK3S/+ Bear! Configuring & Building Prusa All-in-One Firmware To conf

EdgeTX is the cutting edge of OpenTx
EdgeTX is the cutting edge of OpenTx

Welcome to EdgeTX! The cutting edge open-source firmware for your R/C radio! About EdgeTX EdgeTX is the cutting edge of OpenTX. It is the place where

 ESP32 + Arducam Mini 2MP Plus Edge Impulse Example
ESP32 + Arducam Mini 2MP Plus Edge Impulse Example

Minimal example code for running an Edge Impulse image classification network with the ESP32, ArduCAM, and PlatformIO

JavaScript runtime for Fastly [email protected]

Fastly [email protected] JS Runtime The JS Compute Runtime for Fastly's [email protected] platform provides the environment JavaScript is executed in when using

Qnicorn: a cutting edge version of unicorn-engine.org
Qnicorn: a cutting edge version of unicorn-engine.org

Qnicorn Engine Qnicorn is a cutting edge and community-driven version of unicorn-engine. Qnicorn offers the features below: All features that Unicorn2

Semantic Edge Detection with Diverse Deep Supervision

Semantic Edge Detection with Diverse Deep Supervision This repository contains the code for our IJCV paper: "Semantic Edge Detection with Diverse Deep

PoC of Swift for [email protected]

FastlyEdgeExample An example project to deploy Swift code to Fastly's [email protected] Requirements SwiftWasm toolchain fastly CLI How to deploy $ fastly

Cloud-native high-performance edge/middle/service proxy
Cloud-native high-performance edge/middle/service proxy

Cloud-native high-performance edge/middle/service proxy Envoy is hosted by the Cloud Native Computing Foundation (CNCF). If you are a company that wan

Ccd - Edge first cd replacement tool for Windows cmd shell.
Ccd - Edge first cd replacement tool for Windows cmd shell.

Cursorial CD Cursorial CD, or ccd for short, is a cd replacement for Window's cmd shell. Unlike cd, it operates on an edge first search, so you can qu

Comments
  • Uploading the SNES Controller Program to the Arduino Nano

    Uploading the SNES Controller Program to the Arduino Nano

    Ok so I just discovered something. I bought an off-brand Nano, and when I tried to upload the SNES controller program to it, I got an error. After a couple of seconds of searching I came across the Processor option under Tools in the Arduino suite.

    I selected the Atmega328P (Old Bootloader) option, and then the program got flashed correctly. So I think what is happening is that Arduino defaults to the regular Atmega328P processor bootloader option, which I believe is powering the newer Nano Every.

    This was on a Windows PC running version 1.8.18 of the Arduino suite.

    opened by matteog 1
Owner
null
Arduino M-BUS Master node for Arduino MKR M-BUS Shield

Arduino M-BUS Master node for Arduino MKR M-BUS Shield This software will read out a M-BUS device connected to an Arduino MKR board equipped with our

null 6 Nov 30, 2022
USB serial TTY for the Arduino Uno with ILI9341 LCD screen shield

ILI9341TTY USB serial TTY for the Arduino Uno with ILI9341 LCD screen shield [video] Semigraphics, ANSI, unicode, and an Arduino LCD-screen terminal I

M Rule 72 Sep 30, 2022
Baseline Arduino shield for temperature, humidity, soil moisture and ambient light

Introduction Green-Shield is an Arduino R3 shield for temperature, humidity, soil moisture and ambient light optimized for use in greenhouses where th

#Eduh 3 Dec 29, 2021
BOF implementation of chlonium tool to dump Chrome/Edge Masterkey

ChromiumKeyDump BOF implementation of Chlonium tool to dump Chrome/Edge Masterkey. Forked from https://github.com/crypt0p3g/bof-collection Setup How t

null 2 Feb 12, 2022
It creates a random word by mixing two English common words into a single one, each one with the first character in capital letter. It also allow you to scroll down infinitely without repeating the same word twice.

startup_namer A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if

Samuel Cobas 2 Feb 3, 2022
In DFS-BFS Implementation In One Program Using Switch Case I am Using an Simple And Efficient Code of DFS-BFS Implementation.

DFS-BFS Implementation-In-One-Program-Using-Switch-Case-in-C Keywords : Depth First Search(DFS), Breadth First Search(BFS) In Depth First Search(DFS),

Rudra_deep 1 Nov 17, 2021
ModuLiDAR is an all-in-one open-source software for autonomous UGVs and industrial robots.

ModuLiDAR is an all-in-one open-source software for autonomous UGVs and industrial robots. the target industries that ModuLiDAR is working on are farming industry, mining industry, warehouses industry, and construction industry.

null 18 Dec 12, 2022
Quake Enhanced mod where one player (The Juggernaut) is very strong and all other players have to kill the Juggernaut

QE Juggernaut Quake Enhanced Juggernaut (A modification of the QEHunter mod by JPiolho.) This is a multiplayer mod where one player is the Juggernaut.

null 2 Jun 6, 2022
Livox-Mapping - An all-in-one and ready-to-use LiDAR-inertial odometry system for Livox LiDAR

Livox-Mapping This repository implements an all-in-one and ready-to-use LiDAR-inertial odometry system for Livox LiDAR. The system is developed based

null 257 Dec 27, 2022
Hidden Eye is an all in one tool that can be used to perform a variety of online attacks on user accounts

Hidden Eye is an all in one tool that can be used to perform a variety of online attacks on user accounts. It’s well loaded, therefore it can be used as keylogger (keystroke logging), phishing tool, information collector, social engineering tool, etc.

Muhammad Qazi 0 Jun 24, 2022