Pixhawk 6x "System Power Unavailable"

Hey guys. I’m running a Pixhawk 6x on Px4. I’m running into a weird critical error “System Power Unavailable” that prevents me from arming. I’m not sure if this has anything to do with it but I am using an ADC to convert my analog power level sensor to a digital signal for the 6X. I can’t find any documentation about this error online, and only one instance where someone mentions how to bypass this check entirely. I’d rather not ignore an issue and figure out what’s causing it. Any ideas?

Here is a diff to make an analog power module work with Pixhawh 6X instead of the digital one:

Maybe that helps. I would use those changes on top of whatever version you use.

Then you need to make sure to calibrate the battery params such as the voltage divider.

Hey everyone!
We’re experiencing the same issue. Our setup includes a 6X and two external ADS1115 ADCs connected to POWER 1 and 2. We’re running on 12s, PX4 1.14 and the ADC_ADS1115_EN parameter enabled. We do have valid voltage and current readings on both channels. During booting we usually (>75%) get the “System Power unavailable” message.
Help would be greatly appreciated.

Kind regards,

Heiko

Console output:

HW arch: PX4_FMU_V6X
HW type: V6X000003
HW version: 0x000
HW revision: 0x003
PX4 git-hash: b8c541dd7277ed735139d7d1bfb829d61fbe29fb
PX4 version: Release 1.14.0 (17694975)
OS: NuttX
OS version: Release 11.0.0 (184549631)
OS git-hash: de41e7feaeffaec3ce65327e9569e8fdb553ca3d
Build datetime: Oct 19 2023 16:24:32
Build uri: localhost
Build variant: default
Toolchain: GNU GCC, 9.3.1 20200408 (release)
PX4GUID: 000600000000363339383137511300090017
MCU: STM32H7[4|5]xxx, rev. Y
INFO  [param] selected parameter default file /fs/mtd_params
INFO  [param] importing from '/fs/mtd_params'
INFO  [parameters] BSON document size 4559 bytes, decoded 4559 bytes (INT32:90, FLOAT:130)
INFO  [param] selected parameter backup file /fs/microsd/parameters_backup.bson
Board architecture defaults: /etc/init.d/rc.board_arch_defaults
Board defaults: /etc/init.d/rc.board_defaults
Loading airframe: /etc/init.d/airframes/12001_octo_cox
INFO  [dataman] data manager file '/fs/microsd/dataman' size is 62560 bytes
rgbled_ncp5623c #0 on I2C bus 1 (external) address 0x39
INFO  [px4io] IO FW CRC match
Board sensors: /etc/init.d/rc.board_sensors
ads1115 #0 on I2C bus 1 (external) address 0x48
bmi088_accel #0 on SPI bus 3 rotation 4
bmi088_gyro #0 on SPI bus 3 rotation 4
INFO  [ads1115] ADS1115: reported ready
icm42688p #0 on SPI bus 2 rotation 6
ERROR [ads1115] ADS1115: not ready. Device lost?
icm42670p #0 on SPI bus 1 rotation 10
INFO  [ads1115] ADS1115: reported ready
bmm150 #0 on I2C bus 4 (external) address 0x10
ERROR [ads1115] ADS1115: not ready. Device lost?
ist8310 #0 on I2C bus 1 (external) address 0xE rotation 10
INFO  [ads1115] ADS1115: reported ready
bmp388 #0 on I2C bus 4 (external) address 0x77
ERROR [ads1115] ADS1115: not ready. Device lost?
INFO  [ads1115] ADS1115: reported ready
bmp388 #1 on I2C bus 2 (external) address 0x76
ERROR [ads1115] ADS1115: not ready. Device lost?
INFO  [ads1115] ADS1115: reported ready
ERROR [ads1115] ADS1115: not ready. Device lost?
WARN  [SPI_I2C] ms5611: no instance started (no device on bus?)
INFO  [ads1115] ADS1115: reported ready
ERROR [ads1115] ADS1115: not ready. Device lost?
WARN  [SPI_I2C] Already running on bus 1
INFO  [ads1115] ADS1115: reported ready
ekf2 [782:237]
Starting MAVLink on /dev/ttyS6
INFO  [mavlink] mode: Normal, data rate: 1200 B/s on /dev/ttyS6 @ 57600B
Starting MAVLink on /dev/ttyS1
INFO  [mavlink] mode: Normal, data rate: 100000 B/s on /dev/ttyS1 @ 57600B
INFO  [rc_input] valid device required
ERROR [rc_input] Task start failed (-1)
INFO  [logger] logger started (mode=all)
INFO  [logger] Start file log (type: full)
INFO  [uavcan] Node ID 1, bitrate 1000000

NuttShell (NSH) NuttX-11.0.0
nsh> e[KWARN  [health_and_arming_checks] Preflight Fail: system power unavailable
INFO  [logger] [logger] /fs/microsd/log/sess104/log100.ulg	
INFO  [logger] Opened full log file: /fs/microsd/log/sess104/log100.ulg
INFO  [vehicle_magnetometer] MAG switch from #0 -> #1

Mavlink console output:

nsh: sysinit: fopen failed: No such file or directory

NuttShell (NSH) NuttX-11.0.0
nsh> ads1115 status
INFO  [SPI_I2C] Running on I2C Bus 1, Address 0x48
ads1115: single-sample: 2441 events, 4201938us elapsed, 1721.40us avg, min 1703us max 1852us 1664.237us rms
INFO  [SPI_I2C] Running on I2C Bus 2, Address 0x48
ads1115: single-sample: 2442 events, 4154714us elapsed, 1701.36us avg, min 1682us max 1819us 1659.885us rms
nsh> listener adc_report

TOPIC: adc_report
 adc_report
    timestamp: 49304100 (0.019352 seconds ago)
    device_id: 9455625 (Type: 0x90, I2C:1 (0x48))
    raw_data: [16437, 3462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    resolution: 32768
    v_ref: 6.14400
    channel_id: [0, 1, 2, 3, -1, -1, -1, -1, -1, -1, -1, -1]

nsh> listener adc_report

TOPIC: adc_report
 adc_report
    timestamp: 50585217 (0.003269 seconds ago)
    device_id: 9455633 (Type: 0x90, I2C:2 (0x48))
    raw_data: [16434, 3463, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
    resolution: 32768
    v_ref: 6.14400
    channel_id: [0, 1, 2, 3, -1, -1, -1, -1, -1, -1, -1, -1]

nsh> 

image

Hello, How can display two battery information like yours? i also use ads1115 to display battery information from two 6S batteries with mauch-electronic sensor. Thank you very much