ESC telemetry allows you to monitor the temperature of ESC, and the RPM of the motors. You can also monitor current usage without having a dedicated current sensor on the FC or PDB (real-time current draw and mAh consumed)
In this guide I will show you how to set up ESC Telemetry in Betaflight to be displayed on OSD.
Limitation of ESC Telemetry
ESC Telemetry is a cool feature, but most people probably find it not that useful. Let me explain why.
ESC Telemetry can report RPM of the motors to the flight controller (how fast the motors are spinning). This information is useful for RPM filter in Betaflight. However bi-directional DShot already does it, and does it better because it’s much faster. RPM reporting from ESC telemetry is just too slow for RPM filter.
Current sensors built into flight controllers and PDB are usually placed right after the XT60 connector, so all current usage can be recorded. ESC telemetry can possibly replace the FC/PDB current sensor, but it’s not the most accurate because they only monitor current usage by the motors. Anything else such as FPV gear, radio receiver etc, are not taken into account.
Betaflight ESC telemetry is also very limited in terms of what you can display in the OSD at the moment (2021).
The featured image on the top of the article, which shows RPM, temperature and current draw of each individual motor, is from my KISS quad running KISS FC and KISS ESC’s. I found this setup to be really useful for analysing the performance of my quad and the motors.
On the other hand, in Betaflight, all you can show on the OSD are the temperature of the hottest ESC’s and the averaged RPM of all motors. And really… it’s not that useful to know the temperature of the ESC.
That’s why I don’t personally normally setup ESC telemetry in my drones. But if you still wanna go ahead and do it, here is how.
Requirement
Hardware and Firmware
- BLHeli32 ESC that has ESC telemetry pad (TX) and flashed with the latest firmware, ESC’s that I have tested this feature on:
- F3, F4 or F7 Flight Controller running Betaflight 3.1.0 firmware or newer, with 1 spare UART
- Betaflight Configurator (Chrome App) version 1.8.5 or newer
Further reading:
How to setup ESC Telemetry in Betaflight OSD
Simply connect all the TX pins (telemetry pads) on the ESC’s to the same RX pin of a spare hardware UART on the flight controller. The FC will be able to read the data from ESC’s one by one.
For 32-bit 4in1 ESC that supports ESC Telemetry, there should be only 1 TX pin. You only need to connect this TX pin to a spare RX pin on the FC.
First of all, open Betaflight Configurator, and in Ports Tab, find the UART that is used for ESC telemetry, under Sensor Input, select “ESC” in the drop-down list. Click “Save” button.
In the Configuration Tab, enable feature “ESC_Sensor“.
You can now use your ESC for voltage and current monitoring in the “Power & Battery” tab by selecting “ESC Sensor”
Important: You also have to set DShot as the ESC protocol (DShot150, DShot300, DShot600 or DShot1200) in order to get ESC Telemetry to work.
Important: If you are not getting any current (amp draw stays 0) when setting the source to ESC sensor, it’s possible that the 4in1 ESC does not support it. For this to work, the 4in1 ESC has to have four shunt resistors (one per ESC). If you can only see one near the power pad, that means it only works with “Onboard ADC” as current meter source, and you need to connect the “Curr” pad on the ESC to the FC.
Further Reading: what is DShot?
You can now display your ESC telemetry data on Betaflight OSD.
Under the OSD tab, you can enable “ESC Temperature” (highest value) and “ESC RPM” (average of all motors).
Further Reading: How to setup and use Betaflight OSD?
To verify if it’s working, simply power on your quad, put on your goggles and arm the quad to see if the RPM number is changing when you move your throttle stick. (Make sure to remove propellers when doing this!)
Make sure to check the accuracy of the voltage and current reading from ESC telemetry, you might need to calibrate them by adjusting the scale values. (default usually should work fine)
Further Reading: How to calibrate current sensor?
That’s it! I will keep this guide updated.
29 comments
Hello, i have a escs with telemetry pads and i was wondering if the rpm and current can be recorded as data in a file?
i think this can be recorded in blackbox log.
Hi Oscar.
Does this work only with betaflight or also with arduplane?
Thank you,
Niels
I have a TBS digital current sensor .Can I set it up on a spare UART RX?
What about the DYS Aria 35A in combination with the MATEK F405 CTR? Both have dedicated pads for ESC telemetry. Is it possible to write something about that?
Hi Oscar
I just got the Tekko32 4-in-1 METAL 65A ESC. I already used the 35A Tekko32 4-in-1 on my previous build and assumed it would be the same.
I read Tekko32’s description for the Metal 65A: “The 4in1 has onboard analog current sensor, and TLM function(then no current reading over TLM)”.
What does this mean?
When I tried to go into the current sensor calibration in BLheli32 V 32.6, it seems the place where you used to be able to calibrate the current (like with my Tekko32 build on BLHeli32 V32.4) is now gone. Or am I doing something wrong?
Basically, could you do a blog on telemetry on the new Tekko32 Metal 65A?
Thanks!
Hi,
I have a Holybro Kakute F& AIO and a 4in1 ESC and connected the Telemetry from the ESC to the Telemetry pad on the Flight Controller. I am not reading any data V or A after following this and setting to DSHOT1200
Am I missing something here?
Same with kakute f4 and tekko 32… still searching…
I manged to get the voltage reading working and confirm the esc senor is selected. But not able to get current. There is a current wire from my esc but isn’t Telemetry supposed to report this to betaflight?
Please join IntoFPV.com for troubleshooting, thanks!
I have a matek f722 board and connected my aria 35a esc as per ur diagram but I can’t see the rpm changes in my osd… what am I doing wrong?
Hi, is it possible to have both ESC telemetry and Smartaudio on SAME UART?
I’m using Airbot Omnibus F4v5 Nano, using UART3 (ESCTLM: RX, SA: TX)…
I’m sure I have both correctly configured, both work OK separately, but if I enable both, all ports settings are reset after reboot…
Any ideas?
You can do it on the same physical UART pads by using softserial to move one of the two to a different UART.
Yes, you can set that UART’s TX to softserial, and use the RX pin for ESC telemetry.
You can’t use two different features on the same uhart.
Hi,
It would great if someone can shed some light on how to log or count RPM / TTL signals with a F3 or F7 flight controller. Thanks!
Hi,
I enjoyed your article. As a project I have added an external motor rpm sensor which puts out TTL signal. What channel(s) would you suggest to use to log the rpm with an ANY F7 board? Thank you so much for your assistance.
On the betaflight F4 board that you are using in the picture, why are you wiring the ESCs to an open UART when there are dedicated esc telemetry pads on the other side of the board?
You can use the dedicated telemetry pads, or any spare UART on the FC. I am using an open UART as an example.
How does this connect when using 4in1 ESC ?
Hello,
howto get esc current sensor Calibration? i have no scale option in BF or Blhelisuite. And the Current value is totally wrong.
I think it’s now possible to calibrate, it’s in the latest BLHeliSuite_32 configurator.
I just purchased the DALRC Engine 40amp 4 in 1 ESC. It has a ‘Current Sensor” wire on it, is this the same as ‘esc telemetry’? Have you tested this ESC yet?
I would also like to know the answer to this.
How do you calibrate ESC telemetry voltage/amps? Or is it not an option yet?
As far as I’m aware, it’s not possible to calibrate the esc voltage or current in betaflight is it?
You can in the new beta version 3.2.31-/+ 1% increments.
where are the scale values
In the “Power & Battery” Tab.