• Specification
    • 1. Introduction
    • 2. Basic concepts
    • 3. Data structure description language
    • 4. CAN bus transport layer
    • 5. Application level conventions
    • 6. Application level functions
    • 7. List of standard data types
    • 8. Hardware design recommendations
  • Implementations
    • Libuavcan
      • Platforms
      • Tutorials
        • 1. Library build configuration
        • 2. Node initialization and startup
        • 3. Publishers and subscribers
        • 4. Services
        • 5. Timers
        • 6. Time synchronization
        • 7. Remote node reconfiguration
        • 8. Custom data types
        • 9. Node discovery
        • 10. Dynamic node ID allocation
        • 11. Firmware update
        • 12. Multithreading
        • 13. CAN acceptance filters
      • FAQ
    • Pyuavcan
      • Examples
        • Automated ESC enumeration
        • ESC throttle control
      • Tutorials
        • 1. Setup
        • 2. Basic usage
        • 3. Advanced usage
        • 4. Parsing DSDL definitions
    • Libcanard
    • Uavcan.rs
  • GUI Tool
    • Overview
    • Examples
    • User guide
  • Examples
    • Simple sensor node
  • Forum
Implementations /  Libuavcan /  FAQ

Frequently asked questions

Node is emitting incomplete transfers or losing frames

Possible causes are listed below. Also refer to the first tutorial for more info on troubleshooting.

Memory pool is too small

This may prevent the node from allocating enough memory for the TX queue. Try to increase the pool, and make sure that it is not getting exhausted.

Node is not spinning regularly

This may cause the frames scheduled for transmission to time out before even reaching the CAN driver. Make sure that the spin method is being invoked regularly.

CAN frames lose arbitration

This could happen if the bus is too congested with higher-priority traffic. Try to increase either or both:

  • Transmission timeout.
  • Transfer priority (if appropriate).

Both are explained in the relevant tutorials.

Build is failing because of missing header files

This issue typically manifests itself with a message like that:

libuavcan/include/uavcan/time.hpp:12:32: fatal error: uavcan/Timestamp.hpp: No such file or directory

This could be caused by failing DSDL compilation - see below.

DSDL compiler is failing

Make sure you have Python installed.

Inspect the build logs for error messages from the DSDL compiler. They should be descriptive enough to help you understand the nature of the problem.

If you’re facing the following error message:

  File "dsdl_compiler/libuavcan_dsdlc", line 59, in <module>
    from libuavcan_dsdl_compiler import run as dsdlc_run
  File "/home/jgoppert/git/libuavcan/libuavcan/dsdl_compiler/libuavcan_dsdl_compiler/__init__.py", line 17, in <module>
    from uavcan import dsdl
ImportError: No module named uavcan

Make sure that all git submodules are checked out and updated - use git submodule update --init --recursive --force.

SocketCAN does not work reliably with an SLCAN adapter

Sometimes slcand may be losing outgoing frames because TX queue is not large enough. TX queue of an interface can be resized as follows:

ifconfig slcan0 txqueuelen 1000

The example above makes TX queue of slcan0 1000 frames deep.

Obsolete

This website is dedicated to the experimental version of the protocol known as UAVCAN v0 that is now obsolete. To learn more about the stable release UAVCAN v1.0, please visit the main website.

Libuavcan

  • Platforms
  • Tutorials
    • 1. Library build configuration
    • 2. Node initialization and startup
    • 3. Publishers and subscribers
    • 4. Services
    • 5. Timers
    • 6. Time synchronization
    • 7. Remote node reconfiguration
    • 8. Custom data types
    • 9. Node discovery
    • 10. Dynamic node ID allocation
    • 11. Firmware update
    • 12. Multithreading
    • 13. CAN acceptance filters
  • FAQ

License

This work is licensed under a Creative Commons Attribution 4.0 International License.
  • Discussion forum
  • GitHub organization
  • Report a problem with this website

Generated Thu, 17 Feb 2022 16:27:38 +0000 © UAVCAN development team