From c18b70369c67b43fc19e8dafcf88c39c01e4d3aa Mon Sep 17 00:00:00 2001 From: brentfpage Date: Fri, 9 Jan 2026 11:06:19 -0800 Subject: [PATCH 001/150] added GH workflow for building the firmware --- .github/workflows/avr.yml | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 .github/workflows/avr.yml diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml new file mode 100644 index 000000000..0d153da4e --- /dev/null +++ b/.github/workflows/avr.yml @@ -0,0 +1,31 @@ +name: Build firmware + +on: + workflow_call + workflow_dispatch + +jobs: + build-avr: + runs-on: ubuntu-latest + + steps: + - name : Checkout repository + uses: actions/checkout@master + + - name: Install GNU AVR tools + uses: bazhenov/action-avr-make@v1.0 + + - name: compile using make + working-directory: AVR_Code/USB_BULK_TEST + run: | + make 0x02 + + - name: Upload hex artifacts + uses: actions/upload-artifact@v4 + with: + name: asset-hex + path: AVR_Code/USB_BULK_TEST/labrafirm*hex + compression-level: 0 + if-no-files-found: error + + From 35e30f4845fc1f9c3c48f98540a426242b2fce87 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Fri, 9 Jan 2026 11:10:25 -0800 Subject: [PATCH 002/150] debugging avr.yml --- .github/workflows/avr.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 0d153da4e..7995469af 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -1,16 +1,19 @@ name: Build firmware +permissions: + contents: read + pull-requests: write + on: - workflow_call - workflow_dispatch + workflow_call: + workflow_dispatch: jobs: build-avr: runs-on: ubuntu-latest - steps: - name : Checkout repository - uses: actions/checkout@master + uses: actions/checkout@v4 - name: Install GNU AVR tools uses: bazhenov/action-avr-make@v1.0 From 48cc3d42f2ce65204917f44a1fd38842317206a4 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Fri, 9 Jan 2026 11:21:40 -0800 Subject: [PATCH 003/150] trying to get avr.yml workflow to run --- .github/workflows/avr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 7995469af..88928e61c 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -7,6 +7,7 @@ permissions: on: workflow_call: workflow_dispatch: + push: jobs: build-avr: @@ -20,8 +21,7 @@ jobs: - name: compile using make working-directory: AVR_Code/USB_BULK_TEST - run: | - make 0x02 + run: make 0x02 - name: Upload hex artifacts uses: actions/upload-artifact@v4 From 500f4bf8f67345791c3ea1d2fe1eb4a4d7ea1cf7 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Fri, 9 Jan 2026 11:26:38 -0800 Subject: [PATCH 004/150] still debugging avr.yml --- .github/workflows/avr.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 88928e61c..87af52b1a 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -16,12 +16,14 @@ jobs: - name : Checkout repository uses: actions/checkout@v4 - - name: Install GNU AVR tools + - name: Install GNU AVR tools and run make + working-directory: AVR_Code/USB_BULK_TEST uses: bazhenov/action-avr-make@v1.0 - - name: compile using make - working-directory: AVR_Code/USB_BULK_TEST - run: make 0x02 + # in the future, separate the installation of the tools and the running of make +# - name: compile using make +# working-directory: AVR_Code/USB_BULK_TEST +# run: make 0x02 - name: Upload hex artifacts uses: actions/upload-artifact@v4 From f31433836d291f16b49859f0709d86a3c131b572 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Fri, 9 Jan 2026 11:29:04 -0800 Subject: [PATCH 005/150] still debugging avr.yml --- .github/workflows/avr.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 87af52b1a..a0cc5ba41 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -19,6 +19,7 @@ jobs: - name: Install GNU AVR tools and run make working-directory: AVR_Code/USB_BULK_TEST uses: bazhenov/action-avr-make@v1.0 + run: make # in the future, separate the installation of the tools and the running of make # - name: compile using make From 06056ac63209328006645609f31e7c5cfe635eaa Mon Sep 17 00:00:00 2001 From: brentfpage Date: Fri, 9 Jan 2026 11:52:55 -0800 Subject: [PATCH 006/150] moved avr makefile to project root, as per -GitHub AVR make action- instructions, and added configurable firmware src directory --- AVR_Code/USB_BULK_TEST/Makefile => Makefile | 175 ++++++++++---------- 1 file changed, 88 insertions(+), 87 deletions(-) rename AVR_Code/USB_BULK_TEST/Makefile => Makefile (52%) diff --git a/AVR_Code/USB_BULK_TEST/Makefile b/Makefile similarity index 52% rename from AVR_Code/USB_BULK_TEST/Makefile rename to Makefile index d14e3a548..32630c582 100755 --- a/AVR_Code/USB_BULK_TEST/Makefile +++ b/Makefile @@ -32,183 +32,184 @@ OUTPUT_FILE_PATH =$(NAME).elf OUTPUT_FILE_PATH_AS_ARGS +=$(NAME).elf AVR_APP_PATH :=$$$AVR_APP_PATH$$$ -AVRDIR= -CC=$(AVRDIR)/bin/avr-gcc -INCLUDES=-I"./common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained" -I"./common/services/usb/class/vendor/device/example" -I"./src/ASF/common/services/usb/udc" -I"./src/ASF/xmega/drivers/nvm" -I"./src/ASF/common/services/sleepmgr" -I"./src/ASF/common/services/clock" -I"./src/ASF/xmega/drivers/sleep" -I"./src/ASF/xmega/drivers/usb" -I"./src/ASF/xmega/drivers/cpu" -I"./src/ASF/common/services/usb/class/vendor" -I"./src/ASF/common/services/usb/class/vendor/device" -I"./src/ASF/common/services/usb" -I"./common/applications/user_application/user_board/config" -I"./src/ASF/xmega/utils" -I"./src/config" -I"./src/ASF/common/boards" -I"./src/ASF/xmega/utils/preprocessor" -I"./src/ASF/common/utils" -I"./src" -I"./src/ASF/common/boards/user_board" -I"./src/ASF/common/services/ioport" +CC=avr-gcc +SRC_DIR=./AVR_CODE/USB_BULK_TEST/src + +INCLUDES=-I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example" -I"$(SRC_DIR)/ASF/common/services/usb/udc" -I"$(SRC_DIR)/ASF/xmega/drivers/nvm" -I"$(SRC_DIR)/ASF/common/services/sleepmgr" -I"$(SRC_DIR)/ASF/common/services/clock" -I"$(SRC_DIR)/ASF/xmega/drivers/sleep" -I"$(SRC_DIR)/ASF/xmega/drivers/usb" -I"$(SRC_DIR)/ASF/xmega/drivers/cpu" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device" -I"$(SRC_DIR)/ASF/common/services/usb" -I"$(SRC_DIR)mon/applications/user_application/user_board/config" -I"$(SRC_DIR)/ASF/xmega/utils" -I"$(SRC_DIR)/config" -I"$(SRC_DIR)/ASF/common/boards" -I"$(SRC_DIR)/ASF/xmega/utils/preprocessor" -I"$(SRC_DIR)/ASF/common/utils" -I"$(SRC_DIR)" -I"$(SRC_DIR)/ASF/common/boards/user_board" -I"$(SRC_DIR)/ASF/common/services/ioport" CFLAGS=-std=gnu99 -ffunction-sections -mmcu=atxmega32a4u -fsigned-char -funsigned-bitfields -fdata-sections -fshort-enums -fno-strict-aliasing -fno-jump-tables -fpack-struct -Wall -O2 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" NAME=labrafirm_$(SUFFIX) OBJS += \ -./src/tiny_calibration.o \ -./src/tiny_dig.o \ -./src/tiny_eeprom.o \ -./src/ASF/common/boards/user_board/init.o \ -./src/ASF/common/services/ioport/xmega/ioport_compat.o \ -./src/main.o \ -./src/tiny_adc.o \ -./src/tiny_dac.o \ -./src/tiny_dma.o \ -./src/tiny_timer.o \ -./src/tiny_uart.o \ -./src/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.o \ -./src/ASF/common/services/clock/xmega/sysclk.o \ -./src/ASF/common/services/sleepmgr/xmega/sleepmgr.o \ -./src/ASF/common/services/usb/class/vendor/device/udi_vendor.o \ -./src/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.o \ -./src/ASF/common/services/usb/udc/udc.o \ -./src/ASF/xmega/drivers/nvm/nvm.o \ -./src/ASF/xmega/drivers/nvm/nvm_asm.o \ -./src/ASF/xmega/drivers/cpu/ccp.o \ -./src/ASF/xmega/drivers/usb/usb_device.o +$(SRC_DIR)/tiny_calibration.o \ +$(SRC_DIR)/tiny_dig.o \ +$(SRC_DIR)/tiny_eeprom.o \ +$(SRC_DIR)/ASF/common/boards/user_board/init.o \ +$(SRC_DIR)/ASF/common/services/ioport/xmega/ioport_compat.o \ +$(SRC_DIR)/main.o \ +$(SRC_DIR)/tiny_adc.o \ +$(SRC_DIR)/tiny_dac.o \ +$(SRC_DIR)/tiny_dma.o \ +$(SRC_DIR)/tiny_timer.o \ +$(SRC_DIR)/tiny_uart.o \ +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.o \ +$(SRC_DIR)/ASF/common/services/clock/xmega/sysclk.o \ +$(SRC_DIR)/ASF/common/services/sleepmgr/xmega/sleepmgr.o \ +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor.o \ +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.o \ +$(SRC_DIR)/ASF/common/services/usb/udc/udc.o \ +$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm.o \ +$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.o \ +$(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.o \ +$(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o C_DEPS_AS_ARGS += \ -./src/tiny_calibration.d \ -./src/tiny_dig.d \ -./src/tiny_eeprom.d \ -./src/ASF/common/boards/user_board/init.d \ -./src/ASF/common/services/ioport/xmega/ioport_compat.d \ -./src/main.d \ -./src/tiny_adc.d \ -./src/tiny_dac.d \ -./src/tiny_dma.d \ -./src/tiny_timer.d \ -./src/tiny_uart.d \ -./src/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.d \ -./src/ASF/common/services/clock/xmega/sysclk.d \ -./src/ASF/common/services/sleepmgr/xmega/sleepmgr.d \ -./src/ASF/common/services/usb/class/vendor/device/udi_vendor.d \ -./src/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.d \ -./src/ASF/common/services/usb/udc/udc.d \ -./src/ASF/xmega/drivers/nvm/nvm.d \ -./src/ASF/xmega/drivers/nvm/nvm_asm.d \ -./src/ASF/xmega/drivers/cpu/ccp.d \ -./src/ASF/xmega/drivers/usb/usb_device.d +$(SRC_DIR)/tiny_calibration.d \ +$(SRC_DIR)/tiny_dig.d \ +$(SRC_DIR)/tiny_eeprom.d \ +$(SRC_DIR)/ASF/common/boards/user_board/init.d \ +$(SRC_DIR)/ASF/common/services/ioport/xmega/ioport_compat.d \ +$(SRC_DIR)/main.d \ +$(SRC_DIR)/tiny_adc.d \ +$(SRC_DIR)/tiny_dac.d \ +$(SRC_DIR)/tiny_dma.d \ +$(SRC_DIR)/tiny_timer.d \ +$(SRC_DIR)/tiny_uart.d \ +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.d \ +$(SRC_DIR)/ASF/common/services/clock/xmega/sysclk.d \ +$(SRC_DIR)/ASF/common/services/sleepmgr/xmega/sleepmgr.d \ +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor.d \ +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.d \ +$(SRC_DIR)/ASF/common/services/usb/udc/udc.d \ +$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm.d \ +$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.d \ +$(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.d \ +$(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.d OBJS_AS_ARGS += \ -./src/tiny_calibration.o \ -./src/tiny_dig.o \ -./src/tiny_eeprom.o \ -./src/ASF/common/boards/user_board/init.o \ -./src/ASF/common/services/ioport/xmega/ioport_compat.o \ -./src/main.o \ -./src/tiny_adc.o \ -./src/tiny_dac.o \ -./src/tiny_dma.o \ -./src/tiny_timer.o \ -./src/tiny_uart.o \ -./src/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.o \ -./src/ASF/common/services/clock/xmega/sysclk.o \ -./src/ASF/common/services/sleepmgr/xmega/sleepmgr.o \ -./src/ASF/common/services/usb/class/vendor/device/udi_vendor.o \ -./src/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.o \ -./src/ASF/common/services/usb/udc/udc.o \ -./src/ASF/xmega/drivers/nvm/nvm.o \ -./src/ASF/xmega/drivers/nvm/nvm_asm.o \ -./src/ASF/xmega/drivers/cpu/ccp.o \ -./src/ASF/xmega/drivers/usb/usb_device.o +$(SRC_DIR)/tiny_calibration.o \ +$(SRC_DIR)/tiny_dig.o \ +$(SRC_DIR)/tiny_eeprom.o \ +$(SRC_DIR)/ASF/common/boards/user_board/init.o \ +$(SRC_DIR)/ASF/common/services/ioport/xmega/ioport_compat.o \ +$(SRC_DIR)/main.o \ +$(SRC_DIR)/tiny_adc.o \ +$(SRC_DIR)/tiny_dac.o \ +$(SRC_DIR)/tiny_dma.o \ +$(SRC_DIR)/tiny_timer.o \ +$(SRC_DIR)/tiny_uart.o \ +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.o \ +$(SRC_DIR)/ASF/common/services/clock/xmega/sysclk.o \ +$(SRC_DIR)/ASF/common/services/sleepmgr/xmega/sleepmgr.o \ +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor.o \ +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.o \ +$(SRC_DIR)/ASF/common/services/usb/udc/udc.o \ +$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm.o \ +$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.o \ +$(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.o \ +$(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o -./src/tiny_calibration.o: ./src/tiny_calibration.c +$(SRC_DIR)/tiny_calibration.o: $(SRC_DIR)/tiny_calibration.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/tiny_dig.o: ./src/tiny_dig.c +$(SRC_DIR)/tiny_dig.o: $(SRC_DIR)/tiny_dig.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/tiny_eeprom.o: ./src/tiny_eeprom.c +$(SRC_DIR)/tiny_eeprom.o: $(SRC_DIR)/tiny_eeprom.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/ASF/common/boards/user_board/init.o: ./src/ASF/common/boards/user_board/init.c +$(SRC_DIR)/ASF/common/boards/user_board/init.o: $(SRC_DIR)/ASF/common/boards/user_board/init.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/ASF/common/services/ioport/xmega/ioport_compat.o: ./src/ASF/common/services/ioport/xmega/ioport_compat.c +$(SRC_DIR)/ASF/common/services/ioport/xmega/ioport_compat.o: $(SRC_DIR)/ASF/common/services/ioport/xmega/ioport_compat.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/main.o: ./src/main.c +$(SRC_DIR)/main.o: $(SRC_DIR)/main.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/tiny_adc.o: ./src/tiny_adc.c +$(SRC_DIR)/tiny_adc.o: $(SRC_DIR)/tiny_adc.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/tiny_dac.o: ./src/tiny_dac.c +$(SRC_DIR)/tiny_dac.o: $(SRC_DIR)/tiny_dac.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/tiny_dma.o: ./src/tiny_dma.c +$(SRC_DIR)/tiny_dma.o: $(SRC_DIR)/tiny_dma.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/tiny_timer.o: ./src/tiny_timer.c +$(SRC_DIR)/tiny_timer.o: $(SRC_DIR)/tiny_timer.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/tiny_uart.o: ./src/tiny_uart.c +$(SRC_DIR)/tiny_uart.o: $(SRC_DIR)/tiny_uart.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.o: ./src/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.c +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.o: $(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/ASF/common/services/clock/xmega/sysclk.o: ./src/ASF/common/services/clock/xmega/sysclk.c +$(SRC_DIR)/ASF/common/services/clock/xmega/sysclk.o: $(SRC_DIR)/ASF/common/services/clock/xmega/sysclk.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/ASF/common/services/sleepmgr/xmega/sleepmgr.o: ./src/ASF/common/services/sleepmgr/xmega/sleepmgr.c +$(SRC_DIR)/ASF/common/services/sleepmgr/xmega/sleepmgr.o: $(SRC_DIR)/ASF/common/services/sleepmgr/xmega/sleepmgr.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/ASF/common/services/usb/class/vendor/device/udi_vendor.o: ./src/ASF/common/services/usb/class/vendor/device/udi_vendor.c +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor.o: $(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.o: ./src/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.c +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.o: $(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/ASF/common/services/usb/udc/udc.o: ./src/ASF/common/services/usb/udc/udc.c +$(SRC_DIR)/ASF/common/services/usb/udc/udc.o: $(SRC_DIR)/ASF/common/services/usb/udc/udc.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/ASF/xmega/drivers/cpu/ccp.o: ./src/ASF/xmega/drivers/cpu/ccp.s +$(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.o: $(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.s @echo Building file: $< @$(CC) -x assembler-with-cpp -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/ASF/xmega/drivers/nvm/nvm.o: ./src/ASF/xmega/drivers/nvm/nvm.c +$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm.o: $(SRC_DIR)/ASF/xmega/drivers/nvm/nvm.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/ASF/xmega/drivers/nvm/nvm_asm.o: ./src/ASF/xmega/drivers/nvm/nvm_asm.s +$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.o: $(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.s @echo Building file: $< @$(CC) -x assembler-with-cpp -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -./src/ASF/xmega/drivers/usb/usb_device.o: ./src/ASF/xmega/drivers/usb/usb_device.c +$(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o: $(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< From bfffef99c9910aa563be7bd4325d3b34586daa70 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Fri, 9 Jan 2026 11:55:13 -0800 Subject: [PATCH 007/150] in the avr makefile, removed AVR_DIR, which probably is not needed by the avr runner action --- Makefile | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 32630c582..64b6c36f8 100755 --- a/Makefile +++ b/Makefile @@ -224,11 +224,11 @@ $(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o: $(SRC_DIR)/ASF/xmega/drivers/usb/ $(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP) @echo Building target: $@ $(CC) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map=$(NAME)".map" -Wl,-lm -mmcu=atxmega32a4u -Wl,--gc-sections -Wl,--relax - $(AVRDIR)/bin/avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature $(NAME)".elf" $(NAME)".hex" - $(AVRDIR)/bin/avr-objdump -h -S $(NAME)".elf" > $(NAME)".lss" - $(AVRDIR)/bin/avr-objcopy -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O binary $(NAME)".elf" $(NAME)".eep" || exit 0 - $(AVRDIR)/bin/avr-objcopy -O srec -R .eeprom -R .fuse -R .lock -R .signature $(NAME)".elf" $(NAME)".srec" - $(AVRDIR)/bin/avr-size $(NAME)".elf" + avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature $(NAME)".elf" $(NAME)".hex" + avr-objdump -h -S $(NAME)".elf" > $(NAME)".lss" + avr-objcopy -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O binary $(NAME)".elf" $(NAME)".eep" || exit 0 + avr-objcopy -O srec -R .eeprom -R .fuse -R .lock -R .signature $(NAME)".elf" $(NAME)".srec" + avr-size $(NAME)".elf" @echo Finished successfully: $(NAME) VARIANTS = 0x01 0x02 From 12ab7b7a41fb6e6a21755b175a666423bf8f3615 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Fri, 9 Jan 2026 11:55:55 -0800 Subject: [PATCH 008/150] made avr.yml barebones --- .github/workflows/avr.yml | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index a0cc5ba41..9f98bcb34 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -15,23 +15,21 @@ jobs: steps: - name : Checkout repository uses: actions/checkout@v4 - - - name: Install GNU AVR tools and run make - working-directory: AVR_Code/USB_BULK_TEST uses: bazhenov/action-avr-make@v1.0 - run: make + +# - name: Install GNU AVR tools and run make # in the future, separate the installation of the tools and the running of make # - name: compile using make # working-directory: AVR_Code/USB_BULK_TEST # run: make 0x02 - - name: Upload hex artifacts - uses: actions/upload-artifact@v4 - with: - name: asset-hex - path: AVR_Code/USB_BULK_TEST/labrafirm*hex - compression-level: 0 - if-no-files-found: error +# - name: Upload hex artifacts +# uses: actions/upload-artifact@v4 +# with: +# name: asset-hex +# path: AVR_Code/USB_BULK_TEST/labrafirm*hex +# compression-level: 0 +# if-no-files-found: error From 8a143519a902436a6834363248435dcb059cca81 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Fri, 9 Jan 2026 11:57:21 -0800 Subject: [PATCH 009/150] further simplified avr.yml --- .github/workflows/avr.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 9f98bcb34..79beaa2ed 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -13,9 +13,9 @@ jobs: build-avr: runs-on: ubuntu-latest steps: - - name : Checkout repository - uses: actions/checkout@v4 - uses: bazhenov/action-avr-make@v1.0 +# - name : Checkout repository + - uses: actions/checkout@v4 + - uses: bazhenov/action-avr-make@v1.0 # - name: Install GNU AVR tools and run make From 9e2776ae875065ecc0beca3a89ccc8186cdf754f Mon Sep 17 00:00:00 2001 From: brentfpage Date: Fri, 9 Jan 2026 12:04:50 -0800 Subject: [PATCH 010/150] capitalization typo --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 64b6c36f8..d81e6fb78 100755 --- a/Makefile +++ b/Makefile @@ -33,7 +33,7 @@ OUTPUT_FILE_PATH_AS_ARGS +=$(NAME).elf AVR_APP_PATH :=$$$AVR_APP_PATH$$$ CC=avr-gcc -SRC_DIR=./AVR_CODE/USB_BULK_TEST/src +SRC_DIR=./AVR_Code/USB_BULK_TEST/src INCLUDES=-I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example" -I"$(SRC_DIR)/ASF/common/services/usb/udc" -I"$(SRC_DIR)/ASF/xmega/drivers/nvm" -I"$(SRC_DIR)/ASF/common/services/sleepmgr" -I"$(SRC_DIR)/ASF/common/services/clock" -I"$(SRC_DIR)/ASF/xmega/drivers/sleep" -I"$(SRC_DIR)/ASF/xmega/drivers/usb" -I"$(SRC_DIR)/ASF/xmega/drivers/cpu" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device" -I"$(SRC_DIR)/ASF/common/services/usb" -I"$(SRC_DIR)mon/applications/user_application/user_board/config" -I"$(SRC_DIR)/ASF/xmega/utils" -I"$(SRC_DIR)/config" -I"$(SRC_DIR)/ASF/common/boards" -I"$(SRC_DIR)/ASF/xmega/utils/preprocessor" -I"$(SRC_DIR)/ASF/common/utils" -I"$(SRC_DIR)" -I"$(SRC_DIR)/ASF/common/boards/user_board" -I"$(SRC_DIR)/ASF/common/services/ioport" From 8b31f94df3695250d2576c57c94525f0e4c5e488 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Fri, 9 Jan 2026 12:08:35 -0800 Subject: [PATCH 011/150] added upload artifacts to avr.yml --- .github/workflows/avr.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 79beaa2ed..3f73ff1ad 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -24,12 +24,12 @@ jobs: # working-directory: AVR_Code/USB_BULK_TEST # run: make 0x02 -# - name: Upload hex artifacts -# uses: actions/upload-artifact@v4 -# with: -# name: asset-hex -# path: AVR_Code/USB_BULK_TEST/labrafirm*hex -# compression-level: 0 -# if-no-files-found: error + - name: Upload hex artifacts + uses: actions/upload-artifact@v4 + with: + name: asset-hex + path: AVR_Code/USB_BULK_TEST/labrafirm*hex + compression-level: 0 + if-no-files-found: error From b9c0cc88914dcadd7099a90ddcb2804ea14da026 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Fri, 9 Jan 2026 12:10:47 -0800 Subject: [PATCH 012/150] changed path for artifact upload in avr.yml --- .github/workflows/avr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 3f73ff1ad..e25a2773d 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -28,7 +28,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: asset-hex - path: AVR_Code/USB_BULK_TEST/labrafirm*hex + path: labrafirm*hex compression-level: 0 if-no-files-found: error From 94483f23228039457a77f6e180f16c1d426680ab Mon Sep 17 00:00:00 2001 From: brentfpage Date: Fri, 9 Jan 2026 12:16:34 -0800 Subject: [PATCH 013/150] made 0x01 target the first --- Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index d81e6fb78..afb8198ea 100755 --- a/Makefile +++ b/Makefile @@ -109,6 +109,9 @@ $(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.o \ $(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.o \ $(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o +0x01: SUFFIX=0x01 +0x01: $(OUTPUT_FILE_PATH) + $(SRC_DIR)/tiny_calibration.o: $(SRC_DIR)/tiny_calibration.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @@ -214,9 +217,6 @@ $(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o: $(SRC_DIR)/ASF/xmega/drivers/usb/ @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -0x01: SUFFIX=0x01 -0x01: $(OUTPUT_FILE_PATH) - 0x02: CFLAGS+=-DSINGLE_ENDPOINT_INTERFACE 0x02: SUFFIX=0x02 0x02: $(OUTPUT_FILE_PATH) From 3912130f49584c365376e822b74c3d17546ae6c7 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Fri, 9 Jan 2026 12:22:45 -0800 Subject: [PATCH 014/150] made edits to firmware src files described in pull request 369 --- .../src/ASF/common/services/usb/udc/udc.c | 4 ++-- .../src/ASF/xmega/drivers/usb/usb_device.c | 2 +- AVR_Code/USB_BULK_TEST/src/globals.h | 6 +++--- AVR_Code/USB_BULK_TEST/src/tiny_calibration.c | 4 +++- AVR_Code/USB_BULK_TEST/src/tiny_calibration.h | 6 +++--- AVR_Code/USB_BULK_TEST/src/tiny_dma.c | 16 +++++++++++----- 6 files changed, 23 insertions(+), 15 deletions(-) diff --git a/AVR_Code/USB_BULK_TEST/src/ASF/common/services/usb/udc/udc.c b/AVR_Code/USB_BULK_TEST/src/ASF/common/services/usb/udc/udc.c index 123928a27..bdb4bfb32 100644 --- a/AVR_Code/USB_BULK_TEST/src/ASF/common/services/usb/udc/udc.c +++ b/AVR_Code/USB_BULK_TEST/src/ASF/common/services/usb/udc/udc.c @@ -1102,7 +1102,7 @@ static bool udc_reqvend(void){ uds.calValPos = cali_value_positive_gradient; uds.CALA = DFLLRC2M.CALA; uds.CALB = DFLLRC2M.CALB; - udd_set_setup_payload(&uds, udd_g_ctrlreq.req.wLength); + udd_set_setup_payload((uint8_t *) &uds, udd_g_ctrlreq.req.wLength); //asm("nop"); return 1; case 0xa1: //Receive waveform for signal gen @@ -1212,7 +1212,7 @@ static bool udc_reqvend(void){ : "memory"); __builtin_unreachable(); case 0xa8: //Firmware Version Request - udd_set_setup_payload(&firmver, udd_g_ctrlreq.req.wLength); + udd_set_setup_payload((uint8_t *) &firmver, udd_g_ctrlreq.req.wLength); return 1; case 0xa9: //Variant Version Request udd_set_setup_payload(&variant, udd_g_ctrlreq.req.wLength); diff --git a/AVR_Code/USB_BULK_TEST/src/ASF/xmega/drivers/usb/usb_device.c b/AVR_Code/USB_BULK_TEST/src/ASF/xmega/drivers/usb/usb_device.c index a0b77ded8..5d21fd567 100644 --- a/AVR_Code/USB_BULK_TEST/src/ASF/xmega/drivers/usb/usb_device.c +++ b/AVR_Code/USB_BULK_TEST/src/ASF/xmega/drivers/usb/usb_device.c @@ -249,7 +249,7 @@ static UDD_EP_t *udd_ep_get_ctrl(udd_ep_id_t ep); //@{ //! Global variable to give and record information about setup request management -udd_ctrl_request_t udd_g_ctrlreq; +extern udd_ctrl_request_t udd_g_ctrlreq; //! Bit definitions about endpoint control state machine for udd_ep_control_state typedef enum { diff --git a/AVR_Code/USB_BULK_TEST/src/globals.h b/AVR_Code/USB_BULK_TEST/src/globals.h index e85cc0b87..c970302a1 100644 --- a/AVR_Code/USB_BULK_TEST/src/globals.h +++ b/AVR_Code/USB_BULK_TEST/src/globals.h @@ -9,11 +9,11 @@ #ifndef GLOBALS_H_ #define GLOBALS_H_ -//#define SINGLE_ENDPOINT_INTERFACE +// #define SINGLE_ENDPOINT_INTERFACE //#define VERO #define OVERCLOCK 48 -#define FIRMWARE_VERSION_ID 0x0007 +#define FIRMWARE_VERSION_ID 0x0006 #define ATMEL_DFU_OFFSET 0x01fc #define TC_SPISLAVE TCD0 @@ -71,4 +71,4 @@ extern const unsigned char variant; #include "unified_debug_structure.h" extern unified_debug uds; -#endif /* GLOBALS_H_ */ \ No newline at end of file +#endif /* GLOBALS_H_ */ diff --git a/AVR_Code/USB_BULK_TEST/src/tiny_calibration.c b/AVR_Code/USB_BULK_TEST/src/tiny_calibration.c index a1ac1c4c9..64374af8a 100644 --- a/AVR_Code/USB_BULK_TEST/src/tiny_calibration.c +++ b/AVR_Code/USB_BULK_TEST/src/tiny_calibration.c @@ -10,6 +10,8 @@ #include "tiny_adc.h" volatile unsigned char median_TRFCNT_delay = 255; +volatile unsigned char cali_value_positive_gradient; +volatile unsigned char cali_value_negative_gradient; void tiny_calibration_init(){ //Set up 48MHz DFLL for USB. @@ -46,7 +48,7 @@ void tiny_calibration_init(){ return; } -tiny_calibration_first_sof(){ +void tiny_calibration_first_sof(){ PR.PRPE &= 0b11111110; TC_CALI.PER = 23999; TC_CALI.CNT = 12000; diff --git a/AVR_Code/USB_BULK_TEST/src/tiny_calibration.h b/AVR_Code/USB_BULK_TEST/src/tiny_calibration.h index edd9e0f35..1e580a9ad 100644 --- a/AVR_Code/USB_BULK_TEST/src/tiny_calibration.h +++ b/AVR_Code/USB_BULK_TEST/src/tiny_calibration.h @@ -25,8 +25,8 @@ void tiny_calibration_synchronise_phase(unsigned int phase, unsigned int precisi extern volatile unsigned char calibration_values_found; extern volatile unsigned char median_TRFCNT_delay; -volatile unsigned char cali_value_negative_gradient; -volatile unsigned char cali_value_positive_gradient; +extern volatile unsigned char cali_value_negative_gradient; +extern volatile unsigned char cali_value_positive_gradient; -#endif /* TINY_CALIBRATION_H_ */ \ No newline at end of file +#endif /* TINY_CALIBRATION_H_ */ diff --git a/AVR_Code/USB_BULK_TEST/src/tiny_dma.c b/AVR_Code/USB_BULK_TEST/src/tiny_dma.c index 9ce85561b..e38bd14c7 100644 --- a/AVR_Code/USB_BULK_TEST/src/tiny_dma.c +++ b/AVR_Code/USB_BULK_TEST/src/tiny_dma.c @@ -115,6 +115,7 @@ void tiny_dma_set_mode_0(void){ DMA.CH0.CTRLA = DMA_STANDARD_CTRLA; DMA.CH0.CTRLB = DMA_STANDARD_INTERRUPT; DMA.CH0.ADDRCTRL = DMA_CH_SRCRELOAD_BURST_gc | DMA_CH_SRCDIR_INC_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. + DMA.CH0.ADDRCTRL = DMA_CH_SRCDIR_FIXED_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. DMA.CH0.TRIGSRC = DMA_CH_TRIGSRC_ADCA_CH0_gc; //Triggered from ADCA channel 0 DMA.CH0.TRFCNT = DMA_STANDARD_TRANSFER_LENGTH; @@ -211,7 +212,8 @@ void tiny_dma_set_mode_1(void){ DMA.CH0.CTRLA = DMA_STANDARD_CTRLA; DMA.CH0.CTRLB = DMA_STANDARD_INTERRUPT; - DMA.CH0.ADDRCTRL = DMA_CH_SRCRELOAD_BURST_gc | DMA_CH_SRCDIR_INC_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. +// DMA.CH0.ADDRCTRL = DMA_CH_SRCRELOAD_BURST_gc | DMA_CH_SRCDIR_INC_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. + DMA.CH0.ADDRCTRL = DMA_CH_SRCDIR_FIXED_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. DMA.CH0.TRIGSRC = DMA_CH_TRIGSRC_ADCA_CH0_gc; //Triggered from ADCA channel 0 DMA.CH0.TRFCNT = DMA_STANDARD_TRANSFER_LENGTH; @@ -253,7 +255,8 @@ void tiny_dma_set_mode_2(void){ DMA.CH2.CTRLA = DMA_CH_BURSTLEN_1BYTE_gc | DMA_CH_SINGLE_bm | DMA_CH_REPEAT_bm; } DMA.CH2.CTRLB = 0x00; //No interrupt for DacBuf!! - DMA.CH2.ADDRCTRL = DMA_CH_DESTRELOAD_BURST_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_SRCRELOAD_BLOCK_gc | DMA_CH_SRCDIR_INC_gc; //Dest reloads after each burst, with byte incrementing. Src reloads at end of block, also incrementing address. +// DMA.CH2.ADDRCTRL = DMA_CH_DESTRELOAD_BURST_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_SRCRELOAD_BLOCK_gc | DMA_CH_SRCDIR_INC_gc; //Dest reloads after each burst, with byte incrementing. Src reloads at end of block, also incrementing address. + DMA.CH2.ADDRCTRL = DMA_CH_DESTDIR_FIXED_gc | DMA_CH_SRCRELOAD_BLOCK_gc | DMA_CH_SRCDIR_INC_gc; //Dest reloads after each burst, with byte incrementing. Src reloads at end of block, also incrementing address. DMA.CH2.TRIGSRC = DMA_CH_TRIGSRC_EVSYS_CH1_gc; //Triggered from TCC0 when it hits PER DMA.CH2.TRFCNT = auxDacBufLen; @@ -271,7 +274,8 @@ void tiny_dma_set_mode_2(void){ DMA.CH3.REPCNT = 0; //Repeat forever! DMA.CH3.CTRLA = DMA_CH_BURSTLEN_1BYTE_gc | DMA_CH_SINGLE_bm | DMA_CH_REPEAT_bm; DMA.CH3.CTRLB = 0x00; //Hi interrupt on block complete - DMA.CH3.ADDRCTRL = DMA_CH_DESTRELOAD_BURST_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_SRCRELOAD_BLOCK_gc | DMA_CH_SRCDIR_INC_gc; //Dest reloads after each burst, with byte incrementing. Src reloads at end of block, also incrementing address. +// DMA.CH3.ADDRCTRL = DMA_CH_DESTRELOAD_BURST_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_SRCRELOAD_BLOCK_gc | DMA_CH_SRCDIR_INC_gc; //Dest reloads after each burst, with byte incrementing. Src reloads at end of block, also incrementing address. + DMA.CH3.ADDRCTRL = DMA_CH_DESTDIR_FIXED_gc | DMA_CH_SRCRELOAD_BLOCK_gc | DMA_CH_SRCDIR_INC_gc; //Dest reloads after each burst, with byte incrementing. Src reloads at end of block, also incrementing address. DMA.CH3.TRIGSRC = DMA_CH_TRIGSRC_EVSYS_CH2_gc; //Triggered from TCC0 when it hits PER DMA.CH3.TRFCNT = dacBuf_len; @@ -292,6 +296,7 @@ void tiny_dma_set_mode_2(void){ DMA.CH0.CTRLA = DMA_STANDARD_CTRLA; DMA.CH0.CTRLB = DMA_STANDARD_INTERRUPT; DMA.CH0.ADDRCTRL = DMA_CH_SRCRELOAD_BURST_gc | DMA_CH_SRCDIR_INC_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. + DMA.CH0.ADDRCTRL = DMA_CH_SRCDIR_FIXED_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. DMA.CH0.TRIGSRC = DMA_CH_TRIGSRC_ADCA_CH0_gc; //Triggered from ADCA channel 0 DMA.CH0.TRFCNT = DMA_STANDARD_TRANSFER_LENGTH; @@ -306,8 +311,9 @@ void tiny_dma_set_mode_2(void){ DMA.CH1.CTRLA = DMA_STANDARD_CTRLA; DMA.CH1.CTRLB = DMA_STANDARD_INTERRUPT; - DMA.CH1.ADDRCTRL = DMA_CH_SRCRELOAD_BURST_gc | DMA_CH_SRCDIR_INC_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. - DMA.CH1.TRIGSRC = DMA_CH_TRIGSRC_ADCA_CH0_gc; //Triggered from ADCA channel 0 +// DMA.CH1.ADDRCTRL = DMA_CH_SRCRELOAD_BURST_gc | DMA_CH_SRCDIR_INC_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. + DMA.CH1.ADDRCTRL = DMA_CH_SRCDIR_FIXED_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. + DMA.CH1.TRIGSRC = DMA_CH_TRIGSRC_ADCA_CH2_gc; //Triggered from ADCA channel 2 DMA.CH1.TRFCNT = DMA_STANDARD_TRANSFER_LENGTH; DMA.CH1.SRCADDR0 = (( (uint16_t) &ADCA.CH2.RESL) >> 0) & 0xFF; //Source address is ADC From 12db17303cb07b65a8797c80c4c8b7e2db62b9cc Mon Sep 17 00:00:00 2001 From: brentfpage Date: Fri, 9 Jan 2026 13:01:07 -0800 Subject: [PATCH 015/150] instead made 0x02 target the first --- Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index afb8198ea..a41f24949 100755 --- a/Makefile +++ b/Makefile @@ -109,6 +109,10 @@ $(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.o \ $(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.o \ $(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o +0x02: CFLAGS+=-DSINGLE_ENDPOINT_INTERFACE +0x02: SUFFIX=0x02 +0x02: $(OUTPUT_FILE_PATH) + 0x01: SUFFIX=0x01 0x01: $(OUTPUT_FILE_PATH) @@ -217,10 +221,6 @@ $(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o: $(SRC_DIR)/ASF/xmega/drivers/usb/ @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< -0x02: CFLAGS+=-DSINGLE_ENDPOINT_INTERFACE -0x02: SUFFIX=0x02 -0x02: $(OUTPUT_FILE_PATH) - $(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP) @echo Building target: $@ $(CC) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map=$(NAME)".map" -Wl,-lm -mmcu=atxmega32a4u -Wl,--gc-sections -Wl,--relax From fbb69419ffafcd3a5b7302436e4a6ce46f01310c Mon Sep 17 00:00:00 2001 From: brentfpage Date: Fri, 9 Jan 2026 13:48:35 -0800 Subject: [PATCH 016/150] minimize changes in src --- AVR_Code/USB_BULK_TEST/src/globals.h | 6 +++--- AVR_Code/USB_BULK_TEST/src/tiny_dma.c | 16 +++++----------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/AVR_Code/USB_BULK_TEST/src/globals.h b/AVR_Code/USB_BULK_TEST/src/globals.h index c970302a1..e85cc0b87 100644 --- a/AVR_Code/USB_BULK_TEST/src/globals.h +++ b/AVR_Code/USB_BULK_TEST/src/globals.h @@ -9,11 +9,11 @@ #ifndef GLOBALS_H_ #define GLOBALS_H_ -// #define SINGLE_ENDPOINT_INTERFACE +//#define SINGLE_ENDPOINT_INTERFACE //#define VERO #define OVERCLOCK 48 -#define FIRMWARE_VERSION_ID 0x0006 +#define FIRMWARE_VERSION_ID 0x0007 #define ATMEL_DFU_OFFSET 0x01fc #define TC_SPISLAVE TCD0 @@ -71,4 +71,4 @@ extern const unsigned char variant; #include "unified_debug_structure.h" extern unified_debug uds; -#endif /* GLOBALS_H_ */ +#endif /* GLOBALS_H_ */ \ No newline at end of file diff --git a/AVR_Code/USB_BULK_TEST/src/tiny_dma.c b/AVR_Code/USB_BULK_TEST/src/tiny_dma.c index e38bd14c7..9ce85561b 100644 --- a/AVR_Code/USB_BULK_TEST/src/tiny_dma.c +++ b/AVR_Code/USB_BULK_TEST/src/tiny_dma.c @@ -115,7 +115,6 @@ void tiny_dma_set_mode_0(void){ DMA.CH0.CTRLA = DMA_STANDARD_CTRLA; DMA.CH0.CTRLB = DMA_STANDARD_INTERRUPT; DMA.CH0.ADDRCTRL = DMA_CH_SRCRELOAD_BURST_gc | DMA_CH_SRCDIR_INC_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. - DMA.CH0.ADDRCTRL = DMA_CH_SRCDIR_FIXED_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. DMA.CH0.TRIGSRC = DMA_CH_TRIGSRC_ADCA_CH0_gc; //Triggered from ADCA channel 0 DMA.CH0.TRFCNT = DMA_STANDARD_TRANSFER_LENGTH; @@ -212,8 +211,7 @@ void tiny_dma_set_mode_1(void){ DMA.CH0.CTRLA = DMA_STANDARD_CTRLA; DMA.CH0.CTRLB = DMA_STANDARD_INTERRUPT; -// DMA.CH0.ADDRCTRL = DMA_CH_SRCRELOAD_BURST_gc | DMA_CH_SRCDIR_INC_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. - DMA.CH0.ADDRCTRL = DMA_CH_SRCDIR_FIXED_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. + DMA.CH0.ADDRCTRL = DMA_CH_SRCRELOAD_BURST_gc | DMA_CH_SRCDIR_INC_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. DMA.CH0.TRIGSRC = DMA_CH_TRIGSRC_ADCA_CH0_gc; //Triggered from ADCA channel 0 DMA.CH0.TRFCNT = DMA_STANDARD_TRANSFER_LENGTH; @@ -255,8 +253,7 @@ void tiny_dma_set_mode_2(void){ DMA.CH2.CTRLA = DMA_CH_BURSTLEN_1BYTE_gc | DMA_CH_SINGLE_bm | DMA_CH_REPEAT_bm; } DMA.CH2.CTRLB = 0x00; //No interrupt for DacBuf!! -// DMA.CH2.ADDRCTRL = DMA_CH_DESTRELOAD_BURST_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_SRCRELOAD_BLOCK_gc | DMA_CH_SRCDIR_INC_gc; //Dest reloads after each burst, with byte incrementing. Src reloads at end of block, also incrementing address. - DMA.CH2.ADDRCTRL = DMA_CH_DESTDIR_FIXED_gc | DMA_CH_SRCRELOAD_BLOCK_gc | DMA_CH_SRCDIR_INC_gc; //Dest reloads after each burst, with byte incrementing. Src reloads at end of block, also incrementing address. + DMA.CH2.ADDRCTRL = DMA_CH_DESTRELOAD_BURST_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_SRCRELOAD_BLOCK_gc | DMA_CH_SRCDIR_INC_gc; //Dest reloads after each burst, with byte incrementing. Src reloads at end of block, also incrementing address. DMA.CH2.TRIGSRC = DMA_CH_TRIGSRC_EVSYS_CH1_gc; //Triggered from TCC0 when it hits PER DMA.CH2.TRFCNT = auxDacBufLen; @@ -274,8 +271,7 @@ void tiny_dma_set_mode_2(void){ DMA.CH3.REPCNT = 0; //Repeat forever! DMA.CH3.CTRLA = DMA_CH_BURSTLEN_1BYTE_gc | DMA_CH_SINGLE_bm | DMA_CH_REPEAT_bm; DMA.CH3.CTRLB = 0x00; //Hi interrupt on block complete -// DMA.CH3.ADDRCTRL = DMA_CH_DESTRELOAD_BURST_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_SRCRELOAD_BLOCK_gc | DMA_CH_SRCDIR_INC_gc; //Dest reloads after each burst, with byte incrementing. Src reloads at end of block, also incrementing address. - DMA.CH3.ADDRCTRL = DMA_CH_DESTDIR_FIXED_gc | DMA_CH_SRCRELOAD_BLOCK_gc | DMA_CH_SRCDIR_INC_gc; //Dest reloads after each burst, with byte incrementing. Src reloads at end of block, also incrementing address. + DMA.CH3.ADDRCTRL = DMA_CH_DESTRELOAD_BURST_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_SRCRELOAD_BLOCK_gc | DMA_CH_SRCDIR_INC_gc; //Dest reloads after each burst, with byte incrementing. Src reloads at end of block, also incrementing address. DMA.CH3.TRIGSRC = DMA_CH_TRIGSRC_EVSYS_CH2_gc; //Triggered from TCC0 when it hits PER DMA.CH3.TRFCNT = dacBuf_len; @@ -296,7 +292,6 @@ void tiny_dma_set_mode_2(void){ DMA.CH0.CTRLA = DMA_STANDARD_CTRLA; DMA.CH0.CTRLB = DMA_STANDARD_INTERRUPT; DMA.CH0.ADDRCTRL = DMA_CH_SRCRELOAD_BURST_gc | DMA_CH_SRCDIR_INC_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. - DMA.CH0.ADDRCTRL = DMA_CH_SRCDIR_FIXED_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. DMA.CH0.TRIGSRC = DMA_CH_TRIGSRC_ADCA_CH0_gc; //Triggered from ADCA channel 0 DMA.CH0.TRFCNT = DMA_STANDARD_TRANSFER_LENGTH; @@ -311,9 +306,8 @@ void tiny_dma_set_mode_2(void){ DMA.CH1.CTRLA = DMA_STANDARD_CTRLA; DMA.CH1.CTRLB = DMA_STANDARD_INTERRUPT; -// DMA.CH1.ADDRCTRL = DMA_CH_SRCRELOAD_BURST_gc | DMA_CH_SRCDIR_INC_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. - DMA.CH1.ADDRCTRL = DMA_CH_SRCDIR_FIXED_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. - DMA.CH1.TRIGSRC = DMA_CH_TRIGSRC_ADCA_CH2_gc; //Triggered from ADCA channel 2 + DMA.CH1.ADDRCTRL = DMA_CH_SRCRELOAD_BURST_gc | DMA_CH_SRCDIR_INC_gc | DMA_CH_DESTDIR_INC_gc | DMA_CH_DESTRELOAD_BLOCK_gc; //Source reloads after each burst, with byte incrementing. Dest does not reload, but does increment address. + DMA.CH1.TRIGSRC = DMA_CH_TRIGSRC_ADCA_CH0_gc; //Triggered from ADCA channel 0 DMA.CH1.TRFCNT = DMA_STANDARD_TRANSFER_LENGTH; DMA.CH1.SRCADDR0 = (( (uint16_t) &ADCA.CH2.RESL) >> 0) & 0xFF; //Source address is ADC From 68a86dbb53fbf3017be0b54335a989cbc1a281ac Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 16:53:39 -0800 Subject: [PATCH 017/150] trying to add a configurable directory in which to run make --- .github/workflows/avr.yml | 5 +- Makefile | 243 -------------------------------------- 2 files changed, 3 insertions(+), 245 deletions(-) delete mode 100755 Makefile diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index e25a2773d..2f8960761 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -14,8 +14,9 @@ jobs: runs-on: ubuntu-latest steps: # - name : Checkout repository - - uses: actions/checkout@v4 - - uses: bazhenov/action-avr-make@v1.0 + - uses: /.github/workflows/action-avr-make + with: + dir: AVR_Code # - name: Install GNU AVR tools and run make diff --git a/Makefile b/Makefile deleted file mode 100755 index a41f24949..000000000 --- a/Makefile +++ /dev/null @@ -1,243 +0,0 @@ -# see https://github.com/espotek-org/Labrador/wiki/Building-from-source#building-the-firmware -# Usage : -# make 0x01 -# build a version of the firmware compatible with Windows x64 OSs -# make 0x02 -# build a version of the firmware compatible with all other OSs -# Here, OS refers to that of the machine with which the Labrador board will interface. -# After running 'make 0x01', to switch to building variant 0x02 instead, first run 'make clean'. -# The same goes for switching from building the 0x02 variant to building the 0x01 variant. -# Some details: -# In the build process for variant 0x01, the macro SINGLE_ENDPOINT_INTERFACE -# is undefined, while in the build process for variant 0x02, -# SINGLE_ENDPOINT_INTERFACE is defined. In several regions of the source -# code, the undefined/defined status of this macro determines which of two -# possible code blocks are compiled into the firmware. The collective effect -# of having SINGLE_ENDPOINT_INTERFACE defined is to "change the headers so -# that it uses 1x 1023-byte isochronous endpoint, rather than 6x 128-byte -# endpoints to send the scope/logic analyzer data" (from -# https://github.com/espotek-org/Labrador/issues/260) -# *NOTE* : there is a commented-out line defining SINGLE_ENDPOINT_INTERFACE in -# globals.h. If it is uncommented, both 'make 0x01' and 'make 0x02' will -# produce variant 0x02. Further, 'make 0x01' will mislabel the firmware with -# the suffix 0x01. It is recommended that this line in globals.h be left -# commented-out, which ensures that `make 0x01` and `make 0x02` work as -# expected. -EXECUTABLES := -LIB_DEP := -LIBS := -USER_OBJS := -OUTPUT_FILE_PATH := -OUTPUT_FILE_PATH =$(NAME).elf -OUTPUT_FILE_PATH_AS_ARGS +=$(NAME).elf -AVR_APP_PATH :=$$$AVR_APP_PATH$$$ - -CC=avr-gcc -SRC_DIR=./AVR_Code/USB_BULK_TEST/src - -INCLUDES=-I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example" -I"$(SRC_DIR)/ASF/common/services/usb/udc" -I"$(SRC_DIR)/ASF/xmega/drivers/nvm" -I"$(SRC_DIR)/ASF/common/services/sleepmgr" -I"$(SRC_DIR)/ASF/common/services/clock" -I"$(SRC_DIR)/ASF/xmega/drivers/sleep" -I"$(SRC_DIR)/ASF/xmega/drivers/usb" -I"$(SRC_DIR)/ASF/xmega/drivers/cpu" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device" -I"$(SRC_DIR)/ASF/common/services/usb" -I"$(SRC_DIR)mon/applications/user_application/user_board/config" -I"$(SRC_DIR)/ASF/xmega/utils" -I"$(SRC_DIR)/config" -I"$(SRC_DIR)/ASF/common/boards" -I"$(SRC_DIR)/ASF/xmega/utils/preprocessor" -I"$(SRC_DIR)/ASF/common/utils" -I"$(SRC_DIR)" -I"$(SRC_DIR)/ASF/common/boards/user_board" -I"$(SRC_DIR)/ASF/common/services/ioport" - -CFLAGS=-std=gnu99 -ffunction-sections -mmcu=atxmega32a4u -fsigned-char -funsigned-bitfields -fdata-sections -fshort-enums -fno-strict-aliasing -fno-jump-tables -fpack-struct -Wall -O2 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -NAME=labrafirm_$(SUFFIX) - -OBJS += \ -$(SRC_DIR)/tiny_calibration.o \ -$(SRC_DIR)/tiny_dig.o \ -$(SRC_DIR)/tiny_eeprom.o \ -$(SRC_DIR)/ASF/common/boards/user_board/init.o \ -$(SRC_DIR)/ASF/common/services/ioport/xmega/ioport_compat.o \ -$(SRC_DIR)/main.o \ -$(SRC_DIR)/tiny_adc.o \ -$(SRC_DIR)/tiny_dac.o \ -$(SRC_DIR)/tiny_dma.o \ -$(SRC_DIR)/tiny_timer.o \ -$(SRC_DIR)/tiny_uart.o \ -$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.o \ -$(SRC_DIR)/ASF/common/services/clock/xmega/sysclk.o \ -$(SRC_DIR)/ASF/common/services/sleepmgr/xmega/sleepmgr.o \ -$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor.o \ -$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.o \ -$(SRC_DIR)/ASF/common/services/usb/udc/udc.o \ -$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm.o \ -$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.o \ -$(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.o \ -$(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o - -C_DEPS_AS_ARGS += \ -$(SRC_DIR)/tiny_calibration.d \ -$(SRC_DIR)/tiny_dig.d \ -$(SRC_DIR)/tiny_eeprom.d \ -$(SRC_DIR)/ASF/common/boards/user_board/init.d \ -$(SRC_DIR)/ASF/common/services/ioport/xmega/ioport_compat.d \ -$(SRC_DIR)/main.d \ -$(SRC_DIR)/tiny_adc.d \ -$(SRC_DIR)/tiny_dac.d \ -$(SRC_DIR)/tiny_dma.d \ -$(SRC_DIR)/tiny_timer.d \ -$(SRC_DIR)/tiny_uart.d \ -$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.d \ -$(SRC_DIR)/ASF/common/services/clock/xmega/sysclk.d \ -$(SRC_DIR)/ASF/common/services/sleepmgr/xmega/sleepmgr.d \ -$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor.d \ -$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.d \ -$(SRC_DIR)/ASF/common/services/usb/udc/udc.d \ -$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm.d \ -$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.d \ -$(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.d \ -$(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.d - -OBJS_AS_ARGS += \ -$(SRC_DIR)/tiny_calibration.o \ -$(SRC_DIR)/tiny_dig.o \ -$(SRC_DIR)/tiny_eeprom.o \ -$(SRC_DIR)/ASF/common/boards/user_board/init.o \ -$(SRC_DIR)/ASF/common/services/ioport/xmega/ioport_compat.o \ -$(SRC_DIR)/main.o \ -$(SRC_DIR)/tiny_adc.o \ -$(SRC_DIR)/tiny_dac.o \ -$(SRC_DIR)/tiny_dma.o \ -$(SRC_DIR)/tiny_timer.o \ -$(SRC_DIR)/tiny_uart.o \ -$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.o \ -$(SRC_DIR)/ASF/common/services/clock/xmega/sysclk.o \ -$(SRC_DIR)/ASF/common/services/sleepmgr/xmega/sleepmgr.o \ -$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor.o \ -$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.o \ -$(SRC_DIR)/ASF/common/services/usb/udc/udc.o \ -$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm.o \ -$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.o \ -$(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.o \ -$(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o - -0x02: CFLAGS+=-DSINGLE_ENDPOINT_INTERFACE -0x02: SUFFIX=0x02 -0x02: $(OUTPUT_FILE_PATH) - -0x01: SUFFIX=0x01 -0x01: $(OUTPUT_FILE_PATH) - -$(SRC_DIR)/tiny_calibration.o: $(SRC_DIR)/tiny_calibration.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/tiny_dig.o: $(SRC_DIR)/tiny_dig.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/tiny_eeprom.o: $(SRC_DIR)/tiny_eeprom.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/ASF/common/boards/user_board/init.o: $(SRC_DIR)/ASF/common/boards/user_board/init.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/ASF/common/services/ioport/xmega/ioport_compat.o: $(SRC_DIR)/ASF/common/services/ioport/xmega/ioport_compat.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/main.o: $(SRC_DIR)/main.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/tiny_adc.o: $(SRC_DIR)/tiny_adc.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/tiny_dac.o: $(SRC_DIR)/tiny_dac.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/tiny_dma.o: $(SRC_DIR)/tiny_dma.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/tiny_timer.o: $(SRC_DIR)/tiny_timer.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/tiny_uart.o: $(SRC_DIR)/tiny_uart.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.o: $(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/ASF/common/services/clock/xmega/sysclk.o: $(SRC_DIR)/ASF/common/services/clock/xmega/sysclk.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/ASF/common/services/sleepmgr/xmega/sleepmgr.o: $(SRC_DIR)/ASF/common/services/sleepmgr/xmega/sleepmgr.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor.o: $(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.o: $(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/ASF/common/services/usb/udc/udc.o: $(SRC_DIR)/ASF/common/services/usb/udc/udc.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.o: $(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.s - @echo Building file: $< - @$(CC) -x assembler-with-cpp -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm.o: $(SRC_DIR)/ASF/xmega/drivers/nvm/nvm.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.o: $(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.s - @echo Building file: $< - @$(CC) -x assembler-with-cpp -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o: $(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.c - @echo Building file: $< - @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" - @echo Finished building: $< - -$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP) - @echo Building target: $@ - $(CC) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map=$(NAME)".map" -Wl,-lm -mmcu=atxmega32a4u -Wl,--gc-sections -Wl,--relax - avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature $(NAME)".elf" $(NAME)".hex" - avr-objdump -h -S $(NAME)".elf" > $(NAME)".lss" - avr-objcopy -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O binary $(NAME)".elf" $(NAME)".eep" || exit 0 - avr-objcopy -O srec -R .eeprom -R .fuse -R .lock -R .signature $(NAME)".elf" $(NAME)".srec" - avr-size $(NAME)".elf" - @echo Finished successfully: $(NAME) - -VARIANTS = 0x01 0x02 -clean : - -rm -rf $(OBJS_AS_ARGS) $(EXECUTABLES) - -rm -rf $(C_DEPS_AS_ARGS) - $(foreach SUFFIX,$(VARIANTS), \ - rm -rf $(NAME).hex ; \ - rm -rf $(NAME).lss ; \ - rm -rf $(NAME).eep ; \ - rm -rf $(NAME).srec ; \ - rm -rf $(NAME).elf $(NAME).a $(NAME).map) From 9c0275bce169361a35c10b8be100646c601f3dd5 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 17:00:48 -0800 Subject: [PATCH 018/150] attempt #2 --- .github/workflows/avr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 2f8960761..d45661ff4 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: # - name : Checkout repository - - uses: /.github/workflows/action-avr-make + - uses: action-avr-make with: dir: AVR_Code From 8b98c01917f50f7f967972a300ad4d19ae5bc1a4 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 17:01:31 -0800 Subject: [PATCH 019/150] attempt #3 --- .github/workflows/avr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index d45661ff4..b14225f59 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: # - name : Checkout repository - - uses: action-avr-make + - uses: action-avr-make.yml with: dir: AVR_Code From ba48b969679eaa560dbcf9e2e5ef460073dfd637 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 17:03:34 -0800 Subject: [PATCH 020/150] attempt #4 --- .github/workflows/avr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index b14225f59..e9b5d962c 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: # - name : Checkout repository - - uses: action-avr-make.yml + - uses: ./.github/action-avr-make with: dir: AVR_Code From 3d419ac566f72bb90cf2eac8e70a490a327611b2 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 17:11:14 -0800 Subject: [PATCH 021/150] attempt #5 --- .github/workflows/action-avr-make/action.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .github/workflows/action-avr-make/action.yml diff --git a/.github/workflows/action-avr-make/action.yml b/.github/workflows/action-avr-make/action.yml new file mode 100644 index 000000000..00986ef9c --- /dev/null +++ b/.github/workflows/action-avr-make/action.yml @@ -0,0 +1,14 @@ +name: AVR make +description: Build avr based project with avr toolchain +author: Denis Bazhenov +branding: + icon: terminal + color: black +inputs: + dir: + description: directory in which to run make +runs: + using: docker + image: docker://lpodkalicki/avr-toolchain + entrypoint: make + args: -f AVR_Code/Makefile From 6761b962825c7b61827794ae24344f8926679671 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 17:21:26 -0800 Subject: [PATCH 022/150] attempt #6 --- .github/workflows/avr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index e9b5d962c..e90909cec 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: # - name : Checkout repository - - uses: ./.github/action-avr-make + - uses: ./.github/workflows/action-avr-make with: dir: AVR_Code From fefa807610919209d9cda44007ad9cd623b49c8b Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 17:24:39 -0800 Subject: [PATCH 023/150] attempt #7 --- .github/workflows/avr.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index e90909cec..b9bb754bf 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -13,7 +13,9 @@ jobs: build-avr: runs-on: ubuntu-latest steps: -# - name : Checkout repository + - name : Checkout repository + uses: actions/checkout@v4 + - uses: ./.github/workflows/action-avr-make with: dir: AVR_Code From 5699a5de997b0e16e44f751bd01a8c0e3fda09e4 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 17:25:07 -0800 Subject: [PATCH 024/150] attempt #8 --- .github/workflows/avr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index b9bb754bf..ace84ae53 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest steps: - name : Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v4 - uses: ./.github/workflows/action-avr-make with: From 8b037cedb04411f521e3601516f6b8801abcff68 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 17:33:19 -0800 Subject: [PATCH 025/150] attempt #9 --- .github/workflows/action-avr-make/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/action-avr-make/action.yml b/.github/workflows/action-avr-make/action.yml index 00986ef9c..f05cddc79 100644 --- a/.github/workflows/action-avr-make/action.yml +++ b/.github/workflows/action-avr-make/action.yml @@ -11,4 +11,4 @@ runs: using: docker image: docker://lpodkalicki/avr-toolchain entrypoint: make - args: -f AVR_Code/Makefile + args: '-f AVR_Code/Makefile' From 5b47e46bd56aaee7dc2912753c8b5631230dbca9 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 17:36:14 -0800 Subject: [PATCH 026/150] attempt #10 --- .github/workflows/action-avr-make/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/action-avr-make/action.yml b/.github/workflows/action-avr-make/action.yml index f05cddc79..26edb0c02 100644 --- a/.github/workflows/action-avr-make/action.yml +++ b/.github/workflows/action-avr-make/action.yml @@ -11,4 +11,4 @@ runs: using: docker image: docker://lpodkalicki/avr-toolchain entrypoint: make - args: '-f AVR_Code/Makefile' + args: ['-f AVR_Code/Makefile'] From 6e25da221168ac097e36d21cb6a5c13ab22a7623 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 17:39:05 -0800 Subject: [PATCH 027/150] attempt #11 --- .github/workflows/action-avr-make/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/action-avr-make/action.yml b/.github/workflows/action-avr-make/action.yml index 26edb0c02..89cc831ed 100644 --- a/.github/workflows/action-avr-make/action.yml +++ b/.github/workflows/action-avr-make/action.yml @@ -11,4 +11,4 @@ runs: using: docker image: docker://lpodkalicki/avr-toolchain entrypoint: make - args: ['-f AVR_Code/Makefile'] + args: ['--file=AVR_Code/Makefile'] From 399f709bd21c924e45342c2c8a48fa35b4f68f24 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 17:41:19 -0800 Subject: [PATCH 028/150] added makefile back to AVR_Code --- AVR_Code/Makefile | 243 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 243 insertions(+) create mode 100755 AVR_Code/Makefile diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile new file mode 100755 index 000000000..a41f24949 --- /dev/null +++ b/AVR_Code/Makefile @@ -0,0 +1,243 @@ +# see https://github.com/espotek-org/Labrador/wiki/Building-from-source#building-the-firmware +# Usage : +# make 0x01 +# build a version of the firmware compatible with Windows x64 OSs +# make 0x02 +# build a version of the firmware compatible with all other OSs +# Here, OS refers to that of the machine with which the Labrador board will interface. +# After running 'make 0x01', to switch to building variant 0x02 instead, first run 'make clean'. +# The same goes for switching from building the 0x02 variant to building the 0x01 variant. +# Some details: +# In the build process for variant 0x01, the macro SINGLE_ENDPOINT_INTERFACE +# is undefined, while in the build process for variant 0x02, +# SINGLE_ENDPOINT_INTERFACE is defined. In several regions of the source +# code, the undefined/defined status of this macro determines which of two +# possible code blocks are compiled into the firmware. The collective effect +# of having SINGLE_ENDPOINT_INTERFACE defined is to "change the headers so +# that it uses 1x 1023-byte isochronous endpoint, rather than 6x 128-byte +# endpoints to send the scope/logic analyzer data" (from +# https://github.com/espotek-org/Labrador/issues/260) +# *NOTE* : there is a commented-out line defining SINGLE_ENDPOINT_INTERFACE in +# globals.h. If it is uncommented, both 'make 0x01' and 'make 0x02' will +# produce variant 0x02. Further, 'make 0x01' will mislabel the firmware with +# the suffix 0x01. It is recommended that this line in globals.h be left +# commented-out, which ensures that `make 0x01` and `make 0x02` work as +# expected. +EXECUTABLES := +LIB_DEP := +LIBS := +USER_OBJS := +OUTPUT_FILE_PATH := +OUTPUT_FILE_PATH =$(NAME).elf +OUTPUT_FILE_PATH_AS_ARGS +=$(NAME).elf +AVR_APP_PATH :=$$$AVR_APP_PATH$$$ + +CC=avr-gcc +SRC_DIR=./AVR_Code/USB_BULK_TEST/src + +INCLUDES=-I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example" -I"$(SRC_DIR)/ASF/common/services/usb/udc" -I"$(SRC_DIR)/ASF/xmega/drivers/nvm" -I"$(SRC_DIR)/ASF/common/services/sleepmgr" -I"$(SRC_DIR)/ASF/common/services/clock" -I"$(SRC_DIR)/ASF/xmega/drivers/sleep" -I"$(SRC_DIR)/ASF/xmega/drivers/usb" -I"$(SRC_DIR)/ASF/xmega/drivers/cpu" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device" -I"$(SRC_DIR)/ASF/common/services/usb" -I"$(SRC_DIR)mon/applications/user_application/user_board/config" -I"$(SRC_DIR)/ASF/xmega/utils" -I"$(SRC_DIR)/config" -I"$(SRC_DIR)/ASF/common/boards" -I"$(SRC_DIR)/ASF/xmega/utils/preprocessor" -I"$(SRC_DIR)/ASF/common/utils" -I"$(SRC_DIR)" -I"$(SRC_DIR)/ASF/common/boards/user_board" -I"$(SRC_DIR)/ASF/common/services/ioport" + +CFLAGS=-std=gnu99 -ffunction-sections -mmcu=atxmega32a4u -fsigned-char -funsigned-bitfields -fdata-sections -fshort-enums -fno-strict-aliasing -fno-jump-tables -fpack-struct -Wall -O2 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" +NAME=labrafirm_$(SUFFIX) + +OBJS += \ +$(SRC_DIR)/tiny_calibration.o \ +$(SRC_DIR)/tiny_dig.o \ +$(SRC_DIR)/tiny_eeprom.o \ +$(SRC_DIR)/ASF/common/boards/user_board/init.o \ +$(SRC_DIR)/ASF/common/services/ioport/xmega/ioport_compat.o \ +$(SRC_DIR)/main.o \ +$(SRC_DIR)/tiny_adc.o \ +$(SRC_DIR)/tiny_dac.o \ +$(SRC_DIR)/tiny_dma.o \ +$(SRC_DIR)/tiny_timer.o \ +$(SRC_DIR)/tiny_uart.o \ +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.o \ +$(SRC_DIR)/ASF/common/services/clock/xmega/sysclk.o \ +$(SRC_DIR)/ASF/common/services/sleepmgr/xmega/sleepmgr.o \ +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor.o \ +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.o \ +$(SRC_DIR)/ASF/common/services/usb/udc/udc.o \ +$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm.o \ +$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.o \ +$(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.o \ +$(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o + +C_DEPS_AS_ARGS += \ +$(SRC_DIR)/tiny_calibration.d \ +$(SRC_DIR)/tiny_dig.d \ +$(SRC_DIR)/tiny_eeprom.d \ +$(SRC_DIR)/ASF/common/boards/user_board/init.d \ +$(SRC_DIR)/ASF/common/services/ioport/xmega/ioport_compat.d \ +$(SRC_DIR)/main.d \ +$(SRC_DIR)/tiny_adc.d \ +$(SRC_DIR)/tiny_dac.d \ +$(SRC_DIR)/tiny_dma.d \ +$(SRC_DIR)/tiny_timer.d \ +$(SRC_DIR)/tiny_uart.d \ +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.d \ +$(SRC_DIR)/ASF/common/services/clock/xmega/sysclk.d \ +$(SRC_DIR)/ASF/common/services/sleepmgr/xmega/sleepmgr.d \ +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor.d \ +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.d \ +$(SRC_DIR)/ASF/common/services/usb/udc/udc.d \ +$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm.d \ +$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.d \ +$(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.d \ +$(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.d + +OBJS_AS_ARGS += \ +$(SRC_DIR)/tiny_calibration.o \ +$(SRC_DIR)/tiny_dig.o \ +$(SRC_DIR)/tiny_eeprom.o \ +$(SRC_DIR)/ASF/common/boards/user_board/init.o \ +$(SRC_DIR)/ASF/common/services/ioport/xmega/ioport_compat.o \ +$(SRC_DIR)/main.o \ +$(SRC_DIR)/tiny_adc.o \ +$(SRC_DIR)/tiny_dac.o \ +$(SRC_DIR)/tiny_dma.o \ +$(SRC_DIR)/tiny_timer.o \ +$(SRC_DIR)/tiny_uart.o \ +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.o \ +$(SRC_DIR)/ASF/common/services/clock/xmega/sysclk.o \ +$(SRC_DIR)/ASF/common/services/sleepmgr/xmega/sleepmgr.o \ +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor.o \ +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.o \ +$(SRC_DIR)/ASF/common/services/usb/udc/udc.o \ +$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm.o \ +$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.o \ +$(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.o \ +$(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o + +0x02: CFLAGS+=-DSINGLE_ENDPOINT_INTERFACE +0x02: SUFFIX=0x02 +0x02: $(OUTPUT_FILE_PATH) + +0x01: SUFFIX=0x01 +0x01: $(OUTPUT_FILE_PATH) + +$(SRC_DIR)/tiny_calibration.o: $(SRC_DIR)/tiny_calibration.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/tiny_dig.o: $(SRC_DIR)/tiny_dig.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/tiny_eeprom.o: $(SRC_DIR)/tiny_eeprom.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/ASF/common/boards/user_board/init.o: $(SRC_DIR)/ASF/common/boards/user_board/init.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/ASF/common/services/ioport/xmega/ioport_compat.o: $(SRC_DIR)/ASF/common/services/ioport/xmega/ioport_compat.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/main.o: $(SRC_DIR)/main.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/tiny_adc.o: $(SRC_DIR)/tiny_adc.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/tiny_dac.o: $(SRC_DIR)/tiny_dac.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/tiny_dma.o: $(SRC_DIR)/tiny_dma.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/tiny_timer.o: $(SRC_DIR)/tiny_timer.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/tiny_uart.o: $(SRC_DIR)/tiny_uart.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.o: $(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained/ui.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/ASF/common/services/clock/xmega/sysclk.o: $(SRC_DIR)/ASF/common/services/clock/xmega/sysclk.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/ASF/common/services/sleepmgr/xmega/sleepmgr.o: $(SRC_DIR)/ASF/common/services/sleepmgr/xmega/sleepmgr.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor.o: $(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.o: $(SRC_DIR)/ASF/common/services/usb/class/vendor/device/udi_vendor_desc.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/ASF/common/services/usb/udc/udc.o: $(SRC_DIR)/ASF/common/services/usb/udc/udc.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.o: $(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.s + @echo Building file: $< + @$(CC) -x assembler-with-cpp -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm.o: $(SRC_DIR)/ASF/xmega/drivers/nvm/nvm.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.o: $(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.s + @echo Building file: $< + @$(CC) -x assembler-with-cpp -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o: $(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.c + @echo Building file: $< + @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" + @echo Finished building: $< + +$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP) + @echo Building target: $@ + $(CC) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map=$(NAME)".map" -Wl,-lm -mmcu=atxmega32a4u -Wl,--gc-sections -Wl,--relax + avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature $(NAME)".elf" $(NAME)".hex" + avr-objdump -h -S $(NAME)".elf" > $(NAME)".lss" + avr-objcopy -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O binary $(NAME)".elf" $(NAME)".eep" || exit 0 + avr-objcopy -O srec -R .eeprom -R .fuse -R .lock -R .signature $(NAME)".elf" $(NAME)".srec" + avr-size $(NAME)".elf" + @echo Finished successfully: $(NAME) + +VARIANTS = 0x01 0x02 +clean : + -rm -rf $(OBJS_AS_ARGS) $(EXECUTABLES) + -rm -rf $(C_DEPS_AS_ARGS) + $(foreach SUFFIX,$(VARIANTS), \ + rm -rf $(NAME).hex ; \ + rm -rf $(NAME).lss ; \ + rm -rf $(NAME).eep ; \ + rm -rf $(NAME).srec ; \ + rm -rf $(NAME).elf $(NAME).a $(NAME).map) From 559f169ae198326f823443ae0f3bba99c4eb0a2a Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 17:42:33 -0800 Subject: [PATCH 029/150] worked, and now trying to not hard-code the directory --- .github/workflows/action-avr-make/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/action-avr-make/action.yml b/.github/workflows/action-avr-make/action.yml index 89cc831ed..528f35438 100644 --- a/.github/workflows/action-avr-make/action.yml +++ b/.github/workflows/action-avr-make/action.yml @@ -11,4 +11,4 @@ runs: using: docker image: docker://lpodkalicki/avr-toolchain entrypoint: make - args: ['--file=AVR_Code/Makefile'] + args: ['--file=$(dir)/Makefile'] From 73caa13360070f490da9cf8065aa64a0136d0f03 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 17:45:20 -0800 Subject: [PATCH 030/150] attempt b#2 --- .github/workflows/action-avr-make/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/action-avr-make/action.yml b/.github/workflows/action-avr-make/action.yml index 528f35438..66c7a0e18 100644 --- a/.github/workflows/action-avr-make/action.yml +++ b/.github/workflows/action-avr-make/action.yml @@ -11,4 +11,4 @@ runs: using: docker image: docker://lpodkalicki/avr-toolchain entrypoint: make - args: ['--file=$(dir)/Makefile'] + args: ['--file=${{dir}}/Makefile'] From f30332d25de61253c4f6175ec996acbf2de02303 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 17:47:24 -0800 Subject: [PATCH 031/150] attempt b#3 --- .github/workflows/action-avr-make/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/action-avr-make/action.yml b/.github/workflows/action-avr-make/action.yml index 66c7a0e18..6eb0cad96 100644 --- a/.github/workflows/action-avr-make/action.yml +++ b/.github/workflows/action-avr-make/action.yml @@ -11,4 +11,4 @@ runs: using: docker image: docker://lpodkalicki/avr-toolchain entrypoint: make - args: ['--file=${{dir}}/Makefile'] + args: ['--file=${{github.event.inputs.dir}}/Makefile'] From 4d5bccbc484e4b6e6e4ce9dbeaece83cd89729bc Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 18:22:23 -0800 Subject: [PATCH 032/150] attempt b#4 --- .github/workflows/action-avr-make/action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/action-avr-make/action.yml b/.github/workflows/action-avr-make/action.yml index 6eb0cad96..1e64e084a 100644 --- a/.github/workflows/action-avr-make/action.yml +++ b/.github/workflows/action-avr-make/action.yml @@ -11,4 +11,4 @@ runs: using: docker image: docker://lpodkalicki/avr-toolchain entrypoint: make - args: ['--file=${{github.event.inputs.dir}}/Makefile'] + args: ['--file=${{inputs.dir}}/Makefile'] From 723e931eb97a1abb16354a50485e6ba434d77c8b Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 18:26:09 -0800 Subject: [PATCH 033/150] worked, now will try to put action-avr-make/action.yml in a different repo --- .github/workflows/action-avr-make/action.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/action-avr-make/action.yml b/.github/workflows/action-avr-make/action.yml index 1e64e084a..4a1eca9dc 100644 --- a/.github/workflows/action-avr-make/action.yml +++ b/.github/workflows/action-avr-make/action.yml @@ -7,6 +7,9 @@ branding: inputs: dir: description: directory in which to run make + default: '.' + required: false + type: string runs: using: docker image: docker://lpodkalicki/avr-toolchain From 91335eaf1ab13b9ac6f064d430130b8b7332a773 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 18:37:45 -0800 Subject: [PATCH 034/150] attempt c#1 --- .github/workflows/avr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index ace84ae53..1658d9614 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -16,7 +16,7 @@ jobs: - name : Checkout repository uses: actions/checkout@v4 - - uses: ./.github/workflows/action-avr-make + - uses: brentfpage/action-avr-make with: dir: AVR_Code From a7b296a4e7f51bcea74975810821f1466b445633 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 18:38:30 -0800 Subject: [PATCH 035/150] attempt c#2 --- .github/workflows/avr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 1658d9614..83de8bb29 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -16,7 +16,7 @@ jobs: - name : Checkout repository uses: actions/checkout@v4 - - uses: brentfpage/action-avr-make + - uses: brentfpage/action-avr-make/action.yml@master with: dir: AVR_Code From f9c97dcc1ac26106ea52a8d4636d075b0b33f5f4 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 18:39:16 -0800 Subject: [PATCH 036/150] attempt c#3 --- .github/workflows/avr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 83de8bb29..df107b7af 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -16,7 +16,7 @@ jobs: - name : Checkout repository uses: actions/checkout@v4 - - uses: brentfpage/action-avr-make/action.yml@master + - uses: brentfpage/action-avr-make@master with: dir: AVR_Code From 09207dbab94deaa5c24a81c073da0dcb1e5bf619 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 19:12:24 -0800 Subject: [PATCH 037/150] working; also deleted obsolete workflows/action-avr-make directory in this repo/fork --- .github/workflows/action-avr-make/action.yml | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 .github/workflows/action-avr-make/action.yml diff --git a/.github/workflows/action-avr-make/action.yml b/.github/workflows/action-avr-make/action.yml deleted file mode 100644 index 4a1eca9dc..000000000 --- a/.github/workflows/action-avr-make/action.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: AVR make -description: Build avr based project with avr toolchain -author: Denis Bazhenov -branding: - icon: terminal - color: black -inputs: - dir: - description: directory in which to run make - default: '.' - required: false - type: string -runs: - using: docker - image: docker://lpodkalicki/avr-toolchain - entrypoint: make - args: ['--file=${{inputs.dir}}/Makefile'] From b75690b7cb3442b9353c1d524b88f0ad0873202e Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 19:17:07 -0800 Subject: [PATCH 038/150] change variant notation to match firmware file names in genuine repo --- AVR_Code/Makefile | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index a41f24949..bd9560ffa 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -1,15 +1,15 @@ # see https://github.com/espotek-org/Labrador/wiki/Building-from-source#building-the-firmware # Usage : -# make 0x01 +# make 01 # build a version of the firmware compatible with Windows x64 OSs -# make 0x02 +# make 02 # build a version of the firmware compatible with all other OSs # Here, OS refers to that of the machine with which the Labrador board will interface. -# After running 'make 0x01', to switch to building variant 0x02 instead, first run 'make clean'. -# The same goes for switching from building the 0x02 variant to building the 0x01 variant. +# After running 'make 01', to switch to building variant 02 instead, first run 'make clean'. +# The same goes for switching from building the 02 variant to building the 01 variant. # Some details: -# In the build process for variant 0x01, the macro SINGLE_ENDPOINT_INTERFACE -# is undefined, while in the build process for variant 0x02, +# In the build process for variant 01, the macro SINGLE_ENDPOINT_INTERFACE +# is undefined, while in the build process for variant 02, # SINGLE_ENDPOINT_INTERFACE is defined. In several regions of the source # code, the undefined/defined status of this macro determines which of two # possible code blocks are compiled into the firmware. The collective effect @@ -18,10 +18,10 @@ # endpoints to send the scope/logic analyzer data" (from # https://github.com/espotek-org/Labrador/issues/260) # *NOTE* : there is a commented-out line defining SINGLE_ENDPOINT_INTERFACE in -# globals.h. If it is uncommented, both 'make 0x01' and 'make 0x02' will -# produce variant 0x02. Further, 'make 0x01' will mislabel the firmware with -# the suffix 0x01. It is recommended that this line in globals.h be left -# commented-out, which ensures that `make 0x01` and `make 0x02` work as +# globals.h. If it is uncommented, both 'make 01' and 'make 02' will +# produce variant 02. Further, 'make 01' will mislabel the firmware with +# the suffix 01. It is recommended that this line in globals.h be left +# commented-out, which ensures that `make 01` and `make 02` work as # expected. EXECUTABLES := LIB_DEP := @@ -109,12 +109,12 @@ $(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.o \ $(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.o \ $(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o -0x02: CFLAGS+=-DSINGLE_ENDPOINT_INTERFACE -0x02: SUFFIX=0x02 -0x02: $(OUTPUT_FILE_PATH) +02: CFLAGS+=-DSINGLE_ENDPOINT_INTERFACE +02: SUFFIX=02 +02: $(OUTPUT_FILE_PATH) -0x01: SUFFIX=0x01 -0x01: $(OUTPUT_FILE_PATH) +01: SUFFIX=01 +01: $(OUTPUT_FILE_PATH) $(SRC_DIR)/tiny_calibration.o: $(SRC_DIR)/tiny_calibration.c @echo Building file: $< @@ -231,7 +231,7 @@ $(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER avr-size $(NAME)".elf" @echo Finished successfully: $(NAME) -VARIANTS = 0x01 0x02 +VARIANTS = 01 02 clean : -rm -rf $(OBJS_AS_ARGS) $(EXECUTABLES) -rm -rf $(C_DEPS_AS_ARGS) From 7a88ef20dac6c2232550a8233a9969539fb61ab5 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 19:30:53 -0800 Subject: [PATCH 039/150] trying to make both variants --- .github/workflows/avr.yml | 35 +++++++++++++++++++++++++++-------- AVR_Code/Makefile | 2 ++ 2 files changed, 29 insertions(+), 8 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index df107b7af..1a989c6f0 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -16,23 +16,42 @@ jobs: - name : Checkout repository uses: actions/checkout@v4 - - uses: brentfpage/action-avr-make@master + - uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target with: dir: AVR_Code + target: 01 -# - name: Install GNU AVR tools and run make + - name: Upload variant 01 hex artifacts + uses: actions/upload-artifact@v4 + with: + name: asset-hex + path: labrafirm*01.hex + compression-level: 0 + if-no-files-found: error - # in the future, separate the installation of the tools and the running of make -# - name: compile using make -# working-directory: AVR_Code/USB_BULK_TEST -# run: make 0x02 + - uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target + with: + dir: AVR_Code + target: clean + + - uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target + with: + dir: AVR_Code + target: 02 - - name: Upload hex artifacts + - name: Upload variant 02 hex artifacts uses: actions/upload-artifact@v4 with: name: asset-hex - path: labrafirm*hex + path: labrafirm*01.hex compression-level: 0 if-no-files-found: error +# - name: Install GNU AVR tools and run make + + # in the future, separate the installation of the tools and the running of make +# - name: compile using make +# working-directory: AVR_Code/USB_BULK_TEST +# run: make 0x02 + diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index bd9560ffa..6783aad25 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -109,6 +109,8 @@ $(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.o \ $(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.o \ $(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o +both: 01 02 + 02: CFLAGS+=-DSINGLE_ENDPOINT_INTERFACE 02: SUFFIX=02 02: $(OUTPUT_FILE_PATH) From deed9520cd22707d5291da0fa210a6b3db3a339b Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 19:40:56 -0800 Subject: [PATCH 040/150] 01 and 02 in quotes in avr workflow --- .github/workflows/avr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 1a989c6f0..2179adc37 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -19,7 +19,7 @@ jobs: - uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target with: dir: AVR_Code - target: 01 + target: '01' - name: Upload variant 01 hex artifacts uses: actions/upload-artifact@v4 @@ -37,7 +37,7 @@ jobs: - uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target with: dir: AVR_Code - target: 02 + target: '02' - name: Upload variant 02 hex artifacts uses: actions/upload-artifact@v4 From 43862cb85e031c40a2077403238152d374afede6 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 19:51:56 -0800 Subject: [PATCH 041/150] typo fix --- .github/workflows/avr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 2179adc37..45e917be0 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -43,7 +43,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: asset-hex - path: labrafirm*01.hex + path: labrafirm*02.hex compression-level: 0 if-no-files-found: error From da4a3c02a6973b63ea01d72726f8783895b381f0 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 19:53:09 -0800 Subject: [PATCH 042/150] distinct artifact names --- .github/workflows/avr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 45e917be0..d60c29287 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -24,7 +24,7 @@ jobs: - name: Upload variant 01 hex artifacts uses: actions/upload-artifact@v4 with: - name: asset-hex + name: asset-hex-01 path: labrafirm*01.hex compression-level: 0 if-no-files-found: error @@ -42,7 +42,7 @@ jobs: - name: Upload variant 02 hex artifacts uses: actions/upload-artifact@v4 with: - name: asset-hex + name: asset-hex-02 path: labrafirm*02.hex compression-level: 0 if-no-files-found: error From 156a0b12a3347d529d425a29659e87fc64a9de09 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Sun, 18 Jan 2026 20:26:40 -0800 Subject: [PATCH 043/150] added names for avr build stages --- .github/workflows/avr.yml | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index d60c29287..4db073a2f 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -16,7 +16,8 @@ jobs: - name : Checkout repository uses: actions/checkout@v4 - - uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target + - name : make 01 + uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target with: dir: AVR_Code target: '01' @@ -29,12 +30,14 @@ jobs: compression-level: 0 if-no-files-found: error - - uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target + - name : make clean + uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target with: dir: AVR_Code target: clean - - uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target + - name : make 02 + uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target with: dir: AVR_Code target: '02' @@ -46,12 +49,3 @@ jobs: path: labrafirm*02.hex compression-level: 0 if-no-files-found: error - - -# - name: Install GNU AVR tools and run make - - # in the future, separate the installation of the tools and the running of make -# - name: compile using make -# working-directory: AVR_Code/USB_BULK_TEST -# run: make 0x02 - From 282d92b9f5a7c62b3701609dee1a5f9ddd998220 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 19 Jan 2026 10:35:32 -0800 Subject: [PATCH 044/150] makefile paths rooted in avr_code --- AVR_Code/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index 6783aad25..94ca6648b 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -33,7 +33,7 @@ OUTPUT_FILE_PATH_AS_ARGS +=$(NAME).elf AVR_APP_PATH :=$$$AVR_APP_PATH$$$ CC=avr-gcc -SRC_DIR=./AVR_Code/USB_BULK_TEST/src +SRC_DIR=./USB_BULK_TEST/src INCLUDES=-I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example" -I"$(SRC_DIR)/ASF/common/services/usb/udc" -I"$(SRC_DIR)/ASF/xmega/drivers/nvm" -I"$(SRC_DIR)/ASF/common/services/sleepmgr" -I"$(SRC_DIR)/ASF/common/services/clock" -I"$(SRC_DIR)/ASF/xmega/drivers/sleep" -I"$(SRC_DIR)/ASF/xmega/drivers/usb" -I"$(SRC_DIR)/ASF/xmega/drivers/cpu" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device" -I"$(SRC_DIR)/ASF/common/services/usb" -I"$(SRC_DIR)mon/applications/user_application/user_board/config" -I"$(SRC_DIR)/ASF/xmega/utils" -I"$(SRC_DIR)/config" -I"$(SRC_DIR)/ASF/common/boards" -I"$(SRC_DIR)/ASF/xmega/utils/preprocessor" -I"$(SRC_DIR)/ASF/common/utils" -I"$(SRC_DIR)" -I"$(SRC_DIR)/ASF/common/boards/user_board" -I"$(SRC_DIR)/ASF/common/services/ioport" From bd38d563f0ec55ebb7546d35f73f897c88a79d1f Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 19 Jan 2026 10:36:42 -0800 Subject: [PATCH 045/150] updated asset paths --- .github/workflows/avr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 4db073a2f..c3c5e2841 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -26,7 +26,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: asset-hex-01 - path: labrafirm*01.hex + path: AVR_Code/labrafirm*01.hex compression-level: 0 if-no-files-found: error @@ -46,6 +46,6 @@ jobs: uses: actions/upload-artifact@v4 with: name: asset-hex-02 - path: labrafirm*02.hex + path: AVR_Code/labrafirm*02.hex compression-level: 0 if-no-files-found: error From f01c901e415f464d4d1afe75c0e29016de562ad4 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 19 Jan 2026 11:57:40 -0800 Subject: [PATCH 046/150] trying non-specified target functionality --- .github/workflows/avr.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index c3c5e2841..5a8395f90 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -20,7 +20,6 @@ jobs: uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target with: dir: AVR_Code - target: '01' - name: Upload variant 01 hex artifacts uses: actions/upload-artifact@v4 From c3b2ca92c9df9498fa128c57c5660283f126608f Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 19 Jan 2026 17:36:32 -0800 Subject: [PATCH 047/150] update --- AVR_Code/Makefile | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index 94ca6648b..23c052a85 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -109,15 +109,13 @@ $(SRC_DIR)/ASF/xmega/drivers/nvm/nvm_asm.o \ $(SRC_DIR)/ASF/xmega/drivers/cpu/ccp.o \ $(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o -both: 01 02 +01: SUFFIX=01 +01: $(OUTPUT_FILE_PATH) 02: CFLAGS+=-DSINGLE_ENDPOINT_INTERFACE 02: SUFFIX=02 02: $(OUTPUT_FILE_PATH) -01: SUFFIX=01 -01: $(OUTPUT_FILE_PATH) - $(SRC_DIR)/tiny_calibration.o: $(SRC_DIR)/tiny_calibration.c @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" From 34400fa73ecb082f3694c9b1516ef1cc11c559d6 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 19 Jan 2026 17:42:38 -0800 Subject: [PATCH 048/150] update --- .github/workflows/avr.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 5a8395f90..c3c5e2841 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -20,6 +20,7 @@ jobs: uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target with: dir: AVR_Code + target: '01' - name: Upload variant 01 hex artifacts uses: actions/upload-artifact@v4 From b6aaf73488395b6c5aaaab343c8d62f6e8e9ba9a Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 19 Jan 2026 23:09:53 -0800 Subject: [PATCH 049/150] update --- .github/workflows/avr.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index c3c5e2841..2f707950e 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -17,7 +17,7 @@ jobs: uses: actions/checkout@v4 - name : make 01 - uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target + uses: brentfpage/action-avr-make@run_make_in_selected_dir with: dir: AVR_Code target: '01' @@ -31,13 +31,13 @@ jobs: if-no-files-found: error - name : make clean - uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target + uses: brentfpage/action-avr-make@run_make_in_selected_dir with: dir: AVR_Code target: clean - name : make 02 - uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target + uses: brentfpage/action-avr-make@run_make_in_selected_dir with: dir: AVR_Code target: '02' From 07c5b4b217346587c8e630bd93f72c8b75eaea14 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 19 Jan 2026 23:13:52 -0800 Subject: [PATCH 050/150] update --- .github/workflows/avr.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 2f707950e..eb7274724 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -20,7 +20,6 @@ jobs: uses: brentfpage/action-avr-make@run_make_in_selected_dir with: dir: AVR_Code - target: '01' - name: Upload variant 01 hex artifacts uses: actions/upload-artifact@v4 From b66b4a96e0dfc3138633486a0d61b282eeaf8c26 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Tue, 20 Jan 2026 10:52:51 -0800 Subject: [PATCH 051/150] update --- .github/workflows/avr.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index eb7274724..5a8395f90 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -17,7 +17,7 @@ jobs: uses: actions/checkout@v4 - name : make 01 - uses: brentfpage/action-avr-make@run_make_in_selected_dir + uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target with: dir: AVR_Code @@ -30,13 +30,13 @@ jobs: if-no-files-found: error - name : make clean - uses: brentfpage/action-avr-make@run_make_in_selected_dir + uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target with: dir: AVR_Code target: clean - name : make 02 - uses: brentfpage/action-avr-make@run_make_in_selected_dir + uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target with: dir: AVR_Code target: '02' From 5a49c0fc4fe1dfc8b6b37becd91f1c80ee1d09fc Mon Sep 17 00:00:00 2001 From: brentfpage Date: Thu, 22 Jan 2026 12:41:24 -0800 Subject: [PATCH 052/150] update --- .github/workflows/avr.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 5a8395f90..c3c5e2841 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -20,6 +20,7 @@ jobs: uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target with: dir: AVR_Code + target: '01' - name: Upload variant 01 hex artifacts uses: actions/upload-artifact@v4 From 4d388004d1c194046433c9964699863c649acdea Mon Sep 17 00:00:00 2001 From: brentfpage Date: Thu, 22 Jan 2026 12:42:31 -0800 Subject: [PATCH 053/150] update --- .github/workflows/avr.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index c3c5e2841..2f707950e 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -17,7 +17,7 @@ jobs: uses: actions/checkout@v4 - name : make 01 - uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target + uses: brentfpage/action-avr-make@run_make_in_selected_dir with: dir: AVR_Code target: '01' @@ -31,13 +31,13 @@ jobs: if-no-files-found: error - name : make clean - uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target + uses: brentfpage/action-avr-make@run_make_in_selected_dir with: dir: AVR_Code target: clean - name : make 02 - uses: brentfpage/action-avr-make@run_make_in_selected_dir_and_for_selected_target + uses: brentfpage/action-avr-make@run_make_in_selected_dir with: dir: AVR_Code target: '02' From 31f8c27cd318d749ee102a31b0eafbb59c406b67 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Thu, 22 Jan 2026 12:45:50 -0800 Subject: [PATCH 054/150] testing mistakenly omitted target --- .github/workflows/avr.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 2f707950e..eb7274724 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -20,7 +20,6 @@ jobs: uses: brentfpage/action-avr-make@run_make_in_selected_dir with: dir: AVR_Code - target: '01' - name: Upload variant 01 hex artifacts uses: actions/upload-artifact@v4 From cbe752c4e41a88766c9395bbb591e99c253daaf2 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Thu, 22 Jan 2026 16:27:51 -0800 Subject: [PATCH 055/150] trying one zip artifact with both variants --- .github/workflows/avr.yml | 17 +++++------------ AVR_Code/Makefile | 8 ++++---- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index eb7274724..9bff9dce5 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -20,20 +20,13 @@ jobs: uses: brentfpage/action-avr-make@run_make_in_selected_dir with: dir: AVR_Code - - - name: Upload variant 01 hex artifacts - uses: actions/upload-artifact@v4 - with: - name: asset-hex-01 - path: AVR_Code/labrafirm*01.hex - compression-level: 0 - if-no-files-found: error + target: '01' - name : make clean uses: brentfpage/action-avr-make@run_make_in_selected_dir with: dir: AVR_Code - target: clean + target: clean_o_d - name : make 02 uses: brentfpage/action-avr-make@run_make_in_selected_dir @@ -41,10 +34,10 @@ jobs: dir: AVR_Code target: '02' - - name: Upload variant 02 hex artifacts + - name: Upload variant hex artifacts uses: actions/upload-artifact@v4 with: - name: asset-hex-02 - path: AVR_Code/labrafirm*02.hex + name: asset-hex + path: AVR_Code/labrafirm*.hex compression-level: 0 if-no-files-found: error diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index 23c052a85..9afcb672c 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -23,7 +23,6 @@ # the suffix 01. It is recommended that this line in globals.h be left # commented-out, which ensures that `make 01` and `make 02` work as # expected. -EXECUTABLES := LIB_DEP := LIBS := USER_OBJS := @@ -231,10 +230,11 @@ $(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER avr-size $(NAME)".elf" @echo Finished successfully: $(NAME) -VARIANTS = 01 02 -clean : - -rm -rf $(OBJS_AS_ARGS) $(EXECUTABLES) +clean_o_d : + -rm -rf $(OBJS_AS_ARGS) -rm -rf $(C_DEPS_AS_ARGS) +VARIANTS = 01 02 +clean : clean_o_d $(foreach SUFFIX,$(VARIANTS), \ rm -rf $(NAME).hex ; \ rm -rf $(NAME).lss ; \ From 584bc6f02e4bbdec4142af21a8a96c3358e78cee Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 10:25:03 -0800 Subject: [PATCH 056/150] cont. rel. with avr.yml run; trying to use package the .hex output into the mac app --- .github/workflows/avr.yml | 8 +++++++ .github/workflows/continuous.yml | 34 ++++++++++++++++++++---------- .github/workflows/mac.yml | 36 ++++++++++++++++++++++++++++++++ 3 files changed, 67 insertions(+), 11 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 9bff9dce5..e9dca4125 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -6,12 +6,17 @@ permissions: on: workflow_call: + outputs: + RUN_ID: + description: the run-id of the workflow run + value: ${{ jobs.build-avr.outputs.output1 }} workflow_dispatch: push: jobs: build-avr: runs-on: ubuntu-latest + echo steps: - name : Checkout repository uses: actions/checkout@v4 @@ -41,3 +46,6 @@ jobs: path: AVR_Code/labrafirm*.hex compression-level: 0 if-no-files-found: error + + - name: Get workflow run ID + run: echo "RUN_ID=${{ github.run_id }}" >> $GITHUB_OUTPUT diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 18c3a4094..c6fb35539 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -8,27 +8,39 @@ on: workflow_dispatch: jobs: - build-android: - uses: ./.github/workflows/android.yml - secrets: inherit - build-linux: - uses: ./.github/workflows/linux.yml + build-avr: + uses: ./.github/workflows/avr.yml secrets: inherit +# build-android: +# uses: ./.github/workflows/android.yml +# secrets: inherit +# needs: +# - build-avr +# build-linux: +# uses: ./.github/workflows/linux.yml +# secrets: inherit +# needs: +# - build-avr build-mac: uses: ./.github/workflows/mac.yml secrets: inherit - build-windows: - uses: ./.github/workflows/windows.yml - secrets: inherit + needs: + - build-avr +# build-windows: +# uses: ./.github/workflows/windows.yml +# secrets: inherit +# needs: +# - build-avr release: permissions: contents: write needs: - - build-android - - build-linux + - build-avr +# - build-android +# - build-linux - build-mac - - build-windows +# - build-windows if: github.ref == 'refs/heads/master' runs-on: ubuntu-latest steps: diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index c74bd2c01..43cb6d248 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -7,6 +7,10 @@ permissions: on: workflow_dispatch: workflow_call: + inputs: + AVR_RUN_ID: + required: true + type: string push: pull_request: @@ -17,6 +21,38 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Download firmware from most recent continuous release + if: ${{github.event_name != workflow_call}} + +# better alternative to the graphql query below would be to somehow retrieve the run-id of the most recent continuous.yml workflow run, then download the hex asset from that using actions/download-artifact. +# query at most 10 assets from the most recent continuous release (assume there are fewer than 10), find the one that includes 02.hex in the download url + run: + HEX_URL = gh api graphql -f query=' +query { + repository ( owner : "brentfpage", name: "Labrador") { + release ( tagName: "continuous" ) { + releaseAssets(first:10) { + nodes { + downloadUrl + } + } + } + } + } +' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' + wget $HEX_URL + + - name: Download firmware from in-process continuous release + if: ${{github.event_name == workflow_call}} + uses: actions/download-artifact@v4 + with: + run-id: AVR_RUN_ID + github-token: ${{ secrets.GITHUB_TOKEN }} + + - name: move firmware to appropriate directory + run: | + mv *02.hex Desktop_Interface/resources/firmware + - name: Setup Homebrew dependencies run: | brew update From 6a30b4a228dbf154b2d1bc14ed320475a583df11 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 10:26:35 -0800 Subject: [PATCH 057/150] typo fix --- .github/workflows/avr.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index e9dca4125..230c8aa30 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -16,7 +16,6 @@ on: jobs: build-avr: runs-on: ubuntu-latest - echo steps: - name : Checkout repository uses: actions/checkout@v4 From 165ac00f21e149d12103a2da01c8f43cb4e02fb8 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 10:30:57 -0800 Subject: [PATCH 058/150] yaml syntax --- .github/workflows/mac.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 43cb6d248..188e999d9 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -27,18 +27,18 @@ jobs: # better alternative to the graphql query below would be to somehow retrieve the run-id of the most recent continuous.yml workflow run, then download the hex asset from that using actions/download-artifact. # query at most 10 assets from the most recent continuous release (assume there are fewer than 10), find the one that includes 02.hex in the download url run: - HEX_URL = gh api graphql -f query=' -query { - repository ( owner : "brentfpage", name: "Labrador") { - release ( tagName: "continuous" ) { - releaseAssets(first:10) { - nodes { - downloadUrl - } - } - } - } - } + HEX_URL = gh api graphql -f query='\ +query {\ + repository ( owner : "brentfpage", name: "Labrador") {\ + release ( tagName: "continuous" ) {\ + releaseAssets(first:10) {\ + nodes {\ + downloadUrl\ + }\ + }\ + }\ + }\ + }\ ' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' wget $HEX_URL From cd9c95bd6bc890655701a99c5c69a2d11c9e73dc Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 10:33:40 -0800 Subject: [PATCH 059/150] mac.yml syntax debugging --- .github/workflows/mac.yml | 40 +++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 188e999d9..46c409a9e 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -21,26 +21,26 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 - - name: Download firmware from most recent continuous release - if: ${{github.event_name != workflow_call}} - -# better alternative to the graphql query below would be to somehow retrieve the run-id of the most recent continuous.yml workflow run, then download the hex asset from that using actions/download-artifact. -# query at most 10 assets from the most recent continuous release (assume there are fewer than 10), find the one that includes 02.hex in the download url - run: - HEX_URL = gh api graphql -f query='\ -query {\ - repository ( owner : "brentfpage", name: "Labrador") {\ - release ( tagName: "continuous" ) {\ - releaseAssets(first:10) {\ - nodes {\ - downloadUrl\ - }\ - }\ - }\ - }\ - }\ -' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' - wget $HEX_URL +# - name: Download firmware from most recent continuous release +# if: ${{github.event_name != workflow_call}} +# +# # better alternative to the graphql query below would be to somehow retrieve the run-id of the most recent continuous.yml workflow run, then download the hex asset from that using actions/download-artifact. +# # query at most 10 assets from the most recent continuous release (assume there are fewer than 10), find the one that includes 02.hex in the download url +# run: +# HEX_URL = gh api graphql -f query='\ +# query {\ +# repository ( owner : "brentfpage", name: "Labrador") {\ +# release ( tagName: "continuous" ) {\ +# releaseAssets(first:10) {\ +# nodes {\ +# downloadUrl\ +# }\ +# }\ +# }\ +# }\ +# }\ +# ' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' +# wget $HEX_URL - name: Download firmware from in-process continuous release if: ${{github.event_name == workflow_call}} From ce78bbcec42819d1cd17776642e9d86e55c48062 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 10:35:21 -0800 Subject: [PATCH 060/150] mac.yml syntax debugging --- .github/workflows/mac.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 46c409a9e..f5321f1e6 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -43,7 +43,7 @@ jobs: # wget $HEX_URL - name: Download firmware from in-process continuous release - if: ${{github.event_name == workflow_call}} + if: ${{github.event_name == 'workflow_call'}} uses: actions/download-artifact@v4 with: run-id: AVR_RUN_ID From 6b61e0eca9df63306cd10dac39eea0535bbd8db0 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 10:36:47 -0800 Subject: [PATCH 061/150] mac.yml syntax debugging --- .github/workflows/mac.yml | 40 +++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index f5321f1e6..a78c55640 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -21,26 +21,26 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 -# - name: Download firmware from most recent continuous release -# if: ${{github.event_name != workflow_call}} -# -# # better alternative to the graphql query below would be to somehow retrieve the run-id of the most recent continuous.yml workflow run, then download the hex asset from that using actions/download-artifact. -# # query at most 10 assets from the most recent continuous release (assume there are fewer than 10), find the one that includes 02.hex in the download url -# run: -# HEX_URL = gh api graphql -f query='\ -# query {\ -# repository ( owner : "brentfpage", name: "Labrador") {\ -# release ( tagName: "continuous" ) {\ -# releaseAssets(first:10) {\ -# nodes {\ -# downloadUrl\ -# }\ -# }\ -# }\ -# }\ -# }\ -# ' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' -# wget $HEX_URL + - name: Download firmware from most recent continuous release + if: ${{github.event_name != workflow_call}} + +# better alternative to the graphql query below would be to somehow retrieve the run-id of the most recent continuous.yml workflow run, then download the hex asset from that using actions/download-artifact. +# query at most 10 assets from the most recent continuous release (assume there are fewer than 10), find the one that includes 02.hex in the download url + run: + HEX_URL = gh api graphql -f query='\ +query {\ + repository ( owner : "brentfpage", name: "Labrador") {\ + release ( tagName: "continuous" ) {\ + releaseAssets(first:10) {\ + nodes {\ + downloadUrl\ + }\ + }\ + }\ + }\ + }\ +' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' + wget $HEX_URL - name: Download firmware from in-process continuous release if: ${{github.event_name == 'workflow_call'}} From 3173d96ca584565f55234207dbef59c2f6643418 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 10:39:47 -0800 Subject: [PATCH 062/150] mac.yml syntax debugging --- .github/workflows/mac.yml | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index a78c55640..74ed29b47 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -27,19 +27,20 @@ jobs: # better alternative to the graphql query below would be to somehow retrieve the run-id of the most recent continuous.yml workflow run, then download the hex asset from that using actions/download-artifact. # query at most 10 assets from the most recent continuous release (assume there are fewer than 10), find the one that includes 02.hex in the download url run: - HEX_URL = gh api graphql -f query='\ -query {\ - repository ( owner : "brentfpage", name: "Labrador") {\ - release ( tagName: "continuous" ) {\ - releaseAssets(first:10) {\ - nodes {\ - downloadUrl\ - }\ - }\ - }\ - }\ - }\ -' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' + HEX_URL = gh api graphql -f query='query {repository ( owner : "brentfpage", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' +# slightly more pretty version below +# query {\ +# repository ( owner : "brentfpage", name: "Labrador") {\ +# release ( tagName: "continuous" ) {\ +# releaseAssets(first:10) {\ +# nodes {\ +# downloadUrl\ +# }\ +# }\ +# }\ +# }\ +# }\ +# ' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' wget $HEX_URL - name: Download firmware from in-process continuous release From 980abfab4ff73bdddd044e0912118a0d1552fbab Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 10:41:02 -0800 Subject: [PATCH 063/150] mac.yml syntax debugging --- .github/workflows/mac.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 74ed29b47..1d20763f0 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -22,13 +22,13 @@ jobs: uses: actions/checkout@v4 - name: Download firmware from most recent continuous release - if: ${{github.event_name != workflow_call}} + if: ${{github.event_name != 'workflow_call'}} + run: | + HEX_URL = gh api graphql -f query='query {repository ( owner : "brentfpage", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' + wget $HEX_URL # better alternative to the graphql query below would be to somehow retrieve the run-id of the most recent continuous.yml workflow run, then download the hex asset from that using actions/download-artifact. # query at most 10 assets from the most recent continuous release (assume there are fewer than 10), find the one that includes 02.hex in the download url - run: - HEX_URL = gh api graphql -f query='query {repository ( owner : "brentfpage", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' -# slightly more pretty version below # query {\ # repository ( owner : "brentfpage", name: "Labrador") {\ # release ( tagName: "continuous" ) {\ @@ -41,7 +41,6 @@ jobs: # }\ # }\ # ' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' - wget $HEX_URL - name: Download firmware from in-process continuous release if: ${{github.event_name == 'workflow_call'}} From c944631a9b4b3081d370b229ce2471630526f64d Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 10:42:46 -0800 Subject: [PATCH 064/150] mac.yml syntax debugging --- .github/workflows/mac.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 1d20763f0..a8355e742 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -24,7 +24,7 @@ jobs: - name: Download firmware from most recent continuous release if: ${{github.event_name != 'workflow_call'}} run: | - HEX_URL = gh api graphql -f query='query {repository ( owner : "brentfpage", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' + HEX_URL=gh api graphql -f query='query {repository ( owner : "brentfpage", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' wget $HEX_URL # better alternative to the graphql query below would be to somehow retrieve the run-id of the most recent continuous.yml workflow run, then download the hex asset from that using actions/download-artifact. From a40d6070ce9ab6d4efe27ce6c5bb9cfef6e8a1bc Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 10:48:30 -0800 Subject: [PATCH 065/150] mac.yml syntax debugging --- .github/workflows/mac.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index a8355e742..7f4a2ddf7 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -14,6 +14,7 @@ on: push: pull_request: + jobs: build-dmg: runs-on: macos-15-intel @@ -24,8 +25,10 @@ jobs: - name: Download firmware from most recent continuous release if: ${{github.event_name != 'workflow_call'}} run: | - HEX_URL=gh api graphql -f query='query {repository ( owner : "brentfpage", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' - wget $HEX_URL + gh api graphql -f query='query {repository ( owner : "brentfpage", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' +# wget $HEX_URL + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} # better alternative to the graphql query below would be to somehow retrieve the run-id of the most recent continuous.yml workflow run, then download the hex asset from that using actions/download-artifact. # query at most 10 assets from the most recent continuous release (assume there are fewer than 10), find the one that includes 02.hex in the download url From 7f2daf3c0ac61423b97ec3c9ef38673fea3d8b3e Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 10:49:49 -0800 Subject: [PATCH 066/150] mac.yml syntax debugging --- .github/workflows/mac.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 7f4a2ddf7..ed4fed415 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -25,7 +25,7 @@ jobs: - name: Download firmware from most recent continuous release if: ${{github.event_name != 'workflow_call'}} run: | - gh api graphql -f query='query {repository ( owner : "brentfpage", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' + gh api graphql -f query='query {repository ( owner : "espotek-org", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' # wget $HEX_URL env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} From 31fe26cd6c1b3fdcd16b93c777699cf54e27f86c Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 10:59:29 -0800 Subject: [PATCH 067/150] mac.yml syntax debugging --- .github/workflows/mac.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index ed4fed415..38cc991db 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -25,8 +25,8 @@ jobs: - name: Download firmware from most recent continuous release if: ${{github.event_name != 'workflow_call'}} run: | - gh api graphql -f query='query {repository ( owner : "espotek-org", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' -# wget $HEX_URL + HEX_URL=$(gh api graphql -f query='query {repository ( owner : "espotek-org", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]') + wget $HEX_URL env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} From e19c309dd27d84762e913a6ad84a151b6ebec70e Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:01:53 -0800 Subject: [PATCH 068/150] mac.yml syntax debugging --- .github/workflows/mac.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 38cc991db..e5187151e 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -25,6 +25,7 @@ jobs: - name: Download firmware from most recent continuous release if: ${{github.event_name != 'workflow_call'}} run: | + gh api graphql -f query='query {repository ( owner : "espotek-org", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' HEX_URL=$(gh api graphql -f query='query {repository ( owner : "espotek-org", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]') wget $HEX_URL env: From 6d04bcc78d889d5a5bace1976d27ec2e3ef9bf8a Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:04:51 -0800 Subject: [PATCH 069/150] mac.yml syntax debugging --- .github/workflows/mac.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index e5187151e..9459e2b98 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -25,11 +25,11 @@ jobs: - name: Download firmware from most recent continuous release if: ${{github.event_name != 'workflow_call'}} run: | - gh api graphql -f query='query {repository ( owner : "espotek-org", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' + gh api graphql -f query='query {repository ( owner : "espotek-org", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' HEX_URL=$(gh api graphql -f query='query {repository ( owner : "espotek-org", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]') wget $HEX_URL - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} +# env: +# GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} # better alternative to the graphql query below would be to somehow retrieve the run-id of the most recent continuous.yml workflow run, then download the hex asset from that using actions/download-artifact. # query at most 10 assets from the most recent continuous release (assume there are fewer than 10), find the one that includes 02.hex in the download url From 82dc167d702a8fdac87915f3a39b45db08772f65 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:08:36 -0800 Subject: [PATCH 070/150] mac.yml syntax debugging --- .github/workflows/mac.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 9459e2b98..cf39726aa 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -28,8 +28,8 @@ jobs: gh api graphql -f query='query {repository ( owner : "espotek-org", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' HEX_URL=$(gh api graphql -f query='query {repository ( owner : "espotek-org", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]') wget $HEX_URL -# env: -# GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + env: + GH_TOKEN: ${{ github.token }} # better alternative to the graphql query below would be to somehow retrieve the run-id of the most recent continuous.yml workflow run, then download the hex asset from that using actions/download-artifact. # query at most 10 assets from the most recent continuous release (assume there are fewer than 10), find the one that includes 02.hex in the download url From c6769dcafe6059fbc96609fd95c7c9a552708d43 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:12:23 -0800 Subject: [PATCH 071/150] mac.yml syntax debugging --- .github/workflows/mac.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index cf39726aa..fbc24ffee 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -25,8 +25,7 @@ jobs: - name: Download firmware from most recent continuous release if: ${{github.event_name != 'workflow_call'}} run: | - gh api graphql -f query='query {repository ( owner : "espotek-org", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' - HEX_URL=$(gh api graphql -f query='query {repository ( owner : "espotek-org", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]') + HEX_URL=$(gh api graphql -f query='query {repository ( owner : "espotek-org", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' | jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]') wget $HEX_URL env: GH_TOKEN: ${{ github.token }} From 82804063b08d2d9abc92da85dc55ae924fc5b348 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:20:54 -0800 Subject: [PATCH 072/150] trying paired continuous.yml and mac.yml --- .github/workflows/continuous.yml | 2 ++ .github/workflows/mac.yml | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index c6fb35539..b5ac3522f 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -23,6 +23,8 @@ jobs: # - build-avr build-mac: uses: ./.github/workflows/mac.yml + with: + AVR_RUN_ID=${{ needs.build-avr.outputs.AVR_RUN_ID }} secrets: inherit needs: - build-avr diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index fbc24ffee..2e376c9bc 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -33,7 +33,7 @@ jobs: # better alternative to the graphql query below would be to somehow retrieve the run-id of the most recent continuous.yml workflow run, then download the hex asset from that using actions/download-artifact. # query at most 10 assets from the most recent continuous release (assume there are fewer than 10), find the one that includes 02.hex in the download url # query {\ -# repository ( owner : "brentfpage", name: "Labrador") {\ +# repository ( owner : "espotek-org", name: "Labrador") {\ # release ( tagName: "continuous" ) {\ # releaseAssets(first:10) {\ # nodes {\ From b6567284833cdf8b2f6e7289d0fe0978d94f94b2 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:22:08 -0800 Subject: [PATCH 073/150] debugging continuous.yml --- .github/workflows/continuous.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index b5ac3522f..785d538c6 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -22,12 +22,12 @@ jobs: # needs: # - build-avr build-mac: - uses: ./.github/workflows/mac.yml - with: - AVR_RUN_ID=${{ needs.build-avr.outputs.AVR_RUN_ID }} secrets: inherit needs: - build-avr + uses: ./.github/workflows/mac.yml + with: + AVR_RUN_ID=${{ needs.build-avr.outputs.AVR_RUN_ID }} # build-windows: # uses: ./.github/workflows/windows.yml # secrets: inherit From b3236bffe8c0185b4c123efc1a2dd8d4f8e6e797 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:23:27 -0800 Subject: [PATCH 074/150] debugging continuous.yml --- .github/workflows/continuous.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 785d538c6..399652106 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -23,8 +23,7 @@ jobs: # - build-avr build-mac: secrets: inherit - needs: - - build-avr + needs: build-avr uses: ./.github/workflows/mac.yml with: AVR_RUN_ID=${{ needs.build-avr.outputs.AVR_RUN_ID }} From b481af44ec568c780c6ba88a233a1cbc94175f75 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:23:46 -0800 Subject: [PATCH 075/150] debugging continuous.yml --- .github/workflows/continuous.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 399652106..9ff083664 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -26,7 +26,7 @@ jobs: needs: build-avr uses: ./.github/workflows/mac.yml with: - AVR_RUN_ID=${{ needs.build-avr.outputs.AVR_RUN_ID }} + AVR_RUN_ID=${{ build-avr.outputs.AVR_RUN_ID }} # build-windows: # uses: ./.github/workflows/windows.yml # secrets: inherit From b6aa7da6de6af125691b9d1509dda4eb4da09379 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:29:55 -0800 Subject: [PATCH 076/150] debugging continuous.yml --- .github/workflows/continuous.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 9ff083664..7fe23777d 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -24,9 +24,11 @@ jobs: build-mac: secrets: inherit needs: build-avr + steps: + run: | + AVR_RUN_ID=${{ build-avr.outputs.AVR_RUN_ID }} uses: ./.github/workflows/mac.yml - with: - AVR_RUN_ID=${{ build-avr.outputs.AVR_RUN_ID }} + with: AVR_RUN_ID=AVR_RUN_ID # build-windows: # uses: ./.github/workflows/windows.yml # secrets: inherit From a034266e0fd540e8d0c955aa15bb23b5c8aff8ca Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:32:21 -0800 Subject: [PATCH 077/150] debugging continuous.yml --- .github/workflows/continuous.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 7fe23777d..e686534a3 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -25,10 +25,11 @@ jobs: secrets: inherit needs: build-avr steps: - run: | - AVR_RUN_ID=${{ build-avr.outputs.AVR_RUN_ID }} - uses: ./.github/workflows/mac.yml - with: AVR_RUN_ID=AVR_RUN_ID + - name: get hex workflow run id + run: | + AVR_RUN_ID=${{ needs.build-avr.outputs.AVR_RUN_ID }} + uses: ./.github/workflows/mac.yml + with: AVR_RUN_ID=AVR_RUN_ID # build-windows: # uses: ./.github/workflows/windows.yml # secrets: inherit From 6bb544239b04675e48781e91351b78043bb92414 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:34:10 -0800 Subject: [PATCH 078/150] debugging continuous.yml --- .github/workflows/continuous.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index e686534a3..2ab0df5da 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -28,7 +28,7 @@ jobs: - name: get hex workflow run id run: | AVR_RUN_ID=${{ needs.build-avr.outputs.AVR_RUN_ID }} - uses: ./.github/workflows/mac.yml + - uses: ./.github/workflows/mac.yml with: AVR_RUN_ID=AVR_RUN_ID # build-windows: # uses: ./.github/workflows/windows.yml From b629c05748cf057b0bab79f03d0aaaa40b25685b Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:35:40 -0800 Subject: [PATCH 079/150] debugging continuous.yml --- .github/workflows/continuous.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 2ab0df5da..d2576055f 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -29,7 +29,8 @@ jobs: run: | AVR_RUN_ID=${{ needs.build-avr.outputs.AVR_RUN_ID }} - uses: ./.github/workflows/mac.yml - with: AVR_RUN_ID=AVR_RUN_ID + with: + AVR_RUN_ID:AVR_RUN_ID # build-windows: # uses: ./.github/workflows/windows.yml # secrets: inherit From e982ba8f3d28fac1135e01387c374c75095be17c Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:37:01 -0800 Subject: [PATCH 080/150] debugging continuous.yml --- .github/workflows/continuous.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index d2576055f..b6b2c23ef 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -30,7 +30,7 @@ jobs: AVR_RUN_ID=${{ needs.build-avr.outputs.AVR_RUN_ID }} - uses: ./.github/workflows/mac.yml with: - AVR_RUN_ID:AVR_RUN_ID + AVR_RUN_ID: AVR_RUN_ID # build-windows: # uses: ./.github/workflows/windows.yml # secrets: inherit From 4457ce05f5187ce29f45d2548f6e17c67551bd55 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:39:14 -0800 Subject: [PATCH 081/150] debugging continuous.yml --- .github/workflows/continuous.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index b6b2c23ef..326da56d1 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -25,10 +25,11 @@ jobs: secrets: inherit needs: build-avr steps: - - name: get hex workflow run id + - name: process outputs from firmware workflow run: | AVR_RUN_ID=${{ needs.build-avr.outputs.AVR_RUN_ID }} - - uses: ./.github/workflows/mac.yml + - name: run mac workflow + uses: ./.github/workflows/mac.yml with: AVR_RUN_ID: AVR_RUN_ID # build-windows: From 7ce39573334717feb28810c9662519b402f99645 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:40:43 -0800 Subject: [PATCH 082/150] debugging continuous.yml --- .github/workflows/continuous.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 326da56d1..0915392b0 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -24,6 +24,7 @@ jobs: build-mac: secrets: inherit needs: build-avr + runs-on: macos-15-intel steps: - name: process outputs from firmware workflow run: | From de6627d8fd1790c74bebbe4e1aa5658bae23e6c9 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:41:40 -0800 Subject: [PATCH 083/150] debugging continuous.yml --- .github/workflows/continuous.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 0915392b0..b9f08349c 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -23,8 +23,8 @@ jobs: # - build-avr build-mac: secrets: inherit - needs: build-avr - runs-on: macos-15-intel + needs: + - build-avr steps: - name: process outputs from firmware workflow run: | From 2ccdb8656a115fe97a54ba074aac80d4fe62f193 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:44:48 -0800 Subject: [PATCH 084/150] debugging continuous.yml --- .github/workflows/continuous.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index b9f08349c..0c9601f35 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -23,7 +23,7 @@ jobs: # - build-avr build-mac: secrets: inherit - needs: + needs: - build-avr steps: - name: process outputs from firmware workflow From 7e5b7d0a0953845ab12274f8ff789fcbffd00c9a Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:45:53 -0800 Subject: [PATCH 085/150] debugging continuous.yml --- .github/workflows/continuous.yml | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 0c9601f35..3f69968b5 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -26,13 +26,8 @@ jobs: needs: - build-avr steps: - - name: process outputs from firmware workflow - run: | - AVR_RUN_ID=${{ needs.build-avr.outputs.AVR_RUN_ID }} - name: run mac workflow uses: ./.github/workflows/mac.yml - with: - AVR_RUN_ID: AVR_RUN_ID # build-windows: # uses: ./.github/workflows/windows.yml # secrets: inherit From 1b430410a0354b7b1040dabba0ef7ade4184ee80 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:49:03 -0800 Subject: [PATCH 086/150] debugging continuous.yml --- .github/workflows/continuous.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 3f69968b5..bc42bfb3c 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -26,8 +26,14 @@ jobs: needs: - build-avr steps: + - name: process outputs from firmware workflow + run: | + AVR_RUN_ID=${{ needs.build-avr.outputs.AVR_RUN_ID }} + - name: run mac workflow uses: ./.github/workflows/mac.yml + with: + AVR_RUN_ID: AVR_RUN_ID # build-windows: # uses: ./.github/workflows/windows.yml # secrets: inherit From b6727508a97104d0dfd1567363ca3c0a762ad3ba Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:50:02 -0800 Subject: [PATCH 087/150] debugging continuous.yml --- .github/workflows/continuous.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index bc42bfb3c..054350202 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -22,7 +22,6 @@ jobs: # needs: # - build-avr build-mac: - secrets: inherit needs: - build-avr steps: @@ -34,6 +33,7 @@ jobs: uses: ./.github/workflows/mac.yml with: AVR_RUN_ID: AVR_RUN_ID + secrets: inherit # build-windows: # uses: ./.github/workflows/windows.yml # secrets: inherit From 28097be4d7ca4e87cefb16cd85be0b392fb53acc Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:51:45 -0800 Subject: [PATCH 088/150] debugging continuous.yml --- .github/workflows/continuous.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 054350202..9ce778089 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -26,6 +26,7 @@ jobs: - build-avr steps: - name: process outputs from firmware workflow + runs-on: ubuntu-latest run: | AVR_RUN_ID=${{ needs.build-avr.outputs.AVR_RUN_ID }} From e5e0c53c853258555b3387b28724d3a602b9c950 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:52:26 -0800 Subject: [PATCH 089/150] debugging continuous.yml --- .github/workflows/continuous.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 9ce778089..e8765f04c 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -26,15 +26,14 @@ jobs: - build-avr steps: - name: process outputs from firmware workflow - runs-on: ubuntu-latest run: | AVR_RUN_ID=${{ needs.build-avr.outputs.AVR_RUN_ID }} - name: run mac workflow uses: ./.github/workflows/mac.yml + secrets: inherit with: AVR_RUN_ID: AVR_RUN_ID - secrets: inherit # build-windows: # uses: ./.github/workflows/windows.yml # secrets: inherit From 5bbd2884fc940474e1a7cfe3a697f155643676ab Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:53:31 -0800 Subject: [PATCH 090/150] debugging continuous.yml --- .github/workflows/continuous.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index e8765f04c..5c7a31a56 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -31,9 +31,9 @@ jobs: - name: run mac workflow uses: ./.github/workflows/mac.yml - secrets: inherit with: AVR_RUN_ID: AVR_RUN_ID + secrets: inherit # build-windows: # uses: ./.github/workflows/windows.yml # secrets: inherit From c439dd17a244e8f9d36f913d88fc832c60554904 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:54:15 -0800 Subject: [PATCH 091/150] debugging continuous.yml --- .github/workflows/continuous.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 5c7a31a56..3ba755127 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -22,6 +22,7 @@ jobs: # needs: # - build-avr build-mac: + runs-on: ubuntu-latest needs: - build-avr steps: @@ -33,7 +34,7 @@ jobs: uses: ./.github/workflows/mac.yml with: AVR_RUN_ID: AVR_RUN_ID - secrets: inherit + secrets: inherit # build-windows: # uses: ./.github/workflows/windows.yml # secrets: inherit From cf4ed942e71488b52c0fc325398e3ab0ed398c08 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:54:38 -0800 Subject: [PATCH 092/150] debugging continuous.yml --- .github/workflows/continuous.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 3ba755127..64a3cb5cb 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -34,7 +34,7 @@ jobs: uses: ./.github/workflows/mac.yml with: AVR_RUN_ID: AVR_RUN_ID - secrets: inherit + secrets: inherit # build-windows: # uses: ./.github/workflows/windows.yml # secrets: inherit From 9a4f9721e7e031d4ed14065151bab2e203bf46ae Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 11:54:57 -0800 Subject: [PATCH 093/150] debugging continuous.yml --- .github/workflows/continuous.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 64a3cb5cb..6ab4bef86 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -34,7 +34,6 @@ jobs: uses: ./.github/workflows/mac.yml with: AVR_RUN_ID: AVR_RUN_ID - secrets: inherit # build-windows: # uses: ./.github/workflows/windows.yml # secrets: inherit From b24770e7d66a4bf3fb441efca8c439b97400d876 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 12:34:34 -0800 Subject: [PATCH 094/150] debugging continuous.yml --- .github/workflows/continuous.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 6ab4bef86..f476ff57a 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -21,7 +21,7 @@ jobs: # secrets: inherit # needs: # - build-avr - build-mac: + get-avr-run-id: runs-on: ubuntu-latest needs: - build-avr @@ -30,10 +30,14 @@ jobs: run: | AVR_RUN_ID=${{ needs.build-avr.outputs.AVR_RUN_ID }} - - name: run mac workflow - uses: ./.github/workflows/mac.yml - with: - AVR_RUN_ID: AVR_RUN_ID + build-mac: + needs: + - get-avr-run-id + uses: ./.github/workflows/mac.yml + with: + AVR_RUN_ID: AVR_RUN_ID + secrets: inherit + # build-windows: # uses: ./.github/workflows/windows.yml # secrets: inherit From 33a36b37bc899996830f5251507d7656bb4e2914 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 12:35:23 -0800 Subject: [PATCH 095/150] debugging continuous.yml --- .github/workflows/continuous.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index f476ff57a..3af377835 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -29,7 +29,6 @@ jobs: - name: process outputs from firmware workflow run: | AVR_RUN_ID=${{ needs.build-avr.outputs.AVR_RUN_ID }} - build-mac: needs: - get-avr-run-id From 9e3cf04df3eb3579b8c6032b2ba4f2c09c0c7804 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 12:49:09 -0800 Subject: [PATCH 096/150] debugging continuous.yml --- .github/workflows/avr.yml | 2 +- .github/workflows/mac.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 230c8aa30..2dc0452b8 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -14,7 +14,7 @@ on: push: jobs: - build-avr: + build-hex: runs-on: ubuntu-latest steps: - name : Checkout repository diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 2e376c9bc..ee7f77b30 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -25,6 +25,7 @@ jobs: - name: Download firmware from most recent continuous release if: ${{github.event_name != 'workflow_call'}} run: | + echo ${{ github.event_name }} HEX_URL=$(gh api graphql -f query='query {repository ( owner : "espotek-org", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' | jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]') wget $HEX_URL env: From 2606ec9a7f547e87e7a830316507724bd2b6d942 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 12:55:35 -0800 Subject: [PATCH 097/150] debugging continuous.yml --- .github/workflows/mac.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index ee7f77b30..1d61651b8 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -6,11 +6,11 @@ permissions: on: workflow_dispatch: - workflow_call: inputs: AVR_RUN_ID: required: true type: string + workflow_call: push: pull_request: @@ -23,7 +23,7 @@ jobs: uses: actions/checkout@v4 - name: Download firmware from most recent continuous release - if: ${{github.event_name != 'workflow_call'}} + if: ${{github.event_name != 'workflow_dispatch'}} run: | echo ${{ github.event_name }} HEX_URL=$(gh api graphql -f query='query {repository ( owner : "espotek-org", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' | jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]') @@ -31,8 +31,9 @@ jobs: env: GH_TOKEN: ${{ github.token }} -# better alternative to the graphql query below would be to somehow retrieve the run-id of the most recent continuous.yml workflow run, then download the hex asset from that using actions/download-artifact. -# query at most 10 assets from the most recent continuous release (assume there are fewer than 10), find the one that includes 02.hex in the download url +# better alternative to the graphql query above would be to somehow retrieve the run-id of the most recent continuous.yml workflow run, then download the hex asset associated with the run-id using actions/download-artifact. +# query description: get at most 10 assets from the most recent continuous release (assume there are fewer than 10), find the one that includes 02.hex in the download url +# prettified (ish) query: # query {\ # repository ( owner : "espotek-org", name: "Labrador") {\ # release ( tagName: "continuous" ) {\ @@ -47,7 +48,7 @@ jobs: # ' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' - name: Download firmware from in-process continuous release - if: ${{github.event_name == 'workflow_call'}} + if: ${{github.event_name == 'workflow_dispatch'}} uses: actions/download-artifact@v4 with: run-id: AVR_RUN_ID From 81c3862a32faa6855e7dd92bbb33e0ba6bd07598 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 12:56:51 -0800 Subject: [PATCH 098/150] debugging continuous.yml --- .github/workflows/mac.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 1d61651b8..3be10a904 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -11,6 +11,10 @@ on: required: true type: string workflow_call: + inputs: + AVR_RUN_ID: + required: true + type: string push: pull_request: From 934e2be591e2a32fc44e6030dbc33e13a9e9f239 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 13:01:11 -0800 Subject: [PATCH 099/150] debugging continuous.yml --- .github/workflows/continuous.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 3af377835..061636d0e 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -28,6 +28,7 @@ jobs: steps: - name: process outputs from firmware workflow run: | + echo ${{ needs.build-avr.outputs.AVR_RUN_ID }} AVR_RUN_ID=${{ needs.build-avr.outputs.AVR_RUN_ID }} build-mac: needs: From 94915d679a6628981ad0ffcc0a5eae34e80115d6 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 13:05:53 -0800 Subject: [PATCH 100/150] debugging continuous.yml --- .github/workflows/avr.yml | 2 +- .github/workflows/mac.yml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 2dc0452b8..2bce9e07c 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -9,7 +9,7 @@ on: outputs: RUN_ID: description: the run-id of the workflow run - value: ${{ jobs.build-avr.outputs.output1 }} + value: ${{ jobs.build-hex.outputs.output1 }} workflow_dispatch: push: diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 3be10a904..4ab696b94 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -29,7 +29,6 @@ jobs: - name: Download firmware from most recent continuous release if: ${{github.event_name != 'workflow_dispatch'}} run: | - echo ${{ github.event_name }} HEX_URL=$(gh api graphql -f query='query {repository ( owner : "espotek-org", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' | jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]') wget $HEX_URL env: From 5b9ebd45ad6fe70d2a9ca1a3983ef096bf94e604 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 13:09:55 -0800 Subject: [PATCH 101/150] debugging continuous.yml --- .github/workflows/avr.yml | 2 +- .github/workflows/continuous.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 2bce9e07c..7f791bcf3 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -9,7 +9,7 @@ on: outputs: RUN_ID: description: the run-id of the workflow run - value: ${{ jobs.build-hex.outputs.output1 }} + value: ${{ jobs.build-hex.outputs.RUN_ID }} workflow_dispatch: push: diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 061636d0e..d916fc1f0 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -28,8 +28,8 @@ jobs: steps: - name: process outputs from firmware workflow run: | - echo ${{ needs.build-avr.outputs.AVR_RUN_ID }} - AVR_RUN_ID=${{ needs.build-avr.outputs.AVR_RUN_ID }} + echo ${{ needs.build-avr.outputs.RUN_ID }} + AVR_RUN_ID=${{ needs.build-avr.outputs.RUN_ID }} build-mac: needs: - get-avr-run-id From c5286f199e755f042dd8f2e1826f6022b5dbd05f Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 13:15:17 -0800 Subject: [PATCH 102/150] debugging continuous.yml --- .github/workflows/avr.yml | 6 ++---- .github/workflows/continuous.yml | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 7f791bcf3..cdc03db37 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -7,9 +7,7 @@ permissions: on: workflow_call: outputs: - RUN_ID: - description: the run-id of the workflow run - value: ${{ jobs.build-hex.outputs.RUN_ID }} + output1: ${{ jobs.build-hex.outputs.RUN_ID }} workflow_dispatch: push: @@ -47,4 +45,4 @@ jobs: if-no-files-found: error - name: Get workflow run ID - run: echo "RUN_ID=${{ github.run_id }}" >> $GITHUB_OUTPUT + run: echo "RUN_ID=${{ github.run_id }}" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index d916fc1f0..6633e282d 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -28,8 +28,8 @@ jobs: steps: - name: process outputs from firmware workflow run: | - echo ${{ needs.build-avr.outputs.RUN_ID }} - AVR_RUN_ID=${{ needs.build-avr.outputs.RUN_ID }} + echo ${{ needs.build-avr.outputs.output1 }} + AVR_RUN_ID=${{ needs.build-avr.outputs.output1 }} build-mac: needs: - get-avr-run-id From b5390f6eb8e9710989cafc5ceace3337052bfcb2 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 13:17:10 -0800 Subject: [PATCH 103/150] debugging continuous.yml --- .github/workflows/avr.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index cdc03db37..e9e345d4e 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -7,7 +7,9 @@ permissions: on: workflow_call: outputs: - output1: ${{ jobs.build-hex.outputs.RUN_ID }} + output1: + description: the run-id of the workflow run + value: ${{ jobs.build-hex.outputs.RUN_ID }} workflow_dispatch: push: From 9654313a00dcb0c9feb33bf70c279a71152ea2cb Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 13:21:21 -0800 Subject: [PATCH 104/150] debugging continuous.yml --- .github/workflows/avr.yml | 5 ++++- .github/workflows/continuous.yml | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index e9e345d4e..fbce4201c 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -7,7 +7,7 @@ permissions: on: workflow_call: outputs: - output1: + firstword: description: the run-id of the workflow run value: ${{ jobs.build-hex.outputs.RUN_ID }} workflow_dispatch: @@ -16,6 +16,8 @@ on: jobs: build-hex: runs-on: ubuntu-latest + outputs: + output1: ${{ steps.step_get_run_id.outputs.RUN_ID }} steps: - name : Checkout repository uses: actions/checkout@v4 @@ -47,4 +49,5 @@ jobs: if-no-files-found: error - name: Get workflow run ID + id: step_get_run_id run: echo "RUN_ID=${{ github.run_id }}" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 6633e282d..d1c61b132 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -28,8 +28,8 @@ jobs: steps: - name: process outputs from firmware workflow run: | - echo ${{ needs.build-avr.outputs.output1 }} - AVR_RUN_ID=${{ needs.build-avr.outputs.output1 }} + echo ${{ needs.build-avr.outputs.firstword }} + AVR_RUN_ID=${{ needs.build-avr.outputs.firstword }} build-mac: needs: - get-avr-run-id From b6f1a4bba323debd8fb580574d84309d5376787d Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 13:22:40 -0800 Subject: [PATCH 105/150] debugging continuous.yml --- .github/workflows/avr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index fbce4201c..53767b910 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -9,7 +9,7 @@ on: outputs: firstword: description: the run-id of the workflow run - value: ${{ jobs.build-hex.outputs.RUN_ID }} + value: ${{ jobs.build-hex.outputs.output1 }} workflow_dispatch: push: From c2e4f7dbff41c1d12bd9f7fa90ca528811e4d559 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 13:30:28 -0800 Subject: [PATCH 106/150] debugging continuous.yml --- .github/workflows/continuous.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index d1c61b132..7feb0f638 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -21,21 +21,21 @@ jobs: # secrets: inherit # needs: # - build-avr - get-avr-run-id: - runs-on: ubuntu-latest - needs: - - build-avr - steps: - - name: process outputs from firmware workflow - run: | - echo ${{ needs.build-avr.outputs.firstword }} - AVR_RUN_ID=${{ needs.build-avr.outputs.firstword }} +# get-avr-run-id: +# runs-on: ubuntu-latest +# needs: +# - build-avr +# steps: +# - name: process outputs from firmware workflow +# run: | +# echo ${{ needs.build-avr.outputs.firstword }} +# AVR_RUN_ID=${{ needs.build-avr.outputs.firstword }} build-mac: needs: - - get-avr-run-id + - build-avr uses: ./.github/workflows/mac.yml with: - AVR_RUN_ID: AVR_RUN_ID + AVR_RUN_ID: ${{ needs.build-avr.outputs.firstword }} secrets: inherit # build-windows: From 9c27aba8c2e09e55f1a8f30fd5cc1a92de9db5ef Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 13:33:47 -0800 Subject: [PATCH 107/150] debugging continuous.yml --- .github/workflows/mac.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 4ab696b94..af58879c4 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -54,7 +54,7 @@ jobs: if: ${{github.event_name == 'workflow_dispatch'}} uses: actions/download-artifact@v4 with: - run-id: AVR_RUN_ID + run-id: ${{ inputs.AVR_RUN_ID }} github-token: ${{ secrets.GITHUB_TOKEN }} - name: move firmware to appropriate directory From dea5a4dd27bed6bb51eb31528e134d33e14895a3 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 13:36:02 -0800 Subject: [PATCH 108/150] debugging continuous.yml --- .github/workflows/mac.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index af58879c4..a4fa7d407 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -59,7 +59,7 @@ jobs: - name: move firmware to appropriate directory run: | - mv *02.hex Desktop_Interface/resources/firmware + mv asset-hex/*02.hex Desktop_Interface/resources/firmware - name: Setup Homebrew dependencies run: | From c0b8c9fd394bff28e59d7b1ee2688ac0c2ffc1b5 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 13:47:14 -0800 Subject: [PATCH 109/150] debugging continuous.yml --- .github/workflows/avr.yml | 2 +- .github/workflows/continuous.yml | 9 --------- .github/workflows/mac.yml | 2 +- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 53767b910..bd70501ac 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -48,6 +48,6 @@ jobs: compression-level: 0 if-no-files-found: error - - name: Get workflow run ID + - name: Prepare workflow run ID output id: step_get_run_id run: echo "RUN_ID=${{ github.run_id }}" >> "$GITHUB_OUTPUT" diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 7feb0f638..d225e5b98 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -21,15 +21,6 @@ jobs: # secrets: inherit # needs: # - build-avr -# get-avr-run-id: -# runs-on: ubuntu-latest -# needs: -# - build-avr -# steps: -# - name: process outputs from firmware workflow -# run: | -# echo ${{ needs.build-avr.outputs.firstword }} -# AVR_RUN_ID=${{ needs.build-avr.outputs.firstword }} build-mac: needs: - build-avr diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index a4fa7d407..264a61021 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -29,7 +29,7 @@ jobs: - name: Download firmware from most recent continuous release if: ${{github.event_name != 'workflow_dispatch'}} run: | - HEX_URL=$(gh api graphql -f query='query {repository ( owner : "espotek-org", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' | jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]') + HEX_URL=$(gh api graphql -f query='query {repository ( owner : "brentfpage", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' | jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]') wget $HEX_URL env: GH_TOKEN: ${{ github.token }} From 7f93a7cb3e5dc0c4af12abf15187c4d837890e1b Mon Sep 17 00:00:00 2001 From: mi-hol <22799428+mi-hol@users.noreply.github.com> Date: Fri, 23 Jan 2026 14:26:16 +0100 Subject: [PATCH 110/150] cherry-pick Fix MacOS build in forks (#401) * Fix formatting in mac.yml workflow remove "spaces" from an apparently "empty" line causing invalid yaml * Update macOS workflow to check certificate conditions * Add condition for uploading artifacts in mac.yml --- .github/workflows/mac.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 264a61021..c07fd65e4 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -111,12 +111,18 @@ jobs: - name: Build macOS app working-directory: Desktop_Interface run: | - qmake -config release + if ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' ); then + qmake -config release + else + # for debugging + qmake -config debug + fi make -j$(sysctl -n hw.ncpu) macdeployqt Labrador.app -verbose=2 -libpath=build_mac/libdfuprog/lib/ - name: Code sign app bundle working-directory: Desktop_Interface + if: ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' ) run: | # Find the signing identity IDENTITY=$(security find-identity -v -p codesigning | grep "Developer ID Application" | head -1 | awk -F'"' '{print $2}') @@ -136,6 +142,7 @@ jobs: - name: Create and sign DMG working-directory: Desktop_Interface + if: ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' ) run: | # Get the git hash for the filename GIT_HASH=$(git rev-parse --short HEAD) @@ -166,6 +173,7 @@ jobs: APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} + if: ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' ) run: | GIT_HASH=$(git rev-parse --short HEAD) DMG_PATH="Labrador-${GIT_HASH}.dmg" @@ -188,6 +196,7 @@ jobs: spctl -a -vvv -t install "$DMG_PATH" - name: Upload artifacts + if: ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' ) uses: actions/upload-artifact@v4 with: name: asset-dmg From a8fff38a6b83444065bfd6b289b7ded4d31d36e4 Mon Sep 17 00:00:00 2001 From: mi-hol <22799428+mi-hol@users.noreply.github.com> Date: Fri, 23 Jan 2026 12:42:26 +0100 Subject: [PATCH 111/150] tried to cherry-pick from genuine/master --- .github/workflows/mac.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index c07fd65e4..39d6400fd 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -90,6 +90,9 @@ jobs: env: MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }} MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }} + # secrets are only provided in original repo + if: env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' + working-directory: Desktop_Interface run: | # Create keychain KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db @@ -111,7 +114,7 @@ jobs: - name: Build macOS app working-directory: Desktop_Interface run: | - if ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' ); then + if ( -e ${{env.CERTIFICATE_PATH}} ); then qmake -config release else # for debugging @@ -119,10 +122,10 @@ jobs: fi make -j$(sysctl -n hw.ncpu) macdeployqt Labrador.app -verbose=2 -libpath=build_mac/libdfuprog/lib/ - + - name: Code sign app bundle working-directory: Desktop_Interface - if: ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' ) + if: ( -e ${{env.CERTIFICATE_PATH}} ) run: | # Find the signing identity IDENTITY=$(security find-identity -v -p codesigning | grep "Developer ID Application" | head -1 | awk -F'"' '{print $2}') @@ -142,7 +145,7 @@ jobs: - name: Create and sign DMG working-directory: Desktop_Interface - if: ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' ) + if: ( -e ${{env.CERTIFICATE_PATH}} ) run: | # Get the git hash for the filename GIT_HASH=$(git rev-parse --short HEAD) @@ -173,7 +176,7 @@ jobs: APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} - if: ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' ) + if: ( -e ${{env.CERTIFICATE_PATH}} ) run: | GIT_HASH=$(git rev-parse --short HEAD) DMG_PATH="Labrador-${GIT_HASH}.dmg" From d482e129fc537433ad7d5d4755febd18e1ce3a68 Mon Sep 17 00:00:00 2001 From: mi-hol <22799428+mi-hol@users.noreply.github.com> Date: Fri, 23 Jan 2026 14:26:16 +0100 Subject: [PATCH 112/150] Fix MacOS build in forks (#401) * Fix formatting in mac.yml workflow remove "spaces" from an apparently "empty" line causing invalid yaml * Update macOS workflow to check certificate conditions * Add condition for uploading artifacts in mac.yml --- .github/workflows/mac.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 39d6400fd..759e14538 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -114,7 +114,7 @@ jobs: - name: Build macOS app working-directory: Desktop_Interface run: | - if ( -e ${{env.CERTIFICATE_PATH}} ); then + if ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' ); then qmake -config release else # for debugging @@ -122,10 +122,10 @@ jobs: fi make -j$(sysctl -n hw.ncpu) macdeployqt Labrador.app -verbose=2 -libpath=build_mac/libdfuprog/lib/ - + - name: Code sign app bundle working-directory: Desktop_Interface - if: ( -e ${{env.CERTIFICATE_PATH}} ) + if: ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' ) run: | # Find the signing identity IDENTITY=$(security find-identity -v -p codesigning | grep "Developer ID Application" | head -1 | awk -F'"' '{print $2}') @@ -145,7 +145,7 @@ jobs: - name: Create and sign DMG working-directory: Desktop_Interface - if: ( -e ${{env.CERTIFICATE_PATH}} ) + if: ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' ) run: | # Get the git hash for the filename GIT_HASH=$(git rev-parse --short HEAD) @@ -176,7 +176,7 @@ jobs: APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }} APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} - if: ( -e ${{env.CERTIFICATE_PATH}} ) + if: ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' ) run: | GIT_HASH=$(git rev-parse --short HEAD) DMG_PATH="Labrador-${GIT_HASH}.dmg" From 9c6de2039b6b1a9a6bd2ae33b9a8d12f2416fbc5 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 14:26:19 -0800 Subject: [PATCH 113/150] debugging continuous.yml --- .github/workflows/avr.yml | 2 +- .github/workflows/continuous.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index bd70501ac..928b9223c 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -40,7 +40,7 @@ jobs: dir: AVR_Code target: '02' - - name: Upload variant hex artifacts + - name: Upload hex artifacts uses: actions/upload-artifact@v4 with: name: asset-hex diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index d225e5b98..0d3f24b00 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -44,7 +44,7 @@ jobs: # - build-linux - build-mac # - build-windows - if: github.ref == 'refs/heads/master' +# if: github.ref == 'refs/heads/master' runs-on: ubuntu-latest steps: - name: Download artifacts From 71d3b5b4de3fdf8c09ab4967b5affc8f73d354c2 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 14:58:27 -0800 Subject: [PATCH 114/150] debugging continuous.yml --- .github/workflows/continuous.yml | 2 +- .github/workflows/mac.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/continuous.yml b/.github/workflows/continuous.yml index 0d3f24b00..d225e5b98 100644 --- a/.github/workflows/continuous.yml +++ b/.github/workflows/continuous.yml @@ -44,7 +44,7 @@ jobs: # - build-linux - build-mac # - build-windows -# if: github.ref == 'refs/heads/master' + if: github.ref == 'refs/heads/master' runs-on: ubuntu-latest steps: - name: Download artifacts diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 759e14538..510ca8ffe 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -8,12 +8,12 @@ on: workflow_dispatch: inputs: AVR_RUN_ID: - required: true + required: false type: string workflow_call: inputs: AVR_RUN_ID: - required: true + required: false type: string push: pull_request: From e5026101b844af06bb17f773f7877ce026f9a0cd Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 15:00:28 -0800 Subject: [PATCH 115/150] debugging continuous.yml --- .github/workflows/mac.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 510ca8ffe..5a28a2050 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -30,6 +30,8 @@ jobs: if: ${{github.event_name != 'workflow_dispatch'}} run: | HEX_URL=$(gh api graphql -f query='query {repository ( owner : "brentfpage", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' | jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]') + echo $HEX_URL + echo 'reached' wget $HEX_URL env: GH_TOKEN: ${{ github.token }} From b5c532e70f688915392ec00b26b9e36d33cc9686 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 15:03:31 -0800 Subject: [PATCH 116/150] debugging continuous.yml --- .github/workflows/mac.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 5a28a2050..f5523c5b6 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -29,9 +29,7 @@ jobs: - name: Download firmware from most recent continuous release if: ${{github.event_name != 'workflow_dispatch'}} run: | - HEX_URL=$(gh api graphql -f query='query {repository ( owner : "brentfpage", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' | jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]') - echo $HEX_URL - echo 'reached' + HEX_URL=$(gh api graphql -f query='query {repository ( owner : "brentfpage", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' | jq -r '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]') wget $HEX_URL env: GH_TOKEN: ${{ github.token }} From 8cfddc1035c56d1afda5b35e9dc48af77433fc85 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 15:09:13 -0800 Subject: [PATCH 117/150] debugging continuous.yml --- .github/workflows/mac.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index f5523c5b6..87d6a325f 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -29,8 +29,9 @@ jobs: - name: Download firmware from most recent continuous release if: ${{github.event_name != 'workflow_dispatch'}} run: | + mkdir asset-hex HEX_URL=$(gh api graphql -f query='query {repository ( owner : "brentfpage", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' | jq -r '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]') - wget $HEX_URL + wget --directory-prefix=asset-hex $HEX_URL env: GH_TOKEN: ${{ github.token }} From 45a9f9e0001888361dfed8f94efba3927f9ffb38 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 15:31:56 -0800 Subject: [PATCH 118/150] debugging continuous.yml --- .github/workflows/mac.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 87d6a325f..135979090 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -11,10 +11,6 @@ on: required: false type: string workflow_call: - inputs: - AVR_RUN_ID: - required: false - type: string push: pull_request: @@ -29,6 +25,7 @@ jobs: - name: Download firmware from most recent continuous release if: ${{github.event_name != 'workflow_dispatch'}} run: | + echo ${{github.event_name}} mkdir asset-hex HEX_URL=$(gh api graphql -f query='query {repository ( owner : "brentfpage", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' | jq -r '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]') wget --directory-prefix=asset-hex $HEX_URL From a6fd22c70be55bc1911d3778c8fd317b2c4a3e8b Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 15:45:30 -0800 Subject: [PATCH 119/150] debugging continuous.yml --- .github/workflows/avr.yml | 6 +++--- .github/workflows/mac.yml | 5 ++--- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 928b9223c..3fe307f1c 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -23,19 +23,19 @@ jobs: uses: actions/checkout@v4 - name : make 01 - uses: brentfpage/action-avr-make@run_make_in_selected_dir + uses: bazhenov/action-avr-make@v1.1 with: dir: AVR_Code target: '01' - name : make clean - uses: brentfpage/action-avr-make@run_make_in_selected_dir + uses: bazhenov/action-avr-make@v1.1 with: dir: AVR_Code target: clean_o_d - name : make 02 - uses: brentfpage/action-avr-make@run_make_in_selected_dir + uses: bazhenov/action-avr-make@v1.1 with: dir: AVR_Code target: '02' diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 135979090..0cc34ca6b 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -8,13 +8,12 @@ on: workflow_dispatch: inputs: AVR_RUN_ID: - required: false + required: true type: string workflow_call: push: pull_request: - jobs: build-dmg: runs-on: macos-15-intel @@ -46,7 +45,7 @@ jobs: # }\ # }\ # }\ -# ' --jq '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' +# ' | jq -r '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' - name: Download firmware from in-process continuous release if: ${{github.event_name == 'workflow_dispatch'}} From ee1e80507c6a0a5927bcc138cc4a871623738940 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 16:12:07 -0800 Subject: [PATCH 120/150] passing expected firmware version from workflow --- .github/workflows/mac.yml | 10 +++++----- Desktop_Interface/Labrador.pro | 2 ++ Desktop_Interface/genericusbdriver.h | 2 +- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 0cc34ca6b..56cd1aab9 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -68,19 +68,19 @@ jobs: - name: Build librador working-directory: Librador_API/___librador/librador run: | - qmake -config release + qmake -config release "EXPECTED_FIRMWARE_VERSION=0x0007" make -j$(sysctl -n hw.ncpu) - name: Build librademo working-directory: Librador_API/___librador/librademo run: | - qmake -config release + qmake -config release "EXPECTED_FIRMWARE_VERSION=0x0007" make -j$(sysctl -n hw.ncpu) - name: Build basicdemo working-directory: Librador_API/___librador/basicdemo run: | - qmake -config release + qmake -config release "EXPECTED_FIRMWARE_VERSION=0x0007" make -j$(sysctl -n hw.ncpu) - name: Import code signing certificate @@ -112,10 +112,10 @@ jobs: working-directory: Desktop_Interface run: | if ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' ); then - qmake -config release + qmake -config release "EXPECTED_FIRMWARE_VERSION=0x0007" else # for debugging - qmake -config debug + qmake -config debug "EXPECTED_FIRMWARE_VERSION=0x0007" fi make -j$(sysctl -n hw.ncpu) macdeployqt Labrador.app -verbose=2 -libpath=build_mac/libdfuprog/lib/ diff --git a/Desktop_Interface/Labrador.pro b/Desktop_Interface/Labrador.pro index fc6d1b480..07b3987d8 100644 --- a/Desktop_Interface/Labrador.pro +++ b/Desktop_Interface/Labrador.pro @@ -32,6 +32,8 @@ equals(QCP_VER,"2"){ message("Using QCP2 with OpenGL support") } +DEFINES += "EXPECTED_FIRMWARE_VERSION={{EXPECTED_FIRMWARE_VERSION}}" + include(ui_elements.pri) MOC_DIR = moc diff --git a/Desktop_Interface/genericusbdriver.h b/Desktop_Interface/genericusbdriver.h index 95dcc7a57..3407a9344 100644 --- a/Desktop_Interface/genericusbdriver.h +++ b/Desktop_Interface/genericusbdriver.h @@ -16,7 +16,7 @@ //#include "buffercontrol.h" #include "unified_debug_structure.h" -#define EXPECTED_FIRMWARE_VERSION 0x0007 +//#define EXPECTED_FIRMWARE_VERSION 0x0007 #ifdef WINDOWS_64_BIT #define DEFINED_EXPECTED_VARIANT 1 From 02a0bd2324915d7f01b6af5ff4fe8a61372090c7 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 16:35:44 -0800 Subject: [PATCH 121/150] debugging: passing expected firmware version from workflow --- .github/workflows/mac.yml | 14 +++++++++----- Desktop_Interface/Labrador.pro | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 56cd1aab9..a128162ff 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -11,6 +11,10 @@ on: required: true type: string workflow_call: + inputs: + AVR_RUN_ID: + required: true + type: string push: pull_request: @@ -68,19 +72,19 @@ jobs: - name: Build librador working-directory: Librador_API/___librador/librador run: | - qmake -config release "EXPECTED_FIRMWARE_VERSION=0x0007" + qmake -config release EXPECTED_FIRMWARE_VERSION=0x0007 make -j$(sysctl -n hw.ncpu) - name: Build librademo working-directory: Librador_API/___librador/librademo run: | - qmake -config release "EXPECTED_FIRMWARE_VERSION=0x0007" + qmake -config release EXPECTED_FIRMWARE_VERSION=0x0007 make -j$(sysctl -n hw.ncpu) - name: Build basicdemo working-directory: Librador_API/___librador/basicdemo run: | - qmake -config release "EXPECTED_FIRMWARE_VERSION=0x0007" + qmake -config release EXPECTED_FIRMWARE_VERSION=0x0007 make -j$(sysctl -n hw.ncpu) - name: Import code signing certificate @@ -112,10 +116,10 @@ jobs: working-directory: Desktop_Interface run: | if ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' ); then - qmake -config release "EXPECTED_FIRMWARE_VERSION=0x0007" + qmake -config release EXPECTED_FIRMWARE_VERSION=0x0007 else # for debugging - qmake -config debug "EXPECTED_FIRMWARE_VERSION=0x0007" + qmake -config debug EXPECTED_FIRMWARE_VERSION=0x0007 fi make -j$(sysctl -n hw.ncpu) macdeployqt Labrador.app -verbose=2 -libpath=build_mac/libdfuprog/lib/ diff --git a/Desktop_Interface/Labrador.pro b/Desktop_Interface/Labrador.pro index 07b3987d8..77659350f 100644 --- a/Desktop_Interface/Labrador.pro +++ b/Desktop_Interface/Labrador.pro @@ -32,7 +32,7 @@ equals(QCP_VER,"2"){ message("Using QCP2 with OpenGL support") } -DEFINES += "EXPECTED_FIRMWARE_VERSION={{EXPECTED_FIRMWARE_VERSION}}" +DEFINES += "EXPECTED_FIRMWARE_VERSION=$${EXPECTED_FIRMWARE_VERSION}" include(ui_elements.pri) From 1cd906f9d6478ff35a4a28257b4d745fd2d6180d Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 16:48:38 -0800 Subject: [PATCH 122/150] set repo-wide AVR_VER variable from settings->(secrets and variables)->actions->variables and trying to use it to define the expected firmware version in mac.yml --- .github/workflows/mac.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index a128162ff..6318b6053 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -72,19 +72,19 @@ jobs: - name: Build librador working-directory: Librador_API/___librador/librador run: | - qmake -config release EXPECTED_FIRMWARE_VERSION=0x0007 + qmake -config release EXPECTED_FIRMWARE_VERSION=${{ vars.AVR_VER }} make -j$(sysctl -n hw.ncpu) - name: Build librademo working-directory: Librador_API/___librador/librademo run: | - qmake -config release EXPECTED_FIRMWARE_VERSION=0x0007 + qmake -config release EXPECTED_FIRMWARE_VERSION=${{ vars.AVR_VER }} make -j$(sysctl -n hw.ncpu) - name: Build basicdemo working-directory: Librador_API/___librador/basicdemo run: | - qmake -config release EXPECTED_FIRMWARE_VERSION=0x0007 + qmake -config release EXPECTED_FIRMWARE_VERSION=${{ vars.AVR_VER }} make -j$(sysctl -n hw.ncpu) - name: Import code signing certificate @@ -116,10 +116,10 @@ jobs: working-directory: Desktop_Interface run: | if ( env.MACOS_CERTIFICATE != '' && env.MACOS_CERTIFICATE_PWD != '' ); then - qmake -config release EXPECTED_FIRMWARE_VERSION=0x0007 + qmake -config release EXPECTED_FIRMWARE_VERSION=${{ vars.AVR_VER }} else # for debugging - qmake -config debug EXPECTED_FIRMWARE_VERSION=0x0007 + qmake -config debug EXPECTED_FIRMWARE_VERSION=${{ vars.AVR_VER }} fi make -j$(sysctl -n hw.ncpu) macdeployqt Labrador.app -verbose=2 -libpath=build_mac/libdfuprog/lib/ From 797a7887b4d63577fbaa97912e77a07b34ecc277 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 17:23:32 -0800 Subject: [PATCH 123/150] in avr.yml, passing repo-wide AVR_VER variable as the FIRMWARE_VERSION_ID macro for the avr code --- .github/workflows/avr.yml | 9 ++++++--- AVR_Code/USB_BULK_TEST/src/globals.h | 4 ++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 3fe307f1c..7b0465b16 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -23,21 +23,24 @@ jobs: uses: actions/checkout@v4 - name : make 01 - uses: bazhenov/action-avr-make@v1.1 + uses: brentfpage/action-avr-make@make-with-flags with: dir: AVR_Code + extra_cflags: '-DFIRMWARE_VERSION_ID=${{ vars.AVR_VER }}' target: '01' - name : make clean - uses: bazhenov/action-avr-make@v1.1 + uses: brentfpage/action-avr-make@make-with-flags with: dir: AVR_Code + extra_cflags: '' target: clean_o_d - name : make 02 - uses: bazhenov/action-avr-make@v1.1 + uses: brentfpage/action-avr-make@make-with-flags with: dir: AVR_Code + extra_cflags: '-DFIRMWARE_VERSION_ID=${{ vars.AVR_VER }}' target: '02' - name: Upload hex artifacts diff --git a/AVR_Code/USB_BULK_TEST/src/globals.h b/AVR_Code/USB_BULK_TEST/src/globals.h index e85cc0b87..f2c00e808 100644 --- a/AVR_Code/USB_BULK_TEST/src/globals.h +++ b/AVR_Code/USB_BULK_TEST/src/globals.h @@ -13,7 +13,7 @@ //#define VERO #define OVERCLOCK 48 -#define FIRMWARE_VERSION_ID 0x0007 +// #define FIRMWARE_VERSION_ID 0x0007 #define ATMEL_DFU_OFFSET 0x01fc #define TC_SPISLAVE TCD0 @@ -71,4 +71,4 @@ extern const unsigned char variant; #include "unified_debug_structure.h" extern unified_debug uds; -#endif /* GLOBALS_H_ */ \ No newline at end of file +#endif /* GLOBALS_H_ */ From d4fb135e5ddf7dbd7f7cca504418dc17d3185bf0 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 17:44:23 -0800 Subject: [PATCH 124/150] update --- .github/workflows/avr.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 7b0465b16..c69391941 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -13,6 +13,7 @@ on: workflow_dispatch: push: + jobs: build-hex: runs-on: ubuntu-latest From 80315817250715908fd6aef822e17da81190fa14 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 18:19:30 -0800 Subject: [PATCH 125/150] still trying to accomodate macro definition in call to make --- .github/workflows/avr.yml | 5 +++-- AVR_Code/Makefile | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index c69391941..34f7a6af2 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -24,11 +24,12 @@ jobs: uses: actions/checkout@v4 - name : make 01 - uses: brentfpage/action-avr-make@make-with-flags + uses: bazhenov/action-avr-make@1.1 with: dir: AVR_Code - extra_cflags: '-DFIRMWARE_VERSION_ID=${{ vars.AVR_VER }}' target: '01' + env: + FIRMWARE_VERSION_ID=0x0007 - name : make clean uses: brentfpage/action-avr-make@make-with-flags diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index 9afcb672c..ae6e32296 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -36,7 +36,7 @@ SRC_DIR=./USB_BULK_TEST/src INCLUDES=-I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example" -I"$(SRC_DIR)/ASF/common/services/usb/udc" -I"$(SRC_DIR)/ASF/xmega/drivers/nvm" -I"$(SRC_DIR)/ASF/common/services/sleepmgr" -I"$(SRC_DIR)/ASF/common/services/clock" -I"$(SRC_DIR)/ASF/xmega/drivers/sleep" -I"$(SRC_DIR)/ASF/xmega/drivers/usb" -I"$(SRC_DIR)/ASF/xmega/drivers/cpu" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device" -I"$(SRC_DIR)/ASF/common/services/usb" -I"$(SRC_DIR)mon/applications/user_application/user_board/config" -I"$(SRC_DIR)/ASF/xmega/utils" -I"$(SRC_DIR)/config" -I"$(SRC_DIR)/ASF/common/boards" -I"$(SRC_DIR)/ASF/xmega/utils/preprocessor" -I"$(SRC_DIR)/ASF/common/utils" -I"$(SRC_DIR)" -I"$(SRC_DIR)/ASF/common/boards/user_board" -I"$(SRC_DIR)/ASF/common/services/ioport" -CFLAGS=-std=gnu99 -ffunction-sections -mmcu=atxmega32a4u -fsigned-char -funsigned-bitfields -fdata-sections -fshort-enums -fno-strict-aliasing -fno-jump-tables -fpack-struct -Wall -O2 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" +CFLAGS=-std=gnu99 -ffunction-sections -mmcu=atxmega32a4u -fsigned-char -funsigned-bitfields -fdata-sections -fshort-enums -fno-strict-aliasing -fno-jump-tables -fpack-struct -Wall -O2 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -DFIRMWARE_VERSION_ID=$(FIRMWARE_VERSION_ID) NAME=labrafirm_$(SUFFIX) OBJS += \ From 78de5923da6a2dc9a70a248dac35fdf588c9d926 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 18:20:16 -0800 Subject: [PATCH 126/150] still trying to accomodate macro definition in call to make --- .github/workflows/avr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 34f7a6af2..b4f86dd9f 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -29,7 +29,7 @@ jobs: dir: AVR_Code target: '01' env: - FIRMWARE_VERSION_ID=0x0007 + FIRMWARE_VERSION_ID: 0x0007 - name : make clean uses: brentfpage/action-avr-make@make-with-flags From c0ea3f6034eb6d3d04728e5c60d0faa8518dce05 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 18:21:25 -0800 Subject: [PATCH 127/150] still trying to accomodate macro definition in call to make --- .github/workflows/avr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index b4f86dd9f..155ff6c4c 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -28,8 +28,8 @@ jobs: with: dir: AVR_Code target: '01' - env: - FIRMWARE_VERSION_ID: 0x0007 + env: + FIRMWARE_VERSION_ID: 0x0007 - name : make clean uses: brentfpage/action-avr-make@make-with-flags From 86fe149fdb49733218a2cabd99c21529cdc25210 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 18:22:06 -0800 Subject: [PATCH 128/150] still trying to accomodate macro definition in call to make --- .github/workflows/avr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 155ff6c4c..d8888abcf 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -24,7 +24,7 @@ jobs: uses: actions/checkout@v4 - name : make 01 - uses: bazhenov/action-avr-make@1.1 + uses: bazhenov/action-avr-make@v1.1 with: dir: AVR_Code target: '01' From 5c5ca3d3a523e7c36a4cafbfc7e52fdc77609c33 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 18:27:12 -0800 Subject: [PATCH 129/150] still trying to accomodate macro definition in call to make --- .github/workflows/avr.yml | 2 +- AVR_Code/Makefile | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index d8888abcf..2598f5140 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -29,7 +29,7 @@ jobs: dir: AVR_Code target: '01' env: - FIRMWARE_VERSION_ID: 0x0007 + FIRMWARE_VERSION_ID: '0x0007' - name : make clean uses: brentfpage/action-avr-make@make-with-flags diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index ae6e32296..443c1783b 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -221,6 +221,7 @@ $(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o: $(SRC_DIR)/ASF/xmega/drivers/usb/ @echo Finished building: $< $(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP) + @echo CFLAGS: $(CFLAGS) @echo Building target: $@ $(CC) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map=$(NAME)".map" -Wl,-lm -mmcu=atxmega32a4u -Wl,--gc-sections -Wl,--relax avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature $(NAME)".elf" $(NAME)".hex" From 5ef46ee8f4668ad9fc2a4bd4c8759fa5174560a6 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 18:30:24 -0800 Subject: [PATCH 130/150] still trying to accomodate macro definition in call to make --- .github/workflows/avr.yml | 10 +++++----- AVR_Code/Makefile | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 2598f5140..330d8a632 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -29,21 +29,21 @@ jobs: dir: AVR_Code target: '01' env: - FIRMWARE_VERSION_ID: '0x0007' + FIRMWARE_VERSION_ID: ${{ vars.AVR_VER }} - name : make clean - uses: brentfpage/action-avr-make@make-with-flags + uses: bazhenov/action-avr-make@v1.1 with: dir: AVR_Code - extra_cflags: '' target: clean_o_d - name : make 02 - uses: brentfpage/action-avr-make@make-with-flags + uses: bazhenov/action-avr-make@v1.1 with: dir: AVR_Code - extra_cflags: '-DFIRMWARE_VERSION_ID=${{ vars.AVR_VER }}' target: '02' + env: + FIRMWARE_VERSION_ID: ${{ vars.AVR_VER }} - name: Upload hex artifacts uses: actions/upload-artifact@v4 diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index 443c1783b..ae6e32296 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -221,7 +221,6 @@ $(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o: $(SRC_DIR)/ASF/xmega/drivers/usb/ @echo Finished building: $< $(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP) - @echo CFLAGS: $(CFLAGS) @echo Building target: $@ $(CC) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map=$(NAME)".map" -Wl,-lm -mmcu=atxmega32a4u -Wl,--gc-sections -Wl,--relax avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature $(NAME)".elf" $(NAME)".hex" From 1fd22c061d94b4ba6a16d0948ef0eb090a0ff951 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 18:33:41 -0800 Subject: [PATCH 131/150] think this is working; printing out cflags in the makefile to make version number easily visible --- AVR_Code/Makefile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index ae6e32296..9d606ed05 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -110,10 +110,12 @@ $(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o 01: SUFFIX=01 01: $(OUTPUT_FILE_PATH) + @echo CFLAGS:$(CFLAGS) 02: CFLAGS+=-DSINGLE_ENDPOINT_INTERFACE 02: SUFFIX=02 02: $(OUTPUT_FILE_PATH) + @echo CFLAGS:$(CFLAGS) $(SRC_DIR)/tiny_calibration.o: $(SRC_DIR)/tiny_calibration.c @echo Building file: $< From d76ceeb87b793c2713dd363e3f7725881dd77c3f Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 18:44:14 -0800 Subject: [PATCH 132/150] likely will not work --- .github/workflows/avr.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 330d8a632..873cde73c 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -24,7 +24,7 @@ jobs: uses: actions/checkout@v4 - name : make 01 - uses: bazhenov/action-avr-make@v1.1 + uses: brentfpage/action-avr-make@make-with-flags with: dir: AVR_Code target: '01' @@ -32,13 +32,13 @@ jobs: FIRMWARE_VERSION_ID: ${{ vars.AVR_VER }} - name : make clean - uses: bazhenov/action-avr-make@v1.1 + uses: brentfpage/action-avr-make@make-with-flags with: dir: AVR_Code target: clean_o_d - name : make 02 - uses: bazhenov/action-avr-make@v1.1 + uses: brentfpage/action-avr-make@make-with-flags with: dir: AVR_Code target: '02' From 39a6b88266d4da7373f57b02f11cc5a4c3634803 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 19:01:56 -0800 Subject: [PATCH 133/150] restored working version --- .github/workflows/avr.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/avr.yml b/.github/workflows/avr.yml index 873cde73c..330d8a632 100644 --- a/.github/workflows/avr.yml +++ b/.github/workflows/avr.yml @@ -24,7 +24,7 @@ jobs: uses: actions/checkout@v4 - name : make 01 - uses: brentfpage/action-avr-make@make-with-flags + uses: bazhenov/action-avr-make@v1.1 with: dir: AVR_Code target: '01' @@ -32,13 +32,13 @@ jobs: FIRMWARE_VERSION_ID: ${{ vars.AVR_VER }} - name : make clean - uses: brentfpage/action-avr-make@make-with-flags + uses: bazhenov/action-avr-make@v1.1 with: dir: AVR_Code target: clean_o_d - name : make 02 - uses: brentfpage/action-avr-make@make-with-flags + uses: bazhenov/action-avr-make@v1.1 with: dir: AVR_Code target: '02' From edd41bf8227dc15aa29f586bd26ca57a6f29ec4a Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 19:20:11 -0800 Subject: [PATCH 134/150] branch mac build depending on whether workflow was called directly or by continuous.yml --- .github/workflows/mac.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 6318b6053..038a251e5 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -26,7 +26,7 @@ jobs: uses: actions/checkout@v4 - name: Download firmware from most recent continuous release - if: ${{github.event_name != 'workflow_dispatch'}} + if: github.event.workflow == '.github/workflows/mac.yml' run: | echo ${{github.event_name}} mkdir asset-hex @@ -52,7 +52,7 @@ jobs: # ' | jq -r '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]' - name: Download firmware from in-process continuous release - if: ${{github.event_name == 'workflow_dispatch'}} + if: github.event.workflow == '.github/workflows/continuous.yml' uses: actions/download-artifact@v4 with: run-id: ${{ inputs.AVR_RUN_ID }} From fe25afd730e153bc799f47a3250b3d371144c09d Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 19:21:54 -0800 Subject: [PATCH 135/150] dont require input for mac.yml workflow_dispatch --- .github/workflows/mac.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 038a251e5..bd0d6cd9c 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -6,10 +6,6 @@ permissions: on: workflow_dispatch: - inputs: - AVR_RUN_ID: - required: true - type: string workflow_call: inputs: AVR_RUN_ID: From 3c7b702f21a8dd5b529aed39a4c99eaf26dc9856 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 19:26:06 -0800 Subject: [PATCH 136/150] debugging --- .github/workflows/mac.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index bd0d6cd9c..5a2450b0f 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -22,7 +22,7 @@ jobs: uses: actions/checkout@v4 - name: Download firmware from most recent continuous release - if: github.event.workflow == '.github/workflows/mac.yml' + if: github.event.workflow != '.github/workflows/continuous.yml' run: | echo ${{github.event_name}} mkdir asset-hex From 00a8527c44bf8bc489e1ca35e66a889ffce1b836 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 19:32:22 -0800 Subject: [PATCH 137/150] removed echo --- .github/workflows/mac.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index 5a2450b0f..045a608d7 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -24,7 +24,6 @@ jobs: - name: Download firmware from most recent continuous release if: github.event.workflow != '.github/workflows/continuous.yml' run: | - echo ${{github.event_name}} mkdir asset-hex HEX_URL=$(gh api graphql -f query='query {repository ( owner : "brentfpage", name: "Labrador") {release ( tagName: "continuous" ) {releaseAssets(first:10) {nodes {downloadUrl}}}}}' | jq -r '.data.repository.release.releaseAssets.nodes[] | select(.downloadUrl| test("02.hex")) | .[]') wget --directory-prefix=asset-hex $HEX_URL From 67cf199bb4837e9b7e6358da6230ebbdda0b26a8 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 20:29:30 -0800 Subject: [PATCH 138/150] add version number to hex name --- AVR_Code/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index 9d606ed05..11b3d5141 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -37,7 +37,7 @@ SRC_DIR=./USB_BULK_TEST/src INCLUDES=-I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example" -I"$(SRC_DIR)/ASF/common/services/usb/udc" -I"$(SRC_DIR)/ASF/xmega/drivers/nvm" -I"$(SRC_DIR)/ASF/common/services/sleepmgr" -I"$(SRC_DIR)/ASF/common/services/clock" -I"$(SRC_DIR)/ASF/xmega/drivers/sleep" -I"$(SRC_DIR)/ASF/xmega/drivers/usb" -I"$(SRC_DIR)/ASF/xmega/drivers/cpu" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device" -I"$(SRC_DIR)/ASF/common/services/usb" -I"$(SRC_DIR)mon/applications/user_application/user_board/config" -I"$(SRC_DIR)/ASF/xmega/utils" -I"$(SRC_DIR)/config" -I"$(SRC_DIR)/ASF/common/boards" -I"$(SRC_DIR)/ASF/xmega/utils/preprocessor" -I"$(SRC_DIR)/ASF/common/utils" -I"$(SRC_DIR)" -I"$(SRC_DIR)/ASF/common/boards/user_board" -I"$(SRC_DIR)/ASF/common/services/ioport" CFLAGS=-std=gnu99 -ffunction-sections -mmcu=atxmega32a4u -fsigned-char -funsigned-bitfields -fdata-sections -fshort-enums -fno-strict-aliasing -fno-jump-tables -fpack-struct -Wall -O2 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -DFIRMWARE_VERSION_ID=$(FIRMWARE_VERSION_ID) -NAME=labrafirm_$(SUFFIX) +NAME=labrafirm_${FIRMWARE_VERSION_ID:2:4}_$(SUFFIX) OBJS += \ $(SRC_DIR)/tiny_calibration.o \ From a5a18711f95322ae58ba2166873567f22cc24aef Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 20:34:32 -0800 Subject: [PATCH 139/150] attempt 2:add version number to hex name --- AVR_Code/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index 11b3d5141..f3287723c 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -37,7 +37,8 @@ SRC_DIR=./USB_BULK_TEST/src INCLUDES=-I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example" -I"$(SRC_DIR)/ASF/common/services/usb/udc" -I"$(SRC_DIR)/ASF/xmega/drivers/nvm" -I"$(SRC_DIR)/ASF/common/services/sleepmgr" -I"$(SRC_DIR)/ASF/common/services/clock" -I"$(SRC_DIR)/ASF/xmega/drivers/sleep" -I"$(SRC_DIR)/ASF/xmega/drivers/usb" -I"$(SRC_DIR)/ASF/xmega/drivers/cpu" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device" -I"$(SRC_DIR)/ASF/common/services/usb" -I"$(SRC_DIR)mon/applications/user_application/user_board/config" -I"$(SRC_DIR)/ASF/xmega/utils" -I"$(SRC_DIR)/config" -I"$(SRC_DIR)/ASF/common/boards" -I"$(SRC_DIR)/ASF/xmega/utils/preprocessor" -I"$(SRC_DIR)/ASF/common/utils" -I"$(SRC_DIR)" -I"$(SRC_DIR)/ASF/common/boards/user_board" -I"$(SRC_DIR)/ASF/common/services/ioport" CFLAGS=-std=gnu99 -ffunction-sections -mmcu=atxmega32a4u -fsigned-char -funsigned-bitfields -fdata-sections -fshort-enums -fno-strict-aliasing -fno-jump-tables -fpack-struct -Wall -O2 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -DFIRMWARE_VERSION_ID=$(FIRMWARE_VERSION_ID) -NAME=labrafirm_${FIRMWARE_VERSION_ID:2:4}_$(SUFFIX) + +NAME=labrafirm_$(subst 2,4,$FIRMWARE_VERSION_ID)_$(SUFFIX) OBJS += \ $(SRC_DIR)/tiny_calibration.o \ From 794067ddaf569373123e1a4a4668c6a8388fbd5c Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 20:36:41 -0800 Subject: [PATCH 140/150] attempt 3:add version number to hex name --- AVR_Code/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index f3287723c..dadba656d 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -38,7 +38,7 @@ INCLUDES=-I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxme CFLAGS=-std=gnu99 -ffunction-sections -mmcu=atxmega32a4u -fsigned-char -funsigned-bitfields -fdata-sections -fshort-enums -fno-strict-aliasing -fno-jump-tables -fpack-struct -Wall -O2 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -DFIRMWARE_VERSION_ID=$(FIRMWARE_VERSION_ID) -NAME=labrafirm_$(subst 2,4,$FIRMWARE_VERSION_ID)_$(SUFFIX) +NAME=labrafirm_$(subst 2,4,$(FIRMWARE_VERSION_ID))_$(SUFFIX) OBJS += \ $(SRC_DIR)/tiny_calibration.o \ From eba849044b3140d7537f67b5ab457dc934e3784e Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 20:45:08 -0800 Subject: [PATCH 141/150] attempt 4:add version number to hex name --- AVR_Code/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index dadba656d..b8370fb26 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -38,7 +38,7 @@ INCLUDES=-I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxme CFLAGS=-std=gnu99 -ffunction-sections -mmcu=atxmega32a4u -fsigned-char -funsigned-bitfields -fdata-sections -fshort-enums -fno-strict-aliasing -fno-jump-tables -fpack-struct -Wall -O2 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -DFIRMWARE_VERSION_ID=$(FIRMWARE_VERSION_ID) -NAME=labrafirm_$(subst 2,4,$(FIRMWARE_VERSION_ID))_$(SUFFIX) +NAME=labrafirm_$${FIRMWARE_VERSION_ID:2:4}_$(SUFFIX) OBJS += \ $(SRC_DIR)/tiny_calibration.o \ From b3643bf91dfa5f94288d85d3fe0862da4efae574 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 20:49:19 -0800 Subject: [PATCH 142/150] same thing --- AVR_Code/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index b8370fb26..caa31ae0e 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -37,8 +37,10 @@ SRC_DIR=./USB_BULK_TEST/src INCLUDES=-I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example" -I"$(SRC_DIR)/ASF/common/services/usb/udc" -I"$(SRC_DIR)/ASF/xmega/drivers/nvm" -I"$(SRC_DIR)/ASF/common/services/sleepmgr" -I"$(SRC_DIR)/ASF/common/services/clock" -I"$(SRC_DIR)/ASF/xmega/drivers/sleep" -I"$(SRC_DIR)/ASF/xmega/drivers/usb" -I"$(SRC_DIR)/ASF/xmega/drivers/cpu" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device" -I"$(SRC_DIR)/ASF/common/services/usb" -I"$(SRC_DIR)mon/applications/user_application/user_board/config" -I"$(SRC_DIR)/ASF/xmega/utils" -I"$(SRC_DIR)/config" -I"$(SRC_DIR)/ASF/common/boards" -I"$(SRC_DIR)/ASF/xmega/utils/preprocessor" -I"$(SRC_DIR)/ASF/common/utils" -I"$(SRC_DIR)" -I"$(SRC_DIR)/ASF/common/boards/user_board" -I"$(SRC_DIR)/ASF/common/services/ioport" CFLAGS=-std=gnu99 -ffunction-sections -mmcu=atxmega32a4u -fsigned-char -funsigned-bitfields -fdata-sections -fshort-enums -fno-strict-aliasing -fno-jump-tables -fpack-struct -Wall -O2 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -DFIRMWARE_VERSION_ID=$(FIRMWARE_VERSION_ID) +@echo CFLAGS:$(CFLAGS) -NAME=labrafirm_$${FIRMWARE_VERSION_ID:2:4}_$(SUFFIX) +NAME=labrafirm_$$(FIRMWARE_VERSION_ID:2:4)_$(SUFFIX) +@echo NAME:$(NAME) OBJS += \ $(SRC_DIR)/tiny_calibration.o \ @@ -111,12 +113,10 @@ $(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o 01: SUFFIX=01 01: $(OUTPUT_FILE_PATH) - @echo CFLAGS:$(CFLAGS) 02: CFLAGS+=-DSINGLE_ENDPOINT_INTERFACE 02: SUFFIX=02 02: $(OUTPUT_FILE_PATH) - @echo CFLAGS:$(CFLAGS) $(SRC_DIR)/tiny_calibration.o: $(SRC_DIR)/tiny_calibration.c @echo Building file: $< From db924b7d996323ab3f7a341f8685b949c33a93fb Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 20:50:26 -0800 Subject: [PATCH 143/150] same thing --- AVR_Code/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index caa31ae0e..537d96a4f 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -40,7 +40,6 @@ CFLAGS=-std=gnu99 -ffunction-sections -mmcu=atxmega32a4u -fsigned-char -funsigne @echo CFLAGS:$(CFLAGS) NAME=labrafirm_$$(FIRMWARE_VERSION_ID:2:4)_$(SUFFIX) -@echo NAME:$(NAME) OBJS += \ $(SRC_DIR)/tiny_calibration.o \ @@ -119,6 +118,7 @@ $(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o 02: $(OUTPUT_FILE_PATH) $(SRC_DIR)/tiny_calibration.o: $(SRC_DIR)/tiny_calibration.c + @echo NAME:$(NAME) @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< From 4e7184ec6ea1ddc7704642669f468e7039fa97ef Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 20:51:39 -0800 Subject: [PATCH 144/150] same thing --- AVR_Code/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index 537d96a4f..ebefb22fc 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -37,7 +37,6 @@ SRC_DIR=./USB_BULK_TEST/src INCLUDES=-I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxmega256a3bu_xmega_a3bu_xplained" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example" -I"$(SRC_DIR)/ASF/common/services/usb/udc" -I"$(SRC_DIR)/ASF/xmega/drivers/nvm" -I"$(SRC_DIR)/ASF/common/services/sleepmgr" -I"$(SRC_DIR)/ASF/common/services/clock" -I"$(SRC_DIR)/ASF/xmega/drivers/sleep" -I"$(SRC_DIR)/ASF/xmega/drivers/usb" -I"$(SRC_DIR)/ASF/xmega/drivers/cpu" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor" -I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device" -I"$(SRC_DIR)/ASF/common/services/usb" -I"$(SRC_DIR)mon/applications/user_application/user_board/config" -I"$(SRC_DIR)/ASF/xmega/utils" -I"$(SRC_DIR)/config" -I"$(SRC_DIR)/ASF/common/boards" -I"$(SRC_DIR)/ASF/xmega/utils/preprocessor" -I"$(SRC_DIR)/ASF/common/utils" -I"$(SRC_DIR)" -I"$(SRC_DIR)/ASF/common/boards/user_board" -I"$(SRC_DIR)/ASF/common/services/ioport" CFLAGS=-std=gnu99 -ffunction-sections -mmcu=atxmega32a4u -fsigned-char -funsigned-bitfields -fdata-sections -fshort-enums -fno-strict-aliasing -fno-jump-tables -fpack-struct -Wall -O2 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -DFIRMWARE_VERSION_ID=$(FIRMWARE_VERSION_ID) -@echo CFLAGS:$(CFLAGS) NAME=labrafirm_$$(FIRMWARE_VERSION_ID:2:4)_$(SUFFIX) @@ -112,13 +111,16 @@ $(SRC_DIR)/ASF/xmega/drivers/usb/usb_device.o 01: SUFFIX=01 01: $(OUTPUT_FILE_PATH) + @echo NAME:$(NAME) + @echo CFLAGS:$(CFLAGS) 02: CFLAGS+=-DSINGLE_ENDPOINT_INTERFACE 02: SUFFIX=02 02: $(OUTPUT_FILE_PATH) + @echo NAME:$(NAME) + @echo CFLAGS:$(CFLAGS) $(SRC_DIR)/tiny_calibration.o: $(SRC_DIR)/tiny_calibration.c - @echo NAME:$(NAME) @echo Building file: $< @$(CC) -DNDEBUG -DBOARD=USER_BOARD $(INCLUDES) $(CFLAGS) -c -o "$@" "$<" @echo Finished building: $< From f4d357e8bc20c68cc1b576f13bde441e0f01927b Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 20:52:47 -0800 Subject: [PATCH 145/150] same thing --- AVR_Code/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index ebefb22fc..2c98e36dc 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -38,7 +38,8 @@ INCLUDES=-I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxme CFLAGS=-std=gnu99 -ffunction-sections -mmcu=atxmega32a4u -fsigned-char -funsigned-bitfields -fdata-sections -fshort-enums -fno-strict-aliasing -fno-jump-tables -fpack-struct -Wall -O2 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -DFIRMWARE_VERSION_ID=$(FIRMWARE_VERSION_ID) -NAME=labrafirm_$$(FIRMWARE_VERSION_ID:2:4)_$(SUFFIX) +# NAME=labrafirm_$$(FIRMWARE_VERSION_ID:2:4)_$(SUFFIX) +NAME=labrafirm_$(SUFFIX) OBJS += \ $(SRC_DIR)/tiny_calibration.o \ From 547f0831f1138ce925f30e01c33062dee87bb4ed Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 20:55:09 -0800 Subject: [PATCH 146/150] same thing --- AVR_Code/Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index 2c98e36dc..c2d0a1b36 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -38,8 +38,9 @@ INCLUDES=-I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxme CFLAGS=-std=gnu99 -ffunction-sections -mmcu=atxmega32a4u -fsigned-char -funsigned-bitfields -fdata-sections -fshort-enums -fno-strict-aliasing -fno-jump-tables -fpack-struct -Wall -O2 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -DFIRMWARE_VERSION_ID=$(FIRMWARE_VERSION_ID) -# NAME=labrafirm_$$(FIRMWARE_VERSION_ID:2:4)_$(SUFFIX) -NAME=labrafirm_$(SUFFIX) +# NAME=labrafirm_$$_$(SUFFIX) +SHORT_FIRMWARE_VERSION_ID := $(shell {FIRMWARE_VERSION_ID:2:4}) +NAME=labrafirm_$(SHORT_FIRMWARE_VERSION_ID)_$(SUFFIX) OBJS += \ $(SRC_DIR)/tiny_calibration.o \ From fd7627b2e42484cb9008e105538e3738def10980 Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 20:56:53 -0800 Subject: [PATCH 147/150] same thing --- AVR_Code/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index c2d0a1b36..d908fa0d2 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -39,7 +39,7 @@ INCLUDES=-I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxme CFLAGS=-std=gnu99 -ffunction-sections -mmcu=atxmega32a4u -fsigned-char -funsigned-bitfields -fdata-sections -fshort-enums -fno-strict-aliasing -fno-jump-tables -fpack-struct -Wall -O2 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -DFIRMWARE_VERSION_ID=$(FIRMWARE_VERSION_ID) # NAME=labrafirm_$$_$(SUFFIX) -SHORT_FIRMWARE_VERSION_ID := $(shell {FIRMWARE_VERSION_ID:2:4}) +SHORT_FIRMWARE_VERSION_ID := $(shell ${FIRMWARE_VERSION_ID:2:4}) NAME=labrafirm_$(SHORT_FIRMWARE_VERSION_ID)_$(SUFFIX) OBJS += \ From 9a08fcc8ef8978133923b55a21a7fd086b0e2cce Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 21:28:54 -0800 Subject: [PATCH 148/150] same thing --- AVR_Code/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index d908fa0d2..52c3b703d 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -39,7 +39,7 @@ INCLUDES=-I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxme CFLAGS=-std=gnu99 -ffunction-sections -mmcu=atxmega32a4u -fsigned-char -funsigned-bitfields -fdata-sections -fshort-enums -fno-strict-aliasing -fno-jump-tables -fpack-struct -Wall -O2 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -DFIRMWARE_VERSION_ID=$(FIRMWARE_VERSION_ID) # NAME=labrafirm_$$_$(SUFFIX) -SHORT_FIRMWARE_VERSION_ID := $(shell ${FIRMWARE_VERSION_ID:2:4}) +SHORT_FIRMWARE_VERSION_ID := $(shell echo ${FIRMWARE_VERSION_ID:2:4}) NAME=labrafirm_$(SHORT_FIRMWARE_VERSION_ID)_$(SUFFIX) OBJS += \ From 3d19a31959ab2710e95c2334985efb3192890b0f Mon Sep 17 00:00:00 2001 From: brentfpage Date: Mon, 26 Jan 2026 21:32:40 -0800 Subject: [PATCH 149/150] same thing --- AVR_Code/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index 52c3b703d..188408bdb 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -39,7 +39,7 @@ INCLUDES=-I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxme CFLAGS=-std=gnu99 -ffunction-sections -mmcu=atxmega32a4u -fsigned-char -funsigned-bitfields -fdata-sections -fshort-enums -fno-strict-aliasing -fno-jump-tables -fpack-struct -Wall -O2 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -DFIRMWARE_VERSION_ID=$(FIRMWARE_VERSION_ID) # NAME=labrafirm_$$_$(SUFFIX) -SHORT_FIRMWARE_VERSION_ID := $(shell echo ${FIRMWARE_VERSION_ID:2:4}) +SHORT_FIRMWARE_VERSION_ID := $(shell fv='$(FIRMWARE_VERSION_ID)'; echo "$${fv:2:4}") NAME=labrafirm_$(SHORT_FIRMWARE_VERSION_ID)_$(SUFFIX) OBJS += \ From cf8ed60b865dfab268366fc91de593eb6189b3ac Mon Sep 17 00:00:00 2001 From: brentfpage Date: Thu, 29 Jan 2026 23:39:52 -0800 Subject: [PATCH 150/150] update --- AVR_Code/Makefile | 1 - 1 file changed, 1 deletion(-) diff --git a/AVR_Code/Makefile b/AVR_Code/Makefile index 188408bdb..72bba7866 100755 --- a/AVR_Code/Makefile +++ b/AVR_Code/Makefile @@ -38,7 +38,6 @@ INCLUDES=-I"$(SRC_DIR)/ASF/common/services/usb/class/vendor/device/example/atxme CFLAGS=-std=gnu99 -ffunction-sections -mmcu=atxmega32a4u -fsigned-char -funsigned-bitfields -fdata-sections -fshort-enums -fno-strict-aliasing -fno-jump-tables -fpack-struct -Wall -O2 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -DFIRMWARE_VERSION_ID=$(FIRMWARE_VERSION_ID) -# NAME=labrafirm_$$_$(SUFFIX) SHORT_FIRMWARE_VERSION_ID := $(shell fv='$(FIRMWARE_VERSION_ID)'; echo "$${fv:2:4}") NAME=labrafirm_$(SHORT_FIRMWARE_VERSION_ID)_$(SUFFIX)