The guys from www.electrobee.com were so kind to offer me a GameIO card for review. So here it is.
The GameIO, previously called Xiltendo CPLD Starter, is a slot-2 device that adds I/O capabilities to your DS. In a way it is similair to DSerial. It should be fun for a lot of electronics projects.
According to the documentation a lot is possible with this device:
• No programming cable needed – fully in-system reprogrammable
• 72 Macrocell CPLD supported by free development tools (Xilinx WebPack)
• 2 user extension slots with 6+7 User I/Os
• Ready to use hardware configurations
• Many hardware examples with full source code
• Open-source Software for the CPLD configuration
• UART (IrDA support also possible)
• MIDI interface
• SPI Master
• I2C Master
• Onewire™ Master
• Cypress PSoC Programming interface
• MMC/SD/SDIO Interface
• NAND Flash Interface
• JTAG interface
• Timer for performance profiling
• Frequency meter
• Pulse counter
• PWM generator
• R/C Servo Interface
• GPIO Interface
• User defined Interface
So let’s find out what this device is about.
The GameIO card is compatible with the Nintendo DS, DS Lite, GBA, GBA Micro, GPA SP. In this review we use a DS Lite.
There is a nds-hombrew project on Google code with some software examples on it.
As part of the first test I connected a few LEDs using 470 Ohm resistors. The software used was the gpiotest.nds from the Google code project. The vedio below shows the the Xiltendo CPLD in action.
First the CPLD is flashed with new software. Then the 6 pins of port A are set to output using the stylus. Finally the stylus is used to toggle the LEDs on and off. So the device works .
Using GameIO involves two pieces of software. Software that runs on the Nintendo DS and software that runs on the CPLD. In the example used in the previous paragraph the CPLD software is embedded in the nds file.
DS software can be created using devkitPro. We have downloaded the current devkitPro Updater (version 1.4.10). The minimal installtion you need requires Minimal System and devkitARM. Also select Programmer’s Notepad if you need and editor for your source code.
Unfortunately the source code of the program used in the previous paragraph does not compile with the current libnds. At the time of writing the current libnds version is 1.3.2.
I managed to update the source code so it compiles on libnds 1.3.2. It is available for download here: gpiotest compatible with libnds 1.3.2
To create software for the CPLD you need Xilinx’s development suite. The suite for the CPLD is free in exchange for some of your personal data. After downloading and installing the ISE Webpack you are ready to compile code for your GameIO. Amazingly the ISE webpack adds 4.5GB of data to your harddrive.
The nds-homebrew project contains some example code which can be found in the vhd files. Without realy understanding the code I was able to compile it using the do.bat script. The only catch was to comment out the first 2 lines of do.bat.
The GameIO card Is a good device for electronics enthusiasts and hobbyists. The device sits sturdy in the GBS slot like any other GBA cartridge would do. However there is almost no documentation, which makes it hard to get started. Also if a CPLD is new to you, you’ll probably have through a learning curve to write your own code for the CPLD. This besides the fact that the Xilinx development suite will claim 4,5 GB of your harddrive…
Good news is that, for general purpose IO, CPLD software is already available. This should be enough for a lot of electronics projects. I hope that in the near future documentation will be made and perhaps an expanded set of pre-built CPLD code is made available for this device.
http://www.xilinx.com/ The Xiltendo CPLD chip manufacturer.
http://system-17.com/download/GameIO.zip Xiltendo CPLD documentation.
http://code.google.com/p/nds-homebrew/ nds-homebrew Google Code project with sources for this device.
http://www.electrobee.com/gameio-p-51.html Buy your Xiltendo CPLD Starter here!