Canopen integration
Reusable Agent Skills for embedded systems, MCU debugging, firmware workflows, and AI automation. (嵌入式、MCU 调试、固件流程与 AI 自动化的可复用 Agent Skills 集合)。
npx -y skills add easyzoom/aix-skills --skill canopen-integrationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 22 stars22 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Use when integrating, configuring, or debugging CANopen nodes, object dictionaries, NMT, SDO, PDO, heartbeat, SYNC, EMCY, EDS/DCF files, or CANopenNode-style stacks
SKILL.md
3.0 KB, as published. Nobody here has run it
CANopen Integration
Overview
Use this skill to debug CANopen by separating raw CAN bring-up, node identity, object dictionary, NMT state, SDO configuration, PDO mapping, heartbeat, and application semantics. CANopen cannot work reliably until raw CAN timing works.
When To Use
Use this skill when:
- The user is adding or debugging CANopen master/slave nodes, object dictionaries, EDS/DCF files, PDOs, SDOs, NMT, heartbeat, SYNC, or EMCY.
- The issue involves missing PDOs, SDO aborts, node state, heartbeat timeout, wrong COB-IDs, mapping errors, or network management.
- The implementation uses CANopenNode, a vendor stack, or a custom CANopen layer.
Do not use this skill for low-level CAN bit timing or transceiver bring-up. Use
canbus-integration first when raw CAN frames are not proven.
First Questions
Ask for:
- CANopen stack, node ID, bitrate, raw CAN evidence, and network topology.
- Object dictionary entries, EDS/DCF, PDO mapping, COB-IDs, and NMT state.
- Master tool or peer node, SDO abort codes, heartbeat settings, and logs.
- Whether SYNC, TIME, EMCY, LSS, or boot-up messages are required.
- Exact frame capture from a CAN analyzer if available.
Debug Workflow
-
Prove raw CAN. Confirm bitrate, sample point, transceiver, termination, and error counters.
-
Prove node identity. Check node ID, boot-up message, NMT state, heartbeat producer/consumer, and expected COB-IDs.
-
Validate object dictionary. Confirm index/subindex types, access rights, defaults, persistence, and application backing storage.
-
Debug SDO first. Use SDO reads/writes to verify OD entries before enabling PDO mapping.
-
Debug PDO mapping. Check mapping parameters, transmission type, inhibit/event timers, SYNC, and payload length.
-
Add safety behavior. Handle heartbeat loss, EMCY, bus-off recovery, and safe outputs explicitly.
Common Failures
- Raw CAN works only at another bitrate or with missing termination.
- Node ID conflicts with another node or creates unexpected COB-IDs.
- OD type/access flags do not match the master expectation.
- PDO mapping is changed while the PDO is enabled.
- Heartbeat consumer timeout is shorter than realistic bus or boot timing.
- Application updates OD values without atomicity or endian consistency.
Verification
Before claiming CANopen works:
- State bitrate, node ID, stack, NMT state, and object dictionary source.
- Confirm boot-up, heartbeat, and SDO read/write of key OD entries.
- Confirm PDO mapping and timing with a CAN trace.
- Confirm heartbeat timeout, EMCY, or bus-off behavior if safety-related.
Example
User:
CANopen 主站读 SDO 返回 abort。
Agent:
- Captures the abort code, index/subindex, node ID, and COB-ID.
- Checks OD type, access rights, and backing variable.
- Verifies raw CAN and NMT state before changing application logic.