PX4 Sapog - advanced open source ESC from the PX4 team

Hi everyone,

A part of the PX4 team has been working on an open source ESC since late 2013. The objectives we had in mind were roughly as follows:

  • BSD licensed codebase.
  • CAN bus interface (using UAVCAN as a high level protocol), with specific sub-goals:
    • low latency;
    • ESC status monitoring, at least health, temperature and RPM;
    • automatic and transparent for the user firmware upgrades.
  • Better alternative to the popular RCPWM BLDC controllers in terms of reliability and response characteristics.

The project was first known as PX4ESC, later renamed into Sapog for reasons of clarity. After about two and half years of development and experimenting, the first, for-developers-only release was announced at the ELC 2016 (slides here). Now, a few months after that, we're announcing that the project is finally ready for public release, and that the first ESC based on this project - Zubax Orel 20 - is now available from Titan Elite, Inc.

Zubax Orel 20, pictured on the right, is rated for supply voltage 9~18 V (3~4S LiPo) and continuous motor currents up to 20 A. More info can be gathered from the documentation page at the Zubax Docs website.

We welcome all companies that specialize in electric drive systems for UAV to consider extending their product portfolio with UAVCAN enabled solutions. In order to encourage this move, we're planning to release the reference hardware sources under a permissive Creative Commons license.

It should be emphasized that all of the features of Sapog are exposed via UAVCAN, an open and royalty-free protocol standard. We encourage all vendors of UAV avionics to support it, since relying on a common and open ecosystem is beneficial for everyone. For ease of migration we're providing MIT-licensed libraries in C++, C, and Python. Here we have a small collection of demo scripts that demonstrate how to access the capabilities of Sapog, or any other UAVCAN-interfaced ESC, using plain Python from a regular desktop computer: https://docs.zubax.com/sapog/direct_control_via_uavcan.

More information:

Views: 5209

Comment by Marc Dornan on August 21, 2016 at 9:51am

@JAB you are correct. 20A continuous covers a lot of applications but only at 6S or higher as you say. 4S is really a hobby grade rating but there really are very few hobbysists that will or should shell out $316 for 4 ESCs. It was an odd rating to launch with. 

Comment by Pavel Kirienko on August 21, 2016 at 4:33pm

It is true that RCPWM input is supported. There also a closed loop RPM controller that has been used successfully with a constant rate variable pitch drive.

Regarding the motor parameters - Sapog implements a six step BLDC commutation logic; relevant parameters are documented in this section.

Comment by Adam Kroll on August 21, 2016 at 8:07pm

If a company is going to develop a higher voltage hardware version, may as well go to 8S as there are a few (namely my plane) that operate 8S for the increased efficiency.

Comment by Jerry Giant on August 24, 2016 at 11:33pm

will this code run on ESC32? i will try to get the answer myself. if it runs good, i will try do a 14S version for my heli if possible for me, and a specific model for maxon sticks for the swash plate.

Comment by Kabir on August 24, 2016 at 11:42pm
Sapog does not run on ESC32 hardware.


You need to be a member of DIY Drones to add comments!

Join DIY Drones


Season Two of the Trust Time Trial (T3) Contest 
A list of all T3 contests is here. The current round, the Vertical Horizontal one, is here

© 2019   Created by Chris Anderson.   Powered by

Badges  |  Report an Issue  |  Terms of Service