Top view

Orel 20

Low-cost BLDC motor controller for light unmanned aircraft and watercraft.

Orel 20 is an advanced controller of sensorless BLDC motors designed for use in cost sensitive applications. Its primary application domains include propulsion systems of electric unmanned aircraft and watercraft.

Orel 20 runs Sapog – an open source multiplatform BLDC controller firmware developed by Zubax Robotics.


  • Propeller drives for unmanned aerial vehicles.
  • Pump and propeller drives for unmanned watercraft.


  • Excellent dynamic characteristics.
  • Regenerative braking and active freewheeling.
  • Continuous power output up to 350 W.
  • Extremely lightweight, only 10 g.
  • Optional RPM control loop (RPM governor).
  • Embedded self diagnostic routines and health status reporting.
  • Highly configurable.
  • Low noise and low current ripple due to low ESR embedded filtering capacitors and high frequency PWM.
  • Supported interfaces:
    • CAN (UAVCAN), with optional dual redundancy.
    • UART.
    • RCPWM (analog PWM interface widely used in robotics).
  • High quality assurance:
    • Every manufactured unit undergoes a rigorous testing procedure. The testing log for each produced unit is available on the web.
    • Protection against unlicensed (counterfeit) production by means of a digital signature installed on every manufactured unit.
  • Open source firmware – Sapog (3-clause BSD license).

Related announcements and discussions

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 increas…

Orel 20 Loops From Operatational Mode to Initialization

Hello, I recently acquired some Orel 20 ESCs and the Babel developer kit. I am having difficulty assigning Node IDs to the ESCs using the UAVCAN GUI tool. I have the Babel connected to the computer via USB and an Orel 20 ESC connected via CAN to the Babel. Ubuntu 16.04 Sapog version: 2.2.0f67ce73 …

Sapog / make firmware

Hello. I’m trying to make firmware but I got a error message: collect2: error: ld terminated with signal 11 [Segmentation fault], core dumped zubax_chibios///chibios/os/common/ports/ARMCMx/compilers/GCC/ ‘build/io.px4.sapog.elf’ command not found I think it’s caused by an GNU version. …

Gimbal motor control

Hello, is your ESCs (Orel 20 and Myxa) gimbal motor control ready?…

Sapog flahing using Black Magic Probe

I use black magic probe v2.1 and don’t have drone code debug adapter. I want to connect J-tag pin on black magic probe and debug port on Orel 20 to flash the Sapog firmware. Can I pair like below? Orel 20 --------------------------- J-tag on black magic probe TPWR ---------------------------- VCC …

RaspberryPi 3 and UAVCAN

o. I’m using Orel 20 and studying Sapog. I want to use UAVCAN with Raspberry Pi 3. I already know that Raspberry Pi 3 supports CAN protocol. Then is it possible to use the UAVCAN with a Raspberry Pi 3 in the same way as protocol in Sapog firmware?…

Sapog esc flashing

Hello How could we flash the stm32 inside the sapog ESC? the command ./ [portname] (/dev/ttyUSB0 in my case) is not making any result…

Myxa vs Orel20 efficiency tests

Zubax Orel 20 is an advanced controller of sensorless BLDC motors designed for use in cost-sensitive applications. Zubax Orel 20 runs Sapog - an open source multiplatform BLDC controller firmware. Sapog has many special features to make the BLDC motor control more reliable and effective. But it is…

Sapog critical events

Hello, I have questions regarding motor stall events. Suppose we have a rotor stall for some reason. It raised several questions for me: Does autopilot (in this topic let’s consider ardupilot or px4) have function of detecting error_count messages, and log them? Since Sapog, in case of stall, needs…

Question about Open Loop control mode

Hi there, I’m a bit confused about Orel’s open loop control mode. Is this essentially a current control mode? I ask because I would like to use them with a controller that expects to send a torque command rather than a speed command to the motors–is it possible to use the Orels in this way?…