[BACKPORT v1.13] Add Holybro Pixhawk Pi CM4 Baseboard Support
Backport of #20086.
We should do a quick check on all these new boards before tagging v1.13.1.
Tested on Pixhawk 6x on CM4 baseboard:
ver all
HW arch: PX4_FMU_V6X
HW type: V6X004004
HW version: 0x004
HW revision: 0x004
FW git-hash: b8fb5dfa517874e193db847854c021bc98381707
3 gyros, 3 accel, 1 mag, 2 baros working
@davids5 thanks for the review. I have followed your suggestions and added two commits. Note that this is the backport to v1.13, so I have to forwardport :smile: them back to main.
@julianoes tested on V6 RC01 HW
sercon: Successfully registered the CDC/ACM serial driver
HW arch: PX4_FMU_V6X
HW type: V6X00
HW version: 0x00000000
HW revision: 0x00000000
FW git-hash: 4ca31bb64ed189863786cc83c53080aaee13f065
FW version: 1.13.0 0 (17629184)
FW git-branch: pr-backport-20086
OS: NuttX
OS version: Release 10.4.0 (168034559)
OS git-hash: 91bece51afbe7da9db12e3695cdbb4f4bba4bc83
Build datetime: Sep 14 2022 11:17:06
Build uri: localhost
Build variant: default
Toolchain: GNU GCC, 9.3.1 20200408 (release)
PX4GUID: 00060000000035313536343751050023002a
MCU: STM32H7[4|5]xxx, rev. Y
[hardfault_log] Fault Log is Armed
INFO [param] selected parameter default file /fs/mtd_params
INFO [param] importing from '/fs/mtd_params'
INFO [parameters] BSON document size 1651 bytes, decoded 1651 bytes (INT32:27, FLOAT:51)
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
INFO [dataman] data manager file '/fs/microsd/dataman' size is 62560 bytes
rgbled #0 on I2C bus 1 (external) address 0x55
Loading airframe: /etc/init.d/airframes/4015_holybro_s500
INFO [uavcan] Node ID 1, bitrate 1000000
INFO [px4io] IO FW CRC match
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
INFO [ina226] Failed to init INA226 on bus 2, but will try again periodically.
ina226 #1 on I2C bus 2 (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
icm20649 #0 on SPI bus 1 rotation 14
bmm150 #0 on I2C bus 4 address 0x10
ist8310 #0 on I2C bus 1 (external) address 0xE rotation 10
bmp388 #0 on I2C bus 4 address 0x77
bmp388 #1 on I2C bus 4 address 0x76
Is there a shared table for the ver and rev for v6x somewhere? For v5x I also struggle to find that every time, I feel like this should be somehow in a more visible place. I started maintaining my own for v5x... (which is dumb, I have to admit) ------------ v5x ---------- VER = BASE [resistors] 0x0000 -> V5x base board [resistors] 0x0001 -> v5x base without px4io [resistors] 0x0002 -> Modal AI [resistors] 0x0003 -> NXP T1 PHY [resistors] 0x0004 -> HB CM4 [resistors] 0x0005 -> [resistors] 0x0006 -> [resistors] 0x0007 -> Use EEPROM [resistors] 0x0008 -> USB (skynode QS) [resistors] 0x0009 -> Skynode base RC9 & older (no usb) [resistors] 0x000a -> No USB Skynode QS [ EEPROM ] 0x0010 -> Skynode RC11 & up
REV = FMUM 0x0000 -> FMUv5x RC13 (baro on I2C4) 0x0001 -> FMUv5x RC15 (baro on I2C2) 0x0007 -> FMUv5x wild card (scan sensors)
------------- v6x ------------------ TBD
@nicovanduijn should we have some shared Google sheet for that?
I think it's on these sheet at the moment, but it's not very visible and updated.
https://docs.google.com/spreadsheets/d/192yS1ewajvsgp90g_rVM3QiBnM678sPVkYVWaQhRWBQ/edit#gid=306908149 https://docs.google.com/spreadsheets/d/1Su7u8PHp-Y1AlLGVuH_I8ewkEEXt_bHHYBHglRuVH7E/edit#gid=306908149
It is the HW REV and VER ID tab on the pinouts.
V5X:

V6X:

@mrpollo - Would you please share the link to the 5x and 6X pinout with comment access
What's the overall state here? This is a lot of discussion for a simple cherry-picked backport.
@dagar agreed. @davids5 did a thorough review and added a couple of items that I've now addressed, but need to forward port again.
@dagar @julianoes - forward port is merged, let's get this in followed by a rebase of https://github.com/PX4/PX4-Autopilot/pull/19819
Thanks @davids5, I'm just checking CI again.
@julianoes is this ready to come in now or was there any more you wanted to add?
@davids5 ok thanks. @vincentpoont2 just tested this on V5X mini as well which was missing until I added the last commit.
I'm merging this now, and then forward porting the commits required for main. Edit: nevermind, everything seems to be in main already.