Skip to content

Commit 78fd98b

Browse files
hlym123lbuque
authored andcommitted
boards: Add AtomEchoS3R Support.
Signed-off-by: hlym123 <[email protected]>
1 parent d19acc6 commit 78fd98b

File tree

17 files changed

+747
-65
lines changed

17 files changed

+747
-65
lines changed

m5stack/Makefile

Lines changed: 66 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -11,38 +11,39 @@
1111
BOARD ?= M5STACK_AtomS3
1212

1313
boards := \
14-
M5STACK_AtomS3:atoms3 \
15-
M5STACK_AtomS3_Lite:atoms3-lite \
16-
M5STACK_StampS3:stamps3 \
17-
M5STACK_CoreS3:cores3 \
18-
M5STACK_AtomS3U:atoms3u \
19-
M5STACK_Core2:core2 \
20-
M5STACK_Tough:tough \
21-
M5STACK_StickC_PLUS2:stickcplus2 \
22-
M5STACK_StickC_PLUS:stickcplus \
23-
M5STACK_Fire:fire \
24-
M5STACK_NanoC6:nanoc6 \
25-
M5STACK_Basic:basic \
26-
M5STACK_Basic_4MB:basic \
27-
M5STACK_Capsule:capsule \
28-
M5STACK_CoreInk:coreink \
29-
M5STACK_AirQ:airq \
30-
M5STACK_Dial:dial \
31-
M5STACK_Cardputer:cardputer \
32-
M5STACK_Paper:paper \
33-
M5STACK_PaperS3:papers3 \
34-
M5STACK_DinMeter:dinmeter \
35-
M5STACK_StickC:stickc \
36-
M5STACK_Station:station \
37-
M5STACK_Atom_Lite:atom-lite \
38-
M5STACK_Stamp_PICO:stamppico \
39-
M5STACK_Atom_Matrix:atommatrix \
40-
M5STACK_AtomU:atomu \
41-
M5STACK_Atom_Echo:atomecho \
42-
M5STACK_AtomS3R:atoms3r \
43-
M5STACK_AtomS3R_CAM:atoms3r_cam \
44-
M5STACK_StamPLC:stamplc \
45-
M5STACK_Tab5:tab5 \
14+
M5STACK_AtomS3:atoms3 \
15+
M5STACK_AtomS3_Lite:atoms3-lite \
16+
M5STACK_StampS3:stamps3 \
17+
M5STACK_CoreS3:cores3 \
18+
M5STACK_AtomS3U:atoms3u \
19+
M5STACK_Core2:core2 \
20+
M5STACK_Tough:tough \
21+
M5STACK_StickC_PLUS2:stickcplus2 \
22+
M5STACK_StickC_PLUS:stickcplus \
23+
M5STACK_Fire:fire \
24+
M5STACK_NanoC6:nanoc6 \
25+
M5STACK_Basic:basic \
26+
M5STACK_Basic_4MB:basic \
27+
M5STACK_Capsule:capsule \
28+
M5STACK_CoreInk:coreink \
29+
M5STACK_AirQ:airq \
30+
M5STACK_Dial:dial \
31+
M5STACK_Cardputer:cardputer \
32+
M5STACK_Paper:paper \
33+
M5STACK_PaperS3:papers3 \
34+
M5STACK_DinMeter:dinmeter \
35+
M5STACK_StickC:stickc \
36+
M5STACK_Station:station \
37+
M5STACK_Atom_Lite:atom-lite \
38+
M5STACK_Stamp_PICO:stamppico \
39+
M5STACK_Atom_Matrix:atommatrix \
40+
M5STACK_AtomU:atomu \
41+
M5STACK_Atom_Echo:atomecho \
42+
M5STACK_AtomS3R:atoms3r \
43+
M5STACK_AtomS3R_CAM:atoms3r_cam \
44+
M5STACK_Atom_EchoS3R:atom_echos3r \
45+
M5STACK_StamPLC:stamplc \
46+
M5STACK_Tab5:tab5 \
4647
M5STACK_CardputerADV:cardputeradv
4748

4849
define find_board
@@ -51,38 +52,39 @@ endef
5152

5253
# Board type list
5354
BOARD_TYPE_DEF := \
54-
none \
55-
atoms3 \
56-
atoms3-lite \
57-
stamps3 \
58-
cores3 \
59-
atoms3u \
60-
core2 \
61-
tough \
62-
stickcplus2 \
63-
stickcplus \
64-
fire \
65-
nanoc6 \
66-
basic \
67-
capsule \
68-
coreink \
69-
airq \
70-
dial \
71-
cardputer \
72-
paper \
73-
papers3 \
74-
dinmeter \
75-
stickc \
76-
station \
77-
atom-lite \
78-
stamppico \
79-
atommatrix \
80-
atomu \
81-
atomecho \
82-
atoms3r \
83-
atoms3r_cam \
84-
stamplc \
85-
tab5 \
55+
none \
56+
atoms3 \
57+
atoms3-lite \
58+
stamps3 \
59+
cores3 \
60+
atoms3u \
61+
core2 \
62+
tough \
63+
stickcplus2 \
64+
stickcplus \
65+
fire \
66+
nanoc6 \
67+
basic \
68+
capsule \
69+
coreink \
70+
airq \
71+
dial \
72+
cardputer \
73+
paper \
74+
papers3 \
75+
dinmeter \
76+
stickc \
77+
station \
78+
atom-lite \
79+
stamppico \
80+
atommatrix \
81+
atomu \
82+
atomecho \
83+
atoms3r \
84+
atoms3r_cam \
85+
atom_echos3r \
86+
stamplc \
87+
tab5 \
8688
cardputeradv
8789

8890
# Select the board type to build, default is None

m5stack/boards/Kconfig

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,10 @@ menu "Audio Board Configuration"
1111
default n
1212
help
1313
Enable this option to support m5stack tab5.
14+
15+
config ATOM_ECHOS3R
16+
bool "select M5STACK ATOM ECHOS3R"
17+
default n
18+
help
19+
Enable this option to support m5stack atom_echos3r.
1420
endmenu
Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD
3+
*
4+
* SPDX-License-Identifier: MIT
5+
*/
6+
7+
#if (ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 2, 0) && ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(5, 0, 0))
8+
#include "driver/i2s.h"
9+
#else
10+
#include "driver/i2s_pdm.h"
11+
#include "driver/i2s_tdm.h"
12+
#include "driver/i2s_std.h"
13+
#endif
14+
15+
#define BOARD_TASK_CORE (1)
16+
17+
// mp3 decoder
18+
#define BOARD_MP3_DECODER_CONFIG() { \
19+
.out_rb_size = MP3_DECODER_RINGBUFFER_SIZE, \
20+
.task_stack = MP3_DECODER_TASK_STACK_SIZE, \
21+
.task_core = BOARD_TASK_CORE, \
22+
.task_prio = MP3_DECODER_TASK_PRIO, \
23+
.stack_in_ext = true, \
24+
}
25+
26+
// amr decoder
27+
#define BOARD_AMR_DECODER_CONFIG() { \
28+
.out_rb_size = AMR_DECODER_RINGBUFFER_SIZE, \
29+
.task_stack = AMR_DECODER_TASK_STACK_SIZE, \
30+
.task_core = BOARD_TASK_CORE, \
31+
.task_prio = AMR_DECODER_TASK_PRIO, \
32+
.stack_in_ext = true, \
33+
}
34+
35+
// wav decoder
36+
#define BOARD_WAV_DECODER_CONFIG() { \
37+
.out_rb_size = WAV_DECODER_RINGBUFFER_SIZE, \
38+
.task_stack = WAV_DECODER_TASK_STACK, \
39+
.task_core = BOARD_TASK_CORE, \
40+
.task_prio = WAV_DECODER_TASK_PRIO, \
41+
.stack_in_ext = true, \
42+
}
43+
44+
// pcm decoder
45+
#define BOARD_PCM_DECODER_CONFIG() { \
46+
.out_rb_size = PCM_DECODER_RINGBUFFER_SIZE, \
47+
.task_stack = PCM_DECODER_TASK_STACK, \
48+
.task_core = BOARD_TASK_CORE, \
49+
.task_prio = PCM_DECODER_TASK_PRIO, \
50+
.stack_in_ext = true, \
51+
.rate = 8000, \
52+
.bits = 16, \
53+
.channels = 1, \
54+
}
55+
56+
// i2s stream
57+
#if (ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(4, 2, 0) && ESP_IDF_VERSION < ESP_IDF_VERSION_VAL(5, 0, 0))
58+
#define BOARD_I2S_STREAM_CFG_DEFAULT() { \
59+
.type = AUDIO_STREAM_WRITER, \
60+
.i2s_config = { \
61+
.mode = (i2s_mode_t)(I2S_MODE_MASTER | I2S_MODE_TX | I2S_MODE_RX), \
62+
.sample_rate = 48000, \
63+
.bits_per_sample = I2S_BITS_PER_SAMPLE_16BIT, \
64+
.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT, \
65+
.communication_format = I2S_COMM_FORMAT_STAND_I2S, \
66+
.intr_alloc_flags = ESP_INTR_FLAG_LEVEL2 | ESP_INTR_FLAG_IRAM, \
67+
.dma_buf_count = 3, \
68+
.dma_buf_len = 300, \
69+
.use_apll = true, \
70+
.tx_desc_auto_clear = true, \
71+
.fixed_mclk = 0 \
72+
}, \
73+
.i2s_port = I2S_NUM_1, \
74+
.use_alc = false, \
75+
.volume = 0, \
76+
.out_rb_size = I2S_STREAM_RINGBUFFER_SIZE, \
77+
.task_stack = I2S_STREAM_TASK_STACK, \
78+
.task_core = BOARD_TASK_CORE, \
79+
.task_prio = I2S_STREAM_TASK_PRIO, \
80+
.stack_in_ext = false, \
81+
.multi_out_num = 0, \
82+
.uninstall_drv = false, \
83+
.need_expand = false, \
84+
.expand_src_bits = I2S_BITS_PER_SAMPLE_16BIT, \
85+
.buffer_len = I2S_STREAM_BUF_SIZE, \
86+
}
87+
#else
88+
#define BOARD_I2S_STREAM_CFG_DEFAULT() { \
89+
.type = AUDIO_STREAM_WRITER, \
90+
.std_cfg = { \
91+
.clk_cfg = I2S_STD_CLK_DEFAULT_CONFIG(48000), \
92+
.slot_cfg = I2S_STD_PHILIPS_SLOT_DEFAULT_ADF_CONFIG(I2S_DATA_BIT_WIDTH_16BIT, I2S_SLOT_MODE_STEREO), \
93+
.gpio_cfg = { \
94+
.invert_flags = { \
95+
.mclk_inv = false, \
96+
.bclk_inv = false, \
97+
}, \
98+
}, \
99+
}, \
100+
.transmit_mode = I2S_COMM_MODE_STD, \
101+
.chan_cfg = { \
102+
.id = I2S_NUM_1, \
103+
.role = I2S_ROLE_MASTER, \
104+
.dma_desc_num = 3, \
105+
.dma_frame_num = 300, \
106+
.auto_clear = true, \
107+
}, \
108+
.use_alc = false, \
109+
.volume = 0, \
110+
.out_rb_size = I2S_STREAM_RINGBUFFER_SIZE, \
111+
.task_stack = I2S_STREAM_TASK_STACK, \
112+
.task_core = BOARD_TASK_CORE, \
113+
.task_prio = I2S_STREAM_TASK_PRIO, \
114+
.stack_in_ext = false, \
115+
.multi_out_num = 0, \
116+
.uninstall_drv = false, \
117+
.need_expand = false, \
118+
.expand_src_bits = I2S_DATA_BIT_WIDTH_16BIT, \
119+
.buffer_len = I2S_STREAM_BUF_SIZE, \
120+
}
121+
#endif
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"deploy": [
3+
"../deploy_s3.md"
4+
],
5+
"docs": "",
6+
"features": [
7+
"BLE",
8+
"WiFi"
9+
],
10+
"images": [
11+
"generic_s3.jpg"
12+
],
13+
"mcu": "esp32s3",
14+
"product": "M5Stack S3 Serials",
15+
"thumbnail": "",
16+
"url": "https://www.espressif.com/en/products/modules",
17+
"vendor": "M5Stack"
18+
}

0 commit comments

Comments
 (0)