Skip to content

Comments

cubered: add CubeRed platform and secondary MCU update flow#26534

Draft
HTRamsey wants to merge 2 commits intoPX4:mainfrom
HTRamsey:cubered-secondary-mcu-flow
Draft

cubered: add CubeRed platform and secondary MCU update flow#26534
HTRamsey wants to merge 2 commits intoPX4:mainfrom
HTRamsey:cubered-secondary-mcu-flow

Conversation

@HTRamsey
Copy link
Contributor

Summary

This PR adds CubeRed support and an explicit secondary-MCU update flow in two commits:

  1. cubered: add board support and secondary packaging pipeline
  • Adds boards/cubepilot/cubered/* board bringup/config.
  • Adds CubeRed bootloader binary to bootloaders_update.
  • Adds Tools/build_cubered_secondary_from_ardupilot.py for optional secondary artifact generation.
  • Adds secondary package generation wiring in NuttX CMake.
  1. bootloader/uploader: add secondary MCU update flow
  • Adds bootloader SERIAL_FORWARD support and secondary UART path for host<->secondary passthrough.
  • Adds uploader update modes (primary|secondary|both|auto) and dual-image upload orchestration.
  • Adds runtime secondary update hooks (SYS_SEC_UPDATE, rc.board_secondary_upgrade, rcS integration).
  • Adds uploader unit tests and Python CI coverage.

Notes

  • Secondary flow is explicit and can be disabled by default via CMake switch.
  • Default upload path remains primary-only unless secondary mode/targets are selected.

Test

  • python3 -m unittest discover -s test -p 'test_px4_uploader.py'

@HTRamsey HTRamsey force-pushed the cubered-secondary-mcu-flow branch from b063e73 to 4defd5a Compare February 19, 2026 13:47
@dirksavage88
Copy link
Contributor

@julianoes any idea on how to get the firmware on the io processor for this cube?

# define BOARD_INTERFACE_CONFIG_USART INTERFACE_USART_CONFIG
#endif
#if defined(INTERFACE_USART_CONFIG2)
# define BOARD_INTERFACE_CONFIG_USART2 INTERFACE_USART_CONFIG2
Copy link
Contributor

Choose a reason for hiding this comment

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

Are these changes relevant? What is driving this change for the imxrt processors?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

can be removed. Was just consistency with what I changed in the other bootloader folders

@dirksavage88
Copy link
Contributor

We may want to split this functionality into a separate PR:

bootloader/uploader: add secondary MCU update flow
Adds bootloader SERIAL_FORWARD support and secondary UART path for host<->secondary passthrough.
Adds uploader update modes (primary|secondary|both|auto) and dual-image upload orchestration.
Adds runtime secondary update hooks (SYS_SEC_UPDATE, rc.board_secondary_upgrade, rcS integration).
Adds uploader unit tests and Python CI coverage.

@julianoes
Copy link
Contributor

@HTRamsey that's awkward: https://github.com/julianoes/PX4-Autopilot/tree/pr-cubered

I guess I'll do some diffing to check if you (or I) missed anything.

@HTRamsey
Copy link
Contributor Author

Oh damn my bad I really should have checked first. Please go ahead and do your thing, you'll do a lot better than me. I just had a cube red temporarily and figured I'd try

@julianoes
Copy link
Contributor

Yeah, sorry. I hadn't made the pull request because there were going to be changes to CubeRed and I didn't want to push something that was going to change anyway.

I'll have a look at what/how you did it. It might be better!

@HTRamsey
Copy link
Contributor Author

I wouldn't hold your breath on that

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants