There's still quite a few things I'd like to do.
Menu System for Card Tests
Since the first target is the Land Boards Raspberry Pi I/O Hats, I'd like a menu system to select the Hat to test. The menu would run over the USB connection and should allow tests to be developed for the hats. I'd like the only host requirements to be running a terminal emulator, like PuTTY which supports Serial over USB.
The cards are mostly GPIO breakouts that add Ground and Signal as well as do voltage translation of the 3.3V of the Raspberry Pi to 5V signal levels. For these cards it's enough to bounce a light across each of the output pins and light LEDs. This checks for shorts, opens, etc.
But we do have some other cards, such as a serial port card which does USB to Serial that are more than just testing GPIO lines.
Hat ID EEPROM Read/Write
One of the primary reasons I made this card is I don't want to have to figure out how to use the I2C interface everytime Raspbian changes the Device Tree approach. For that to work, I need to be able to program the EEPROM on the hat. If there's a hat that's already been programmed it can be read to automatically determine what hat is attached.
Not all of our Land Boards Raspberry Pi Cards are technically hats. To be a hat, the card has to have an ID EEPROM. Some of our cards are breakouts and don't have the ID EEPROM. Some of our cards just support the smaller GPIO connector size, as well.
Cards which have an ID EEPROM include:
- RPP-UIO-16 - Full hat functionality
- RASPI-PLUS-GVS-CFG - Full hat functionality
- RPPSOC - This card in reverse - uses as PSoC as a hat to the Pi
The cards which don't have an ID EEPROM include:
- RasPi-GVS -
- RASPI-PLUS-GVS - Hat sized but no EEPROM
- RPIO-TINY - Very small breakout of the GPIO pins with Ground and VCC pins for each GPIO
- RPIO-TINY-2 - 5V translator on 8 dedicated GPIO pins
- RPIO-TINY-3 - Similar to RPIO-TINY with all of the GPIO inside the board volume
- RPI-MDI - 3 Channel Servo controller
- RPI-CONSOLE - Serial USB port with USB B mini connnection
- RPI-CONSOLE-U - Serial USB port with USB B micro connection
- RPI-I2C-HUB - Four port I2C hub
So there's really only 3 hats on the list (cards with ID EEPROMs). Still it would be nice to have a way to do this without the pain of using a Raspberry Pi.
Part of the reason it's painful to do this with a Raspberry Pi is that the Pi viewed the EEPROM as something it interrogates at power up rather than a device it want's to let users read. That has to be worked around and most of the workarounds on the Internet just don't work all that well.