Initial Firmware - #1
Conversation
Port the CAST-1 firmware to the CAST PRO board: - New pinout: W5500 on 11/12/13/10 (INT 5, RST 21), I2S WS 7, BCLK 14, MCLK 17, DOUT 9, DIN 15, SPDIF on 16 - Optical (SPDIF) output alongside the PCM5122, chosen with an "Audio Output" select through a router speaker - PCM1808 line in on the same I2S port as the DAC, run full duplex at 48 kHz stereo in 32-bit slots, with a "Line In" switch that mixes it into the selected output - Vendored i2s_audio (ESPHome 2026.9.0 + full duplex from esphome/esphome#16882, with timing and format fixes); see components/i2s_audio/README.md - Rename CAST-1 to CAST_PRO-1 across configs, OTA manifests and workflows
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. ApolloAutomation is on CodeRabbit Free, which includes PR summaries. Ask your admin to upgrade for code reviews.
ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Free Run ID: 📒 Files selected for processing (30)
💤 Files with no reviewable changes (1)
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review. WalkthroughThis PR replaces the AIR-1 ESPHome target with CAST-PRO-1 firmware, adds device networking, audio, and WizMote configuration, and introduces a local full-duplex I²S component. It also adds beta firmware publishing and updates GitHub pull-request, CI, and release automation. ChangesPull Request and Release Automation
CAST-PRO-1 Firmware
ESPHome I²S Audio
Estimated code review effort: 5 (Critical) | ~120 minutes Sequence Diagram(s)sequenceDiagram
participant GitHubActions
participant CoreYaml
participant ESPHomeBuildWorkflow
participant GitHubRelease
GitHubActions->>CoreYaml: Read firmware version
GitHubActions->>ESPHomeBuildWorkflow: Build CAST-PRO-1 firmware
ESPHomeBuildWorkflow-->>GitHubActions: Return firmware artifacts
GitHubActions->>GitHubRelease: Publish manifest and binaries
GitHubActions->>GitHubRelease: Update beta-fw tag to triggering commit
sequenceDiagram
participant LineInSwitch
participant LineInApply
participant I2SAudioMicrophone
participant Mixer
participant AudioOutputRouter
participant DACSpeaker
participant SPDIFSpeaker
LineInSwitch->>LineInApply: Apply line-in state
LineInApply->>I2SAudioMicrophone: Start capture when enabled
I2SAudioMicrophone->>Mixer: Send captured audio
Mixer->>AudioOutputRouter: Supply mixed audio
AudioOutputRouter->>DACSpeaker: Route DAC output
AudioOutputRouter->>SPDIFSpeaker: Route optical output
Security Architecture ReviewSecurity architecture risk: 🟡 Moderate · up to The new remote-control path has unresolved sender-authentication guarantees, while beta firmware publication can expose incomplete or mixed releases after failures or overlapping runs. Discovery is disabled by default, commands are bounded, beta adoption is explicit, and HTTPS verification is enabled. These controls limit exposure but do not resolve the remaining risks. Retained concerns
Security review detailsSecurity Blast Radius
Security Findings and Attack Paths
Trust Boundaries and Controls
Resilience and Maintainability Implications
Hardening Proposals
I’m a rabbit; I hop by the sound, Comment |
Version: 26.9.21.1
Very initial firmware with minimal time meant to be a starting point for working with the hardware
Checks:
Summary by CodeRabbit