Nintendo DS has GBA bus, so I made it transmittable with ARDUINO.

What you can do with it :
transmit data between arduino and ndsl.
so, you can use your ndsl to arduino's wireless lan or arduino to your ndsl's digital IO port!

What you need:
Hardware :
NDSL GBA cart cover
nintendo Y driver (eventhough you don`t have, no problem!)
some wires (3 wires, enough! 4 wires GREAT)
cutter knife,
soldering iron,
:) Nintendo DS Lite

libnds (for nintendo development)

How it works:
NDSL has GBA bus. It has /WR pin and External interrupt pin.
If you access gba bus, /WR will toggled, so I can use /WR to send data.
However, it lasts just 350us. It mean you cannot use this pin to digital I/O pin directly.
So I mimic NEC REMOTE CONTROLLER protocol(TV, VIDEO etc...)
External interrupt pin is used to receive data, /WR pin is used to send data.
ARDUINO works exactly same way.

these are my youtube video.


What's new? What's GOOD:
You can use your slot1 device already you have.
In addition to, If you have arduino already, making your own gba connector is cheaper than buy another transmittable slot1 or slot2 device.

>>If you did it already, your ndsl's fuse was blown.
>>Google it "ndsl fuse blown"

Let's start!

Step 1: Soldering

1. open GBA CART COVER, with Y driver.
(if you dont have Y driver, you can do with soldering iron. just make a circle around screw. then you can take of cover's top. )

2. soldering wires to 3 points.
/WR (3rd), EXTERNAL INTERRUPT(31st), GND (32nd, last) (VCC 1st, optional)

3. assemble your cart.
(before step3, you may need to cut some part of your gba cart cover. just make a hole to wires can pass out. )

(soldering VCC (1st) pin will make you to using ARDUINO without external(additional) power supply.
This is optional.)

if you soldering wires too closely to your pin's end, it will make your cart don't fit your GBA PORT anymore. soldering wires as possible as away from pin.

<p>You hace said solder three wires but you have soldered all of them! are the all neccesary and what is that black thing on the end as that can't surely fit inside the GBA cart!</p><p>Thanks</p><p>Make-O-Saurus</p>
please, can you explain me how I use the ndsl library? I didn't understand this: &quot;For NDSL<br>-test homebrew<br>complie it. If you press UP key, it will send Data.<br>Receive data will automatically triggered by ARDUINO.<br><br>- make your own program<br>copy include directory and source directory to your project's main directory.<br>(in other words, make include directory, copy header file. then copy cpp file to your source directory.)<br><br>include ds2arduino.h file<br>initialize with ndslArduino.initialize();<br>send data with ndslArduino.sendData(DATA WHAT YOU WANT TO SEND);<br>get data with ndslArduino.getData();<br><br>sendData can transmit 32bit once.<br>getData will return uint32 value.&quot; <br><br>
32th?<br /> you mean 32nd right?<br /> <br /> Very nice hack :)<br />
yes, That's right.<br /> What a shame...<br /> I'm going to study English...<br /> :-(<br />
does this work on the original DS too?
This may be a stupid question.. but do you need some kind of homebrew card to get this work? Or am I just missing something?
could u do this with a regular ndsl cartredge to maby duble controle a ndsl with 2 arduinos or to use a ndsi ndsi xl or a n3ds
will this work as a homebrew card like a r4 or similar and will it work with a regular gba?
Notice<br>you can not use nds source code directly to gba
1. This is communication interface. Doesn't have memory or data store function, so you cannot use this as a 4r.<br><br>2. I didn't try this with regular gba, but NDLS's gba port is exactly same with gba's one. Probably, Yes you can.
So, who'll be the first to build an Arduino Pro Mini 3.3v into an old GBA cartridge?&nbsp; :)<br /> <br />
Hmmm... good idea lol
OMG that is a GREAT idea!!!!!!!!!!!
&nbsp;Nice, very nice, but what exactly can this accomplish?
I just show how to connect DS and Arduino.<br /> The application is up to you : )

About This Instructable


32 favorites

More by Hounjini: Connect NDSL with ARDUINO
Add instructable to: