Skip to content

Commit 8911fa6

Browse files
authored
Merge branch 'master' into feat/hosted_ota
2 parents 6e1c1f9 + 0b6e560 commit 8911fa6

File tree

195 files changed

+9899
-253
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

195 files changed

+9899
-253
lines changed

.github/ISSUE_TEMPLATE/Issue-report.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ body:
4343
- latest stable Release (if not listed below)
4444
- latest development Release Candidate (RC-X)
4545
- latest master (checkout manually)
46+
- v3.3.3
4647
- v3.3.2
4748
- v3.3.1
4849
- v3.3.0

.github/scripts/on-release.sh

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,11 @@ pushd "$OUTPUT_DIR" >/dev/null
391391
tar -cJf "$LIBS_XZ" "esp32-arduino-libs"
392392
popd >/dev/null
393393

394+
# Copy esp-hosted binaries
395+
396+
mkdir -p "$GITHUB_WORKSPACE/hosted"
397+
cp "$OUTPUT_DIR/esp32-arduino-libs/hosted"/*.bin "$GITHUB_WORKSPACE/hosted/"
398+
394399
# Upload ZIP and XZ libs to release page
395400

396401
echo "Uploading ZIP libs to release page ..."

.github/scripts/sketch_utils.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ function build_sketch { # build_sketch <ide_path> <user_path> <path-to-ino> [ext
156156
esp32c6_opts=$(echo "$debug_level,$fqbn_append" | sed 's/^,*//;s/,*$//;s/,\{2,\}/,/g')
157157
esp32h2_opts=$(echo "$debug_level,$fqbn_append" | sed 's/^,*//;s/,*$//;s/,\{2,\}/,/g')
158158
esp32p4_opts=$(echo "PSRAM=enabled,USBMode=default,$debug_level,$fqbn_append" | sed 's/^,*//;s/,*$//;s/,\{2,\}/,/g')
159-
esp32c5_opts=$(echo "$debug_level,$fqbn_append" | sed 's/^,*//;s/,*$//;s/,\{2,\}/,/g')
159+
esp32c5_opts=$(echo "PSRAM=enabled,$debug_level,$fqbn_append" | sed 's/^,*//;s/,*$//;s/,\{2,\}/,/g')
160160

161161
# Select the common part of the FQBN based on the target. The rest will be
162162
# appended depending on the passed options.

.github/workflows/release.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,3 +36,45 @@ jobs:
3636
env:
3737
GITHUB_TOKEN: ${{ secrets.TOOLS_UPLOAD_PAT }}
3838
run: bash ./.github/scripts/on-release.sh
39+
40+
- name: Upload hosted binaries
41+
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
42+
with:
43+
name: hosted
44+
if-no-files-found: ignore
45+
path: ${{ github.workspace }}/hosted
46+
47+
upload-hosted-binaries:
48+
name: Upload hosted binaries
49+
needs: build
50+
runs-on: ubuntu-latest
51+
steps:
52+
- name: Checkout gh-pages branch
53+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
54+
with:
55+
ref: gh-pages
56+
57+
- name: Download hosted binaries
58+
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
59+
with:
60+
name: hosted
61+
path: ${{ github.workspace }}/hosted-latest
62+
63+
- name: Copy hosted binaries to proper directory and commit
64+
env:
65+
GITHUB_TOKEN: ${{ secrets.TOOLS_UPLOAD_PAT }}
66+
run: |
67+
# Create hosted directory if it doesn't exist
68+
mkdir -p ${{ github.workspace }}/hosted
69+
70+
# Copy hosted binaries to proper directory without overwriting existing files
71+
cp -n ${{ github.workspace }}/hosted-latest/*.bin ${{ github.workspace }}/hosted/
72+
73+
# Commit the changes
74+
git config user.name "github-actions[bot]"
75+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
76+
git add hosted/*.bin
77+
if ! git diff --cached --quiet; then
78+
git commit -m "Add new esp-hosted slave binaries"
79+
git push origin HEAD:gh-pages
80+
fi

.gitlab/workflows/common.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ stages:
1313

1414
variables:
1515
ESP_IDF_VERSION: "5.5"
16-
ESP_ARDUINO_VERSION: "3.3.2"
16+
ESP_ARDUINO_VERSION: "3.3.3"
1717

1818
#############
1919
# `default` #

boards.txt

Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52955,3 +52955,149 @@ soldered_nula_mini_esp32c6.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_
5295552955
soldered_nula_mini_esp32c6.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api.zczr -lzboss_stack.zczr -lzboss_port.native
5295652956

5295752957
##############################################################
52958+
52959+
arduino_nesso_n1.name=Arduino Nesso N1
52960+
52961+
arduino_nesso_n1.bootloader.tool=esptool_py
52962+
arduino_nesso_n1.bootloader.tool.default=esptool_py
52963+
52964+
arduino_nesso_n1.upload.tool=esptool_py
52965+
arduino_nesso_n1.upload.tool.default=esptool_py
52966+
arduino_nesso_n1.upload.tool.network=esp_ota
52967+
52968+
arduino_nesso_n1.upload.maximum_size=1310720
52969+
arduino_nesso_n1.upload.maximum_data_size=327680
52970+
arduino_nesso_n1.upload.flags=
52971+
arduino_nesso_n1.upload.extra_flags=
52972+
arduino_nesso_n1.upload.use_1200bps_touch=false
52973+
arduino_nesso_n1.upload.wait_for_upload_port=false
52974+
52975+
arduino_nesso_n1.serial.disableDTR=false
52976+
arduino_nesso_n1.serial.disableRTS=false
52977+
52978+
arduino_nesso_n1.build.tarch=riscv32
52979+
arduino_nesso_n1.build.target=esp
52980+
arduino_nesso_n1.build.mcu=esp32c6
52981+
arduino_nesso_n1.build.core=esp32
52982+
arduino_nesso_n1.build.variant=arduino_nesso_n1
52983+
arduino_nesso_n1.build.board=ARDUINO_NESSO_N1
52984+
arduino_nesso_n1.build.bootloader_addr=0x0
52985+
52986+
arduino_nesso_n1.build.cdc_on_boot=1
52987+
arduino_nesso_n1.build.f_cpu=160000000L
52988+
arduino_nesso_n1.build.flash_size=16MB
52989+
arduino_nesso_n1.build.flash_freq=80m
52990+
arduino_nesso_n1.build.flash_mode=qio
52991+
arduino_nesso_n1.build.boot=qio
52992+
arduino_nesso_n1.build.partitions=default
52993+
arduino_nesso_n1.build.defines=
52994+
52995+
## IDE 2.0 Seems to not update the value
52996+
arduino_nesso_n1.menu.JTAGAdapter.default=Disabled
52997+
arduino_nesso_n1.menu.JTAGAdapter.default.build.copy_jtag_files=0
52998+
arduino_nesso_n1.menu.JTAGAdapter.builtin=Integrated USB JTAG
52999+
arduino_nesso_n1.menu.JTAGAdapter.builtin.build.openocdscript=esp32c6-builtin.cfg
53000+
arduino_nesso_n1.menu.JTAGAdapter.builtin.build.copy_jtag_files=1
53001+
arduino_nesso_n1.menu.JTAGAdapter.external=FTDI Adapter
53002+
arduino_nesso_n1.menu.JTAGAdapter.external.build.openocdscript=esp32c6-ftdi.cfg
53003+
arduino_nesso_n1.menu.JTAGAdapter.external.build.copy_jtag_files=1
53004+
arduino_nesso_n1.menu.JTAGAdapter.bridge=ESP USB Bridge
53005+
arduino_nesso_n1.menu.JTAGAdapter.bridge.build.openocdscript=esp32c6-bridge.cfg
53006+
arduino_nesso_n1.menu.JTAGAdapter.bridge.build.copy_jtag_files=1
53007+
53008+
arduino_nesso_n1.menu.CDCOnBoot.default=Enabled
53009+
arduino_nesso_n1.menu.CDCOnBoot.default.build.cdc_on_boot=1
53010+
arduino_nesso_n1.menu.CDCOnBoot.cdc=Disabled
53011+
arduino_nesso_n1.menu.CDCOnBoot.cdc.build.cdc_on_boot=0
53012+
53013+
arduino_nesso_n1.menu.PartitionScheme.app3M_fat9M_16MB=16M Flash (3MB APP/9.9MB FATFS)
53014+
arduino_nesso_n1.menu.PartitionScheme.app3M_fat9M_16MB.build.partitions=app3M_fat9M_16MB
53015+
arduino_nesso_n1.menu.PartitionScheme.app3M_fat9M_16MB.upload.maximum_size=3145728
53016+
arduino_nesso_n1.menu.PartitionScheme.default=Default 4MB with spiffs (1.2MB APP/1.5MB SPIFFS)
53017+
arduino_nesso_n1.menu.PartitionScheme.default.build.partitions=default
53018+
arduino_nesso_n1.menu.PartitionScheme.defaultffat=Default 4MB with ffat (1.2MB APP/1.5MB FATFS)
53019+
arduino_nesso_n1.menu.PartitionScheme.defaultffat.build.partitions=default_ffat
53020+
arduino_nesso_n1.menu.PartitionScheme.no_ota=No OTA (2MB APP/2MB SPIFFS)
53021+
arduino_nesso_n1.menu.PartitionScheme.no_ota.build.partitions=no_ota
53022+
arduino_nesso_n1.menu.PartitionScheme.no_ota.upload.maximum_size=2097152
53023+
arduino_nesso_n1.menu.PartitionScheme.noota_3g=No OTA (1MB APP/3MB SPIFFS)
53024+
arduino_nesso_n1.menu.PartitionScheme.noota_3g.build.partitions=noota_3g
53025+
arduino_nesso_n1.menu.PartitionScheme.noota_3g.upload.maximum_size=1048576
53026+
arduino_nesso_n1.menu.PartitionScheme.noota_ffat=No OTA (2MB APP/2MB FATFS)
53027+
arduino_nesso_n1.menu.PartitionScheme.noota_ffat.build.partitions=noota_ffat
53028+
arduino_nesso_n1.menu.PartitionScheme.noota_ffat.upload.maximum_size=2097152
53029+
arduino_nesso_n1.menu.PartitionScheme.noota_3gffat=No OTA (1MB APP/3MB FATFS)
53030+
arduino_nesso_n1.menu.PartitionScheme.noota_3gffat.build.partitions=noota_3gffat
53031+
arduino_nesso_n1.menu.PartitionScheme.noota_3gffat.upload.maximum_size=1048576
53032+
arduino_nesso_n1.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)
53033+
arduino_nesso_n1.menu.PartitionScheme.huge_app.build.partitions=huge_app
53034+
arduino_nesso_n1.menu.PartitionScheme.huge_app.upload.maximum_size=3145728
53035+
arduino_nesso_n1.menu.PartitionScheme.zigbee=Zigbee 4MB with spiffs
53036+
arduino_nesso_n1.menu.PartitionScheme.zigbee.build.partitions=zigbee
53037+
arduino_nesso_n1.menu.PartitionScheme.zigbee.upload.maximum_size=1310720
53038+
arduino_nesso_n1.menu.PartitionScheme.zigbee_zczr=Zigbee ZCZR 4MB with spiffs
53039+
arduino_nesso_n1.menu.PartitionScheme.zigbee_zczr.build.partitions=zigbee_zczr
53040+
arduino_nesso_n1.menu.PartitionScheme.zigbee_zczr.upload.maximum_size=1310720
53041+
53042+
arduino_nesso_n1.menu.CPUFreq.160=160MHz (WiFi)
53043+
arduino_nesso_n1.menu.CPUFreq.160.build.f_cpu=160000000L
53044+
arduino_nesso_n1.menu.CPUFreq.80=80MHz (WiFi)
53045+
arduino_nesso_n1.menu.CPUFreq.80.build.f_cpu=80000000L
53046+
arduino_nesso_n1.menu.CPUFreq.40=40MHz
53047+
arduino_nesso_n1.menu.CPUFreq.40.build.f_cpu=40000000L
53048+
arduino_nesso_n1.menu.CPUFreq.20=20MHz
53049+
arduino_nesso_n1.menu.CPUFreq.20.build.f_cpu=20000000L
53050+
arduino_nesso_n1.menu.CPUFreq.10=10MHz
53051+
arduino_nesso_n1.menu.CPUFreq.10.build.f_cpu=10000000L
53052+
53053+
arduino_nesso_n1.menu.FlashMode.qio=QIO
53054+
arduino_nesso_n1.menu.FlashMode.qio.build.flash_mode=dio
53055+
arduino_nesso_n1.menu.FlashMode.qio.build.boot=qio
53056+
arduino_nesso_n1.menu.FlashMode.dio=DIO
53057+
arduino_nesso_n1.menu.FlashMode.dio.build.flash_mode=dio
53058+
arduino_nesso_n1.menu.FlashMode.dio.build.boot=dio
53059+
53060+
arduino_nesso_n1.menu.UploadSpeed.921600=921600
53061+
arduino_nesso_n1.menu.UploadSpeed.921600.upload.speed=921600
53062+
arduino_nesso_n1.menu.UploadSpeed.115200=115200
53063+
arduino_nesso_n1.menu.UploadSpeed.115200.upload.speed=115200
53064+
arduino_nesso_n1.menu.UploadSpeed.256000.windows=256000
53065+
arduino_nesso_n1.menu.UploadSpeed.256000.upload.speed=256000
53066+
arduino_nesso_n1.menu.UploadSpeed.230400.windows.upload.speed=256000
53067+
arduino_nesso_n1.menu.UploadSpeed.230400=230400
53068+
arduino_nesso_n1.menu.UploadSpeed.230400.upload.speed=230400
53069+
arduino_nesso_n1.menu.UploadSpeed.460800.linux=460800
53070+
arduino_nesso_n1.menu.UploadSpeed.460800.macosx=460800
53071+
arduino_nesso_n1.menu.UploadSpeed.460800.upload.speed=460800
53072+
arduino_nesso_n1.menu.UploadSpeed.512000.windows=512000
53073+
arduino_nesso_n1.menu.UploadSpeed.512000.upload.speed=512000
53074+
53075+
arduino_nesso_n1.menu.DebugLevel.none=None
53076+
arduino_nesso_n1.menu.DebugLevel.none.build.code_debug=0
53077+
arduino_nesso_n1.menu.DebugLevel.error=Error
53078+
arduino_nesso_n1.menu.DebugLevel.error.build.code_debug=1
53079+
arduino_nesso_n1.menu.DebugLevel.warn=Warn
53080+
arduino_nesso_n1.menu.DebugLevel.warn.build.code_debug=2
53081+
arduino_nesso_n1.menu.DebugLevel.info=Info
53082+
arduino_nesso_n1.menu.DebugLevel.info.build.code_debug=3
53083+
arduino_nesso_n1.menu.DebugLevel.debug=Debug
53084+
arduino_nesso_n1.menu.DebugLevel.debug.build.code_debug=4
53085+
arduino_nesso_n1.menu.DebugLevel.verbose=Verbose
53086+
arduino_nesso_n1.menu.DebugLevel.verbose.build.code_debug=5
53087+
53088+
arduino_nesso_n1.menu.EraseFlash.none=Disabled
53089+
arduino_nesso_n1.menu.EraseFlash.none.upload.erase_cmd=
53090+
arduino_nesso_n1.menu.EraseFlash.all=Enabled
53091+
arduino_nesso_n1.menu.EraseFlash.all.upload.erase_cmd=-e
53092+
53093+
arduino_nesso_n1.menu.ZigbeeMode.default=Disabled
53094+
arduino_nesso_n1.menu.ZigbeeMode.default.build.zigbee_mode=
53095+
arduino_nesso_n1.menu.ZigbeeMode.default.build.zigbee_libs=
53096+
arduino_nesso_n1.menu.ZigbeeMode.ed=Zigbee ED (end device)
53097+
arduino_nesso_n1.menu.ZigbeeMode.ed.build.zigbee_mode=-DZIGBEE_MODE_ED
53098+
arduino_nesso_n1.menu.ZigbeeMode.ed.build.zigbee_libs=-lesp_zb_api.ed -lzboss_stack.ed -lzboss_port.native
53099+
arduino_nesso_n1.menu.ZigbeeMode.zczr=Zigbee ZCZR (coordinator/router)
53100+
arduino_nesso_n1.menu.ZigbeeMode.zczr.build.zigbee_mode=-DZIGBEE_MODE_ZCZR
53101+
arduino_nesso_n1.menu.ZigbeeMode.zczr.build.zigbee_libs=-lesp_zb_api.zczr -lzboss_stack.zczr -lzboss_port.native
53102+
53103+
##############################################################

cores/esp32/HardwareSerial.cpp

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -572,8 +572,20 @@ HardwareSerial::operator bool() const {
572572
return uartIsDriverInstalled(_uart);
573573
}
574574

575-
void HardwareSerial::setRxInvert(bool invert) {
576-
uartSetRxInvert(_uart, invert);
575+
bool HardwareSerial::setRxInvert(bool invert) {
576+
return uartSetRxInvert(_uart, invert);
577+
}
578+
579+
bool HardwareSerial::setTxInvert(bool invert) {
580+
return uartSetTxInvert(_uart, invert);
581+
}
582+
583+
bool HardwareSerial::setCtsInvert(bool invert) {
584+
return uartSetCtsInvert(_uart, invert);
585+
}
586+
587+
bool HardwareSerial::setRtsInvert(bool invert) {
588+
return uartSetRtsInvert(_uart, invert);
577589
}
578590

579591
// negative Pin value will keep it unmodified

cores/esp32/HardwareSerial.h

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,12 @@ class HardwareSerial : public Stream {
356356

357357
void setDebugOutput(bool);
358358

359-
void setRxInvert(bool);
359+
// functions used to enable or disable UART pins signal inversion
360+
// returns the requested operation success status
361+
bool setRxInvert(bool);
362+
bool setTxInvert(bool);
363+
bool setCtsInvert(bool);
364+
bool setRtsInvert(bool);
360365

361366
// Negative Pin Number will keep it unmodified, thus this function can set individual pins
362367
// setPins() can be called after or before begin()

cores/esp32/esp32-hal-tinyusb.c

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,25 @@ __attribute__((weak)) uint16_t tud_network_xmit_cb(uint8_t *dst, void *ref, uint
477477
__attribute__((weak)) void tud_network_init_cb(void) {}
478478
#endif
479479

480+
#if CFG_TUH_HID
481+
__attribute__((weak)) void tuh_hid_mount_cb(uint8_t dev_addr, uint8_t idx, uint8_t const *report_desc, uint16_t desc_len) {}
482+
__attribute__((weak)) void tuh_hid_umount_cb(uint8_t dev_addr, uint8_t idx) {}
483+
__attribute__((weak)) void tuh_hid_report_received_cb(uint8_t dev_addr, uint8_t idx, uint8_t const *report, uint16_t len) {}
484+
__attribute__((weak)) void tuh_hid_report_sent_cb(uint8_t dev_addr, uint8_t idx, uint8_t const *report, uint16_t len) {}
485+
__attribute__((weak)) void tuh_hid_get_report_complete_cb(uint8_t dev_addr, uint8_t idx, uint8_t report_id, uint8_t report_type, uint16_t len) {}
486+
__attribute__((weak)) void tuh_hid_set_report_complete_cb(uint8_t dev_addr, uint8_t idx, uint8_t report_id, uint8_t report_type, uint16_t len) {}
487+
__attribute__((weak)) void tuh_hid_set_protocol_complete_cb(uint8_t dev_addr, uint8_t idx, uint8_t protocol) {}
488+
#endif
489+
#if CFG_TUH_CDC
490+
__attribute__((weak)) void tuh_cdc_mount_cb(uint8_t idx) {}
491+
__attribute__((weak)) void tuh_cdc_umount_cb(uint8_t idx) {}
492+
__attribute__((weak)) void tuh_cdc_rx_cb(uint8_t idx) {}
493+
__attribute__((weak)) void tuh_cdc_tx_complete_cb(uint8_t idx) {}
494+
#endif
495+
#if CFG_TUH_MSC
496+
__attribute__((weak)) void tuh_msc_mount_cb(uint8_t dev_addr) {}
497+
__attribute__((weak)) void tuh_msc_umount_cb(uint8_t dev_addr) {}
498+
#endif
480499
/*
481500
* Private API
482501
* */

cores/esp32/esp32-hal-touch-ng.c

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,12 @@ bool touchDisable() {
117117
if (!enabled) { // Already disabled
118118
return true;
119119
}
120-
if (!running && (touch_sensor_disable(touch_sensor_handle) != ESP_OK)) {
121-
log_e("Touch sensor still running or disable failed!");
120+
if (running) {
121+
log_e("Touch sensor still running!");
122+
return false;
123+
}
124+
if (touch_sensor_disable(touch_sensor_handle) != ESP_OK) {
125+
log_e("Touch sensor disable failed!");
122126
return false;
123127
}
124128
enabled = false;
@@ -129,8 +133,12 @@ bool touchStart() {
129133
if (running) { // Already running
130134
return true;
131135
}
132-
if (enabled && (touch_sensor_start_continuous_scanning(touch_sensor_handle) != ESP_OK)) {
133-
log_e("Touch sensor not enabled or failed to start continuous scanning failed!");
136+
if (!enabled) {
137+
log_e("Touch sensor not enabled!");
138+
return false;
139+
}
140+
if (touch_sensor_start_continuous_scanning(touch_sensor_handle) != ESP_OK) {
141+
log_e("Touch sensor failed to start continuous scanning!");
134142
return false;
135143
}
136144
running = true;
@@ -395,7 +403,7 @@ static void __touchConfigInterrupt(uint8_t pin, void (*userFunc)(void), void *Ar
395403
return;
396404
}
397405

398-
touch_channel_config_t chan_cfg = {};
406+
touch_channel_config_t chan_cfg = TOUCH_CHANNEL_DEFAULT_CONFIG();
399407
for (int i = 0; i < _sample_num; i++) {
400408
#if SOC_TOUCH_SENSOR_VERSION == 1 // ESP32
401409
chan_cfg.abs_active_thresh[i] = threshold;
@@ -416,17 +424,17 @@ static void __touchConfigInterrupt(uint8_t pin, void (*userFunc)(void), void *Ar
416424

417425
// it keeps backwards compatibility
418426
static void __touchAttachInterrupt(uint8_t pin, void (*userFunc)(void), touch_value_t threshold) {
419-
__touchConfigInterrupt(pin, userFunc, NULL, threshold, false);
427+
__touchConfigInterrupt(pin, userFunc, NULL, false, threshold);
420428
}
421429

422430
// new additional version of the API with User Args
423431
static void __touchAttachArgsInterrupt(uint8_t pin, void (*userFunc)(void), void *args, touch_value_t threshold) {
424-
__touchConfigInterrupt(pin, userFunc, args, threshold, true);
432+
__touchConfigInterrupt(pin, userFunc, args, true, threshold);
425433
}
426434

427435
// new additional API to detach touch ISR
428436
static void __touchDettachInterrupt(uint8_t pin) {
429-
__touchConfigInterrupt(pin, NULL, NULL, 0, false); // userFunc as NULL acts as detaching
437+
__touchConfigInterrupt(pin, NULL, NULL, false, 0); // userFunc as NULL acts as detaching
430438
}
431439

432440
// /*

0 commit comments

Comments
 (0)