This is an old revision of the document!
Author: Scutaru Alexandru, 333CD
This project consists of two portable wireless communication devices built around the ESP32-WROOM-32 microcontroller, communicating via the ESP-NOW protocol over 2.4GHz.
Each device captures voice through an analog microphone module, compresses the audio signal using the ADPCM (Adaptive Differential Pulse-Code Modulation) algorithm, and transmits it in real time to the paired device. Transmission is initiated manually by pressing the Push-to-Talk button.
Each device features an OLED display showing signal strength and battery level. Audio playback is handled through a PAM8403 amplifier driving a 4Ω 3W speaker, using the ESP32's onboard DAC. The system is powered by a LiPo battery with built-in protection circuit.
The idea started from the desire to implement a real-time audio communication.
| Component | Model | Quantity | Purpose |
|---|---|---|---|
| Microcontroller | ESP32-WROOM-32 DevKit V1 | 2 | Main processor, ESP-NOW communication, ADC, DAC, GPIO |
| Display | OLED 0.96” I2C SSD1306 | 2 | Shows battery level - Received Signal Strength Indicator |
| Microphone | Analog microphone module with AGC | 2 | Voice capture, analog signal output to ADC |
| Audio amplifier | PAM8403 3.6-5V 2x3W | 2 | Amplifies DAC output signal to drive the speaker |
| Speaker | 40mm 3W 4Ω | 2 | Audio playback of received voice |
| Battery | LiPo 3.7V 2000mAh with protection | 2 | Portable power supply |
| Charging module | TP4056 with protection USB-C | 2 | Battery charging and undervoltage protection |
| Breadboard | 830 points | 2 | Prototyping platform |
| Jumper wires | M-M + M-F | 1 set | Connections between components |
| Resistors | 100kΩ | 4 | Voltage divider for battery level reading via ADC |
| Capacitor | Electrolytic 1000µF | 2 | Decoupling capacitor for ESP32 current spikes |
| Tactile buttons | 6mm momentary | 4 | PTT (x2), Volume(x2) |
| LEDs | red + green | 4 | TX status (red) and RX status (green) per device |