diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 95c875e..7374567 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -28,7 +28,7 @@ jobs: devices=() while IFS= read -r cmake; do dir=$(dirname "$cmake") - name=$(basename "$(dirname "$dir")") + name=$(basename "$dir") # Read target from sdkconfig.defaults; fall back to esp32 target=$(grep -Po 'CONFIG_IDF_TARGET="\K[^"]+' "$dir/sdkconfig.defaults" 2>/dev/null \ || grep -Po 'CONFIG_IDF_TARGET="\K[^"]+' "$dir/sdkconfig" 2>/dev/null \ @@ -43,6 +43,7 @@ jobs: needs: discover runs-on: ubuntu-latest strategy: + fail-fast: false matrix: ${{ fromJson(needs.discover.outputs.matrix) }} env: TARGET_BRANCH: ${{ github.event.release.target_commitish || github.ref_name }} @@ -58,28 +59,22 @@ jobs: esp_idf_version: v6.0.1 target: ${{ matrix.target }} path: ${{ matrix.path }} - command: idf.py build + command: idf.py build && esptool.py --chip $IDF_TARGET merge_bin -o build/merged.bin @build/flasher_args.json - - name: Package flash bundle + - name: Package firmware run: | VERSION="${{ github.event.release.tag_name || env.TARGET_BRANCH }}" NAME="${{ matrix.name }}-${VERSION}" - BUILDDIR="${{ matrix.path }}/build" - APP_BIN=$(find "$BUILDDIR" -maxdepth 1 -name "*.bin" -exec basename {} \;) - (cd "$BUILDDIR" && zip -r "$GITHUB_WORKSPACE/${NAME}-flash-bundle.zip" \ - "$APP_BIN" \ - bootloader \ - partition_table \ - flasher_args.json) + cp "${{ matrix.path }}/build/merged.bin" "$GITHUB_WORKSPACE/${NAME}.bin" - name: Upload artifact for manual runs if: github.event_name == 'workflow_dispatch' uses: actions/upload-artifact@v4 with: - name: ${{ matrix.name }}-flash-bundle - path: "*-flash-bundle.zip" + name: ${{ matrix.name }}-firmware + path: "*.bin" - - name: Upload flash bundle to release + - name: Upload firmware to release if: github.event_name == 'release' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -87,5 +82,5 @@ jobs: VERSION="${{ github.event.release.tag_name }}" NAME="${{ matrix.name }}-${VERSION}" gh release upload "$VERSION" \ - "${NAME}-flash-bundle.zip" \ + "${NAME}.bin" \ --clobber diff --git a/README.md b/README.md index cf1b7a1..9dfd290 100644 --- a/README.md +++ b/README.md @@ -20,4 +20,34 @@ Firmware written for DIY devices in the Beacon ecosystem Only target. ConsumerGroup starts task, calls setAlertStep on each consumer ### TextAlert handeling: -Each consumer stores a map between alertIndex and textIndex. The group starts the task of the index and target and calls setAlertText on the consumer. \ No newline at end of file +Each consumer stores a map between alertIndex and textIndex. The group starts the task of the index and target and calls setAlertText on the consumer. + + +## Hardware TODO + + +### Beacon Base **WIP** +The third-generation Base is the core of the system and runs the Beacon Base software. It features a PoE network connection and four XLR hardware outputs for connecting Lighthouses. +[link]() + +### Beacon Lighthouse **WIP** +The Lighthouse is an analog tally light with a 4-pin mini-XLR input, designed to connect to hardware outputs on the Base or a Node. A switch on the back disables the front-facing light for situations where tally should only be visible to the camera operator. Available with 1/4" thread and magnet mounts. +[link]() + +### Beacon Node **WIP** +The Node is a wired extender. It has a PoE network connection and four hardware outputs. It connects to the Base to expand the number of available outputs. +[link]() + +### Beacon Relay **WIP** +The Relay is a wireless bridge. It connects to the Base over PoE and sets up the mesh network that Satellites use to communicate, coordinating Satellite discovery. +[link]() + +### Beacon Satellite **WIP** +The Satellite is a wireless tally light that connects to wifi, or the mesh network set up by the Relay and is discovered automatically by the Base. It includes a small display on the back to show camera information. +[link]() + +### Beacon Satellite Pro **WIP** +The Satellite Pro is a wireless tally display with a 64×32 pixel screen on the front for showing camera information, a large tally light, and an information display on the back. + +### Beacon Display **WIP** +The Display connects to the network over PoE and offers a 128×64 matrix display. It can be configured to show custom information and is discovered by the Base as a tally device. \ No newline at end of file