Reading Encoder over I2C on Navigator

Hi Everyone,

I’m using a Pi4 + Navigator flight controller on a UAV. I’ve connected a AS5600 Encoder to one of the Navigator I2C ports, trying to read motor RPM over I2C. (I’ve tested the I2C communications and it works with an Arduino).

Is there a parameter I can look at in Q-Ground-Control or Mission Planner that corresponds to the Navigators I2C ports?

While researching this, some people have suggested adding to the arducopter firmware code, maybe in the sensors.cpp code to handle this I2C encoder sensor. I am hoping there is an easier way than having to edit the firmware code.


Hi @north ,

What exactly are you trying to accomplish? are you trying to read RPM from one of the thrusters?
From an external actuator?

Some ESCs support i2c and provide current voltage, rpm and others as telemetry.

Hi @williangalvani,

I’m trying to read RPM data from the drones brushless DC motor. The encoder is mounted below the motor, and a magnet is mounted on the rotor. RPM data is then being sent over I2C to the Navigator.

The ESC I’m using does provide telemetry (Aikon 32-bit 35A ESC).
I didn’t realize this was an option.

Do I just connect the ESC telemetry pin to a Serial port on the Navigator? And do I need to update the ESCs firmware to enable RPM output? I’ll look into the ESCs documentation.


I haven’t really tried it myself yet. But here are some instructions for copter here: BLHeli32 and BLHeli_S ESCs — Copter documentation

They should work for sub, too. Let us know how it goes!

1 Like