Build a BoatKit device
A dedicated BoatKit device keeps the always-on vessel host separate from the phones, tablets, and computers used as displays. Early-access builds can use a Raspberry Pi 5, Raspberry Pi 4, or Raspberry Pi Zero 2 W.
This guide distinguishes three things that are not interchangeable:
- BoatKit compatibility means BoatKit and Linux can use the documented interface.
- Manufacturer claims apply to the specific product described by its manufacturer.
- Suitability for permanent vessel installation depends on the complete electrical, mechanical, and environmental installation.
Contact your BoatKit early-access onboarding contact before buying parts. The current device image is registered and prepared for a particular board and CAN hardware profile. If you do not already have a contact, join the BoatKit Discord community for live help from the developers.
Choose a base device
| Device | Best fit | Networking and expansion | Important requirements |
|---|---|---|---|
| Raspberry Pi 5 | Preferred DIY choice when you want the most performance and expansion room | Onboard RJ45 Ethernet, Wi-Fi, four USB ports, and a 40-pin HAT header | The manufacturer recommends a quality 5 V/5 A USB-C supply, such as its 27 W supply, and active cooling under load |
| Raspberry Pi 4 Model B | Established general-purpose DIY choice | Onboard RJ45 Ethernet, Wi-Fi, four USB ports, and a 40-pin HAT header | The manufacturer recommends a 15 W USB-C supply; also plan storage, cooling, and an enclosure |
| Raspberry Pi Zero 2 W | Compact, headless host | 2.4 GHz Wi-Fi, one USB OTG port, no onboard Ethernet, and an unpopulated 40-pin footprint | Requires 512 MB-compatible headless operation, a soldered header for a HAT, micro-USB power, and an OTG hub or adapter when wired networking or USB CAN is needed |
The Pi Zero 2 W has 512 MB of memory. BoatKit reserves it for core services and omits the onboard browser container. Use a phone, tablet, or computer as the viewer.
A Pi 4 or Pi 5 can optionally drive an attached HDMI touchscreen using BoatKit's onboard browser. Many touchscreens use HDMI for video, USB for touch input, and a separate power connection. Include every display load in the power, USB-port, cooling, and enclosure plan.
Select the Pi 4 or Pi 5 memory capacity and storage with your onboarding contact. BoatKit has not published a minimum RAM capacity, storage capacity, or approved DIY storage model for these builds.
Commercial option: HALPI2
The Hat Labs HALPI2 is a higher-cost, commercial, marine-centered computer based on the Raspberry Pi CM5. It integrates NMEA 2000, power handling, storage, networking, cooling, and an enclosure, making it more out-of-the-box than a DIY Raspberry Pi assembly.
It still needs a BoatKit image and matching hardware profile. Confirm its memory, storage, and display configuration through the early-access process before ordering.
Choose an NMEA 2000 interface
NMEA 2000 carries classic CAN traffic at 250 kbit/s. CAN FD is not required. BoatKit supports three hardware approaches on a Linux device:
| Approach | BoatKit connection type | Preparation | BoatKit validation status |
|---|---|---|---|
| Supported Raspberry Pi CAN HAT | SocketCAN, Linux's native CAN interface | Requires the hardware profile for the selected HAT | PiCAN2 Duo and Waveshare have named BoatKit profiles; PiCAN-M uses an early-access custom profile |
| CANable 2.0 over USB | SocketCAN | Flash candleLight firmware before installation | The exact linked CANable purchase has been physically tested with BoatKit on Linux |
| Actisense NGT-1-USB | Actisense NGT-1, a direct serial gateway path | No CANable firmware preparation or board-specific CAN HAT profile | BoatKit software support is implemented, but no physical BoatKit compatibility test is currently recorded |
The Actisense route avoids a board-specific CAN HAT and CANable firmware flashing, but it consumes a USB port and must be mounted and connected according to the Actisense manual.
SK Pang PiCAN2 Duo
The PiCAN2 Duo with 3A SMPS provides two MCP2515 CAN channels. BoatKit uses the pican-duo hardware profile for this HAT.
The current profile exposes the physical SPI channels in the reverse software order: the HAT channel numbering does not map intuitively to can0 and can1. Identify each physical connector using live traffic instead of assuming its software number.
The linked vendor product includes a manufacturer-specified 7–24 V to 5 V/3 A power converter. Its presence does not establish that it can safely power the complete installation. In particular, do not assume a 3 A HAT supply satisfies the Raspberry Pi 5 manufacturer's 5 V/5 A recommendation. Follow the HAT manual and have the vessel power source, fusing, grounding, load, and shutdown behavior reviewed.
SK Pang PiCAN-M
The PiCAN-M with Micro-C, RS422, and 3A SMPS provides one MCP2515 CAN channel through an NMEA 2000 Micro-C connector. BoatKit supports its CAN channel through SocketCAN. It also provides an RS422 connection for NMEA 0183 equipment.
PiCAN-M currently needs a custom CAN hardware profile prepared through early-access onboarding rather than a named public profile.
The linked 3 A version can power a Raspberry Pi from NMEA 2000 network power. Do not use that path until an installer has reviewed the network power budget, fusing, grounding, safe shutdown behavior, and every attached USB or HDMI load. Do not assume it is sufficient for a Raspberry Pi 5 installation.
Waveshare RS485 CAN HAT
The Waveshare RS485 CAN HAT provides one MCP2515 CAN channel. BoatKit uses the waveshare-rs485-can hardware profile. Its compact shape fits the Pi Zero 2 W and it can also be used with a full-size Pi.
Waveshare documents TVS protection and a switchable 120-ohm terminator. Those features do not establish galvanic isolation or NMEA 2000 certification. Have an installer determine how the HAT connects to the backbone and whether its terminator should be enabled.
CANable 2.0 over USB
BoatKit has physically tested this exact CANable 2.0 purchase on a Linux BoatKit device. With candleLight firmware, Linux exposes it as a SocketCAN adapter.
The Openlight Labs CANable 2.0 is the manufacturer's reference product, but that exact vendor unit was not the physical unit recorded in the BoatKit test. Treat the physical validation as specific to the linked tested purchase.
Openlight Labs also documents candleLight/SocketCAN support and galvanic isolation for the CANable Pro. BoatKit has not recorded a physical test of that exact model, so it is not yet a BoatKit-verified purchase option.
Actisense NGT-1-USB
The Actisense NGT-1 is a direct serial gateway rather than a SocketCAN or SLCAN adapter. Actisense describes the NGT-1-USB as its standard bidirectional USB option and the NGT-1 as an NMEA 2000-certified gateway. The manufacturer also documents its supplied NMEA 2000 connection, USB power, electrical isolation, mounting requirements, network installation, and status LEDs in the NGT-1 user manual.
BoatKit automatically probes the common 115200 and 230400 baud rates. It receives and sends complete NMEA 2000 Parameter Group Number (PGN) messages through the gateway, so there is no CANable firmware step.
The NGT-1 owns its NMEA 2000 source address. BoatKit uses the address claimed by the gateway and does not perform a competing address claim. BoatKit enables transmit PGNs in the current gateway session as needed without writing the list to the NGT-1's EEPROM.
This is implemented BoatKit software support backed by the manufacturer's installation information. It is not yet a recorded BoatKit physical field validation of the NGT-1-USB.
USB CAN option to avoid
BoatKit has a legacy serial path for the Seeed USB-CAN Analyzer, but physical testing observed frequent malformed packets. Do not select it for a new BoatKit device.
Plan the permanent installation
A working BoatKit driver or profile proves that BoatKit and Linux can use an interface. It does not prove that a bare development board, screw-terminal adapter, enclosure, or user-made harness is suitable for permanent vessel service.
Have a qualified marine electronics installer review galvanic isolation, NMEA 2000 backbone power and ground, fuse and circuit protection, connector pinout, termination, strain relief, heat, moisture, vibration, ignition protection where applicable, and safe shutdown and power-loss behavior.
Do not connect a development board to live vessel power or a live NMEA 2000 backbone until that plan is complete.
Official Raspberry Pi power supplies are useful for assembly and bench testing. A permanent installation needs a correctly sized, regulated, protected vessel DC supply and an appropriate shutdown plan. No exact DIY enclosure, storage device, vessel DC supply, fuse, terminal hardware, cooling assembly, or Micro-C harness is currently documented as a BoatKit-approved kit.
Purchase checklist by build
Confirm the selected board, HAT, profile, and storage with your onboarding contact before ordering.
Raspberry Pi 5 with a CAN HAT
- Raspberry Pi 5 in a memory configuration agreed through onboarding
- Reliable storage supported by the current device image
- A quality 27 W, 5 V/5 A USB-C supply from the Raspberry Pi power-supply range for bench setup
- Active cooling and a HAT-compatible enclosure with adequate airflow
- A supported PiCAN2 Duo, PiCAN-M, or Waveshare RS485 CAN HAT
- The matching BoatKit CAN hardware profile; PiCAN-M currently requires a custom profile
- Correct-height standoffs and hardware that secure both boards without stressing the header
- The connector, drop cable, or installer-built harness required to connect the selected HAT to NMEA 2000
- An Ethernet cable for the ordinary vessel LAN
- An additional USB Ethernet adapter only if a supported marine integration requires a separate wired network
- Optionally, an HDMI touchscreen, display cable, USB touch cable, separate display power, and any required mounting hardware
Do not rely on a HAT's 3 A converter as the Raspberry Pi 5 power plan unless the complete configuration has been reviewed and approved for that use.
Raspberry Pi 4 with a CAN HAT
- Raspberry Pi 4 Model B in a memory configuration agreed through onboarding
- Reliable storage supported by the current device image
- A quality 15 W USB-C supply from the Raspberry Pi power-supply range for bench setup
- Cooling and a HAT-compatible enclosure with adequate airflow
- A supported PiCAN2 Duo, PiCAN-M, or Waveshare RS485 CAN HAT
- The matching BoatKit CAN hardware profile; PiCAN-M currently requires a custom profile
- Correct-height standoffs and mounting hardware
- The connector, drop cable, or installer-built harness required to connect the selected HAT to NMEA 2000
- An Ethernet cable for the ordinary vessel LAN
- An additional USB Ethernet adapter only if a supported marine integration requires a separate wired network
- Optionally, an HDMI touchscreen and all video, touch, power, and mounting hardware it requires
Raspberry Pi Zero 2 W with a compact HAT
- Raspberry Pi Zero 2 W
- A correctly soldered 40-pin header
- Reliable microSD storage supported by the current device image
- A quality micro-USB power supply for bench setup
- A Waveshare RS485 CAN HAT and the
waveshare-rs485-canBoatKit profile - A Zero-compatible enclosure, standoffs, and cooling or ventilation appropriate to the installation
- The connector or installer-built harness required to connect the Waveshare HAT to NMEA 2000
- Wi-Fi access to the ordinary vessel LAN, or USB Ethernet with the required OTG adapter or powered hub
- A phone, tablet, or computer to use as the viewer because this build is headless
Using a USB gateway instead
A CANable 2.0 or NGT-1-USB can replace the CAN HAT in a Pi 4 or Pi 5 build. Include the adapter, its USB cable, suitable strain relief and mounting, and the manufacturer-documented NMEA 2000 connector or an installer-approved harness.
A Zero 2 W has only one USB OTG port. A USB CAN adapter or NGT-1 may therefore require a suitable powered OTG hub, particularly when the build also needs USB Ethernet.
Plan networking
Use the ordinary vessel LAN for setup and normal viewer access.
A Pi 4 or Pi 5 can use its onboard RJ45 port. A Pi Zero 2 W normally uses Wi-Fi unless the build includes USB Ethernet. Add a second USB Ethernet adapter only when a supported chartplotter integration needs a separate marine network.
Keep a chartplotter, radar, or sonar Ethernet network separate from the ordinary vessel LAN and internet path. Do not configure the BoatKit device as a bridge between a vendor marine network and the internet or vessel LAN.
Obtain the BoatKit image
Public provisioning is currently an early-access process. Your onboarding contact provides a device-specific BoatKit image and confirms the board and CAN profile. There is not yet a public image-download URL.
Do not substitute an image prepared for another board or HAT. PiCAN2 Duo and Waveshare require their matching profiles, while PiCAN-M requires an early-access custom profile. CANable and NGT-1 builds do not need a HAT profile, but they still need the correct board image and device registration.
If you need provisioning help, contact your onboarding representative or ask in the BoatKit Discord community.
Assemble the device
- Confirm the board, storage, CAN interface, networking plan, and matching image or profile with your onboarding contact.
- Disconnect all power. If using a Pi Zero 2 W HAT, have the 40-pin header soldered and inspected before fitting the HAT.
- Install the storage and cooling hardware.
- Fit the CAN HAT on the 40-pin header using correctly sized standoffs. Do not allow the Pi or HAT to rest against conductive enclosure surfaces.
- If using a CANable 2.0, prepare its candleLight firmware before mounting it. An NGT-1-USB requires no CANable firmware preparation.
- Mount the Pi, interface, and cables so USB, CAN, and display connectors are not carrying cable strain.
- Leave backbone wiring, terminator selection, permanent vessel DC power, and permanent connector work to the approved installation plan.
- Flash the device-specific image to the storage target named by your onboarding contact. Confirm the removable-media target before writing because flashing erases that target.
- Insert the prepared storage. Connect the ordinary vessel LAN when available, then apply bench power or approved vessel power.
Prepare a CANable 2.0 for Linux
Use candleLight firmware for the Raspberry Pi-based Linux path documented here. The current direct Android USB CAN path uses SLCAN, while the iPad path uses a separate iCAN++ connection. Neither mobile transport applies to this Linux setup.
- Move the CANable 2.0 boot switch to Boot.
- Connect it to a Windows or Linux computer.
- Open the CANable 2.0 web updater and review the alternative firmware guidance.
- Select candleLight firmware, connect to the adapter, and run the update.
- Follow the updater's driver or recovery guidance if the browser cannot detect the adapter.
- Disconnect the adapter and move its boot switch out of Boot.
- Attach it to the unpowered BoatKit device and secure the USB cable against strain.
After BoatKit starts, Linux should expose the adapter through SocketCAN. Do not flash SLCAN for this documented Linux device path.
First startup and networking
Use the ordinary vessel LAN for first setup, not an isolated chartplotter or radar network.
- For a Pi 4 or Pi 5, start with onboard Ethernet when an ordinary vessel LAN port is available. A Pi Zero 2 W normally starts on Wi-Fi unless the build includes USB Ethernet.
- Open the BoatKit native or desktop app on a device connected to the same ordinary network.
- If the preloaded BoatKit device is not already on that network, choose Add Device and follow the BoatKit Setup Wi-Fi flow.
- When the app reports BoatKit found, open the new device and continue through account and BoatKit Cloud setup.
Do not use an isolated chartplotter network as a substitute for the initial LAN or internet connection.
Configure and verify NMEA 2000
Wait until the BoatKit device itself is reachable before configuring its NMEA 2000 interface.
- Open Settings > Integrations.
- Under NMEA Networking, add NMEA 2000 Network if it is absent.
- Choose the connection for your hardware:
- For a CAN HAT or candleLight CANable, set Connection type to SocketCAN, then choose the physical CAN adapter.
- For an NGT-1-USB, set Connection type to Actisense NGT-1, then choose the attached gateway under CAN adapter.
- Enable the integration.
- Confirm that the displayed status advances from Disabled or Connecting and that a runtime interface appears. There is not one universal final status string for every adapter.
- Confirm that received NMEA 2000 devices or traffic begin to populate.
- Check that changing position, heading, depth, engine, tank, or sensor values are believable before changing preferred data sources.
With a PiCAN2 Duo, identify the physical connector from live traffic because the current software can0 and can1 order is reversed from the HAT's physical SPI channel order.
For an NGT-1, Address Claim is fixed to Gateway managed. A claimed gateway address must appear before BoatKit can transmit. BoatKit uses that address rather than claiming another one.
Transmit Alerts/Warnings is a separate operator choice. Enable it only when you deliberately want BoatKit alert and warning PGNs transmitted on that NMEA 2000 network.
Add an optional HDMI touchscreen
A Pi 4 or Pi 5 can use an attached HDMI touchscreen as its local BoatKit display. BoatKit's onboard browser shows the same interface available to viewers on the ordinary vessel LAN.
Follow the display manufacturer's power and cabling instructions. Include video, USB touch, display power, mounting, and heat in the installation plan. A Pi Zero 2 W remains headless because its BoatKit image omits the onboard browser.
Connect optional chartplotter Ethernet
A Pi 4 or Pi 5 can use onboard RJ45 for one wired network. A Pi Zero 2 W needs USB Ethernet for any wired network. Add another USB Ethernet adapter only when a supported integration requires a separate vendor marine network.
Keep that marine network distinct from the ordinary vessel LAN and internet path, and do not bridge the two. Review Peripherals and integrations before assigning an interface to vendor equipment.
Confirm it is working
- The BoatKit app finds and opens the device over the ordinary vessel LAN.
- If fitted, the HDMI touchscreen displays BoatKit and accepts touch input.
- The enabled NMEA 2000 integration shows a runtime interface.
- Received NMEA 2000 devices or traffic populate and vessel values are believable.
- An NGT-1 shows a gateway-managed claimed address before any BoatKit transmission is expected.
- Local viewers can continue reaching BoatKit without routing through BoatKit Cloud.
- When internet access is available, the device connects to BoatKit Cloud and can receive automatic updates.
Do not restart a running BoatKit as a routine verification step.
Updates and offline operation
BoatKit devices update automatically and are intended for continuous service. Keep the device on an approved, stable power source and connected to the internet when you want it to receive updates.
Local vessel use does not require a continuous internet connection. The installed BoatKit version, local vessel data, local integrations, and viewers on the ordinary vessel LAN remain available while the internet is unavailable. Remote access, remote notifications, BoatKit Cloud services, and update delivery require connectivity.
A DIY assembly must not be described as waterproof, ignition-protected, NMEA 2000-certified, or approved for production vessel service unless the complete enclosure and installation have evidence for those claims.
Troubleshooting
The app cannot find the device
- Confirm that the app and BoatKit device are on the same ordinary vessel LAN.
- On a Pi 4 or Pi 5, check the onboard Ethernet link indicators and LAN cable.
- On a Pi Zero 2 W, confirm the intended Wi-Fi connection or USB Ethernet hardware.
- If the device has not joined the LAN, return to Add Device and the BoatKit Setup flow.
- Do not move the setup connection to the chartplotter network to make discovery work.
- Record the device name, board type, image/profile choice, and displayed app message for your onboarding contact.
The expected CAN adapter is not listed
- For a HAT, confirm that the image contains the matching CAN hardware profile.
- For a CANable, confirm that it is out of boot mode and running candleLight rather than SLCAN.
- For USB hardware, check that the adapter is attached directly or through a powered hub suitable for the load.
- For an NGT-1, check its USB connection and the status LEDs described in the Actisense manual.
- Record the available Connection type, CAN adapter, status, and runtime-interface fields before changing hardware.
The adapter appears but NMEA 2000 data is empty
- Confirm that the integration is enabled and no longer displays Disabled.
- Check that SocketCAN is selected for a HAT or candleLight CANable, or Actisense NGT-1 for an NGT-1-USB.
- Confirm that the intended physical CAN adapter is selected.
- With a PiCAN2 Duo, use live traffic to identify the connected physical channel rather than relying on channel numbering.
- Have the installer verify backbone power, connector pinout, wiring, and termination without changing a live network experimentally.
An NGT-1 receives data but BoatKit cannot transmit
- Look for a gateway-managed claimed address in the NMEA 2000 integration.
- If it shows Address not claimed, check the NGT-1 network installation, backbone power, USB connection, and manufacturer-documented status LEDs.
- Remember that Transmit Alerts/Warnings remains off unless an operator deliberately enables it; it is separate from the gateway's address claim.
The device restarts or disappears under load
- Check the displayed hardware status and power source before changing software.
- During controlled bench diagnosis, remove optional USB or display loads only when doing so will not interrupt critical vessel equipment.
- Review supply capacity, cable voltage drop, cooling, storage health, and enclosure temperature with the installer.
- Do not repeatedly power-cycle the device. Preserve the observed status and timing for support.
Do not alter a live CAN or marine Ethernet network as a routine troubleshooting experiment. Understand the impact and preserve diagnostics first.
Return to Choose how to use BoatKit to compare this build with an app-hosted vessel.