RetroBSD can run on a variety of boards (see Unix on your breadboard), but if you need an Arduino form factor - Duinomite is definitely a good choice.
For technical details, see page: https://github.com/RetroBSD/retrobsd/wiki/Board-Olimex-Duinomite
LCD4884 shield is a pretty easy way to add a simple GUI interface to your Arduino project. The shield is available from SainSmart and Amazon; a few clones exist on Ebay.
LCD part of the shield works fine with both 5V and 3.3V boards. Joystick needs some modification to make it 3.3V compatible:
- Cut off 5V pin on the Arduino power connector (on the bottom side).
- Solder 5V pin to 3.3V pin on the Arduino power connector (on top of the board).
Signals of LCD shield are connected to PIC32 microcontroller as shown in the table:
Signal | Function | PIC32 |
D2 | SPI_SCK | RE2 |
D3 | SPI_MOSI | RE3 |
D4 | LCD_DC | RE4 |
D5 | SPI_CS | RE5 |
D6 | LCD_RST | RE6 |
D7 | LCD_BL | RE7 |
A0 | KEY_IN | RB3 |
SPi interface is compatible with Philips PCD8544 (data sheet).
Joystick buttons are connected to a series network of resistors: GND -- 3.3k -- 1k -- 620 -- 330 -- 2k -- VCC. See schematics here (PDF). When one of buttons is pressed, output voltage is defined by resistor divider:
Joystick position | Divisor | Voltage at A0 |
Left | 0 | 0V |
Select | 0.33 / (2 + 0.33) | 0.47V |
Down | (0.33 + 0.62) / (2 + 0.33 + 0.62) | 1.06V |
Right | (0.33 + 0.62 + 1) / (2 + 0.33 + 0.62 + 1) | 1.63V |
Up | (0.33 + 0.62 + 1 + 3.3) / (2 + 0.33 + 0.62 + 1 + 3.3) | 2.39V |
Idle | 1 | 3.3V |