Gameduino is completely controlled via SPI reads and writes, so can work with any controller that has SPI support. Even if your controller does not have SPI support, you can talk to the Gameduino using software SPI, if you have four I/O pins.
This page has some notes on how to get Gameduino running with a new controller. See the hardware reference for specifics.
The board needs two supplies. One is the 3.3V supply, the other is 3-5V to power the Gameduino's LDO. This means that you can supply the Gameduino from a single 3.3V supply.
Current consumption is about 25mA.
All I/Os are 3.3V, and are 5V tolerant.
Gameduino can handle SPI speeds up to 8MHz. It uses SPI Mode 0.
As a first step to getting SPI working, try to read the Gameduino's IDCODE register. To read it, you need to:
- raise pin 9 (SEL)
- lower pin 9
- SPI send byte 0x28
- SPI send byte 0x00
- SPI receive byte
- raise pin 9
The received byte should be 0x6d. For reference, the Arduino code to do this is:
#include <SPI.h> void setup() { Serial.begin(115200); pinMode(9, OUTPUT); // pin 9 is SEL... digitalWrite(9, HIGH); // and it is active-low SPI.begin(); // initialize SPI system delay(400); // wait 400ms for Gameduino to boot digitalWrite(9, LOW); // Start SPI transaction by lowering SEL SPI.transfer(0x28); // High byte of address SPI.transfer(0x00); // Low byte of address Serial.println(SPI.transfer(0), HEX); // read byte from Gameduino RAM digitalWrite(9, HIGH); // Finish SPI transaction } void loop() { }
As a second step, try writing to location 0x0000, then reading it back. To write 0x41 to 0x0000:
- lower pin 9
- SPI send byte 0x80
- SPI send byte 0x00
- SPI send byte 0x41
- raise pin 9
Because the Gameduino loads an ASCII character set on boot, the above write will show an 'A' character in the top left of the screen.
To check readback of location 0x0000:
- lower pin 9
- SPI send byte 0x00
- SPI send byte 0x00
- SPI receive byte - should be 0x41
- raise pin 9
After SPI read/write is working, you may want to convert the GD library to your platform.