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 in Betaflight ESC Telemetry
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, is not taken into account.
Betaflight ESC telemetry is also very limited in terms of what you can display in the OSD at the moment (Nov 2017).
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.
As far as I know, BF will allow more data to be displayed (hopefully match what the KISS OSD can do) in Betaflight 3.3.
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.
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.
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.