This project may be deprecated as I can't really get the transfer speed up to where I'd like it for a RPi 1/ZERO. I'm going to experiment with SPI however after playing with a JoeyJoebags the speed difference between using a microcontroller as the interface is phenominal. a cart that takes ~9 minutes to dump using I2C takes mere seconds on a joebags. I know the interface on that is a microcontroller so I'm considering switching totally to a teensy as the interface, unless SPI/23S17 chips can make a significant difference. If the switch to SPI is acceptable, then there are actually minimal changes to the circuit after swapping over to the SPI versions of the chips
Dumps Gameboy and Gameboy color cartridges with a suitable reader. Code is based on the original @insidegadgets GBCartRead for arduino but modified to work with the wiringPi library on the Pi. The hardware consists of a Raspberry Pi and 2 MCP23017 I2C 16 way port expanders. See GBCartSlurpWiringDiagram.svg for how to connect the Pi and configure the 23017's. Full configuration to be documented once the design is finalised.
the code works with the published schematics but is quite slow however it is functional and once I've tried SPI, I'll have an idea what direction this project is going to head in.
here's a vid: (sorry for the long setup time. skips to 3:50 for the meat)
if you want to order a PCB form OSHPark for the I2C variant in the most recent state I had them made then the link is here:
You'll need the SSOP variant of MCP23017 to fit the PCB and the 0805 LED's and resistors (330R seems to work best with the Omron LED's I chose, but YMMV!) are entirely optional, as are the decoupling capacitors though they are recommended
wiringPi specifically the header file 23x017.h for the port name defines
higher speed may be acheived with the SPI version of the MCP23S17 port expander