Power Module sensor reading

Hello there.

I successfully use the Power Module (PWR101) to power the NAVIO+. I am also able to read values of A0-A3.

How should I interpret that readings? What are A0-A3 actually measuring?

With APM I set A0= voltage and A2= current but I am not confidendt.



Simply press on the Pixhawk Power Module 90A in APM Planner to setup voltage and current measurement for APM:

I’ve just got my Navio+ and got it up and running have successfully connected it to APM Planner (and Mission Planner). But I am not getting any voltage or current readings from the power module. I’ve tried the settings you mention, but values are all 0. I am powering the Navio+ from the power module. (I’ve tried various other settings as well, with no success). I’m using a 3s Lipo.

All other features seems to work fine. Radio, IMU, GPS, Compass etc.

Are there any special steps needed to activate it?

Battery monitor functionality was added recently and it looks like sometimes adc failes to initialize. I have downloaded binaries on a clean SD image and was able to reproduce this issue. However after I set it up for the first time with these parameters :


and restarted ArduCopter the issue was gone and I saw voltage and current values. I will test it further and we will investigate why it fails.

I have just checked again and here is how to do it until we come up with a fix:

Download and make executable:

wget emlid.com/files/APM/NavioRaw/ArduCopter.elf
sudo chmod +x ArduCopter.elf

Run with GCS IP:

sudo ./ArduCopter.elf -A udp:

Connect to GCS and press on Pixhawk 90A power module icon as shown above. After that you can check in full parameter list that:


CTRL+C to kill ArduCopter and run again using:

sudo ./ArduCopter.elf -A udp:

You should see voltage and current values. After that it works everytime.

1 Like

That worked. Great!
Thanks for the fast support

If anyone struggles with the same problem and craves for an explanation, there is one, actually.

BattMonitor's initialization in APM is based on start-up parameters. By default, BattMonitor is disabled:


That’s why no BattMonitor's backend gets created. After a power module has been selected, the above-mentioned parameter is updated and next start-up works smoothly.

We’ll look into the problem more closely. Maybe we can just call BattMonitor::init()