Files
2026-02-12 21:00:02 -08:00

155 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ESP32 Configuration
If you are using ESP32 by Espressif Systems version 3.0.0 and later, audio tools will use the new adc_continuous API.
For the adc_continuous API, audio tools provides the following options:
- **sample_rate** (per channel), the effective ADC sampling rate is the number of channels x sample rate and can be:
- ESP32: 20kHz to 2MHz
- ESP32 S2, S3, H2, C6, C3: 611Hz to 83.333kHz
for example:
- 306
- 4,000
- 5,000
- 8,000
- 10,000
- 11,025
- 16,000
- 20,000
- 22,050
- 40,000
- 44,100
- 48,000
- 88,200
- 96,000
- 176,400
- 192,200
- 352,800
- 384,000
- 500,000
- 1,000,000
- **adc_bit_with**
- 9, 10, 11, 12 depending on ESP32 model
- audio stream is int16_t
- **adc_calibration_active**: values measured are in mV
- **is_auto_center_read**: subtraction of current estimated average from samples
- **adc_attenuation**:
| attenuation | range | accurate range |
| ------------ | --------| -------------- |
| ADC_ATTEN_DB_0 | 0..1.1V | 100-950mV |
| ADC_ATTEN_DB_2_5| 0..1.5V | 100-1250mV |
| ADC_ATTEN_DB_6 | 0..2.2V | 150-1750mV |
| ADC_ATTEN_DB_12 | 0..3.9V | 150-2450mV |
- **channels**:
- mono = 1
- stereo = 2
- **adc_channels**: defining the channels (only channels on ADC unit 1 are supported) e.g.:
- A3 on Sparkfun ESP32 Thing Plus is ADC_CHANNEL_3
- A4 on Sparkfun ESP32 Thing Plus is ADC_CHANNEL_0
- D5 on Adafruit ESP32-S3 is ADC_CHANNEL_4
- D6 on Adafruit ESP32-S3 is ADC_CHANNEL_5
- **buffer_size**
- maximum is 2048
- minimum is number of channels
- number needs to be divisible by number of channels
- care must be taken because some streams in audio tools can not exceed 1024 bytes
## Example Configuration
```
auto adcConfig = adc.defaultConfig(RX_MODE);
adcConfig.sample_rate = 44100;
adcConfig.adc_bit_width = 12;
adcConfig.adc_calibration_active = true;
adcConfig.is_auto_center_read = false;
adcConfig.adc_attenuation = ADC_ATTEN_DB_12;
adcConfig.channels = 2;
adcConfig.adc_channels[0] = ADC_CHANNEL_4;
adcConfig.adc_channels[1] = ADC_CHANNEL_5;
```
## ADC unit 1 channels on common ESP32 boards
Audio tools continuous ADC framework supports ADC Unit 1 only.
### Sparkfun ESP32 Thing Plus (ESP32)
- A2, ADC1_CH6
- A3, ADC1_CH3
- A4, ADC1_CH0
- 32, ADC1_CH4
- 33, ADC1_CH5
### Sparkfun ESP32 Thing Plus C (ESP32)
- A2, ADC1_CH6
- A3, ADC1_CH3
- A4, ADC1_CH0
- A5, ADC1_CH7
- 32/6, ADC1_CH4
- 33/10, ADC1_CH5
### Sparkfun ESP32 Qwiic Pocket Development (ESP32C6)
- 2, ADC1_CH2
- 3, ADC1_CH3
- 4, ADC1_CH4
- 5, ADC1_CH5
### ESP32-C6-DevKit
- 4, ADC1_CH4
- 5, ADC1_CH5
- 6, ADC1_CH6
- 7, ADC1_CH0
- 0, ADC1_CH1
- 2, ADC1_CH2
- 3, ADC1_CH3
### ESP32-H2-DevKit
- 1, ADC1_CH0
- 2, ADC1_CH1
- 3, ADC1_CH2
- 4, ADC1_CH3
- 5, ADC1_CH4
### ESP32­-S3­-DevKit
- 1, ADC1_CH0
- 2, ADC1_CH1
- 4, ADC1_CH3
- 5, ADC1_CH4
- 6, ADC1_CH5
- 7, ADC1_CH6
- 8, ADC1_CH7
- 3, ADC1_CH2
- 9, ADC1_CH8
- 10, ADC1_CH9
### ESP32-C3-DevKit
- 4, IO2, ADC1_CH2
- 5, IO3, ADC1_CH3
- 9, IO0, ADC1_CH0
- 10, IO1, ADC1_CH1
- 11, IO4, ADC1_CH4
### Adafruit ESP32 Feather V2
- D32, ADC1_CH4
- D33, ADC1_CH5
- A2, ADC1_CH6
- A3, ADC1_CH3
- A4, ADC1_CH0
- D37, ADC1_CH1
### Adafruit ESP32-S3 Feather
- D5, ADC1_CH4
- D6, ADC1_CH5
- D9, ADC1_CH8
- D10, ADC1_CH9
- A5, ADC1_CH7
### Adafruit QT Py ESP32-C3
- A0, ADC1-CH4
- A1, ADC1-CH3
- A2, ADC1-CH1
- A3, ADC1-CH0