Voltage Reading Not Working – Cube Orange+ + CUAV CAN PMU (works only with old PWM config)

Hello guys,

I’m really losing my mind over this one and could use some help figuring it out.

I’m using a Cube Orange+ flight controller with a CUAV CAN Power Module (PMU).


What’s happening

  • I followed the official setup instructions, but got no voltage reading at all (shows 0.0 V in Mission Planner).

  • Then, I got a working configuration file from a friend — and with that, voltage readings appeared correctly.

  • The problem is, that configuration uses PWM outputs for the ESCs, while I need DSHOT.

  • I switched everything over to DSHOT, and it worked briefly, but now — even though nothing was changed — the voltage reading stopped working again.

  • The current reading still works fine.


Setup details

  • Flight controller: Cube Orange+

  • Power module: CUAV CAN PMU

  • Firmware tested: ArduPilot (tested with 4.5.6 and 4.6.2)

  • Connection: Mission Planner connected via USB

  • Power source: regulated bench power supply


Files

I’ve attached both configuration files:

  • DshotConfigurationNoVoltage.

    ConfFiles.zip (11.0 KB)

    param → voltage reads 0.0 V

  • PWMConfWithVoltReading.param → voltage reads correctly


Additional info

  • The CUAV PMU shows up correctly in the CAN device list, so it’s definitely being detected.

  • I confirmed it’s powered properly, and the CAN status LED behaves normally.

  • I double-checked the BATT_MONITOR parameter and CAN node assignment.

  • The only difference I can see between the working and non-working configs is the output protocol (PWM vs DSHOT).


Question

Does anyone know why switching to DSHOT would cause the voltage reading (from the CUAV CAN PMU) to stop working — while the current reading still works fine?
Could this be related to CAN bus initialization timing, BATT_MONITOR configuration, or an interaction with SERVO_DSHOT_ESC / SERVO_BLH_AUTO?

Any help or insight would be really appreciated — I’ve been stuck on this for days.

Thanks!
Misha

Try setting BRD_BOOT_DELAY,3000 whenever using CAN devices. It’s not strictly necessary but cant hurt, and it’s OK to leave in place even when not using CAN.

In the DSHOT param file you’ve got NO servo functions set.

The Main outs (Servo1 - 8) dont do DSHOT unless you set BRD_IO_DSHOT,1 (which you have) but I think it’s limited to DSHOT300 and I’m unclear if it even works with Plane, maybe only tested with Copter. You could move your DSHOT outputs to Servo9 upwards and test with BRD_IO_DSHOT,0 to see if that makes a difference.

Thank you very much for the reply.
I have no servos because its a setup for a motor and prop testbench, so i need just a single Dshot output, and this part works just fine.

ill try the Delay

Yeah, by “servo” I mean anything that connects to the Main or Aux outputs like an ESC or servo.

1 Like