Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
113 commits
Select commit Hold shift + click to select a range
0394895
UDP Streaming Test Environment (#4)
gnumpi Aug 3, 2024
566aa1b
Add config for rev2 board and neopixel config. (#24)
gnumpi Aug 9, 2024
1e243a0
condition firmware build on core and include file changes (#25)
gnumpi Aug 9, 2024
d59f978
Upload firmware as release assets (#27)
gnumpi Aug 9, 2024
c95177f
add release action
qnlbnsl Sep 14, 2024
c26f61a
update workflow for debugging
qnlbnsl Sep 15, 2024
b95326c
update workflow to ensure tags are fetched
qnlbnsl Sep 15, 2024
0da2dce
update workflow debug tests
qnlbnsl Sep 15, 2024
5c95202
add run tree to check state
qnlbnsl Sep 15, 2024
37a500e
fix name for upload artifact
qnlbnsl Sep 15, 2024
cb727ff
add tag to repository after successful build
qnlbnsl Sep 15, 2024
f97f05d
update release action
qnlbnsl Sep 15, 2024
4575b27
update action trigger
qnlbnsl Sep 15, 2024
99e1d57
update workflow
qnlbnsl Sep 15, 2024
6ef9bd7
update needs and references
qnlbnsl Sep 15, 2024
9af3dee
fix branch name
qnlbnsl Sep 15, 2024
ee3e673
remove draft creation
qnlbnsl Sep 15, 2024
a41e507
condense workflow. #major
qnlbnsl Sep 15, 2024
e128856
minor updates to tagging
qnlbnsl Sep 15, 2024
c23d185
remove feature branch from workflow triggers
qnlbnsl Sep 15, 2024
d6bc253
add step for documentation dispatch
qnlbnsl Sep 19, 2024
9c63881
update workflow dispatch uri
qnlbnsl Sep 19, 2024
3564f8b
udpate workflow changelog builder with github token env
qnlbnsl Sep 19, 2024
4801f18
Squashed gha fixes commits
qnlbnsl Sep 14, 2024
9c9c08b
Add Satellite1 component (#36)
gnumpi Oct 23, 2024
17277b8
update esphome version to match develop branch
that1guy Oct 23, 2024
e5b7908
adding github_token to Release Changlog Builder stage
that1guy Oct 23, 2024
8a38529
Merge pull request #42 from FutureProofHomes/feature/32-release-actio…
that1guy Oct 23, 2024
03fdbb5
Revert "Feature/32 release actions updates"
qnlbnsl Oct 23, 2024
8e6ced4
Merge pull request #44 from FutureProofHomes/revert-42-feature/32-rel…
that1guy Oct 23, 2024
7ce5e23
Update Permissions for release action
qnlbnsl Oct 23, 2024
8d5f3f1
Merge pull request #45 from FutureProofHomes/build-action-fix/32
that1guy Oct 23, 2024
d64f853
Adding all VA phases
that1guy Oct 24, 2024
ecf1301
Voice Assistant barely functioning
that1guy Oct 24, 2024
9b5d7a1
microphone media player interaction: disable dma_buffer flashing in m…
gnumpi Oct 25, 2024
8555b3a
Merge remote-tracking branch 'origin/51-distorted-microphone-signal' …
that1guy Oct 26, 2024
e620c43
Merge pull request #53 from FutureProofHomes/50-voice-assistant-funct…
that1guy Oct 26, 2024
48561f8
added gain_log2 option for satellite1 microphone component
gnumpi Oct 30, 2024
e4a208a
Merge pull request #59 from FutureProofHomes/58-gain_log2-option
gnumpi Oct 30, 2024
4803520
Restructure yaml configuration files (#65)
gnumpi Nov 7, 2024
cf368ed
updated README.md
gnumpi Nov 7, 2024
dd056f5
added github issue templates
gnumpi Nov 7, 2024
0d47886
added LICENSE file
gnumpi Nov 7, 2024
099302b
add logo to local assets
gnumpi Nov 7, 2024
897d1c2
removed all readme content
gnumpi Nov 7, 2024
ff9f817
Merge pull request #67 from FutureProofHomes/50-readme-license
that1guy Nov 7, 2024
4e3358f
Configuration of Hardware Buttons (#66)
gnumpi Nov 8, 2024
0ab5a1f
merged voice assistant configuration from PR #55.
gnumpi Nov 8, 2024
dd90ad6
Merge pull request #68 from FutureProofHomes/50-voice-assistant
gnumpi Nov 8, 2024
a4c7c7b
Introduce and apply new led ring patterns and effects (#69)
gnumpi Nov 8, 2024
9412835
New naming convention for the Satellite1 node (#71)
gnumpi Nov 8, 2024
8704a23
make statellit1 media_player compatible to puremagic and python-magic…
gnumpi Nov 10, 2024
598f51a
bump to ESPHome 2024.10.0 (#78)
gnumpi Nov 10, 2024
14dbb66
Enable Improv
that1guy Nov 11, 2024
c052e3f
Updating Readme (#81)
that1guy Nov 11, 2024
d2366cd
Move to Hey Jarvis (#82)
that1guy Nov 11, 2024
0ac7c7e
Adding Sat1 to ESPHome Dashboard (#84)
that1guy Nov 11, 2024
604edc2
fixing LED control for timer (#83)
that1guy Nov 11, 2024
9778691
Remove mww toggle (#90)
that1guy Nov 11, 2024
aa18d82
Enabling safe mode (#86)
that1guy Nov 11, 2024
8e2aa1a
Cleanup deprecated code in i2s custom component (#96)
gnumpi Nov 11, 2024
fc62378
Fix: In duplex mode i2s reports wrong driver status (#98)
gnumpi Nov 11, 2024
8e7e394
bump to XMOS firmware v1.0.1-alpha.28 (use fixed_delay pipeline) (#101)
gnumpi Nov 11, 2024
87002c2
Merge pull request #87 from FutureProofHomes/enable-improv-onboarding
that1guy Nov 11, 2024
cdd8b53
Adding SDK configs
that1guy Nov 11, 2024
2b673a7
Increase mic gain: gain_log2:6 (#103)
that1guy Nov 11, 2024
7773fd3
Change action button to ESP GPIO 0 (#107)
gnumpi Nov 12, 2024
4f3f8ef
Introduce fusb302b integration (#56)
gnumpi Nov 12, 2024
2cac15a
Disable improv via ble
gnumpi Nov 13, 2024
2ff91bc
Disable debug sensors
gnumpi Nov 13, 2024
b00b1a3
Merge pull request #111 from FutureProofHomes/109-disable-ble-improv
gnumpi Nov 13, 2024
04adae4
ensure output of wake word testing is ignored
that1guy Nov 14, 2024
c76dedf
Merge pull request #104 from FutureProofHomes/known-good-sdkconfigs
that1guy Nov 15, 2024
b241488
Merge pull request #117 from FutureProofHomes/git-ignore-update
that1guy Nov 15, 2024
85468b2
Bumping dev to XMOS Alpha 32
that1guy Nov 16, 2024
20a5344
Merge pull request #118 from FutureProofHomes/bump-to-xmos-alpha-32
that1guy Nov 16, 2024
28939ce
Reset SDK settings to default. (#120)
gnumpi Nov 18, 2024
9928676
Base satellite1 mic component on the voice-kit two-channel microphone…
gnumpi Nov 18, 2024
702c9e5
Bump mWW and VA to [email protected] (#121)
gnumpi Nov 18, 2024
cde3749
fix: release i2s_access when installing the driver fails (#123)
gnumpi Nov 18, 2024
123f4b6
Adding sound effects for mute/unmute. (#125)
that1guy Nov 18, 2024
6980cfe
Fusb302b: Rewritten message reading task (#128)
gnumpi Nov 20, 2024
7dafd82
update workflow to only build for staging and main. update bin file u…
qnlbnsl Nov 25, 2024
0d7291e
add build file for developer builds
qnlbnsl Nov 25, 2024
f3697d6
feat: update YAML files with new esp32_fw_version tag during release
qnlbnsl Nov 25, 2024
ce53a1a
disable latest workflow. TODO: Make nighty workflow instead
qnlbnsl Nov 25, 2024
255c4fb
fix file name handling in YAML update step
qnlbnsl Nov 25, 2024
c79bbd2
set all default bumps to patch.
qnlbnsl Nov 25, 2024
e5ba728
Merge pull request #131 from FutureProofHomes/feature-110/upload-bin-…
gnumpi Nov 25, 2024
61e91f6
Merge pull request #132 from FutureProofHomes/feature-70/update-yaml-…
gnumpi Nov 25, 2024
0bb5d71
disable fusb302b and remove related components from config (#140)
gnumpi Nov 27, 2024
22614c1
Revert "Feature 70/update yaml workflow" (#141)
gnumpi Nov 27, 2024
2ed1335
Revert "Update build workflow and add developer build script" (#142)
gnumpi Nov 27, 2024
4ce205e
Migrate configuration to rev4 hardware (#143)
gnumpi Nov 27, 2024
9511514
change to local led control via esp32_rmt_led_strip component (#145)
gnumpi Nov 27, 2024
48f5e71
Adding temp & humidity sensors (#147)
that1guy Nov 29, 2024
088a39a
bump to ESPHome version 2024.11.2 (#154)
gnumpi Nov 29, 2024
d83ae60
Ignore strapping pin warnings (#155)
gnumpi Nov 29, 2024
eb934b3
Split LED control into user and system (virtual) led components (#156)
gnumpi Nov 30, 2024
6fbb86f
Optional LD2410 MMWave (#153)
that1guy Nov 30, 2024
bb73788
Introducing "factory firmware" with BLE improv included (#151)
that1guy Nov 30, 2024
2e4c91f
gh-build-action: remove checking for changed files, always build sate…
gnumpi Nov 30, 2024
2672c1a
GH-Workflows: trigger build-only for dev branch, build-and-release fo…
gnumpi Nov 30, 2024
06558b9
update gitignore (#159)
gnumpi Nov 30, 2024
682a988
Adding Wake Words we Will Support (#152)
that1guy Nov 30, 2024
ff35782
set initial version to 0 and commit strategy to patch only
qnlbnsl Nov 30, 2024
2cd7d76
update YAML files in place with release tags for esp firmware build
qnlbnsl Nov 30, 2024
629ae3d
set release to upload bin files instead of zip
qnlbnsl Nov 30, 2024
0a05e9d
Merge pull request #164 from FutureProofHomes/feature-110/update-workfow
gnumpi Nov 30, 2024
fce2841
Enable pull-up for GPIO0 (boot/action button) (#146)
gnumpi Dec 3, 2024
1ff892a
Enable fusb302b with optimized timing (#169)
gnumpi Dec 3, 2024
cb7e798
Preparing factory firmware with appropriate URLS
that1guy Dec 3, 2024
54d636e
Merge pull request #172 from FutureProofHomes/prep-factory-firmware-f…
gnumpi Dec 3, 2024
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
22 changes: 22 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report--.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
name: "Bug report \U0001F41E"
about: Create a bug report
labels: bug

---

## Describe the bug
A clear and concise description of what the bug is.

### Steps to reproduce
Steps to reproduce the behavior.

### Expected behavior
A clear and concise description of what you expected to happen.

### Environment
- OS: [e.g. Arch Linux]
- Other details that you think may affect.

### Additional context
Add any other context about the problem here.
15 changes: 15 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request--.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
name: "Feature request \U0001F680"
about: Suggest an idea
labels: enhancement

---

## Summary
Brief explanation of the feature.

### Basic example
Include a basic example or links here.

### Motivation
Why are we doing this? What use cases does it support? What is the expected outcome?
118 changes: 33 additions & 85 deletions .github/workflows/build_latest.yaml
Original file line number Diff line number Diff line change
@@ -1,100 +1,48 @@
name: ESPHome-latest
name: Build-Satellite-Firmware

on:
- push
- pull_request
- workflow_dispatch
push:
branches:
- develop
workflow_dispatch:

env:
DEFAULT_PYTHON: "3.9"


jobs:
common:
name: Create common environment
runs-on: ubuntu-latest
outputs:
cache-key: ${{ steps.cache-key.outputs.key }}
steps:
- name: Check out code from GitHub
uses: actions/[email protected]
- name: Generate cache-key
id: cache-key
run: echo key="${{ hashFiles('requirements.txt') }}" >> $GITHUB_OUTPUT
- name: Set up Python ${{ env.DEFAULT_PYTHON }}
id: python
uses: actions/[email protected]
with:
python-version: ${{ env.DEFAULT_PYTHON }}
- name: Restore Python virtual environment
id: cache-venv
uses: actions/[email protected]
with:
path: venv
# yamllint disable-line rule:line-length
key: ${{ runner.os }}-${{ steps.python.outputs.python-version }}-venv-${{ steps.cache-key.outputs.key }}
- name: Create Python virtual environment
if: steps.cache-venv.outputs.cache-hit != 'true'
run: |
python -m venv venv
. venv/bin/activate
python --version
pip install -r requirements.txt

build-list:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- name: Check out code from GitHub
uses: actions/[email protected]
- name: Find all YAML satellite files
id: set-matrix
run: echo "matrix=$(ls config/satellite*.yaml | jq -R -s -c 'split("\n")[:-1]')" >> $GITHUB_OUTPUT
build-firmware:
uses: esphome/workflows/.github/workflows/build.yml@main
with:
files: |
config/satellite1.yaml
esphome-version: 2024.11.2
release-summary: develop-branch
release-url:
release-version:


build:
name: Build YAML config ${{ matrix.file }}
runs-on: ubuntu-latest
create_artifact_matrix:
name: Create artifact matrix
needs:
- common
- build-list
strategy:
fail-fast: false
max-parallel: 2
matrix:
file: ${{ fromJson(needs.build-list.outputs.matrix) }}
- build-firmware
outputs:
matrix: ${{ steps.artifacts.outputs.matrix }}
runs-on: ubuntu-latest
steps:
- name: Check out code from GitHub
uses: actions/[email protected]
- name: Restore Python
uses: ./.github/actions/restore-python
with:
python-version: ${{ env.DEFAULT_PYTHON }}
cache-key: ${{ needs.common.outputs.cache-key }}

- name: Run esphome compile ${{ matrix.file }}
run: |
. venv/bin/activate
esphome compile ${{ matrix.file }}
esphome config ${{ matrix.file }} >> ${{ matrix.file }}.cmpl.yaml

- name: Parse name
id: get_node_name
uses: mikefarah/yq@master
- name: Download artifacts
uses: actions/[email protected]
with:
cmd: yq '.esphome.name' ${{ matrix.file }}.cmpl.yaml
path: files

- name: 'Upload Artifact'
uses: actions/upload-artifact@v4
with:
name: ${{ steps.get_node_name.outputs.result }}.firmware.factory.bin
path: config/.esphome/build/${{ steps.get_node_name.outputs.result }}/.pioenvs/${{ steps.get_node_name.outputs.result }}/firmware.factory.bin
retention-days: 30
- run: tree

- name: 'Upload Artifact'
uses: actions/upload-artifact@v4
with:
name: ${{ steps.get_node_name.outputs.result }}.firmware.bin
path: config/.esphome/build/${{ steps.get_node_name.outputs.result }}/.pioenvs/${{ steps.get_node_name.outputs.result }}/firmware.bin
retention-days: 30
- name: Get artifact names
id: artifacts
run: |
artifacts=$(ls --format=single-column files)
echo "artifacts<<EOF" >> $GITHUB_OUTPUT
echo "$artifacts" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "matrix=$(ls files | jq -R -s -c 'split("\n")[:-1]')" >> $GITHUB_OUTPUT

166 changes: 166 additions & 0 deletions .github/workflows/build_release.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
name: Build-and-Release-Satellite-Firmware

on:
push:
branches:
- main
- staging
workflow_dispatch:
inputs:
tag:
description: 'Tag for the release (optional). If not provided, it will be auto-generated.'
required: false

env:
DEFAULT_PYTHON: "3.9"
permissions:
contents: write
pull-requests: read
jobs:
prepare:
runs-on: ubuntu-latest
outputs:
commit_id: ${{ steps.dump.outputs.commit }}
previous_tag: ${{ steps.dump.outputs.previous_tag }}
next_tag: ${{ steps.set_release_tag.outputs.release_tag }}
steps:
- name: Check out code from GitHub
uses: actions/[email protected]
with:
fetch-depth: 0

- name: Set Manual Tag (if provided)
id: set_tag
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.tag != '' }}
run: echo "manual_tag=${{ github.event.inputs.tag }}" >> $GITHUB_OUTPUT

- name: Bump version
# if manual tag is provided, use it
if: ${{ !steps.set_tag.outputs.manual_tag }}
uses: anothrNick/[email protected]
id: bump
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# To create a major bump add #major to commit message
DEFAULT_BUMP: 'patch'
WITH_V: true
PRERELEASE: ${{ github.ref_name != 'main' }}
PRERELEASE_SUFFIX: ${{ github.ref_name == 'staging' && 'beta' || 'alpha' }}
DRY_RUN: true # Prevent action from pushing the tag.
INITIAL_VERSION: 0.0.0

- name: Set tag for release
if: ${{ steps.set_tag.outputs.manual_tag || steps.bump.outputs.tag }}
id: set_release_tag
run: |
if [ -z "${{ steps.set_tag.outputs.manual_tag }}" ]; then
echo "release_tag=${{ steps.bump.outputs.tag }}" >> $GITHUB_OUTPUT
else
echo "release_tag=${{ steps.set_tag.outputs.manual_tag }}" >> $GITHUB_OUTPUT
fi

- id: dump
name: Set outputs
run: |
echo "gh_env=${{ github.ref_name == 'main' && 'production' || github.ref_name == 'staging' && 'beta' || 'alpha' }}" >> $GITHUB_OUTPUT
echo "commit=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
echo "long_version=${{ steps.set_release_tag.outputs.release_tag }}_$(date +%Y-%m-%d)_$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
echo "label_version=$(echo "${{ steps.set_release_tag.outputs.release_tag }}" | sed 's/\./dot/g' | sed 's/-/dash/g')" >> $GITHUB_OUTPUT
echo "previous_tag=$(git describe --abbrev=0 --tags)" >> $GITHUB_OUTPUT
echo "files=$(ls config/satellite*.yaml | jq --slurp --raw-input )" >> $GITHUB_OUTPUT

- name: Update YAML files
run: |
files=$(echo ${{ steps.dump.outputs.files }} \
| sed 's/^"//' \
| sed 's/"$//' \
| sed 's/\\n/\n/g')
tag="${{ steps.set_release_tag.outputs.release_tag }}"
for file in $files; do
echo "Updating $file"
# Use sed to match the esp32_fw_version line and replace its value
sed -i "s/^\(\s*esp32_fw_version:\s*\).*/\1\"${tag}\"/" "$file"
done
build-firmware:
name: Build Firmware
needs:
- prepare
uses: esphome/workflows/.github/workflows/build.yml@main
with:
files: |
config/satellite1.yaml
esphome-version: 2024.11.2
release-version: ${{ needs.prepare.outputs.next_tag }}

push-tag:
name: Push tag to repository and build changelog.
needs:
- prepare
- build-firmware
runs-on: ubuntu-latest
outputs:
changelog: ${{ steps.changelog.outputs.changelog }}

steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Bump version and push tag
if: ${{ !github.event.inputs.tag }}
uses: anothrNick/[email protected]
id: bump
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# To create a major bump add #major to commit message
DEFAULT_BUMP: 'patch'
WITH_V: true
PRERELEASE: ${{ github.ref_name != 'main' }}
PRERELEASE_SUFFIX: ${{ github.ref_name == 'staging' && 'beta' || 'alpha' }}
DRY_RUN: false # Set the tag to the commit.
INITIAL_VERSION: 0.0.0

- name: Release Changelog Builder
id: changelog
uses: mikepenz/release-changelog-builder-action@v5
with:
fromTag: ${{ needs.prepare.outputs.previous_tag }}

create_release:
name: Create Release
# only build release for staging and main branches
# if: github.ref_name == 'main' || github.ref_name == 'staging'
needs:
- push-tag
- prepare
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: files

- name: Create zip files
run: |
mkdir -p build
echo "Copying all files to build directory"
find files -name "*.bin" -exec cp {} build/ \;

- name: Create release
uses: softprops/action-gh-release@v2
with:
files: build/*.bin
generate_release_notes: true
append_body: true
body: ${{ needs.push-tag.outputs.changelog }}
tag_name: ${{ needs.prepare.outputs.next_tag }}

- name: Update Documentation
run: |
curl -X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.SECOND_REPO_PAT }}" \
https://api.github.com/repos/FutureProofHomes/Documentation/actions/workflows/update-binaries-esp32.yaml/dispatches \
-d '{"ref":"main", "inputs": {"esphome_release_tag": "${{ needs.prepare.outputs.next_tag }}"}}'
env:
SECOND_REPO_PAT: ${{ secrets.SECOND_REPO_PAT }}
10 changes: 8 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
__pycache__
*.pyc
.venv/
**/.esphome/
*.egg-info/

.esphome_repo
Expand All @@ -17,4 +16,11 @@ managed_components/
sdkconfig.esp32-idf
sdkconfig.esp32-s3-idf

*/**/secrets.yaml
**/.esphome/
**/secrets.yaml

/testdata
/wake-word-benchmark/
/Docker/firmware_server/shared-folder

**/.DS_Store
1 change: 1 addition & 0 deletions Docker/firmware_server/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
FROM nginx:alpine
15 changes: 15 additions & 0 deletions Docker/firmware_server/config/default.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
server {
listen 80;
server_name localhost;

location / {
root /usr/share/nginx/html;
index index.html index.htm;
autoindex on;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
10 changes: 10 additions & 0 deletions Docker/firmware_server/docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version: '2'

services:
web:
build: .
volumes:
- ./config/default.conf:/etc/nginx/conf.d/default.conf
- ./shared-folder:/usr/share/nginx/html
ports:
- 8080:80
Loading
Loading