Gameduino bringup with other hardware

System Message: WARNING/2 (<string>, line 5)

Explicit markup ends without a blank line; unexpected unindent.

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.

Powering Gameduino

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.

SPI

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.