Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
23 changes: 9 additions & 14 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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 \
Expand All @@ -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 }}
Expand All @@ -58,34 +59,28 @@ 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 }}
run: |
VERSION="${{ github.event.release.tag_name }}"
NAME="${{ matrix.name }}-${VERSION}"
gh release upload "$VERSION" \
"${NAME}-flash-bundle.zip" \
"${NAME}.bin" \
--clobber
32 changes: 31 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
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.
Loading