cartridge-programmer

                             | 3.3V |  5V |
                  /----------|    2 |  5V |
                  |      /---|    3 | GND |
                  |      | /-|    4 |  14 |
                  |      | | |  GND |  15 |
 /--|  A0 | Vcc |-/      | | |   17 |  18 |
 +--|  A1 |  WP |---GND  | | |   27 | GND |
 +--|  A2 | SCL |--------/ | |   22 |  23 |
 +--| Vss | SDA |----------/ | 3.3V |  24 |
 |                           |   10 | GND |
 |                           |    9 |  25 |
GND                          |   11 |   8 |
                             |  GND |   7 |
                             |------+-----|
                             |    0 |   1 |
                             |    5 | GND |
                             |    6 |  12 |
                             |   13 | GND |
                             |   19 |  16 |
                             |   26 |  20 |
                             |  GND |  21 |

The diagram above shows the common pinout for the serial EEPROMs Home Micro uses as cartridges. There is a Vcc pin to supply power, a Vss pin to be connected to ground, SCL and SDA pins to transfer data to and from the memory using the I2C protocol, a number of address pins, and a write protect pin.

The Vcc, SCL, and SDA pins are connected to GPIO pins 2, 3, and 4 of the Raspberry Pi. All other pins are connected to ground.

This circuit will work for many, but not all I2C EEPROMs. For example, the 24C512 specifies that pin 3 (labeled as A2 above) be left unconnected, and the 24FC1025 requires it to be high instead of low. This will be mentioned in the device's datasheet and can be accommodated with simple modifications to the circuit.