Repository navigation
Conversation
Add a dedicated JC-ESP32P4-M3-DEV firmware variant so its ES8311 microphone feeds audio-reactive effects with the board's correct codec configuration and I2S framing. KPI: not collected; no ESP32 hardware is connected in this workspace, and the existing desktop test target is blocked by the pre-existing NetworkModule.h format-truncation warning. Core: - ESP32 platform: configure the JC board's ES8311 on GPIO7/8 with MCLK GPIO13, convert its 7-bit address at the driver seam, and capture 32-bit I2S samples. Scripts / MoonDeck: - ESP32 builder: add the esp32p4-jc-m3-eth firmware and its board-specific sdkconfig fragment. Tests: - JC firmware contracts: pin codec selection, dependency gating, address conversion, word size, and catalog audio pins. Docs / CI: - Device catalog and reference: document the JC board and publish GPIO48 as the default mic data pin while keeping it live-editable. - GitHub Actions: build and retain a complete flash package for the JC firmware branch.
Run the dedicated ESP32-P4 firmware build when the branch opens or updates a pull request, preserving the complete flash package as a GitHub Actions artifact. Docs / CI: - GitHub Actions: trigger the JC firmware build for pull requests targeting main.
Keep the bootloader and partition-table directories in the firmware artifact so the included ESP-IDF flash arguments resolve every binary without manual path edits. Docs / CI: - GitHub Actions: stage the JC firmware artifact with its original ESP-IDF directory layout.
Configure the ES8311 codec interface directly because ProjectMM owns the I2S data path. The esp_codec_dev high-level wrapper requires a non-null data_if and previously failed before audio capture started. Pin the validated esp_codec_dev 1.6 minor line and extend the JC firmware regression check.
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Hi @ssjgesus , I didn't know about this board, nice PR ! few questions/remarks
|
|
these are very simmilar / variants of the P4 880x430 screen devkit I have - they're nice. There's a very good WLED firmware for the 7" variant. I paid about £20 for mine Ali but I'd recommend paying for the next one up that comes with a case in the rear side. |
|
Thanks for this, and sorry it waited so long. PR #128 does the same for the Waveshare ESP32-P4-ETH, and the two boards share their codec wiring. Rather than a firmware per board, our next commit makes the ES8311 runtime configuration: On the microphone data line: the schematic routes it to GPIO48, which is what you tested on the board, while the board's ESPHome example (JC-ESP32-P4.M3-Dev.yaml) uses GPIO11. The entry follows your hardware test; {
"name": "Guition JC-ESP32P4-M3-DEV",
"chip": "ESP32-P4",
"firmwares": ["esp32p4rev1-eth"],
"url": "https://github.com/p1ngb4ck/unofficial_guition_esp32p4_repo/tree/main/JC-ESP32P4-M3-Dev",
"supported": ["LEDs", "Ethernet", "Audio"],
"modules": [
{ "type": "System", "id": "System", "controls": { "deviceModel": "Guition JC-ESP32P4-M3-DEV" } },
{ "type": "EthernetModule", "id": "Ethernet", "parent_id": "Network", "controls": { "ethBoard": "P4-NANO" } },
{ "type": "AudioService", "id": "Audio", "parent_id": "Services",
"controls": { "mode": 2, "codec": "ES8311", "codecSda": 7, "codecScl": 8, "codecAddr": 24,
"mclkPin": 13, "sckPin": 12, "wsPin": 10, "sdPin": 48 } }
]
}The Ethernet wiring (IP101, MDC 31, MDIO 52, power 51, clock in on 50) is the P4-NANO preset's. Once the runtime codec lands we can close this in favour of that entry; or, if you prefer, rebase this onto it with the entry and your board documentation, dropping the variant. |
|
An update: the ES8311 support this PR asked for is built, in a slightly different shape, and goes into main as the latest release in the coming days. What is built
Verified with the same codec on a Waveshare P4-ETH, a P4-NANO and an ESP32-S31: the codec found at Thanks for the pinout and the hardware test, which the catalog entry is built from. Once the release is out, could you install the latest build on your M3 and confirm the mic works? That is the one check we cannot do. |
|
Thank you @ssjgesus. This is merged in #129 in a different shape: the ES8311 codec became runtime configuration (AudioService |
Summary
Adds a dedicated firmware configuration and hardware profile for the JC-ESP32P4-M3-DEV, including working support for its onboard ES8311 microphone codec for ProjectMM audio-reactive effects.
Changes
Validation
The following checks pass:
Hardware validation
The firmware has been successfully installed and tested on a physical JC-ESP32P4-M3-DEV.
The onboard ES8311 microphone works with the configured pinout, and ProjectMM’s audio service successfully receives microphone input for audio-reactive effects.
References