From b351dc366f3de3a704f706ee6305fe9a266a33cc Mon Sep 17 00:00:00 2001 From: Ashwani Sihag Date: Sat, 28 Mar 2026 18:45:35 +0530 Subject: [PATCH 1/6] ci: publish bootloader binaries on release tags --- .github/workflows/main.yaml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml index 7e8a26e77c..47d58dcd4a 100644 --- a/.github/workflows/main.yaml +++ b/.github/workflows/main.yaml @@ -5,10 +5,15 @@ on: branches: - 'main' - 'master' + tags: + - 'v*' pull_request: branches: - '*' +permissions: + contents: write + jobs: coverage: @@ -27,5 +32,26 @@ jobs: echo "$(pwd)/gcc-arm-none-eabi-9-2020-q2-update/bin" >> $GITHUB_PATH - name: Build run: make + + - name: Upload Build Artifacts + uses: actions/upload-artifact@v4 + with: + name: px4-bootloader-binaries + path: | + build/*/*.bin + build/*/*.elf + build/*/*.hex + - name: Check style run: make check_format + + - name: Upload Release Assets + if: startsWith(github.ref, 'refs/tags/v') + uses: softprops/action-gh-release@v2 + with: + draft: false + prerelease: ${{ contains(github.ref_name, '-rc') || contains(github.ref_name, '-beta') || contains(github.ref_name, '-alpha') }} + files: | + build/*/*.bin + build/*/*.elf + build/*/*.hex From 713bf850dc3bb91f1394d59dbcd1d1c364e66889 Mon Sep 17 00:00:00 2001 From: Ashwani Sihag Date: Sat, 28 Mar 2026 19:02:10 +0530 Subject: [PATCH 2/6] build: include saampixv1_1_bl in default targets --- Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index be04f51015..86e795a844 100644 --- a/Makefile +++ b/Makefile @@ -69,6 +69,7 @@ TARGETS = \ fmuk66v3_bl \ kakutef7_bl \ mindpxv2_bl \ + saampixv1_1_bl \ modalai_fc_v1_bl \ modalai_voxl2_io_bl \ omnibusf4sd_bl \ @@ -142,7 +143,9 @@ px4fmuv5x_bl:$(MAKEFILE_LIST) $(LIBOPENCM3) mindpxv2_bl: $(MAKEFILE_LIST) $(LIBOPENCM3) ${MAKE} ${MKFLAGS} -f Makefile.f4 TARGET_HW=MINDPX_V2 LINKER_FILE=stm32f4.ld TARGET_FILE_NAME=$@ - +saampixv1_1_bl: $(MAKEFILE_LIST) $(LIBOPENCM3) + ${MAKE} ${MKFLAGS} -f Makefile.f4 TARGET_HW=SAAMPIX_V1_1 LINKER_FILE=stm32f4.ld TARGET_FILE_NAME=$@ + px4discovery_bl: $(MAKEFILE_LIST) $(LIBOPENCM3) ${MAKE} ${MKFLAGS} -f Makefile.f4 TARGET_HW=PX4_DISCOVERY_V1 LINKER_FILE=stm32f4.ld TARGET_FILE_NAME=$@ From a2ede3bdfe88a8806a32ff482b198129eed28d0c Mon Sep 17 00:00:00 2001 From: Ashwani Sihag Date: Sat, 28 Mar 2026 19:09:25 +0530 Subject: [PATCH 3/6] boards: add saampixv1_1 bootloader hardware config --- board_types.txt | 2 +- hw_config.h | 46 ++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 45 insertions(+), 3 deletions(-) diff --git a/board_types.txt b/board_types.txt index b007cef331..0e662b14f4 100644 --- a/board_types.txt +++ b/board_types.txt @@ -67,7 +67,7 @@ TARGET_HW_ARK_MAG 93 TARGET_HW_ATL_MANTIS_EDU 97 TARGET_HW_THE_PEACH_K1 212 TARGET_HW_THE_PEACH_R1 213 - +TARGET_HW_SAAMPIX_V1_1 200 Reserved PX4 [BL] FMU v5X.x 51 Reserved "PX4 [BL] FMU v6.x" 52 diff --git a/hw_config.h b/hw_config.h index 216c118d54..eccc8dbb7c 100644 --- a/hw_config.h +++ b/hw_config.h @@ -470,6 +470,49 @@ # define BOARD_USART_PIN_CLOCK_BIT RCC_AHB1ENR_IOPDEN # define SERIAL_BREAK_DETECT_DISABLED 1 + +/**************************************************************************** + * TARGET_HW_SAAMPIX_V1_1 + ****************************************************************************/ + +#elif defined(TARGET_HW_SAAMPIX_V1_1) + +# define APP_LOAD_ADDRESS 0x08004000 +# define BOOTLOADER_DELAY 5000 +# define BOARD_FMUV2 +# define INTERFACE_USB 1 +# define INTERFACE_USART 1 +# define USBDEVICESTRING "SaamPix BL FMU v1.1" +# define USBPRODUCTID 0x0030 +# define BOOT_DELAY_ADDRESS 0x000001a0 + +# define BOARD_TYPE TARGET_HW_SAAMPIX_V1_1 +# define _FLASH_KBYTES (*(uint16_t *)0x1fff7a22) +# define BOARD_FLASH_SECTORS ((_FLASH_KBYTES == 0x400) ? 11 : 23) +# define BOARD_FLASH_SIZE (_FLASH_KBYTES * 1024) + +# define OSC_FREQ 8 + +# define BOARD_PIN_LED_ACTIVITY 0 // no activity LED +# define BOARD_PIN_LED_BOOTLOADER GPIO8 +# define BOARD_PORT_LEDS GPIOA +# define BOARD_CLOCK_LEDS RCC_AHB1ENR_IOPAEN +# define BOARD_LED_ON gpio_clear +# define BOARD_LED_OFF gpio_set + +# define BOARD_USART USART2 +# define BOARD_USART_CLOCK_REGISTER RCC_APB1ENR +# define BOARD_USART_CLOCK_BIT RCC_APB1ENR_USART2EN + +# define BOARD_PORT_USART GPIOD +# define BOARD_PORT_USART_AF GPIO_AF7 +# define BOARD_PIN_TX GPIO5 +# define BOARD_PIN_RX GPIO6 +# define BOARD_USART_PIN_CLOCK_REGISTER RCC_AHB1ENR +# define BOARD_USART_PIN_CLOCK_BIT RCC_AHB1ENR_IOPDEN +# define SERIAL_BREAK_DETECT_DISABLED 1 + + /* * Uncommenting this allows to force the bootloader through * a PWM output pin. As this can accidentally initialize @@ -483,7 +526,6 @@ * # define BOARD_FORCE_BL_CLOCK_BIT RCC_AHB1ENR_IOPEEN * # define BOARD_FORCE_BL_PULL GPIO_PUPD_PULLUP */ - /**************************************************************************** * TARGET_HW_PX4_FLOW_V1 ****************************************************************************/ @@ -1650,4 +1692,4 @@ # define BOOT_DEVICES_FILTER_ONUSB USB0_DEV|SERIAL0_DEV|SERIAL1_DEV #endif -#endif /* HW_CONFIG_H_ */ \ No newline at end of file +#endif /* HW_CONFIG_H_ */ From f17c4c660eae4ead78c7d8b4da42547117953a4f Mon Sep 17 00:00:00 2001 From: Ashwani Sihag Date: Tue, 31 Mar 2026 11:08:00 +0530 Subject: [PATCH 4/6] board_types: fix spacing for SAAMPIX entry --- board_types.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/board_types.txt b/board_types.txt index 0e662b14f4..1ed2fd83a7 100644 --- a/board_types.txt +++ b/board_types.txt @@ -67,7 +67,7 @@ TARGET_HW_ARK_MAG 93 TARGET_HW_ATL_MANTIS_EDU 97 TARGET_HW_THE_PEACH_K1 212 TARGET_HW_THE_PEACH_R1 213 -TARGET_HW_SAAMPIX_V1_1 200 +TARGET_HW_SAAMPIX_V1_1 200 Reserved PX4 [BL] FMU v5X.x 51 Reserved "PX4 [BL] FMU v6.x" 52 From e17bf86eb5522deb147295387cfac46c2593243e Mon Sep 17 00:00:00 2001 From: Ashwani Sihag Date: Thu, 2 Apr 2026 12:15:59 +0530 Subject: [PATCH 5/6] saampixv1_1: align bootloader USB PID with autopilot --- hw_config.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw_config.h b/hw_config.h index eccc8dbb7c..801ba3be1f 100644 --- a/hw_config.h +++ b/hw_config.h @@ -441,7 +441,7 @@ # define INTERFACE_USB 1 # define INTERFACE_USART 1 # define USBDEVICESTRING "MindPX BL FMU v2.x" -# define USBPRODUCTID 0x0030 +# define USBPRODUCTID 0x008E # define BOOT_DELAY_ADDRESS 0x000001a0 # define BOARD_TYPE 88 From d5297e7d8ae5ba814613aae4c9d0842302337133 Mon Sep 17 00:00:00 2001 From: Ashwani Sihag Date: Thu, 2 Apr 2026 12:19:52 +0530 Subject: [PATCH 6/6] hw_config: correct PID blocks for mindpx and saampix --- hw_config.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw_config.h b/hw_config.h index 801ba3be1f..e734a77ae6 100644 --- a/hw_config.h +++ b/hw_config.h @@ -441,7 +441,7 @@ # define INTERFACE_USB 1 # define INTERFACE_USART 1 # define USBDEVICESTRING "MindPX BL FMU v2.x" -# define USBPRODUCTID 0x008E +# define USBPRODUCTID 0x0030 # define BOOT_DELAY_ADDRESS 0x000001a0 # define BOARD_TYPE 88 @@ -483,7 +483,7 @@ # define INTERFACE_USB 1 # define INTERFACE_USART 1 # define USBDEVICESTRING "SaamPix BL FMU v1.1" -# define USBPRODUCTID 0x0030 +# define USBPRODUCTID 0x008E # define BOOT_DELAY_ADDRESS 0x000001a0 # define BOARD_TYPE TARGET_HW_SAAMPIX_V1_1