Connectors
Joysticks
SNES Controller Ports
NerdConsole has 2 SNES-style joystick ports built into the front of the system for players 1 and 2. These are always available. All controller connections are SNES controller compatible and use this same arrangement of pins.
Pin 1 | Pin 2 | Pin 3 | Pin 4 | Pin 5 | Pin 6 | Pin 7 | |
---|---|---|---|---|---|---|---|
Ground | NC | NC | Data | Latch | Clock | VCC |
Extra Controller 6-Pin Port
Built onto the mainboard is a 6-pin connector that provides the power and signals for controllers 3 and 4. Data3 and Data4 lines are specifically for those controllers.
Pin 1 | Pin 2 | Pin 3 | Pin 4 | Pin 5 | Pin 6 |
---|---|---|---|---|---|
Ground | Data3 | Data4 | Latch | Clock | VCC |
Extra Controller 4-Pin Port
Built onto the mainboard is a 4-pin connector that provides the data signals for controllers 5, 6, 7 and 8. Data5, Data6, Data7, and Data8 lines are specifically for those controllers. This connection is used in conjunction with the 6-Pin port connections.
Pin 1 | Pin 2 | Pin 3 | Pin 4 |
---|---|---|---|
Data5 | Data6 | Data7 | Data8 |
Cartridge
The 44-pin cartridge connector provides the means to access the ROM chip (or chips) that contain the software to execute. The pin order may seem scrambled up, but it is laid out in a way that closely aligns with the pin order of most ROM chips.
Top / Front / Label Side | Bottom / Back Side | ||
---|---|---|---|
A12 | 1 | 44 | Ground |
A13 | 2 | 43 | Clock |
A7 | 3 | 42 | ~Read / Write |
A8 | 4 | 41 | ~Enable |
A6 | 5 | 40 | VCC (+5V DC) |
A9 | 6 | 39 | RRS |
A5 | 7 | 38 | HRS7 |
A11 | 8 | 37 | HRS6 |
A4 | 9 | 36 | HRS5 |
A3 | 10 | 35 | HRS4 |
A10 | 11 | 34 | HRS3 |
A2 | 12 | 33 | HRS2 |
A1 | 13 | 32 | HRS1 |
D7 | 14 | 31 | HRS0 |
A0 | 15 | 30 | LRS7 |
D6 | 16 | 29 | LRS6 |
D0 | 17 | 28 | LRS5 |
D5 | 18 | 27 | LRS4 |
D1 | 19 | 26 | LRS3 |
D4 | 20 | 25 | LRS2 |
D2 | 21 | 24 | LRS1 |
D3 | 22 | 23 | LRS0 |
Key
- ~ = Active Low Signal
- A = Address Pins (0-13)
- D = Data Pins (0-7)
- LRS = Low ROM Select (0-7)
- HRS = High ROM Select (0-7)
- RRS = ROM Region Select
- 0 = Low ROM ($8000 to $BFFF)
- 1 = High ROM ($C000 to $FFFF)
Video Board Port
The connection between the NerdConsole mainboard and the Raspberry Pi that acts as the PPU is made through a 28-Channel logic level conversion board. This is required because NerdConsole operates at 5V and the GPIO system on a Raspberry Pi operates at 3.3V. According to the Raspberry Pi documentation, you absolutely CANNOT use 5V logic levels with GPIO without causing permanent damage.
This pin layout is based on how the Raspberry Pi orders the GPIO pins. My original pin layout was visually pleasing for a human because everything was in a nice order. As I was learning more about reading from the GPIO pins, I realized that the way I had it would require nearly 100 operations to move bits around in code. They have been changed so they align with the Raspberry Pi layout which reduces the number of operations to just 6 as a worst case with fast fails that use as few as 1. This has the effect of making the pin order seem random but for with huge efficiency gains.
--- | 1 | 2 | --- |
---|---|---|---|
A0 | 3 | 4 | --- |
A1 | 5 | 6 | --- |
A2 | 7 | 8 | A12 |
--- | 9 | 10 | A13 |
D0 | 11 | 12 | D1 |
~Vsync | 13 | 14 | --- |
D5 | 15 | 16 | D6 |
--- | 17 | 18 | D7 |
A8 | 19 | 20 | --- |
A7 | 21 | 22 | Front Power |
A9 | 23 | 24 | A6 |
--- | 25 | 26 | A5 |
~Enable | 27 | 28 | Read / ~Write |
A3 | 29 | 30 | --- |
A4 | 31 | 32 | A10 |
A11 | 33 | 34 | --- |
D2 | 35 | 36 | A14 |
Safe Shut Down | 37 | 38 | D3 |
--- | 39 | 40 | D4 |
Key
- ~ = Active Low Signal
- --- = Not Connected
- A = Address Pins (0-14)
- D = Data Pins (0-7)
System Connections
There are a few connections within the system.
Back Power
This connector accepts main power input and provides the switches and buttons to control it.
Power Input +5VDC | 1 | 8 | Power Input Ground |
---|---|---|---|
Power Switch | 2 | 7 | Power Switch |
PPU Safe Shutdown Button | 3 | 6 | PPU Safe Shutdown Button |
Main Power LED + | 4 | 5 | Main Power LED - |
Front Power
This connector is for turning on and off the main board in NerdConsole without affecting the power state of the Raspberry Pi based PPU.
Front Power Switch | 1 | 6 | Front Power Switch |
---|---|---|---|
Reset Button | 2 | 5 | Reset Button |
Front Power LED + | 3 | 4 | Front Power LED - |
PPU Power / Audio
This connector is for powering the PPU directly from the main board. This power is intended to be provided though the MicroB-USB power plug on the Raspberry Pi. It also provides the audio signal from the YM-3812 to be piped into the earphone jack on the Raspberry Pi.
PPU Power + | 1 | 4 | PPU Power - |
---|---|---|---|
Audio Signal + | 2 | 3 | Audio Signal - |