Hardware Description

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




Device: MCP2515

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


Device: MAX11601

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.

Digital Inputs


Device: PCF8574

The Digital Inputs are monitored using the NXP PCF8574 I2C IO Expander. The I2C address of the device is 0x40.

Digital Outputs


Device: PCA9536

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


Device: PCF8523

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.