Skip to content

Board Description

The RS485 CAN HAT is a compact expansion board measuring 65mm x 30mm that mounts directly onto a Raspberry Pi through the standard 40-pin GPIO header. It draws its operating voltage of 3.3V from the Pi’s power rail, requiring no external power supply. The board brings two industrial communication protocols — CAN bus and RS-485 — to the Raspberry Pi, which natively supports neither.

RS485 CAN HAT board layout

The HAT is organized into two electrically independent sections, each implementing a different field bus protocol.

The CAN subsystem is built around two ICs working in series. The MCP2515 is a standalone CAN protocol controller from Microchip that connects to the Pi over the SPI bus (using SCK, MOSI, MISO, and CE0). Because the Raspberry Pi has no native CAN peripheral, the MCP2515 bridges the gap — it handles all CAN V2.0B framing, arbitration, and filtering in hardware, presenting a simple SPI register interface to the Pi.

Sitting between the MCP2515 and the physical bus is the SN65HVD230, a 3.3V CAN transceiver from Texas Instruments. It converts the MCP2515’s single-ended logic signals into the differential pair (CAN_H and CAN_L) that the CAN bus requires. The bus-side signals are brought out to a screw terminal block labeled H and L.

The RS-485 subsystem uses the SP3485, a low-power half-duplex transceiver operating at 3.3V. It connects to the Pi’s UART (TXD and RXD) and converts those single-ended signals into a differential pair on the A and B screw terminals. The SP3485 supports automatic TX/RX direction switching by default, meaning no GPIO pin management is needed for basic operation.

The RS-485 section includes an onboard TVS (Transient Voltage Suppressor) diode that clamps voltage spikes on the A and B differential lines. This protects the SP3485 transceiver against surges, transient spikes, lightning-induced voltages, and electrostatic discharge (ESD). The TVS responds in nanoseconds, diverting excess energy before it reaches the IC.

  • 40-pin GPIO header — mates with the Raspberry Pi’s GPIO connector, providing SPI, UART, power, and interrupt connections.
  • CAN terminal block — screw terminals for H (CAN_H) and L (CAN_L).
  • RS-485 terminal block — screw terminals for A and B differential lines.
  • Reserved control header — an auxiliary header that allows the board to be used with control boards other than the Raspberry Pi.

Four 3.0mm mounting holes are located at the corners of the board, matching standard Raspberry Pi HAT spacing. These accept M3 standoffs for secure mechanical attachment.

The MCP2515 requires an external clock source. The crystal frequency determines the CAN bit timing configuration.

You can visually identify the crystal on the board — it is the small metal-cased component near the MCP2515 IC. If the frequency is not printed on the case, check your board’s purchase date or test with both overlay configurations to determine which works.