BOAT IO and NMEA-4 both use common interfaces. Most interfaces are on the I2C bus and some interfaces are supported by Linux and some can be controlled using a Python application
BOATIO and NMEA-4
The CAN bus interface is based on the MCP2515 CAN controller and the MCP2562 transceiver. The MCP2515 is well supported by the Linux distribution and can be programmed using Python.
Analog to Digital Converter
The analog inputs are read using the I2C MAX11601 at address 0xC8. The inputs can be up to 16V. Reading the 8 bit A/D will give a value that corresponds to the input voltage. Readings of 0 to 255 correspond to 0 to 16V. Before the A/D is a scaling block that ensures the A/D never see dangerous voltages.
The Digital outputs are controlled using the I2C PCA9536 IO Expanded. The I2C address is 0x82. The first two outputs control the opto isolated outputs rated for 0.5A. The third and fourth outputs control two programmable LEDs.
Real Time Clock
The Raspberry Pi doesnt come with a Real Time Clock (RTC). The PCF8523 provides this capability along with a backup battery to maintain the clock when the Raspberry Pi is powered down. The PCF8523 is fully supported by Linux.