Orel 20 Transport Errors

Hello again,

Now that I have been able to get the Orel 20 ESCs to stay operational, I set the uavcan_node_id for both of my ESCs along with the esc_index. However, when I connect them to my Pixhawk and monitor the Transport Stats, I get the following results:


The errors count continues to increase. Any ideas as to what would be causing all of the errors?


Seems like you’re using only CAN1, so the errors on CAN2 can be safely ignored (because the interface is not connected). Possible reasons for errors on CAN1:

  • Bad cabling
  • Poor termination
  • Noisy environment (shouldn’t be a problem with twisted pair cables)

The error count increases when any of the following events are registered:

  • Hardware RX buffer overrun (frame lost)
  • Software RX buffer overrun (frame lost)
  • Stuff bit error
  • Frame form error
  • Acknowledgement error (happens if the device is the only device on the bus)
  • Unexpected recessive/dominant bis error
  • Frame CRC error

You can investigate further by executing uavcan in the CLI.

Thanks Pavel,

My setup currently is using the cables and termination plug that came with the ESC. This is the output of “uavcan status” in the CLI:

Not sure if that helps at all, but ideas where to look? I’m perplexed because everything works great when connecting it to the computer with the Babel.


It seems like in your case the errors are caused by mild noise on the bus. This is natural if you’re not using twisted pair cabling. There is no reason to be concerned.

Hi Pavel,

So it seems my errors were caused by faulty hardware on the Pixhawk. I ordered another Pixhawk and flashed the same Firmware with much better results. UAVCAN recognized the connected ESC and Babel nodes right away. I do have another question about how to send output to the ESCs though.

I am getting these results from the CLI using “uavcan status”.


I changed the esc_index from the UAVCAN Gui while everything was running so I assume that’s why the same node appears twice. I only have one ESC connected currently.

It seems that I should be getting some output from the ESCs, but nothing is happening to the motors I have connected. I can see the ESC Output change when I move the joystick on my transmitter, but no output.

How do I get it to actually send signals to the ESC to spin the motor?


Please make sure that the parameter UAVCAN_ENABLE on PX4 is set to the value Sensors and Motors (3). This should enable the UAVCAN output mixer.

Yes, the UAVCAN_ENABLE was set to 3. The “outputs” are showing the correct values, but no motors are spinning.

This is weird. Perhaps you could use the Bus Monitor feature of the UAVCAN GUI tool to see what ESC setpoints are commanded by the autopilot? If there are zeroes, perhaps your airframe setup is misconfigured.

That is very likely. I do not want to use an airframe however. Is there any way to bypass all the internal checks and then add them back in later? I am looking to have direct control over the outputs.


Direct control is possible, although I never used it myself. Check out the topic actuator_direct. In theory, any value you publish there will be directly used to command the ESC (follow the code).