Skip to content

feat(boards/agam-robotics): add Agam Robotics FMU-v6XRT board support - #28285

Open
abhijithcv wants to merge 7 commits into
PX4:mainfrom
agam-robotics:pr-agam-v6xrt-target
Open

feat(boards/agam-robotics): add Agam Robotics FMU-v6XRT board support#28285
abhijithcv wants to merge 7 commits into
PX4:mainfrom
agam-robotics:pr-agam-v6xrt-target

Conversation

@abhijithcv

@abhijithcv abhijithcv commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Adds boards/agam-robotics/fmu-v6xrt, Agam Robotics' own build target for the Agam Autopilot v6X-RT — electrically and mechanically identical to the NXP v6X-RT reference design (same as boards/px4/fmu-v6xrt), differing only in enclosure. Per the Manufacturer's PX4 Board Support Guide, manufacturers of the v6X-RT reference design should maintain their own target even when starting electrically identical to it, since it keeps board identity (board ID, USB VID/PID) under manufacturer control and gives a stable place to diverge the sensor set later (which we plan to do soon for sensor availability reasons; so our own target will be useful).

Only identity fields changed from the stock target (USB strings, HW_INFO_INIT_PREFIX/ver hwtypecmp from V6XRT to AGAMV6XRT, firmware.prototype board_id/magic/summary, path comments/include guards) — no pin/GPIO/sensor changes.

Board documentation: https://github.com/agam-robotics/PX4-Autopilot/blob/pr-agam-v6xrt-target/docs/en/flight_controller/agam_v6xrt.md

Board ID / USB identity — complete:

Flight log: https://review.px4.io/plot_app?log=2aacada6-4c48-4942-820d-44dcf369b8af

Flown on the stock px4_fmu-v6xrt build rather than this target's own build — the hardware is electrically identical (this target is a byte-for-byte fork of boards/px4/fmu-v6xrt with only identity strings changed), so the flight validates the physical board.

@github-actions github-actions Bot added kind:feature Request or change that adds new functionality. scope:build-system CMake, Kconfig, board config, or build tooling. scope:boards Board-specific changes or hardware definitions. labels Aug 19, 2026
Comment thread boards/agam-robotics/fmu-v6xrt/src/imxrt_flexspi_nor_boot.h Outdated
#endif

#ifndef BOOT_DEVICES_SELECTION
# define BOOT_DEVICES_SELECTION USB0_DEV|SERIAL0_DEV|SERIAL1_DEV

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[error] bugprone-macro-parentheses [error]
macro replacement list should be enclosed in parentheses

Suggested change
# define BOOT_DEVICES_SELECTION USB0_DEV|SERIAL0_DEV|SERIAL1_DEV
# define BOOT_DEVICES_SELECTION (USB0_DEV|SERIAL0_DEV|SERIAL1_DEV)

Comment thread boards/agam-robotics/fmu-v6xrt/src/hw_config.h Outdated
#endif

#ifndef BOOT_DEVICES_SELECTION
# define BOOT_DEVICES_SELECTION USB0_DEV|SERIAL0_DEV|SERIAL1_DEV

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[error] bugprone-macro-parentheses [error]
macro replacement list should be enclosed in parentheses

Suggested change
# define BOOT_DEVICES_SELECTION USB0_DEV|SERIAL0_DEV|SERIAL1_DEV
# define BOOT_DEVICES_SELECTION (USB0_DEV|SERIAL0_DEV|SERIAL1_DEV)

#endif

#ifndef BOOT_DEVICES_SELECTION
# define BOOT_DEVICES_SELECTION USB0_DEV|SERIAL0_DEV|SERIAL1_DEV

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[error] bugprone-macro-parentheses [error]
macro replacement list should be enclosed in parentheses

Suggested change
# define BOOT_DEVICES_SELECTION USB0_DEV|SERIAL0_DEV|SERIAL1_DEV
# define BOOT_DEVICES_SELECTION (USB0_DEV|SERIAL0_DEV|SERIAL1_DEV)

#endif

#ifndef BOOT_DEVICES_FILTER_ONUSB
# define BOOT_DEVICES_FILTER_ONUSB USB0_DEV|SERIAL0_DEV|SERIAL1_DEV

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[error] bugprone-macro-parentheses [error]
macro replacement list should be enclosed in parentheses

Suggested change
# define BOOT_DEVICES_FILTER_ONUSB USB0_DEV|SERIAL0_DEV|SERIAL1_DEV
# define BOOT_DEVICES_FILTER_ONUSB (USB0_DEV|SERIAL0_DEV|SERIAL1_DEV)

@github-actions

github-actions Bot commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

🔎 FLASH Analysis

px4_fmu-v5x [Total VM Diff: 0 byte (0 %)]
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%     +55  [ = ]       0    .debug_abbrev
  -0.0%      -2  [ = ]       0    .debug_info
  -0.0%      -5  [ = ]       0    .debug_line
     +40%      +2  [ = ]       0    [Unmapped]
    -0.0%      -7  [ = ]       0    [section .debug_line]
  +0.0%     +48  [ = ]       0    TOTAL

px4_fmu-v6x [Total VM Diff: 0 byte (0 %)]
    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%     +55  [ = ]       0    .debug_abbrev
  -0.0%      -2  [ = ]       0    .debug_info
  -0.0%      -5  [ = ]       0    .debug_line
    [NEW]      +2  [ = ]       0    [Unmapped]
    -0.0%      -7  [ = ]       0    [section .debug_line]
  +0.0%     +48  [ = ]       0    TOTAL

Updated: 2026-08-22T16:39:21

@farhangnaderi

farhangnaderi commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

I should be able to review this some time next couple days. Ping me if it doesnt happen.

@farhangnaderi
farhangnaderi self-requested a review August 19, 2026 16:41
@hamishwillee

Copy link
Copy Markdown
Contributor

This should have docs. IF it is a pixhawk standard board they could be modeled on https://docs.px4.io/main/en/flight_controller/pixhawk6x-rt. If it is manufacturer supported (i..e not perfectly compatible) then see that section of the docs.

abhijithcv and others added 6 commits August 20, 2026 12:11
Adds boards/agam-robotics/fmu-v6xrt, Agam Robotics' own build target
for the Agam Autopilot v6X-RT — electrically and mechanically
identical to the NXP v6X-RT reference design (same as
boards/px4/fmu-v6xrt), differing only in enclosure. Per the
Manufacturer's PX4 Board Support Guide, manufacturers of the v6X-RT
reference design should maintain their own target even when starting
electrically identical to it, since it keeps board identity (board
ID, USB VID/PID) under manufacturer control and gives a stable place
to diverge the sensor set later (which we plan to do soon for sensor
availability reasons; so our own target will be useful).

Only identity fields changed from the stock target (USB strings,
HW_INFO_INIT_PREFIX/ver hwtypecmp from V6XRT to AGAMV6XRT,
firmware.prototype board_id/magic/summary, path comments/include
guards) — no pin/GPIO/sensor changes.

Board ID / USB identity — in progress, coordinating with maintainers:
- board_id: 1949, matching AP_HW_AGAM_v6XRT in
  ArduPilot/ardupilot#34114 (approved) and PX4/PX4-Bootloader#280
  (open)
- USB PID 0x0002 under the Dronecode VID 0x3643:
  Dronecode/usb-ids#2 (open)

Flight log: https://review.px4.io/plot_app?log=2aacada6-4c48-4942-820d-44dcf369b8af

Flown on the stock px4_fmu-v6xrt build rather than this target's own
build — the hardware is electrically identical (this target is a
byte-for-byte fork of boards/px4/fmu-v6xrt with only identity strings
changed), so the flight validates the physical board.

Signed-off-by: abhijithcv <abhijithcv1212@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…arens (bugprone-macro-parentheses)

Signed-off-by: abhijithcv <abhijithcv1212@gmail.com>
…efault

Signed-off-by: abhijithcv <abhijithcv1212@gmail.com>
…entation

Flight controller product page, manufacturer-supported tier.

Magnetometer listed as BMM150/BMM350 per rc.board_sensors (source
material had a nonexistent part number).

Signed-off-by: abhijithcv <abhijithcv1212@gmail.com>
@abhijithcv
abhijithcv force-pushed the pr-agam-v6xrt-target branch from b8a65ca to 49d332f Compare August 20, 2026 06:42
@github-actions

Copy link
Copy Markdown
Contributor

No broken links found in changed files.

@abhijithcv

Copy link
Copy Markdown
Contributor Author

This should have docs. IF it is a pixhawk standard board they could be modeled on https://docs.px4.io/main/en/flight_controller/pixhawk6x-rt. If it is manufacturer supported (i..e not perfectly compatible) then see that section of the docs.

Docs have been added @hamishwillee

@abhijithcv

Copy link
Copy Markdown
Contributor Author

Hi @farhangnaderi, sorry to bother but did you get time to review this?

Comment on lines +82 to +106
if ver hwtypecmp AGAMV6XRT000 AGAMV6XRT001
then
# Internal SPI bus ICM42686p (hard-mounted)
icm42688p -6 -R 12 -b 1 -s start

# Internal on IMU SPI BMI088
bmi088 -A -R 4 -s start
bmi088 -G -R 4 -s start

# Internal on IMU SPI bus ICM42688p
icm42688p -R 6 -b 2 -s start
fi

if ver hwtypecmp AGAMV6XRT002
then
# Internal SPI bus icm45686 (hard-mounted)
icm45686 -R 12 -b 1 -s start

# Internal on IMU SPI BMI088
bmi088 -A -R 4 -s start
bmi088 -G -R 4 -s start

# Internal on IMU SPI bus icm45686
icm45686 -R 6 -b 2 -s start
fi

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are all these sensor types mentioned in the docs?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind:feature Request or change that adds new functionality. scope:boards Board-specific changes or hardware definitions. scope:build-system CMake, Kconfig, board config, or build tooling. scope:docs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants