I am working on a project that involve ES8388 Audio Module and the Bottom2 as portability is a key feature.
At some point, I got stuck into an audio issue that appeared only when I stacked the Bottom 2 to the Core2+Audio Module.
After intensive debugging, I found the culprit by studying the pdf schematics for each module.
The investigation pointed to an I2S conflict on Pin 26 of the M5 BUS:
On one side, the Bottom2 module exposes on this Pin the DAT signal from the SPM1423 MEMS microphone, while on the other side, the Audio Module uses the same line for I2S_MAIN_DIN (ASDOUT from the ES8388 codec).
The problem is that the MEMS microphone is always active, continuously driving the data line. As a result, when the Audio Module is used together with Bottom2, the operation of the ES8388 is severely affected, leading to malfunction or unreliable behavior.
As a workaround, I physically removed the SPM1423 microphone from the Bottom2 PCB, which resolves the issue.
A more elegant solution would be a revision of the Bottom2 hardware design, such as:
adding a hardware switch to disconnect the microphone, or
routing the SPM1423 SELECT pin to a free GPIO (for example, GPIO36), allowing the microphone to be enabled/disabled via software. This will impact J2 Socket on Bottom2 but will allow the FW to switch the MEMS Microphone.
3..... ???? ANYONE WITH IDEEAS?
I will still investigate in search for a more elegant solution.
Cheers,
Adrian