Yacht Devices RAW Text Protocol (Appendix E Compatible)
This Home Assistant add-on exposes a Linux SocketCAN interface (e.g. can0) as a
Yacht Devices–compatible RAW text TCP feed, fully bi-directional, using the
format defined in Appendix E of the Yacht Devices YDEN-02 / YDNU-02 protocol
documentation.
👉 Protocol spec (RAW text mode):
https://www.yachtd.com/downloads/ydnu02.pdf
(See Appendix E — Text Format of NMEA 2000 Messages)
This allows Home Assistant OS to emulate the RAW output mode of Yacht Devices’ CAN/NMEA2000 bridges (such as YDEN-02), enabling integrations with SignalK, NMEA2000 tools, or custom software that expect the YD RAW TCP interface.
Every CAN frame is broadcast to all TCP clients in the RAW text format:
hh:mm:ss.sss R <CAN_ID> <DATA...>
- Timestamp in UTC with millisecond resolution
Rindicates Received from CAN- CAN ID in 8-digit uppercase hex
- Data bytes in two-digit uppercase hex
Example:
12:30:15.482 R 19F51323 01 02 03 04
TCP clients may send RAW lines:
19F51323 01 02 03 04
The add-on will:
- Parse the frame
- Send it to the CAN bus
- Echo back as a Transmitted frame:
hh:mm:ss.sss T 19F51323 01 02 03 04 - Rebroadcast it to all other connected TCP clients
- Frames originating from CAN:
R - Frames originating from TCP clients:
T - Timestamps follow the exact formatting rules in the spec
Any number of TCP clients may connect.
All receive the CAN feed and see each other’s transmissions.
- Uses
host_network: true - Accesses SocketCAN without needing
/dev/can0 - Requires only Home Assistant’s standard base images
CAN Bus ←→ SocketCAN (can0)
↓
CAN RAW Gateway Add-on
↓
TCP Server at <host>:<port>
(default 0.0.0.0:2598)
↓
Clients (SignalK, tools, etc.)
The add-on behaves like a Yacht Devices RAW bridge, meaning SignalK or any software expecting the YD RAW protocol can connect without modification.
q. Add the repository to Home Assistant:
- Settings → Add-ons → Add-on Store
- Top-right menu → Repositories
- Enter your repository URL
-
Install CAN RAW Gateway from the list
-
Start the add-on
-
Configure your client (e.g., SignalK) to connect to:
Host: homeassistant.local Port: 2598
Inside the add-on UI:
can_interface: can0
listen_host: 0.0.0.0
listen_port: 2598
log_level: info| Option | Description | Default |
|---|---|---|
can_interface |
SocketCAN interface name | can0 |
listen_host |
TCP bind address | 0.0.0.0 |
listen_port |
TCP port for RAW server | 2598 |
log_level |
Logging verbosity | info |
nc homeassistant.local 2598
12:41:23.105 R 09F805FD FF 00 00 00
12:41:23.421 R 19F51323 01 02 03 04
19F51323 01 02 03 04
Add-on will echo:
12:41:30.882 T 19F51323 01 02 03 04
This AddOn depends on the can interface to be present in the HAOS.
Here is how I enabled the dtoverlay necessary for the 2CH CAN HAT+ from Waveshare for HAOS running on Raspberry Pi5 with an SSD:
mkdir /mnt/boot
mount -t vfat /dev/nvme0n1p1 /mnt/boot
cd /mnt/boot
nano config.txt
Add:
dtparam=spi=on
dtoverlay=i2c0
dtoverlay=spi1-3cs
dtoverlay=mcp2515,spi1-1,oscillator=16000000,interrupt=22
dtoverlay=mcp2515,spi1-2,oscillator=16000000,interrupt=13
See here: https://www.waveshare.com/wiki/2-CH_CAN_HAT+
Other CAN-Interface HATs follow the same pattern.
- Add support for read-only mode
- Split in two containers, one running in mode network=host, reading and writing CAN frames and connecting to a server-container that will expose the actual TCP port
- The add-on does not perform fast-packet reassembly
- Frames larger than 8 bytes appear as raw CAN fragments
- Future versions may add optional fast-packet support
Yacht Devices — NMEA 2000® Gateway YDEN-02 / YDNU-02 Manual
https://www.yachtd.com/downloads/ydnu02.pdf
See Appendix E — Text Format of NMEA 2000 Messages
This add-on turns your Home Assistant OS host into a fully compatible Yacht Devices RAW NMEA2000 TCP bridge, enabling powerful integrations with SignalK or custom marine software.