Hello, I am trying to get a PWM output from the PX4 IO module, but I am not receiving any output.
System Features:
- Holybro Pixhawk 6X
- PX4 Autopilot (1.15.4 version)
- Holybro M8N GPS
I have built my own board for PX4 6X. I checked the outputs, and ports like I2C, Telem, and GPS (partially working) are functioning, but the IO port is not working. So, I downloaded and built the PX4-Bootloader GitHub repository and flashed the board through the IO debug section (px4io_bl and px4iov3_bl). The LEDs started to light up, but I still cannot get a PWM output from the IO port. The IO LEDs are blinking as shown in the video below, and as far as I understand, there is an issue. In older versions, there was a parameter called ‘SYS_USE_IO’ that needed to be enabled. Right now, I cannot figure out what is wrong with the system. Thanks for your help.
Did I make a mistake while flashing the IO bootloader for PX4 6X? Is there a page that explains this process in detail? I followed the Bootloader Update page, but it is written for FMU.
Note: I am receiving GPS data, but the LED on the GPS module is not working
nsh> px4io status
INFO [px4io] not running
----------------------------------
nsh> px4io start
ERROR [px4io] Failed to communicate with IO, abort.
ERROR [px4io] Task start failed (-1)
dmesg | grep px4io
HW arch: PX4_FMU_V6X
HW type: V6X005003
HW version: 0x005
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: 000600000000343633363432510200390024
MCU: STM32H7[4|5]xxx, rev. V
INFO [param] selected parameter default file /fs/mtd_params
INFO [param] importing from '/fs/mtd_params'
INFO [parameters] BSON document size 1845 bytes, decoded 1845 bytes (INT32:56, FLOAT:33)
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/4001_quad_x
INFO [dataman] data manager file '/fs/microsd/dataman' size is 62560 bytes
WARN [px4io] check CRC failed: -1, CRC: 2663715002
WARN [px4io] IO refused to reboot
WARN [px4io] reboot failed - -1, still attempting upgrade
[PX4IO] using firmware from /etc/extras/px4_io-v2_default.bin
[PX4IO] bootloader not responding
WARN [px4io] IO refused to reboot
WARN [px4io] reboot failed - -1, still attempting upgrade
[PX4IO] using firmware from /etc/extras/px4_io-v2_default.bin
[PX4IO] bootloader not responding
ERROR [px4io] error updating PX4IO - check that bootloader mode is enabled
INFO [tune_control] Stopping playback...
ERROR [px4io] Failed to communicate with IO, abort.
ERROR [px4io] Task start failed (-1)
PX4IO start failed
Board sensors: /etc/init.d/rc.board_sensors
INFO [ina226] Failed to init INA226 on bus 1, but will try again periodically.
ina226 #0 on I2C bus 1 (external) address 0x41
bmi088_accel #0 on SPI bus 3 rotation 4
bmi088_gyro #0 on SPI bus 3 rotation 4
icm42688p #0 on SPI bus 2 rotation 6
icm42670p #0 on SPI bus 1 rotation 10
bmm150 #0 on I2C bus 4 (external) address 0x10
WARN [SPI_I2C] ist8310: no instance started (no device on bus?)
bmp388 #0 on I2C bus 4 (external) address 0x77
bmp388 #1 on I2C bus 2 (external) address 0x76
WARN [SPI_I2C] ms5611: no instance started (no device on bus?)
WARN [health_and_arming_checks] Preflight Fail: No valid data from Accel 0
WARN [health_and_arming_checks] Preflight Fail: barometer 0 missing
ekf2 [789:237]
Starting Main GPS on /dev/ttyS0
Starting MAVLink on /dev/ttyS6
INFO [mavlink] mode: Normal, data rate: 1200 B/s on /dev/ttyS6 @ 57600B
Starting MAVLink on /dev/ttyS4
INFO [mavlink] mode: Onboard, data rate: 46080 B/s on /dev/ttyS4 @ 921600B
Starting MAVLink on /dev/ttyS1
INFO [mavlink] mode: Normal, data rate: 100000 B/s on /dev/ttyS1 @ 57600B
Conflicting config for /dev/ttyS4
INFO [logger] logger started (mode=all)