# Read current and voltage from PSM 2

Hi, our PSM2 is not working right in QGC. So I am testing in arduino to see the value.

I connect pin 3(current), 4(voltage), and 5 (ground) to arduino zero. Input directly from bluerov battery, output directly to bluerov led. The Arduino Zero operation voltage is 3.3v.

``````#include <Servo.h>

Servo led;

void setup() {
Serial.begin(9600);
led.attach(9);
}

void loop() {

led.write(60);

float voltage = voltageValue * (3.3/ 1024.0)* 11.0;
float current = (currentValue * (3.3/1024)-0.33)*38.8788;

//print out the value you read:
Serial.print("voltage: ");
Serial.print(voltage);
Serial.print(", current: ");
Serial.println(current);

delay(1000);
}
``````

Output is:

voltage: 1.74, current: -9.20
voltage: 1.77, current: -9.20
voltage: 1.74, current: -9.07
voltage: 1.70, current: -9.20
voltage: 1.74, current: -9.20

voltage: 49.00, current: 31.00
voltage: 50.00, current: 31.00
voltage: 50.00, current: 31.00
voltage: 50.00, current: 31.00
voltage: 49.00, current: 31.00

Any suggestions? Thanks for the help.

Hi @linzhao,

Whatâ€™s it doing? Is it not connecting, or giving incorrect readings or something? If youâ€™ve got a multimeter you can follow the QGC power setup instructions to calibrate the sensor if youâ€™re getting different results to what you expect you should.

What voltage are you actually providing to the power sense module? Iâ€™m unfortunately not familiar with how ArduSub calculates the power sense results, but based on the numbers in the Power Sense Module product page your maths seems reasonable (except the current multiplier should be `37.8788` rather than the `38.8788` that youâ€™ve got - Iâ€™m unsure if thatâ€™s something youâ€™ve measured and changed or just a typo).

Any chance youâ€™ve changed analogReadResolution, or are using a non-default analogReference? If youâ€™re using a 7-bit ADC resolution on both pins (128 samples instead of 1024) with a 3.3V reference then youâ€™d be using 14.46V, with a current of 17.77A (if you werenâ€™t using a thruster while measuring thatâ€™s likely too high).

Hi @EliotBR , thanks for your reply. The PSM2 issue in QGC is wrong reading. I tried calibrate the sensors. But the reading will keep the same when we are using the battery. Thatâ€™s why we put the PSM out to directly connect to arduino just for test.

I also double check the 10-bit ADC and 3.3v reference voltage by

``````  analogReadResolution(10);
analogReference(AR_DEFAULT);
``````

But result is same. I will order new PSM for another test.

1 Like

Fair enough. If you bought the PSM2 from us Iâ€™d suggest you contact support@bluerobotics.com and mention this forum thread. Itâ€™s good for our quality management, and if the product arrived defective or something then they should be happy to replace it for you