Skip to content
This repository was archived by the owner on Jan 29, 2023. It is now read-only.

Commit 56a50a6

Browse files
authored
v1.3.0 to add support to new ESP32-S3
### Releases v1.3.0 1. Add support to new `ESP32-S3` (ESP32S3_DEV, ESP32_S3_BOX, UM TINYS3, UM PROS3, UM FEATHERS3, etc.) 2. Modify examples accordingly
1 parent 8ef9422 commit 56a50a6

19 files changed

+312
-136
lines changed

CONTRIBUTING.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Please ensure to specify the following:
1818
* `ESP32` Core Version (e.g. ESP32 core v2.0.2)
1919
* `ESP32` Board type (e.g. ESP32_DEV Module, etc.)
2020
* `ESP32-S2` Board type (e.g. ESP32S2_DEV Module, ESP32_S2_Saola, etc.)
21+
* `ESP32_S3` Board type (e.g. ESP32S3_DEV, ESP32_S3_BOX, UM TINYS3, UM PROS3, UM FEATHERS3, etc.)
2122
* `ESP32-C3` Board type (e.g. ESP32C3_DEV Module, etc.)
2223
* Contextual information (e.g. what you were trying to achieve)
2324
* Simplest possible steps to reproduce
@@ -31,9 +32,9 @@ Please ensure to specify the following:
3132
```
3233
Arduino IDE version: 1.8.19
3334
ESP32 core v2.0.2
34-
ESP32S2_DEV Module
35+
ESP32S3_DEV Module
3536
OS: Ubuntu 20.04 LTS
36-
Linux xy-Inspiron-3593 5.4.0-96-generic #109-Ubuntu SMP Wed Jan 12 16:49:16 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
37+
Linux xy-Inspiron-3593 5.4.0-99-generic #112-Ubuntu SMP Thu Feb 3 13:50:55 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
3738
3839
Context:
3940
I encountered a crash while using TimerInterrupt.

README.md

Lines changed: 133 additions & 28 deletions
Large diffs are not rendered by default.

changelog.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
## Table of Contents
1313

1414
* [Changelog](#changelog)
15+
* [Releases v1.3.0](#releases-v130)
1516
* [Releases v1.2.2](#releases-v122)
1617
* [Releases v1.2.1](#releases-v121)
1718
* [Releases v1.2.0](#releases-v120)
@@ -25,6 +26,11 @@
2526

2627
## Changelog
2728

29+
### Releases v1.3.0
30+
31+
1. Add support to new `ESP32-S3` (ESP32S3_DEV, ESP32_S3_BOX, UM TINYS3, UM PROS3, UM FEATHERS3, etc.)
32+
2. Modify examples accordingly
33+
2834
### Releases v1.2.2
2935

3036
1. Use `float` for `DutyCycle` and `Freq`, `uint32_t` for `period`.

examples/ISR_16_PWMs_Array/ISR_16_PWMs_Array.ino

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
/****************************************************************************************************************************
22
ISR_16_PWMs_Array.ino
3-
For ESP32, ESP32_S2, ESP32_C3 boards with ESP32 core v2.0.0+
3+
For ESP32, ESP32_S2, ESP32_S3, ESP32_C3 boards with ESP32 core v2.0.0+
44
Written by Khoi Hoang
55
66
Built by Khoi Hoang https://github.com/khoih-prog/ESP32_PWM
77
Licensed under MIT license
88
9-
The ESP32, ESP32_S2, ESP32_C3 have two timer groups, TIMER_GROUP_0 and TIMER_GROUP_1
10-
1) each group of ESP32, ESP32_S2 has two general purpose hardware timers, TIMER_0 and TIMER_1
9+
The ESP32, ESP32_S2, ESP32_S3, ESP32_C3 have two timer groups, TIMER_GROUP_0 and TIMER_GROUP_1
10+
1) each group of ESP32, ESP32_S2, ESP32_S3 has two general purpose hardware timers, TIMER_0 and TIMER_1
1111
2) each group of ESP32_C3 has ony one general purpose hardware timer, TIMER_0
1212
13-
All the timers are based on 64 bits counters and 16 bit prescalers. The timer counters can be configured to count up or down
14-
and support automatic reload and software reload. They can also generate alarms when they reach a specific value, defined by
15-
the software. The value of the counter can be read by the software program.
13+
All the timers are based on 64-bit counters (except 54-bit counter for ESP32_S3 counter) and 16 bit prescalers.
14+
The timer counters can be configured to count up or down and support automatic reload and software reload.
15+
They can also generate alarms when they reach a specific value, defined by the software.
16+
The value of the counter can be read by the software program.
1617
1718
Now even you use all these new 16 ISR-based timers,with their maximum interval practically unlimited (limited only by
1819
unsigned long miliseconds), you just consume only one ESP32-S2 timer and avoid conflicting with other cores' tasks.
@@ -72,6 +73,8 @@ bool IRAM_ATTR TimerHandler(void * timerNo)
7273

7374
#if ( ARDUINO_ESP32C3_DEV )
7475
#define NUMBER_ISR_PWMS 4
76+
#elif ( ARDUINO_ESP32S3_DEV )
77+
#define NUMBER_ISR_PWMS 16
7578
#else
7679
#define NUMBER_ISR_PWMS 16
7780
#endif
@@ -82,6 +85,12 @@ bool IRAM_ATTR TimerHandler(void * timerNo)
8285
#define PIN_D3 3 // Pin D3 mapped to pin GPIO3/RX0 of ESP32
8386
#define PIN_D4 4 // Pin D4 mapped to pin GPIO4/ADC10/TOUCH0 of ESP32
8487
#define PIN_D5 5 // Pin D5 mapped to pin GPIO5/SPISS/VSPI_SS of ESP32
88+
#define PIN_D6 6 // Pin D6 mapped to pin GPIO6 of ESP32
89+
#define PIN_D7 7 // Pin D7 mapped to pin GPIO7 of ESP32
90+
#define PIN_D8 8 // Pin D8 mapped to pin GPIO8 of ESP32
91+
#define PIN_D9 9 // Pin D9 mapped to pin GPIO9 of ESP32
92+
#define PIN_D10 10 // Pin D10 mapped to pin GPIO10 of ESP32
93+
#define PIN_D11 11 // Pin D11 mapped to pin GPIO11 of ESP32
8594
#define PIN_D12 12 // Pin D12 mapped to pin GPIO12/HSPI_MISO/ADC15/TOUCH5/TDI of ESP32
8695
#define PIN_D13 13 // Pin D13 mapped to pin GPIO13/HSPI_MOSI/ADC14/TOUCH4/TCK of ESP32
8796
#define PIN_D14 14 // Pin D14 mapped to pin GPIO14/HSPI_SCK/ADC16/TOUCH6/TMS of ESP32
@@ -97,7 +106,7 @@ bool IRAM_ATTR TimerHandler(void * timerNo)
97106
#define PIN_D24 24 // Pin D24 mapped to pin GPIO24 of ESP32
98107
#define PIN_D25 25 // Pin D25 mapped to pin GPIO25/ADC18/DAC1 of ESP32
99108
#define PIN_D26 26 // Pin D26 mapped to pin GPIO26/ADC19/DAC2 of ESP32
100-
#define PIN_D27 27 // Pin D27 mapped to pin GPIO27/ADC17/TOUCH7 of ESP32
109+
#define PIN_D27 27 // Pin D27 mapped to pin GPIO27/ADC17/TOUCH7 of ESP32
101110

102111
//////////////////////////////////////////////////////
103112

@@ -114,6 +123,13 @@ uint32_t PWM_Pin[] =
114123
{
115124
LED_BUILTIN, PIN_D3, PIN_D4, PIN_D5
116125
};
126+
#elif ( ARDUINO_ESP32S3_DEV )
127+
uint32_t PWM_Pin[] =
128+
// Bad pins to use: PIN_D24
129+
{
130+
PIN_D1, PIN_D2, PIN_D3, PIN_D4, PIN_D5, PIN_D6, PIN_D7, PIN_D8,
131+
PIN_D9, PIN_D10, PIN_D11, PIN_D12, PIN_D13, PIN_D14, PIN_D15, PIN_D16,
132+
};
117133
#else
118134
uint32_t PWM_Pin[] =
119135
{
@@ -271,4 +287,5 @@ void setup()
271287

272288
void loop()
273289
{
290+
delay(1);
274291
}

examples/ISR_16_PWMs_Array_Complex/ISR_16_PWMs_Array_Complex.ino

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
/****************************************************************************************************************************
22
ISR_16_PWMs_Array_Complex.ino
3-
For ESP32, ESP32_S2, ESP32_C3 boards with ESP32 core v2.0.0+
3+
For ESP32, ESP32_S2, ESP32_S3, ESP32_C3 boards with ESP32 core v2.0.0+
44
Written by Khoi Hoang
55
66
Built by Khoi Hoang https://github.com/khoih-prog/ESP32_PWM
77
Licensed under MIT license
88
9-
The ESP32, ESP32_S2, ESP32_C3 have two timer groups, TIMER_GROUP_0 and TIMER_GROUP_1
10-
1) each group of ESP32, ESP32_S2 has two general purpose hardware timers, TIMER_0 and TIMER_1
9+
The ESP32, ESP32_S2, ESP32_S3, ESP32_C3 have two timer groups, TIMER_GROUP_0 and TIMER_GROUP_1
10+
1) each group of ESP32, ESP32_S2, ESP32_S3 has two general purpose hardware timers, TIMER_0 and TIMER_1
1111
2) each group of ESP32_C3 has ony one general purpose hardware timer, TIMER_0
1212
13-
All the timers are based on 64 bits counters and 16 bit prescalers. The timer counters can be configured to count up or down
14-
and support automatic reload and software reload. They can also generate alarms when they reach a specific value, defined by
15-
the software. The value of the counter can be read by the software program.
13+
All the timers are based on 64-bit counters (except 54-bit counter for ESP32_S3 counter) and 16 bit prescalers.
14+
The timer counters can be configured to count up or down and support automatic reload and software reload.
15+
They can also generate alarms when they reach a specific value, defined by the software.
16+
The value of the counter can be read by the software program.
1617
1718
Now even you use all these new 16 ISR-based timers,with their maximum interval practically unlimited (limited only by
1819
unsigned long miliseconds), you just consume only one ESP32-S2 timer and avoid conflicting with other cores' tasks.
@@ -73,6 +74,8 @@ bool IRAM_ATTR TimerHandler(void * timerNo)
7374

7475
#if ( ARDUINO_ESP32C3_DEV )
7576
#define NUMBER_ISR_PWMS 4
77+
#elif ( ARDUINO_ESP32S3_DEV )
78+
#define NUMBER_ISR_PWMS 16
7679
#else
7780
#define NUMBER_ISR_PWMS 16
7881
#endif
@@ -83,6 +86,12 @@ bool IRAM_ATTR TimerHandler(void * timerNo)
8386
#define PIN_D3 3 // Pin D3 mapped to pin GPIO3/RX0 of ESP32
8487
#define PIN_D4 4 // Pin D4 mapped to pin GPIO4/ADC10/TOUCH0 of ESP32
8588
#define PIN_D5 5 // Pin D5 mapped to pin GPIO5/SPISS/VSPI_SS of ESP32
89+
#define PIN_D6 6 // Pin D6 mapped to pin GPIO6 of ESP32
90+
#define PIN_D7 7 // Pin D7 mapped to pin GPIO7 of ESP32
91+
#define PIN_D8 8 // Pin D8 mapped to pin GPIO8 of ESP32
92+
#define PIN_D9 9 // Pin D9 mapped to pin GPIO9 of ESP32
93+
#define PIN_D10 10 // Pin D10 mapped to pin GPIO10 of ESP32
94+
#define PIN_D11 11 // Pin D11 mapped to pin GPIO11 of ESP32
8695
#define PIN_D12 12 // Pin D12 mapped to pin GPIO12/HSPI_MISO/ADC15/TOUCH5/TDI of ESP32
8796
#define PIN_D13 13 // Pin D13 mapped to pin GPIO13/HSPI_MOSI/ADC14/TOUCH4/TCK of ESP32
8897
#define PIN_D14 14 // Pin D14 mapped to pin GPIO14/HSPI_SCK/ADC16/TOUCH6/TMS of ESP32
@@ -98,7 +107,7 @@ bool IRAM_ATTR TimerHandler(void * timerNo)
98107
#define PIN_D24 24 // Pin D24 mapped to pin GPIO24 of ESP32
99108
#define PIN_D25 25 // Pin D25 mapped to pin GPIO25/ADC18/DAC1 of ESP32
100109
#define PIN_D26 26 // Pin D26 mapped to pin GPIO26/ADC19/DAC2 of ESP32
101-
#define PIN_D27 27 // Pin D27 mapped to pin GPIO27/ADC17/TOUCH7 of ESP32
110+
#define PIN_D27 27 // Pin D27 mapped to pin GPIO27/ADC17/TOUCH7 of ESP32
102111

103112
typedef void (*irqCallback) ();
104113

@@ -123,6 +132,13 @@ uint32_t PWM_Pin[] =
123132
{
124133
LED_BUILTIN, PIN_D3, PIN_D4, PIN_D5
125134
};
135+
#elif ( ARDUINO_ESP32S3_DEV )
136+
uint32_t PWM_Pin[] =
137+
// Bad pins to use: PIN_D24
138+
{
139+
PIN_D1, PIN_D2, PIN_D3, PIN_D4, PIN_D5, PIN_D6, PIN_D7, PIN_D8,
140+
PIN_D9, PIN_D10, PIN_D11, PIN_D12, PIN_D13, PIN_D14, PIN_D15, PIN_D16,
141+
};
126142
#else
127143
uint32_t PWM_Pin[] =
128144
{

examples/ISR_16_PWMs_Array_Simple/ISR_16_PWMs_Array_Simple.ino

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
/****************************************************************************************************************************
22
ISR_16_PWMs_Array_Simple.ino
3-
For ESP32, ESP32_S2, ESP32_C3 boards with ESP32 core v2.0.0+
3+
For ESP32, ESP32_S2, ESP32_S3, ESP32_C3 boards with ESP32 core v2.0.0+
44
Written by Khoi Hoang
55
66
Built by Khoi Hoang https://github.com/khoih-prog/ESP32_PWM
77
Licensed under MIT license
88
9-
The ESP32, ESP32_S2, ESP32_C3 have two timer groups, TIMER_GROUP_0 and TIMER_GROUP_1
10-
1) each group of ESP32, ESP32_S2 has two general purpose hardware timers, TIMER_0 and TIMER_1
9+
The ESP32, ESP32_S2, ESP32_S3, ESP32_C3 have two timer groups, TIMER_GROUP_0 and TIMER_GROUP_1
10+
1) each group of ESP32, ESP32_S2, ESP32_S3 has two general purpose hardware timers, TIMER_0 and TIMER_1
1111
2) each group of ESP32_C3 has ony one general purpose hardware timer, TIMER_0
12-
13-
All the timers are based on 64 bits counters and 16 bit prescalers. The timer counters can be configured to count up or down
14-
and support automatic reload and software reload. They can also generate alarms when they reach a specific value, defined by
15-
the software. The value of the counter can be read by the software program.
12+
13+
All the timers are based on 64-bit counters (except 54-bit counter for ESP32_S3 counter) and 16 bit prescalers.
14+
The timer counters can be configured to count up or down and support automatic reload and software reload.
15+
They can also generate alarms when they reach a specific value, defined by the software.
16+
The value of the counter can be read by the software program.
1617
1718
Now even you use all these new 16 ISR-based timers,with their maximum interval practically unlimited (limited only by
1819
unsigned long miliseconds), you just consume only one ESP32-S2 timer and avoid conflicting with other cores' tasks.
@@ -72,6 +73,8 @@ bool IRAM_ATTR TimerHandler(void * timerNo)
7273

7374
#if ( ARDUINO_ESP32C3_DEV )
7475
#define NUMBER_ISR_PWMS 4
76+
#elif ( ARDUINO_ESP32S3_DEV )
77+
#define NUMBER_ISR_PWMS 16
7578
#else
7679
#define NUMBER_ISR_PWMS 16
7780
#endif
@@ -82,6 +85,12 @@ bool IRAM_ATTR TimerHandler(void * timerNo)
8285
#define PIN_D3 3 // Pin D3 mapped to pin GPIO3/RX0 of ESP32
8386
#define PIN_D4 4 // Pin D4 mapped to pin GPIO4/ADC10/TOUCH0 of ESP32
8487
#define PIN_D5 5 // Pin D5 mapped to pin GPIO5/SPISS/VSPI_SS of ESP32
88+
#define PIN_D6 6 // Pin D6 mapped to pin GPIO6 of ESP32
89+
#define PIN_D7 7 // Pin D7 mapped to pin GPIO7 of ESP32
90+
#define PIN_D8 8 // Pin D8 mapped to pin GPIO8 of ESP32
91+
#define PIN_D9 9 // Pin D9 mapped to pin GPIO9 of ESP32
92+
#define PIN_D10 10 // Pin D10 mapped to pin GPIO10 of ESP32
93+
#define PIN_D11 11 // Pin D11 mapped to pin GPIO11 of ESP32
8594
#define PIN_D12 12 // Pin D12 mapped to pin GPIO12/HSPI_MISO/ADC15/TOUCH5/TDI of ESP32
8695
#define PIN_D13 13 // Pin D13 mapped to pin GPIO13/HSPI_MOSI/ADC14/TOUCH4/TCK of ESP32
8796
#define PIN_D14 14 // Pin D14 mapped to pin GPIO14/HSPI_SCK/ADC16/TOUCH6/TMS of ESP32
@@ -114,6 +123,13 @@ uint32_t PWM_Pin[] =
114123
{
115124
LED_BUILTIN, PIN_D3, PIN_D4, PIN_D5
116125
};
126+
#elif ( ARDUINO_ESP32S3_DEV )
127+
uint32_t PWM_Pin[] =
128+
// Bad pins to use: PIN_D24
129+
{
130+
PIN_D1, PIN_D2, PIN_D3, PIN_D4, PIN_D5, PIN_D6, PIN_D7, PIN_D8,
131+
PIN_D9, PIN_D10, PIN_D11, PIN_D12, PIN_D13, PIN_D14, PIN_D15, PIN_D16,
132+
};
117133
#else
118134
uint32_t PWM_Pin[] =
119135
{

examples/ISR_Changing_PWM/ISR_Changing_PWM.ino

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
/****************************************************************************************************************************
22
ISR_Changing_PWM.ino
3-
For ESP32, ESP32_S2, ESP32_C3 boards with ESP32 core v2.0.0+
3+
For ESP32, ESP32_S2, ESP32_S3, ESP32_C3 boards with ESP32 core v2.0.0+
44
Written by Khoi Hoang
55
66
Built by Khoi Hoang https://github.com/khoih-prog/ESP32_PWM
77
Licensed under MIT license
88
9-
The ESP32, ESP32_S2, ESP32_C3 have two timer groups, TIMER_GROUP_0 and TIMER_GROUP_1
10-
1) each group of ESP32, ESP32_S2 has two general purpose hardware timers, TIMER_0 and TIMER_1
9+
The ESP32, ESP32_S2, ESP32_S3, ESP32_C3 have two timer groups, TIMER_GROUP_0 and TIMER_GROUP_1
10+
1) each group of ESP32, ESP32_S2, ESP32_S3 has two general purpose hardware timers, TIMER_0 and TIMER_1
1111
2) each group of ESP32_C3 has ony one general purpose hardware timer, TIMER_0
12-
13-
All the timers are based on 64 bits counters and 16 bit prescalers. The timer counters can be configured to count up or down
14-
and support automatic reload and software reload. They can also generate alarms when they reach a specific value, defined by
15-
the software. The value of the counter can be read by the software program.
12+
13+
All the timers are based on 64-bit counters (except 54-bit counter for ESP32_S3 counter) and 16 bit prescalers.
14+
The timer counters can be configured to count up or down and support automatic reload and software reload.
15+
They can also generate alarms when they reach a specific value, defined by the software.
16+
The value of the counter can be read by the software program.
1617
1718
Now even you use all these new 16 ISR-based timers,with their maximum interval practically unlimited (limited only by
1819
unsigned long miliseconds), you just consume only one ESP32-S2 timer and avoid conflicting with other cores' tasks.
@@ -69,9 +70,9 @@ bool IRAM_ATTR TimerHandler(void * timerNo)
6970
uint32_t PWM_Pin = LED_BUILTIN;
7071

7172
// You can assign any interval for any timer here, in Hz
72-
float PWM_Freq1 = 1.0f;
73+
float PWM_Freq1 = 100.0f;
7374
// You can assign any interval for any timer here, in Hz
74-
float PWM_Freq2 = 2.0f;
75+
float PWM_Freq2 = 200.0f;
7576

7677
// You can assign any interval for any timer here, in microseconds
7778
uint32_t PWM_Period1 = 1000000 / PWM_Freq1;

examples/ISR_Modify_PWM/ISR_Modify_PWM.ino

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
/****************************************************************************************************************************
22
ISR_Modify_PWM.ino
3-
For ESP32, ESP32_S2, ESP32_C3 boards with ESP32 core v2.0.0+
3+
For ESP32, ESP32_S2, ESP32_S3, ESP32_C3 boards with ESP32 core v2.0.0+
44
Written by Khoi Hoang
55
66
Built by Khoi Hoang https://github.com/khoih-prog/ESP32_PWM
77
Licensed under MIT license
88
9-
The ESP32, ESP32_S2, ESP32_C3 have two timer groups, TIMER_GROUP_0 and TIMER_GROUP_1
10-
1) each group of ESP32, ESP32_S2 has two general purpose hardware timers, TIMER_0 and TIMER_1
9+
The ESP32, ESP32_S2, ESP32_S3, ESP32_C3 have two timer groups, TIMER_GROUP_0 and TIMER_GROUP_1
10+
1) each group of ESP32, ESP32_S2, ESP32_S3 has two general purpose hardware timers, TIMER_0 and TIMER_1
1111
2) each group of ESP32_C3 has ony one general purpose hardware timer, TIMER_0
12-
13-
All the timers are based on 64 bits counters and 16 bit prescalers. The timer counters can be configured to count up or down
14-
and support automatic reload and software reload. They can also generate alarms when they reach a specific value, defined by
15-
the software. The value of the counter can be read by the software program.
12+
13+
All the timers are based on 64-bit counters (except 54-bit counter for ESP32_S3 counter) and 16 bit prescalers.
14+
The timer counters can be configured to count up or down and support automatic reload and software reload.
15+
They can also generate alarms when they reach a specific value, defined by the software.
16+
The value of the counter can be read by the software program.
1617
1718
Now even you use all these new 16 ISR-based timers,with their maximum interval practically unlimited (limited only by
1819
unsigned long miliseconds), you just consume only one ESP32-S2 timer and avoid conflicting with other cores' tasks.
@@ -70,9 +71,9 @@ bool IRAM_ATTR TimerHandler(void * timerNo)
7071
uint32_t PWM_Pin = LED_BUILTIN;
7172

7273
// You can assign any interval for any timer here, in Hz
73-
float PWM_Freq1 = 1.0f;
74+
float PWM_Freq1 = 100.0f;
7475
// You can assign any interval for any timer here, in Hz
75-
float PWM_Freq2 = 2.0f;
76+
float PWM_Freq2 = 200.0f;
7677

7778
// You can assign any interval for any timer here, in microseconds
7879
uint32_t PWM_Period1 = 1000000 / PWM_Freq1;

examples/multiFileProject/multiFileProject.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/****************************************************************************************************************************
22
multiFileProject.cpp
33
4-
For ESP32, ESP32_S2, ESP32_C3 boards with ESP32 core v2.0.0+
4+
For ESP32, ESP32_S2, ESP32_S3, ESP32_C3 boards with ESP32 core v2.0.0+
55
Written by Khoi Hoang
66
77
Built by Khoi Hoang https://github.com/khoih-prog/ESP32_PWM

examples/multiFileProject/multiFileProject.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/****************************************************************************************************************************
22
multiFileProject.h
33
4-
For ESP32, ESP32_S2, ESP32_C3 boards with ESP32 core v2.0.0+
4+
For ESP32, ESP32_S2, ESP32_S3, ESP32_C3 boards with ESP32 core v2.0.0+
55
Written by Khoi Hoang
66
77
Built by Khoi Hoang https://github.com/khoih-prog/ESP32_PWM

0 commit comments

Comments
 (0)