Skip to content

Commit 1ada2b2

Browse files
authored
Merge branch 'master' into replace_BLE_iBeacon
2 parents 93e683a + a0ead19 commit 1ada2b2

File tree

26 files changed

+491
-47
lines changed

26 files changed

+491
-47
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ boards.sloeber.txt
3232
# Ignore docs build (Sphinx)
3333
docs/build
3434
docs/source/_build
35+
__pycache__/
36+
_build/
3537

3638
# Test log files
3739
*.log

boards.txt

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19665,3 +19665,118 @@ redpill_esp32s3.menu.EraseFlash.all=Enabled
1966519665
redpill_esp32s3.menu.EraseFlash.all.upload.erase_cmd=-e
1966619666

1966719667
##############################################################
19668+
19669+
esp32c3m1IKit.name=ESP-C3-M1-I-Kit
19670+
19671+
esp32c3m1IKit.bootloader.tool=esptool_py
19672+
esp32c3m1IKit.bootloader.tool.default=esptool_py
19673+
19674+
esp32c3m1IKit.upload.tool=esptool_py
19675+
esp32c3m1IKit.upload.tool.default=esptool_py
19676+
esp32c3m1IKit.upload.tool.network=esp_ota
19677+
19678+
esp32c3m1IKit.upload.maximum_size=1310720
19679+
esp32c3m1IKit.upload.maximum_data_size=327680
19680+
esp32c3m1IKit.upload.flags=
19681+
esp32c3m1IKit.upload.extra_flags=
19682+
esp32c3m1IKit.upload.use_1200bps_touch=false
19683+
esp32c3m1IKit.upload.wait_for_upload_port=false
19684+
19685+
esp32c3m1IKit.serial.disableDTR=false
19686+
esp32c3m1IKit.serial.disableRTS=false
19687+
19688+
esp32c3m1IKit.build.tarch=riscv32
19689+
esp32c3m1IKit.build.target=esp
19690+
esp32c3m1IKit.build.mcu=esp32c3
19691+
esp32c3m1IKit.build.core=esp32
19692+
esp32c3m1IKit.build.variant=esp_c3_m1_i_kit
19693+
esp32c3m1IKit.build.board=ESP32C3_M1_I_KIT
19694+
esp32c3m1IKit.build.bootloader_addr=0x0
19695+
19696+
esp32c3m1IKit.build.cdc_on_boot=0
19697+
esp32c3m1IKit.build.f_cpu=160000000L
19698+
esp32c3m1IKit.build.flash_size=4MB
19699+
esp32c3m1IKit.build.flash_freq=80m
19700+
esp32c3m1IKit.build.flash_mode=qio
19701+
esp32c3m1IKit.build.boot=qio
19702+
esp32c3m1IKit.build.partitions=default
19703+
esp32c3m1IKit.build.defines=
19704+
19705+
esp32c3m1IKit.menu.CDCOnBoot.default=Disabled
19706+
esp32c3m1IKit.menu.CDCOnBoot.default.build.cdc_on_boot=0
19707+
esp32c3m1IKit.menu.CDCOnBoot.cdc=Enabled
19708+
esp32c3m1IKit.menu.CDCOnBoot.cdc.build.cdc_on_boot=1
19709+
19710+
esp32c3m1IKit.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
19711+
esp32c3m1IKit.menu.PartitionScheme.default.build.partitions=default
19712+
esp32c3m1IKit.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
19713+
esp32c3m1IKit.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
19714+
esp32c3m1IKit.menu.PartitionScheme.minimal=Minimal (1.3MB APP/700KB SPIFFS)
19715+
esp32c3m1IKit.menu.PartitionScheme.minimal.build.partitions=minimal
19716+
esp32c3m1IKit.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
19717+
esp32c3m1IKit.menu.PartitionScheme.no_ota.build.partitions=no_ota
19718+
esp32c3m1IKit.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
19719+
esp32c3m1IKit.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
19720+
esp32c3m1IKit.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
19721+
esp32c3m1IKit.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
19722+
esp32c3m1IKit.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
19723+
esp32c3m1IKit.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
19724+
esp32c3m1IKit.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
19725+
esp32c3m1IKit.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
19726+
esp32c3m1IKit.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
19727+
esp32c3m1IKit.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
19728+
esp32c3m1IKit.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
19729+
esp32c3m1IKit.menu.PartitionScheme.huge_app.build.partitions=huge_app
19730+
esp32c3m1IKit.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
19731+
esp32c3m1IKit.menu.PartitionScheme.min_spiffs=Minimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)
19732+
esp32c3m1IKit.menu.PartitionScheme.min_spiffs.build.partitions=min_spiffs
19733+
esp32c3m1IKit.menu.PartitionScheme.min_spiffs.upload.maximum_size=1966080
19734+
esp32c3m1IKit.menu.PartitionScheme.rainmaker=RainMaker
19735+
esp32c3m1IKit.menu.PartitionScheme.rainmaker.build.partitions=rainmaker
19736+
esp32c3m1IKit.menu.PartitionScheme.rainmaker.upload.maximum_size=3145728
19737+
19738+
esp32c3m1IKit.menu.CPUFreq.160=160MHz (WiFi)
19739+
esp32c3m1IKit.menu.CPUFreq.160.build.f_cpu=160000000L
19740+
esp32c3m1IKit.menu.CPUFreq.80=80MHz (WiFi)
19741+
esp32c3m1IKit.menu.CPUFreq.80.build.f_cpu=80000000L
19742+
esp32c3m1IKit.menu.CPUFreq.40=40MHz
19743+
esp32c3m1IKit.menu.CPUFreq.40.build.f_cpu=40000000L
19744+
esp32c3m1IKit.menu.CPUFreq.20=20MHz
19745+
esp32c3m1IKit.menu.CPUFreq.20.build.f_cpu=20000000L
19746+
esp32c3m1IKit.menu.CPUFreq.10=10MHz
19747+
esp32c3m1IKit.menu.CPUFreq.10.build.f_cpu=10000000L
19748+
19749+
esp32c3m1IKit.menu.UploadSpeed.921600=921600
19750+
esp32c3m1IKit.menu.UploadSpeed.921600.upload.speed=921600
19751+
esp32c3m1IKit.menu.UploadSpeed.115200=115200
19752+
esp32c3m1IKit.menu.UploadSpeed.115200.upload.speed=115200
19753+
esp32c3m1IKit.menu.UploadSpeed.256000.windows=256000
19754+
esp32c3m1IKit.menu.UploadSpeed.256000.upload.speed=256000
19755+
esp32c3m1IKit.menu.UploadSpeed.230400.windows.upload.speed=256000
19756+
esp32c3m1IKit.menu.UploadSpeed.230400=230400
19757+
esp32c3m1IKit.menu.UploadSpeed.230400.upload.speed=230400
19758+
esp32c3m1IKit.menu.UploadSpeed.460800.linux=460800
19759+
esp32c3m1IKit.menu.UploadSpeed.460800.macosx=460800
19760+
esp32c3m1IKit.menu.UploadSpeed.460800.upload.speed=460800
19761+
esp32c3m1IKit.menu.UploadSpeed.512000.windows=512000
19762+
esp32c3m1IKit.menu.UploadSpeed.512000.upload.speed=512000
19763+
19764+
esp32c3m1IKit.menu.DebugLevel.none=None
19765+
esp32c3m1IKit.menu.DebugLevel.none.build.code_debug=0
19766+
esp32c3m1IKit.menu.DebugLevel.error=Error
19767+
esp32c3m1IKit.menu.DebugLevel.error.build.code_debug=1
19768+
esp32c3m1IKit.menu.DebugLevel.warn=Warn
19769+
esp32c3m1IKit.menu.DebugLevel.warn.build.code_debug=2
19770+
esp32c3m1IKit.menu.DebugLevel.info=Info
19771+
esp32c3m1IKit.menu.DebugLevel.info.build.code_debug=3
19772+
esp32c3m1IKit.menu.DebugLevel.debug=Debug
19773+
esp32c3m1IKit.menu.DebugLevel.debug.build.code_debug=4
19774+
esp32c3m1IKit.menu.DebugLevel.verbose=Verbose
19775+
esp32c3m1IKit.menu.DebugLevel.verbose.build.code_debug=5
19776+
19777+
esp32c3m1IKit.menu.EraseFlash.none=Disabled
19778+
esp32c3m1IKit.menu.EraseFlash.none.upload.erase_cmd=
19779+
esp32c3m1IKit.menu.EraseFlash.all=Enabled
19780+
esp32c3m1IKit.menu.EraseFlash.all.upload.erase_cmd=-e
19781+
19782+
##############################################################

cores/esp32/HWCDC.cpp

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,11 @@ static uint8_t rx_data_buf[64];
3232
static intr_handle_t intr_handle = NULL;
3333
static volatile bool initial_empty = false;
3434
static xSemaphoreHandle tx_lock = NULL;
35-
static uint32_t tx_timeout_ms = 200;
35+
36+
// workaround for when USB CDC is not connected
37+
static uint32_t tx_timeout_ms = 0;
38+
static bool tx_timeout_change_request = false;
39+
3640
static esp_event_loop_handle_t arduino_hw_cdc_event_loop_handle = NULL;
3741

3842
static esp_err_t arduino_hw_cdc_event_post(esp_event_base_t event_base, int32_t event_id, void *event_data, size_t event_data_size, BaseType_t *task_unblocked){
@@ -72,9 +76,14 @@ static void hw_cdc_isr_handler(void *arg) {
7276
if (usb_serial_jtag_ll_txfifo_writable() == 1) {
7377
// We disable the interrupt here so that the interrupt won't be triggered if there is no data to send.
7478
usb_serial_jtag_ll_disable_intr_mask(USB_SERIAL_JTAG_INTR_SERIAL_IN_EMPTY);
75-
7679
if(!initial_empty){
7780
initial_empty = true;
81+
// First time USB is plugged and the application has not explicitly set TX Timeout, set it to default 100ms.
82+
// Otherwise, USB is still unplugged and the timeout will be kept as Zero in order to avoid any delay in the
83+
// application whenever it uses write() and the TX Queue gets full.
84+
if (!tx_timeout_change_request) {
85+
tx_timeout_ms = 100;
86+
}
7887
//send event?
7988
//ets_printf("CONNECTED\n");
8089
arduino_hw_cdc_event_post(ARDUINO_HW_CDC_EVENTS, ARDUINO_HW_CDC_CONNECTED_EVENT, &event, sizeof(arduino_hw_cdc_event_data_t), &xTaskWoken);
@@ -197,6 +206,9 @@ void HWCDC::end()
197206

198207
void HWCDC::setTxTimeoutMs(uint32_t timeout){
199208
tx_timeout_ms = timeout;
209+
// it registers that the user has explicitly requested to use a value as TX timeout
210+
// used for the workaround with unplugged USB and TX Queue Full that causes a delay on every write()
211+
tx_timeout_change_request = true;
200212
}
201213

202214
/*

docs/source/api/ble.rst

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
###
2+
BLE
3+
###
4+
5+
About
6+
-----
7+
8+
.. note:: This is a work in progress project and this section is still missing. If you want to contribute, please see the `Contributions Guide <../contributing.html>`_.
9+
10+
Examples
11+
--------
12+
13+
To get started with BLE, you can try:
14+
15+
BLE Scan
16+
********
17+
18+
.. literalinclude:: ../../../libraries/BLE/examples/BLE_scan/BLE_scan.ino
19+
:language: arduino
20+
21+
BLE UART
22+
********
23+
24+
.. literalinclude:: ../../../libraries/BLE/examples/BLE_uart/BLE_uart.ino
25+
:language: arduino
26+
27+
Complete list of `BLE examples <https://github.com/espressif/arduino-esp32/tree/master/libraries/BLE/examples>`_.

docs/source/api/bluetooth.rst

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,27 @@
1-
#############
2-
Bluetooth API
3-
#############
1+
#########
2+
Bluetooth
3+
#########
4+
5+
About
6+
-----
7+
8+
.. note:: This is a work in progress project and this section is still missing. If you want to contribute, please see the `Contributions Guide <../contributing.html>`_.
9+
10+
Examples
11+
--------
12+
13+
To get started with Bluetooth, you can try:
14+
15+
Serial To Serial BT
16+
*******************
17+
18+
.. literalinclude:: ../../../libraries/BluetoothSerial/examples/SerialToSerialBT/SerialToSerialBT.ino
19+
:language: arduino
20+
21+
BT Classic Device Discovery
22+
***************************
23+
24+
.. literalinclude:: ../../../libraries/BluetoothSerial/examples/bt_classic_device_discovery/bt_classic_device_discovery.ino
25+
:language: arduino
26+
27+
Complete list of `Bluetooth examples <https://github.com/espressif/arduino-esp32/tree/master/libraries/BluetoothSerial/examples>`_.

docs/source/api/deepsleep.rst

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,25 @@
11
##########
22
Deep Sleep
33
##########
4+
5+
About
6+
-----
7+
8+
.. note:: This is a work in progress project and this section is still missing. If you want to contribute, please see the `Contributions Guide <../contributing.html>`_.
9+
10+
Examples
11+
--------
12+
13+
To get started with Hall sensor, you can try:
14+
15+
ExternalWakeUp
16+
**************
17+
18+
.. literalinclude:: ../../../libraries/ESP32/examples/DeepSleep/ExternalWakeUp/ExternalWakeUp.ino
19+
:language: arduino
20+
21+
Timer Wake Up
22+
*************
23+
24+
.. literalinclude:: ../../../libraries/ESP32/examples/DeepSleep/TimerWakeUp/TimerWakeUp.ino
25+
:language: arduino

docs/source/api/espnow.rst

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,22 @@ ESP-NOW
55
ESP-NOW is a fast, connectionless communication technology featuring a short packet transmission.
66
ESP-NOW is ideal for smart lights, remote control devices, sensors and other applications.
77

8-
Example
9-
-------
8+
.. note:: This is a work in progress project and this section is still missing. If you want to contribute, please see the `Contributions Guide <../contributing.html>`_.
9+
10+
Examples
11+
--------
12+
13+
ESP-NOW Master
14+
**************
15+
16+
.. literalinclude:: ../../../libraries/ESP32/examples/ESPNow/Basic/Master/Master.ino
17+
:language: arduino
18+
19+
ESP-NOW Slave
20+
*************
21+
22+
.. literalinclude:: ../../../libraries/ESP32/examples/ESPNow/Basic/Slave/Slave.ino
23+
:language: arduino
1024

1125
Resources
1226
---------

docs/source/api/ethernet.rst

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
########
2+
Ethernet
3+
########
4+
5+
About
6+
-----
7+
8+
.. note:: This is a work in progress project and this section is still missing. If you want to contribute, please see the `Contributions Guide <../contributing.html>`_.
9+
10+
Examples
11+
--------
12+
13+
To get started with Ethernet, you can try:
14+
15+
LAN8720
16+
*******
17+
18+
.. literalinclude:: ../../../libraries/Ethernet/examples/ETH_LAN8720/ETH_LAN8720.ino
19+
:language: arduino
20+
21+
TLK110
22+
******
23+
24+
.. literalinclude:: ../../../libraries/Ethernet/examples/ETH_TLK110/ETH_TLK110.ino
25+
:language: arduino
26+
27+
Complete list of `Ethernet examples <https://github.com/espressif/arduino-esp32/tree/master/libraries/Ethernet/examples>`_.

docs/source/api/hall_sensor.rst

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
###########
2+
Hall Sensor
3+
###########
4+
5+
About
6+
-----
7+
8+
.. note:: This is a work in progress project and this section is still missing. If you want to contribute, please see the `Contributions Guide <../contributing.html>`_.
9+
10+
Example
11+
-------
12+
13+
To get started with Hall sensor, you can try:
14+
15+
Hall Sensor
16+
***********
17+
18+
.. literalinclude:: ../../../libraries/ESP32/examples/HallSensor/HallSensor.ino
19+
:language: arduino

docs/source/api/pulse_counter.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#############
2+
Pulse Counter
3+
#############
4+
5+
About
6+
-----
7+
8+
.. note:: This peripheral is not supported yet by the Arduino API's.

docs/source/api/reset_reason.rst

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,19 @@
11
############
22
Reset Reason
33
############
4+
5+
About
6+
-----
7+
8+
.. note:: This is a work in progress project and this section is still missing. If you want to contribute, please see the `Contributions Guide <../contributing.html>`_.
9+
10+
Example
11+
-------
12+
13+
To get started with Reset Reason, you can try:
14+
15+
Reset Reason
16+
************
17+
18+
.. literalinclude:: ../../../libraries/ESP32/examples/ResetReason/ResetReason.ino
19+
:language: arduino

docs/source/api/rmt.rst

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
###
2+
RMT
3+
###
4+
5+
About
6+
-----
7+
8+
.. note:: This is a work in progress project and this section is still missing. If you want to contribute, please see the `Contributions Guide <../contributing.html>`_.
9+
10+
Remote Control Transceiver (RMT) peripheral was designed to act as an infrared transceiver.
11+
12+
Example
13+
-------
14+
15+
To get started with RMT, you can try:
16+
17+
RMT Write Neo Pixel
18+
*******************
19+
20+
.. literalinclude:: ../../../libraries/ESP32/examples/RMT/RMTWriteNeoPixel/RMTWriteNeoPixel.ino
21+
:language: arduino
22+
23+
24+
Complete list of `RMT examples <https://github.com/espressif/arduino-esp32/tree/master/libraries/ESP32/examples/RMT>`_.

docs/source/api/sdio.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
####
2+
SDIO
3+
####
4+
5+
About
6+
-----
7+
8+
.. note:: This peripheral is not supported yet by the Arduino API's.

0 commit comments

Comments
 (0)