diff options
Diffstat (limited to 'docs/CANBUS_protocol.md')
-rw-r--r-- | docs/CANBUS_protocol.md | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/docs/CANBUS_protocol.md b/docs/CANBUS_protocol.md index 3fa2bf2d..e1561eb5 100644 --- a/docs/CANBUS_protocol.md +++ b/docs/CANBUS_protocol.md @@ -1,9 +1,11 @@ +# CANBUS protocol + This document describes the protocol Klipper uses to communicate over [CAN bus](https://en.wikipedia.org/wiki/CAN_bus). See [CANBUS.md](CANBUS.md) for information on configuring Klipper with CAN bus. -# Micro-controller id assignment +## Micro-controller id assignment Klipper uses only CAN 2.0A standard size CAN bus packets, which are limited to 8 data bytes and an 11-bit CAN bus identifier. In order to @@ -19,7 +21,7 @@ that is used during id assignment. This identifier can exceed the length of one CAN packet, so a hash function is used to generate a unique 6-byte id (`canbus_uuid`) from the factory id. -# Admin messages +## Admin messages Admin messages are used for id assignment. Admin messages sent from host to micro-controller use the CAN bus id `0x3f0` and messages sent @@ -27,7 +29,7 @@ from micro-controller to host use the CAN bus id `0x3f1`. All micro-controllers listen to messages on id `0x3f0`; that id can be thought of as a "broadcast address". -## CMD_QUERY_UNASSIGNED message +### CMD_QUERY_UNASSIGNED message This command queries all micro-controllers that have not yet been assigned a `canbus_nodeid`. Unassigned micro-controllers will respond @@ -36,7 +38,7 @@ with a RESP_NEED_NODEID response message. The CMD_QUERY_UNASSIGNED message format is: `<1-byte message_id = 0x00>` -## CMD_SET_NODEID message +### CMD_SET_NODEID message This command assigns a `canbus_nodeid` to the micro-controller with a given `canbus_uuid`. @@ -44,12 +46,12 @@ given `canbus_uuid`. The CMD_SET_NODEID message format is: `<1-byte message_id = 0x01><6-byte canbus_uuid><1-byte canbus_nodeid>` -## RESP_NEED_NODEID message +### RESP_NEED_NODEID message The RESP_NEED_NODEID message format is: `<1-byte message_id = 0x20><6-byte canbus_uuid>` -# Data Packets +## Data Packets A micro-controller that has been assigned a nodeid via the CMD_SET_NODEID command can send and receive data packets. |