PPK2 reports implausible values & modifiers - how to recalibrate?

Hello,

My PPK2 is reporting 2 zetta amperes power usage, and I found out that the "modifiers" appear really broken:

Calibrated: 0
R0: 3095044895830869060112875520.0000
R1: 0.0000
R2: 0.0000
R3: 0.0000
R4: 0.0000
GS0: 0.0000
GS1: 138.3582
GS2: 21.5994
GS3: 3.0130
GS4: 0.0876
GI0: 1.0000
GI1: 0.9614
GI2: 0.9534
GI3: 0.9415
GI4: 0.9521
O0: 0.0000
O1: -2814926129201152.0000
O2: 0.0000
O3: -2251799813685248.0000
O4: 0.0000
VDD: 3300
HW: 54350
mode: 2
S0: -0.000000009
S1: -0.000000064
S2: -0.000000512
S3: -0.000004891
S4: 0.002447326
I0: 0.000000044
I1: 0.000000364
I2: 0.000061116
I3: -0.000254856
I4: -0.007713722
UG0: 1.00
UG1: 1.00
UG2: 1.00
UG3: 1.00
UG4: 1.00
IA: 58
END

I have attempted to re-flash the ppk2 firmware, but that had no effect.

This affects both measurement modes, but in source mode the correct voltage is still output.

Intercepting the modifiers before they are parsed and replacing them with some from a different PPK2 again results in plausible measurements.

This may be related to accidentally writing a binary image intended for a different device onto the PPK2 serial port, assuming there are serial commands to configure those values which do not verify plausibility and do not have a checksum.

Is it possible to re-calibrate the device, or will it have to be replaced?

Parents
  • Hello  , it seems I have the same issue. My PPK2 measures 8Amps for an GSM Module!?!

    Can you help me find my calibration values? My board is:

    PCA63100

    1.0.1

    2023.05

    C7041CFB

    With the ppk2-eeprom tool I read:

    uart:~$ cal_read
     r0 (  0):  1008.333435059, 57 15 7c 44
     r1 (  4):   102.810317993, e2 9e cd 42
     r2 (  8):    10.511246681, 11 2e 28 41
     r3 ( 12):     0.991615474, 83 da 7d 3f
     r4 ( 16):     0.057274152, 4d 98 6a 3d
    gs0 ( 20):   -12.828792572, bc 42 4d c1
    gs1 ( 24):   172.304412842, ee 4d 2c 43
    gs2 ( 28):    27.249513626, 01 ff d9 41
    gs3 ( 32):     3.797163963, bc 04 73 40
    gs4 ( 36):     0.111408480, 21 2a e4 3d
     o0 ( 40):   175.197158813, 79 32 2f 43
     o1 ( 44):   122.197860718, 4e 65 f4 42
     o2 ( 48):   104.669311523, b0 56 d1 42
     o3 ( 52):    79.983360291, 7b f7 9f 42
     o4 ( 56):   140.348037720, 19 59 0c 43
     s0 ( 60):    -0.000000000, 93 02 20 98
     s1 ( 64):    -0.000000000, 93 02 20 a8
     s2 ( 68): -147579511720466450000.000000000, 3c 01 00 e1
     s3 ( 72): -2251812967022592.000000000, 31 00 00 d9
     s4 ( 76):     0.000000000, 12 00 00 01
     i0 ( 80):     0.000000000, 00 00 00 10
     i1 ( 84):     0.000000000, 00 00 00 01
     i2 ( 88):    -0.000000000, 00 00 00 80
     i3 ( 92): -792331720006293700000000000000.000000000, 97 02 20 f1
     i4 ( 96):     7.999999523, ff ff ff 40
    gi0 (100):     1.001492977, ec 30 80 3f
    gi1 (104):     0.952994883, 79 f7 73 3f
    gi2 (108):     0.942453086, 9b 44 71 3f
    gi3 (112):     0.927007437, 5c 50 6d 3f
    gi4 (116):     0.938278556, 06 33 70 3f
    ug0 (128):     1.000000000, 00 00 80 3f
    ug1 (132):     1.000000000, 00 00 80 3f
    ug2 (136):     1.000000000, 00 00 80 3f
    ug3 (140):     1.000000000, 00 00 80 3f
    ug4 (144):     1.000000000, 00 00 80 3f

    Thank you

  • What GSM module is this exactly? What operating voltages does it support, how are you supplying it and measuring it? I need more information from your side before reporting this internally, as these calibration values don't seem outlandish to me.

    Best regards,

    Simon

Reply Children
  • Hello  and thank you for your reply.

    I did more tests to simplify the setup and I would like to share with you what I observe, and why I think there is something wrong here.

    I am using a board very similar to the Adafruit Feather S2. See here page 297

    https://cdn-learn.adafruit.com/downloads/pdf/adafruit-esp32-s2-feather.pdf

    I am running the below RGB Blink example:

    #define RGB_BUILTIN PIN_NEOPIXEL
    void setup() {
    // No need to initialize the RGB LED
    }

    // the loop function runs over and over again forever
    void loop() {
    neopixelWrite(RGB_BUILTIN,RGB_BRIGHTNESS,0,0); // Red
    delay(1000);
    neopixelWrite(RGB_BUILTIN,0,RGB_BRIGHTNESS,0); // Green
    delay(1000);
    neopixelWrite(RGB_BUILTIN,0,0,RGB_BRIGHTNESS); // Blue
    delay(1000);
    neopixelWrite(RGB_BUILTIN,0,0,0); // Off / black
    delay(1000);

    }

    And when I give 5V between VBUS and GND the current spikes up at 8A. The strange thing is that when I lower the supply voltage then the current goes to zero, which is also strange... With a USB tester I can see that the consumption is around 20-30mA for this setup.

    I noticed a similar issue in another thread but there is no resolution:

     nRF-PPK2 gives unreliable current readings 

    Thank you for the help with my ppk2

    Spiros

  • most of the s* and i* constant are definitely corrupted

     s0 ( 60):    -0.000000000, 93 02 20 98
     s1 ( 64):    -0.000000000, 93 02 20 a8
     s2 ( 68): -147579511720466450000.000000000, 3c 01 00 e1
     s3 ( 72): -2251812967022592.000000000, 31 00 00 d9
     s4 ( 76):     0.000000000, 12 00 00 01
     i0 ( 80):     0.000000000, 00 00 00 10
     i1 ( 84):     0.000000000, 00 00 00 01
     i2 ( 88):    -0.000000000, 00 00 00 80
     i3 ( 92): -792331720006293700000000000000.000000000, 97 02 20 f1 

    Anything that translates to 0 but is not "00 00 00 00" is likely messed up, and obviously those huge numbers are way out.

    And at 8 amps the PPK2 would be melting a hole through your desk. :-)

  • Hello @Simonr,

    Any update with my issue?

    I am stuck at the moment and I can't use my PPK2

    Thank you.

  • Hi

    Sorry for the late reply, I've been otherwise engaged the last few days, but I have now asked internally for access to the calibration data for your specific PPK2. I'll let you know as soon as I get them.

    Out of curiosity, what software have you used with the PPK2 to take these measurements? This doesn't seem like something our Power Profiler application would cause.

    Best regards,

    Simon

  • I got the calibration values almost straight away, here they are. Note that they're in a different format than what you get from the EEPROM tool used: 

    R: [1008.3334, 102.8103, 10.5112, 0.9916, 0.0573]
    GS: [0.0, 172.3044, 27.2495, 3.7972, 0.1114]
    o: [175.19716282894737, 122.19786235834067, 104.669313504667, 79.98335665332979, 140.34804167003148]
    s: [-9.7e-08, -8.42e-07, -8.243e-06, -9.6815e-05, 0.001204936]
    i: [2.78e-07, 2.242e-06, 9.8943e-05, -0.000108232, -0.005116542]
    GI: [1.0, 0.953, 0.9425, 0.927, 0.9383]

    Best regards,

    Simon

Related