Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
313b196
Logging HW definitions generator
raphaelcoeffic Jul 28, 2025
713a214
Defines and JSON hardware definitions
raphaelcoeffic Jul 28, 2025
0b1a59e
Add define remover and usage checker
raphaelcoeffic Jul 12, 2025
e80acbb
Remove hardware definitions present in JSON
raphaelcoeffic Jul 28, 2025
dd490c7
chore(radio): document hardware definitions removal
raphaelcoeffic Jul 28, 2025
a12835a
chore: hal.h cleanup
raphaelcoeffic Jul 13, 2025
743b938
fix: define SURFACE_RADIO directly
raphaelcoeffic Jul 13, 2025
75cf8c3
fix: remove KEYS_GPIO_REG_PAGEDN usage
raphaelcoeffic Jul 13, 2025
5cdfa68
fix: remove KEYS_GPIO_REG_DOWN, KEYS_GPIO_REG_MINUS and KEYS_GPIO_REG…
raphaelcoeffic Jul 13, 2025
ceacdbf
fix: remove KEYS_GPIO_REG_MENU
raphaelcoeffic Jul 13, 2025
7bfbee4
fix: use new hardware defs JSON location
raphaelcoeffic Jul 13, 2025
0526905
fix: cleanup NB4P ADC usage in boot loader
raphaelcoeffic Jul 13, 2025
f9b667c
fix: paths and dependencies related to hardware definitions
raphaelcoeffic Jul 13, 2025
d665d9f
chore: hw defs cleanup and validator
raphaelcoeffic Jul 13, 2025
e984693
fix: compat Python 3.8
raphaelcoeffic Jul 14, 2025
f3a6922
fix(ci): add missing pydantic
raphaelcoeffic Jul 14, 2025
d307eb4
feat: better hardware definition type checking
raphaelcoeffic Jul 14, 2025
93d847e
Fix PGUP key logic. Cleanup color text & number edit.
Jul 14, 2025
01ec4af
Use keyIsSupported()
raphaelcoeffic Jul 16, 2025
898b080
Fix hardware data model after switch refactor
raphaelcoeffic Jul 28, 2025
382814e
Enable LTO for `board_bl` to prevent bootloader overflow
raphaelcoeffic Jul 28, 2025
c433a59
Fix NB4P bootloader
raphaelcoeffic Jul 28, 2025
29832cb
Cleanup B&W navigation definitions.
Jul 17, 2025
2e5c7e6
Define RADIO_xxx automatically. Use radio type to set B&W navigation …
Jul 17, 2025
6f621d0
Create CMake variable for radio type.
Jul 17, 2025
d3f3d25
Remove PCB/FLAVOUR refs from Companion CMakeLists.txt
raphaelcoeffic Aug 21, 2025
bcbfa40
WiP: WASI
raphaelcoeffic Oct 2, 2023
6ee553e
fix: disable libsimulator builds
raphaelcoeffic Jul 11, 2025
b58e401
feat: support hardware volume
raphaelcoeffic Jul 12, 2025
d923968
chores: remove EMSCRIPTEN
raphaelcoeffic Jul 20, 2025
c966e8e
chores: remove simuTimerMicros()
raphaelcoeffic Jul 21, 2025
f4bb4d1
Remove exceptions in simufatfs
raphaelcoeffic Jul 25, 2025
26119c5
Remove useless code
raphaelcoeffic Jul 25, 2025
85f59f0
WiP: fixes
raphaelcoeffic Aug 21, 2025
9cd037a
Disable libsimulator plugins
raphaelcoeffic Aug 21, 2025
e9b0b3e
Fix plugins build
raphaelcoeffic Aug 21, 2025
80898c0
Start unifying Companion workflows
raphaelcoeffic Aug 21, 2025
fda357e
Remove fsLedOn/fsLedOff from gtests
raphaelcoeffic Aug 21, 2025
abf0b8d
Build with composite action
raphaelcoeffic Aug 21, 2025
79172a1
Try macos-14
raphaelcoeffic Aug 21, 2025
51d9610
Limit jobs on windows and macos as well
raphaelcoeffic Aug 21, 2025
929014f
Build modules
raphaelcoeffic Aug 21, 2025
ae5c598
Build all modules
raphaelcoeffic Aug 21, 2025
71f6767
Remove debug info on release builds
raphaelcoeffic Aug 21, 2025
7f46e8c
Allow overriding MAX_JOBS
raphaelcoeffic Aug 22, 2025
665f65c
fix: script labels
raphaelcoeffic Aug 22, 2025
74b65fb
Try to build modules with macOS
raphaelcoeffic Aug 22, 2025
bde9f1f
Composite action and removed F2 radios
raphaelcoeffic Aug 22, 2025
0d2fedf
Improve build
raphaelcoeffic Aug 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions .github/actions/build_companion/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: 'Build Companion'
inputs:
os:
description: 'OS / Architecture'
required: true
qt-version:
description: 'Qt version'
default: '6.9.0'
qt-arch:
description: 'Qt architecture'
required: runner.os != 'Linux'
sdl2-version:
description: 'SDL2 version'
default: '2.32.8'

runs:
using: "composite"
steps:

- name: Install Qt
if: runner.os != 'Linux'
uses: jdpurcell/install-qt-action@v5
env:
AQT_CONFIG: ${{ github.workspace }}/tools/aqt-settings.ini
with:
version: ${{ inputs.qt-version }}
modules: 'qtmultimedia qtserialport'
arch: ${{ inputs.qt-arch }}
cache: true
cache-key-prefix: 'install-qt-action-${{ inputs.qt-arch }}'

- name: Setup SDL2
if: runner.os != 'Linux'
id: setup-sdl2
uses: libsdl-org/setup-sdl@v1
with:
version: ${{ inputs.sdl2-version }}
build-type: "Release"

- name: Setup MSVC
if: runner.os == 'Windows'
uses: ilammy/msvc-dev-cmd@v1

- name: Build
shell: bash
env:
CMAKE_BUILD_TYPE: 'Release'
run: |
mkdir output && \
CMAKE_PREFIX_PATH="$QT_ROOT_DIR;$SDL2_ROOT" \
tools/build-companion.sh "$(pwd)" "$(pwd)/output/"

- name: Compose release filename
run: echo "artifact_name=edgetx-cpn-${{ inputs.os }}-${GITHUB_REF##*/}" >> $GITHUB_ENV
shell: bash

- name: Archive production artifacts
uses: actions/upload-artifact@v4
with:
name: "${{ env.artifact_name }}"
path: ${{github.workspace}}/output
retention-days: 15
17 changes: 17 additions & 0 deletions .github/actions/python_dependencies/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: 'Setup WASI SDK'
inputs:
python-version:
description: 'Python version'
default: '3.13'

runs:
using: "composite"
steps:

- uses: actions/setup-python@v5
with:
python-version: ${{ inputs.python-version }}
cache: 'pip' # caching pip dependencies

- run: python3 -m pip install -r requirements.txt
shell: bash
20 changes: 20 additions & 0 deletions .github/actions/wasi_sdk/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
name: 'Setup WASI SDK'
inputs:
arch:
description: 'OS / Architecture (ex: arm64-macos)'
default: 'arm64-macos'
version:
description: 'SDK version'
default: '25'

runs:
using: "composite"
steps:

- name: Install WASI SDK
if: steps.cache-wasi-sdk.outputs.cache-hit != 'true'
shell: bash
run: |
mkdir /tmp/wasi-sdk
curl -L https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${{ inputs.version }}/wasi-sdk-${{ inputs.version }}.0-${{ inputs.arch }}.tar.gz | tar xz --strip-components 1 -C /tmp/wasi-sdk
sudo mv /tmp/wasi-sdk /opt/wasi-sdk
55 changes: 17 additions & 38 deletions .github/workflows/actions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,7 @@ on:
- '**.md'
- '.github/ISSUE_TEMPLATE/**'
- '.github/workflows/nightly.yml'
- '.github/workflows/linux_cpn.yml'
- '.github/workflows/macosx_cpn.yml'
- '.github/workflows/win-cpn-32.yml'
- '.github/workflows/win_cpn-64.yml'
- '.github/workflows/companion.yml'
- '.github/workflows/validate_fw_json.yml'
- 'companion/**'
- '.gitpod.yml'
Expand All @@ -26,10 +23,7 @@ on:
- '**.md'
- '.github/ISSUE_TEMPLATE/**'
- '.github/workflows/nightly.yml'
- '.github/workflows/linux_cpn.yml'
- '.github/workflows/macosx_cpn.yml'
- '.github/workflows/win-cpn-32.yml'
- '.github/workflows/win_cpn-64.yml'
- '.github/workflows/companion.yml'
- '.github/workflows/validate_fw_json.yml'
- 'companion/**'
- '.gitpod.yml'
Expand All @@ -44,27 +38,21 @@ jobs:
strategy:
matrix:
target:
- x9dp2019
- x9dp2019;x9e
- tx15
- tx16s
- nv14
- el18
- pl18
- pl18ev
- t12max
- t12max;t14
- t15
- t16
- t18
- tlite #STM32F2
- t20
- t14
- t20v2
- tx12 #STM32F2
- t20;t20v2
- x10
- x12s
- x9e
- mt12
- gx12
- mt12;gx12
- nb4p
- st16
container:
Expand All @@ -76,7 +64,6 @@ jobs:
uses: actions/checkout@v4
with:
submodules: recursive
# fetch-depth: 0 # https://github.com/actions/checkout#Fetch-all-history-for-all-tags-and-branches

- name: Test ${{ matrix.target }}
env:
Expand All @@ -85,7 +72,6 @@ jobs:
echo "Running commit tests"
./tools/commit-tests.sh


build:
name: Run builds
needs: test
Expand All @@ -94,26 +80,20 @@ jobs:
matrix:
target:
- nv14;el18
- pl18;pl18ev;pl18u
- pa01
- t12max
- t15;t16;t18
- zorro;pocket;mt12;commando8
- pl18;pl18ev
- pl18u;pa01
- t15;t16
- t14;t18;mt12
- zorro;pocket;commando8
- tprov2;tpros;bumblebee
- t20;t20v2;t14
- tx12mk2;boxer;gx12
- tx15
- tx16s
- f16
- mt12;gx12;t20;t20v2
- t12max;tx12mk2;boxer
- tx15;tx16s
- x12s;f16
- v12;v14;v16
- x10;x10express
- x12s
- x7access
- x9dp2019
- x9e;x9e-hall
- mt12;gx12
- nb4p
- st16
- x7access;x9dp2019;x9e;x9e-hall
- nb4p;st16
container:
image: ghcr.io/edgetx/edgetx-dev:latest
volumes:
Expand Down Expand Up @@ -149,7 +129,6 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Compose release filename
# https://stackoverflow.com/questions/58033366/how-to-get-current-branch-within-github-actions
run: echo "artifact_name=edgetx-firmware-${GITHUB_REF##*/}" >> $GITHUB_ENV

- name: Merge firmware artifact packages
Expand Down
143 changes: 143 additions & 0 deletions .github/workflows/companion.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
name: Companion

on:
push:
branches:
- 'main'
tags:
- v*
paths:
- '.github/workflows/companion.yml'
- 'companion/**'
- 'tools/build-companion.sh'

pull_request:
branches:
- 'main'
paths:
- '.github/workflows/companion.yml'
- 'companion/**'
- 'tools/build-companion.sh'

workflow_dispatch:

jobs:
modules:
name: WASM Modules (${{ matrix.group.id }})
runs-on: macos-14
strategy:
matrix:
group:
- id: color-1
target: [nv14, el18, pl18, pl18ev]
- id: color-2
target: [pl18u, t15, t16, t18]
- id: bw-1
target: [zorro, pocket, mt12, commando8, tprov2, tpros, bumblebee, t14]
- id: bw-2
target: [mt12, gx12, t20, t20v2, t12max, tx12mk2, boxer]
- id: color-3
target: [tx15, tx16s, x12s, f16]
- id: mixed-1
target: [v12, v14, v16, x10, x10express]
- id: bw-3
target: [x7access, x9dp2019, x9e, x9e-hall]
- id: color-4
target: [nb4p, st16, pa01]

steps:
- name: Check out the repo
uses: actions/checkout@v4
with:
submodules: true

- name: Setup Python Dependencies
uses: ./.github/actions/python_dependencies

- name: Setup WASI SDK
uses: ./.github/actions/wasi_sdk

- name: Build modules
shell: bash
env:
FLAVOR: ${{ join(matrix.group.target, ';') }}
CMAKE_BUILD_TYPE: 'Release'
run: |
mkdir output && \
tools/build-wasm-modules.sh "$(pwd)" "$(pwd)/output/"

- name: Archive production artifacts
uses: actions/upload-artifact@v4
with:
name: wasm-modules-${{ matrix.group.id }}
path: ${{github.workspace}}/output
if-no-files-found: error
retention-days: 15

build-linux:
name: Linux Companion
runs-on: ubuntu-latest
needs: modules

container:
image: ghcr.io/edgetx/edgetx-dev:latest
volumes:
- ${{ github.workspace }}:/src

steps:
- name: Check out the repo
uses: actions/checkout@v4
with:
submodules: recursive

- name: Setup and Build
uses: ./.github/actions/build_companion
with:
os: 'linux'

build-macos:
name: macOS Companion
runs-on: macos-14
needs: modules

env:
CMAKE_OSX_ARCHITECTURES: 'x86_64'
CMAKE_OSX_DEPLOYMENT_TARGET: '10.15'

steps:
- name: Check out the repo
uses: actions/checkout@v4
with:
submodules: recursive

- name: Setup and Build
uses: ./.github/actions/build_companion
with:
os: 'macos'
qt-arch: 'clang_64'

build-win64:
name: Windows Companion
runs-on: windows-2022
needs: modules

env:
CMAKE_GENERATOR: 'Ninja'
CXX: 'clang++'
CC: 'clang'

defaults:
run:
shell: bash

steps:
- name: Check out the repo
uses: actions/checkout@v4
with:
submodules: recursive

- name: Setup and Build
uses: ./.github/actions/build_companion
with:
os: 'win64'
qt-arch: 'win64_msvc2022_64'
Loading