Picture of Connect NDSL with ARDUINO
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!

makeosaurus1 month ago

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!



please, can you explain me how I use the ndsl library? I didn't understand this: "For NDSL
-test homebrew
complie it. If you press UP key, it will send Data.
Receive data will automatically triggered by ARDUINO.

- make your own program
copy include directory and source directory to your project's main directory.
(in other words, make include directory, copy header file. then copy cpp file to your source directory.)

include ds2arduino.h file
initialize with ndslArduino.initialize();
send data with ndslArduino.sendData(DATA WHAT YOU WANT TO SEND);
get data with ndslArduino.getData();

sendData can transmit 32bit once.
getData will return uint32 value."

mlucas7195 years ago
you mean 32nd right?

Very nice hack :)
Hounjini (author)  mlucas7195 years ago
yes, That's right.
What a shame...
I'm going to study English...
does this work on the original DS too?
vIIiRuS4 years ago
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?
noobduino4 years ago
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?
Hounjini (author)  survivorwolf4 years ago
you can not use nds source code directly to gba
Hounjini (author)  survivorwolf4 years ago
1. This is communication interface. Doesn't have memory or data store function, so you cannot use this as a 4r.

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.
sburlappp5 years ago
So, who'll be the first to build an Arduino Pro Mini 3.3v into an old GBA cartridge?  :)

Hmmm... good idea lol
OMG that is a GREAT idea!!!!!!!!!!!
 Nice, very nice, but what exactly can this accomplish?
Hounjini (author)  Soopah Steve5 years ago
I just show how to connect DS and Arduino.
The application is up to you : )