I am building a sort of walkie-talkie using an ESP32 WROOM chip. I use the internal ADC to sample the microphone and the internal DAC to power small headphones. This all works OK, not the highest quality, but sufficient.
I send the audio data over 2.4 GHz (using the ESP-NOW protocol.) The problem is that I am experiencing noise on the receiving side, with the same frequency as transmitting the packet. For example, I am transmitting each 20 ms sound audio packet 6 times, given that there are 50 frames of 20 ms in a second, that gives 50 * 6 = 300 transmissions per second, then a 300 Hz tone can be heard at the receiver, next to other audio like speech.
The (suspected) cause
I suspect this is due to voltage drops I see on the 3.3 V supply line. I used a 600 mA RT9080 LDO, which should more than sufficient for the radio. Using an oscilloscope, I can see ~20 mV drops of this line when I am transmitting. I think this messes with the internal ADC, and gives faulty readings.
What I've tried
To prevent this I tried adding several capacitors, low ESR 100uF electrolytic capicitor, 100uF tantulum capacitors, and a 0.1uF ceramic capacitor. None seemed to have any significant effect.
Should I use a different capacitor, or are there any other factors I should take into account? I tried looking for an external ADC that would be powered with its own LDO, but that would add a lot of complexity.