summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Shawcroft <scott@adafruit.com>2020-10-09 14:10:24 -0700
committerGitHub <noreply@github.com>2020-10-09 14:10:24 -0700
commit375676ff58c0cc887007dec4d7885c3120c53aa2 (patch)
tree3e99e34d2721ada304a2007c06446d47bc67effa
parent699f19f44a7b8ed5b5b678001fb94f5491459c76 (diff)
parentccbc15046a818094124565667d9687ff41e1b0a8 (diff)
Merge pull request #3501 from hierophect/esp32-analogin
ESP32S2: Add AnalogIn
-rw-r--r--locale/circuitpython.pot10
-rw-r--r--ports/esp32s2/CMakeLists.txt2
-rw-r--r--ports/esp32s2/Makefile6
-rw-r--r--ports/esp32s2/common-hal/analogio/AnalogIn.c98
-rw-r--r--ports/esp32s2/common-hal/analogio/AnalogIn.h42
-rw-r--r--ports/esp32s2/common-hal/analogio/AnalogOut.c59
-rw-r--r--ports/esp32s2/common-hal/analogio/AnalogOut.h44
-rw-r--r--ports/esp32s2/common-hal/analogio/__init__.c1
-rw-r--r--ports/esp32s2/common-hal/socketpool/Socket.h1
-rw-r--r--ports/esp32s2/common-hal/wifi/ScannedNetworks.h1
-rw-r--r--ports/esp32s2/mpconfigport.h4
-rw-r--r--ports/esp32s2/mpconfigport.mk1
-rwxr-xr-xports/esp32s2/peripherals/pins.c94
-rw-r--r--ports/esp32s2/peripherals/pins.h4
-rw-r--r--shared-bindings/socketpool/Socket.c3
-rw-r--r--shared-bindings/socketpool/SocketPool.c3
-rw-r--r--shared-bindings/wifi/ScannedNetworks.c3
17 files changed, 311 insertions, 65 deletions
diff --git a/locale/circuitpython.pot b/locale/circuitpython.pot
index c4951f78f..199f39c58 100644
--- a/locale/circuitpython.pot
+++ b/locale/circuitpython.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2020-09-29 20:14-0500\n"
+"POT-Creation-Date: 2020-10-06 13:26-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -271,6 +271,10 @@ msgstr ""
msgid "A hardware interrupt channel is already in use"
msgstr ""
+#: ports/esp32s2/common-hal/analogio/AnalogIn.c
+msgid "ADC2 is being used by WiFi"
+msgstr ""
+
#: shared-bindings/_bleio/Address.c shared-bindings/ipaddress/IPv4Address.c
#, c-format
msgid "Address must be %d bytes long"
@@ -1225,6 +1229,7 @@ msgid "No CCCD for this Characteristic"
msgstr ""
#: ports/atmel-samd/common-hal/analogio/AnalogOut.c
+#: ports/esp32s2/common-hal/analogio/AnalogOut.c
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "No DAC on chip"
msgstr ""
@@ -1421,6 +1426,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
#: ports/cxd56/common-hal/analogio/AnalogIn.c
+#: ports/esp32s2/common-hal/analogio/AnalogIn.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
#: ports/nrf/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
@@ -3144,6 +3150,7 @@ msgstr ""
msgid "pow() with 3 arguments requires integers"
msgstr ""
+#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
@@ -3151,6 +3158,7 @@ msgstr ""
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
#: ports/esp32s2/boards/unexpectedmaker_feathers2/mpconfigboard.h
+#: ports/esp32s2/boards/unexpectedmaker_feathers2_prerelease/mpconfigboard.h
msgid "pressing boot button at start up.\n"
msgstr ""
diff --git a/ports/esp32s2/CMakeLists.txt b/ports/esp32s2/CMakeLists.txt
index 0d7f48995..6ad33282f 100644
--- a/ports/esp32s2/CMakeLists.txt
+++ b/ports/esp32s2/CMakeLists.txt
@@ -6,7 +6,7 @@ set(ENV{IDF_PATH} ${CMAKE_SOURCE_DIR}/esp-idf)
# The component list here determines what options we get in menuconfig and what the ninja file
# can build.
-set(COMPONENTS esptool_py soc driver log main esp-tls mbedtls esp_event esp_netif esp_wifi lwip wpa_supplicant freertos)
+set(COMPONENTS esptool_py soc driver log main esp-tls mbedtls esp_event esp_adc_cal esp_netif esp_wifi lwip wpa_supplicant freertos)
include($ENV{IDF_PATH}/tools/cmake/project.cmake)
project(circuitpython)
diff --git a/ports/esp32s2/Makefile b/ports/esp32s2/Makefile
index 935ced7cc..a97ab0b00 100644
--- a/ports/esp32s2/Makefile
+++ b/ports/esp32s2/Makefile
@@ -97,6 +97,7 @@ INC += -isystem esp-idf/components/lwip/include/apps/sntp
INC += -isystem esp-idf/components/hal/include
INC += -isystem esp-idf/components/hal/esp32s2/include
INC += -isystem esp-idf/components/log/include/
+INC += -isystem esp-idf/components/driver/esp32s2/include
INC += -isystem esp-idf/components/soc/include
INC += -isystem esp-idf/components/soc/src/esp32s2/include
INC += -isystem esp-idf/components/soc/soc/include
@@ -270,12 +271,11 @@ menuconfig: $(BUILD)/esp-idf/config
# qstr builds include headers so we need to make sure they are up to date
$(HEADER_BUILD)/qstr.i.last: | $(BUILD)/esp-idf/config/sdkconfig.h
-# Order here matters
-ESP_IDF_COMPONENTS_LINK = freertos log hal esp_system esp32s2 bootloader_support pthread esp_timer vfs spi_flash app_update esp_common esp32s2 heap newlib driver xtensa soc esp_ringbuf esp_wifi esp_event wpa_supplicant mbedtls efuse nvs_flash esp_netif lwip esp_rom esp-tls
+ESP_IDF_COMPONENTS_LINK = freertos log hal esp_system esp_adc_cal esp32s2 bootloader_support pthread esp_timer vfs spi_flash app_update esp_common esp32s2 heap newlib driver xtensa soc esp_ringbuf esp_wifi esp_event wpa_supplicant mbedtls efuse nvs_flash esp_netif lwip esp_rom esp-tls
ESP_IDF_COMPONENTS_INCLUDE = driver freertos log soc
-INC += $(foreach component, $(ESP_IDF_COMPONENTS_INCLUDE), -Iesp-idf/components/$(component)/include)
+INC += $(foreach component, $(ESP_IDF_COMPONENTS_INCLUDE), -isystem esp-idf/components/$(component)/include)
ESP_IDF_COMPONENTS_EXPANDED = $(foreach component, $(ESP_IDF_COMPONENTS_LINK), $(BUILD)/esp-idf/esp-idf/$(component)/lib$(component).a)
ESP_IDF_WIFI_COMPONENTS_EXPANDED = $(foreach component, $(ESP_IDF_WIFI_COMPONENTS_LINK), $(BUILD)/esp-idf/esp-idf/$(component)/lib$(component).a)
diff --git a/ports/esp32s2/common-hal/analogio/AnalogIn.c b/ports/esp32s2/common-hal/analogio/AnalogIn.c
new file mode 100644
index 000000000..bab1721ea
--- /dev/null
+++ b/ports/esp32s2/common-hal/analogio/AnalogIn.c
@@ -0,0 +1,98 @@
+/*
+ * This file is part of the MicroPython project, http://micropython.org/
+ *
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020 Lucian Copeland for Adafruit Industries
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include "common-hal/analogio/AnalogIn.h"
+#include "py/mperrno.h"
+#include "py/runtime.h"
+#include "supervisor/shared/translate.h"
+
+#include "components/driver/include/driver/adc_common.h"
+#include "components/esp_adc_cal/include/esp_adc_cal.h"
+
+#include "shared-bindings/microcontroller/Pin.h"
+
+#define DEFAULT_VREF 1100
+#define NO_OF_SAMPLES 64
+#define ATTENUATION ADC_ATTEN_DB_11
+#define DATA_WIDTH ADC_WIDTH_BIT_13
+
+void common_hal_analogio_analogin_construct(analogio_analogin_obj_t* self,
+ const mcu_pin_obj_t *pin) {
+ if (pin->adc_index == 0 || pin->adc_channel == ADC_CHANNEL_MAX) {
+ mp_raise_ValueError(translate("Pin does not have ADC capabilities"));
+ }
+ common_hal_mcu_pin_claim(pin);
+ self->pin = pin;
+}
+
+bool common_hal_analogio_analogin_deinited(analogio_analogin_obj_t *self) {
+ return self->pin == NULL;
+}
+
+void common_hal_analogio_analogin_deinit(analogio_analogin_obj_t *self) {
+ if (common_hal_analogio_analogin_deinited(self)) {
+ return;
+ }
+ reset_pin_number(self->pin->number);
+ self->pin = NULL;
+}
+
+uint16_t common_hal_analogio_analogin_get_value(analogio_analogin_obj_t *self) {
+ if (self->pin->adc_index == ADC_UNIT_1) {
+ adc1_config_width(DATA_WIDTH);
+ adc1_config_channel_atten((adc1_channel_t)self->pin->adc_channel, ATTENUATION);
+ } else if (self->pin->adc_index == ADC_UNIT_2) {
+ adc2_config_channel_atten((adc2_channel_t)self->pin->adc_channel, ATTENUATION);
+ }
+
+ // Automatically select calibration process depending on status of efuse
+ esp_adc_cal_characteristics_t *adc_chars = calloc(1, sizeof(esp_adc_cal_characteristics_t));
+ esp_adc_cal_characterize(self->pin->adc_index, ATTENUATION, DATA_WIDTH, DEFAULT_VREF, adc_chars);
+
+ uint32_t adc_reading = 0;
+ //Multisampling
+ for (int i = 0; i < NO_OF_SAMPLES; i++) {
+ if (self->pin->adc_index == ADC_UNIT_1) {
+ adc_reading += adc1_get_raw((adc1_channel_t)self->pin->adc_channel);
+ } else {
+ int raw;
+ esp_err_t r = adc2_get_raw((adc2_channel_t)self->pin->adc_channel, DATA_WIDTH, &raw);
+ if ( r != ESP_OK ) {
+ mp_raise_ValueError(translate("ADC2 is being used by WiFi"));
+ }
+ adc_reading += raw;
+ }
+ }
+ adc_reading /= NO_OF_SAMPLES;
+
+ // This corrects non-linear regions of the ADC range with a LUT, so it's a better reading than raw
+ uint32_t voltage = esp_adc_cal_raw_to_voltage(adc_reading, adc_chars);
+ return voltage * ((1 << 16) - 1)/3300;
+}
+
+float common_hal_analogio_analogin_get_reference_voltage(analogio_analogin_obj_t *self) {
+ return 3.3f;
+}
diff --git a/ports/esp32s2/common-hal/analogio/AnalogIn.h b/ports/esp32s2/common-hal/analogio/AnalogIn.h
new file mode 100644
index 000000000..fed4d0217
--- /dev/null
+++ b/ports/esp32s2/common-hal/analogio/AnalogIn.h
@@ -0,0 +1,42 @@
+/*
+ * This file is part of the MicroPython project, http://micropython.org/
+ *
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2020 Lucian Copeland for Adafruit Industries
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ANALOGIO_ANALOGIN_H
+#define MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ANALOGIO_ANALOGIN_H
+
+#include "common-hal/microcontroller/Pin.h"
+
+#include "components/hal/include/hal/adc_types.h"
+#include "FreeRTOS.h"
+#include "freertos/semphr.h"
+#include "py/obj.h"
+
+typedef struct {
+ mp_obj_base_t base;
+ const mcu_pin_obj_t * pin;
+} analogio_analogin_obj_t;
+
+#endif // MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ANALOGIO_ANALOGIN_H
diff --git a/ports/esp32s2/common-hal/analogio/AnalogOut.c b/ports/esp32s2/common-hal/analogio/AnalogOut.c
new file mode 100644
index 000000000..b23c40514
--- /dev/null
+++ b/ports/esp32s2/common-hal/analogio/AnalogOut.c
@@ -0,0 +1,59 @@
+/*
+ * This file is part of the MicroPython project, http://micropython.org/
+ *
+ * The MIT License (MIT)
+ *
+ * SPDX-FileCopyrightText: Copyright (c) 2013, 2014 Damien P. George
+ * Copyright (c) 2019, Lucian Copeland for Adafruit Industries
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#include <stdint.h>
+#include <string.h>
+
+#include "py/mperrno.h"
+#include "py/runtime.h"
+
+#include "shared-bindings/analogio/AnalogOut.h"
+#include "shared-bindings/microcontroller/Pin.h"
+#include "supervisor/shared/translate.h"
+
+#include "common-hal/microcontroller/Pin.h"
+
+void common_hal_analogio_analogout_construct(analogio_analogout_obj_t* self,
+ const mcu_pin_obj_t *pin) {
+ mp_raise_NotImplementedError(translate("No DAC on chip"));
+}
+
+bool common_hal_analogio_analogout_deinited(analogio_analogout_obj_t *self) {
+ return true;
+}
+
+void common_hal_analogio_analogout_deinit(analogio_analogout_obj_t *self) {
+
+}
+
+void common_hal_analogio_analogout_set_value(analogio_analogout_obj_t *self,
+ uint16_t value) {
+}
+
+void analogout_reset(void) {
+
+}
diff --git a/ports/esp32s2/common-hal/analogio/AnalogOut.h b/ports/esp32s2/common-hal/analogio/AnalogOut.h
new file mode 100644
index 000000000..a8cbc39d5
--- /dev/null
+++ b/ports/esp32s2/common-hal/analogio/AnalogOut.h
@@ -0,0 +1,44 @@
+/*
+ * This file is part of the MicroPython project, http://micropython.org/
+ *
+ * The MIT License (MIT)
+ *
+ * Copyright (c) 2016 Scott Shawcroft
+ * Copyright (c) 2019 Lucian Copeland for Adafruit Industries
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ANALOGIO_ANALOGOUT_H
+#define MICROPY_INCLUDED_ESP32S2_COMMON_HAL_ANALOGIO_ANALOGOUT_H
+
+#include "common-hal/microcontroller/Pin.h"
+
+#include "py/obj.h"
+
+typedef struct {
+ mp_obj_base_t base;
+ const mcu_pin_obj_t * pin;
+ uint8_t channel;
+ uint8_t dac_index:1;
+} analogio_analogout_obj_t;
+
+void analogout_reset(void);
+
+#endif // MICROPY_INCLUDED_STM32F4_COMMON_HAL_ANALOGIO_ANALOGOUT_H
diff --git a/ports/esp32s2/common-hal/analogio/__init__.c b/ports/esp32s2/common-hal/analogio/__init__.c
new file mode 100644
index 000000000..eea58c77d
--- /dev/null
+++ b/ports/esp32s2/common-hal/analogio/__init__.c
@@ -0,0 +1 @@
+// No analogio module functions.
diff --git a/ports/esp32s2/common-hal/socketpool/Socket.h b/ports/esp32s2/common-hal/socketpool/Socket.h
index de63c8ab2..62b5ded58 100644
--- a/ports/esp32s2/common-hal/socketpool/Socket.h
+++ b/ports/esp32s2/common-hal/socketpool/Socket.h
@@ -33,7 +33,6 @@
#include "common-hal/ssl/SSLContext.h"
#include "components/esp-tls/esp_tls.h"
-#include "components/log/include/esp_log.h"
typedef struct {
mp_obj_base_t base;
diff --git a/ports/esp32s2/common-hal/wifi/ScannedNetworks.h b/ports/esp32s2/common-hal/wifi/ScannedNetworks.h
index db0c2a148..36da387f2 100644
--- a/ports/esp32s2/common-hal/wifi/ScannedNetworks.h
+++ b/ports/esp32s2/common-hal/wifi/ScannedNetworks.h
@@ -36,7 +36,6 @@
#include "freertos/event_groups.h"
#include "components/esp_wifi/include/esp_wifi_types.h"
-#include "components/log/include/esp_log.h"
typedef struct {
mp_obj_base_t base;
diff --git a/ports/esp32s2/mpconfigport.h b/ports/esp32s2/mpconfigport.h
index c06e63439..cec8dd35d 100644
--- a/ports/esp32s2/mpconfigport.h
+++ b/ports/esp32s2/mpconfigport.h
@@ -31,8 +31,8 @@
#define CIRCUITPY_INTERNAL_NVM_SIZE (0)
#define MICROPY_NLR_THUMB (0)
-#define MICROPY_PY_UJSON (1)
-#define MICROPY_USE_INTERNAL_PRINTF (0)
+#define MICROPY_PY_UJSON (1)
+#define MICROPY_USE_INTERNAL_PRINTF (0)
#include "py/circuitpy_mpconfig.h"
diff --git a/ports/esp32s2/mpconfigport.mk b/ports/esp32s2/mpconfigport.mk
index bbaabb1c3..4e8a7bdef 100644
--- a/ports/esp32s2/mpconfigport.mk
+++ b/ports/esp32s2/mpconfigport.mk
@@ -14,7 +14,6 @@ LONGINT_IMPL = MPZ
# These modules are implemented in ports/<port>/common-hal:
CIRCUITPY_FULL_BUILD = 1
-CIRCUITPY_ANALOGIO = 0
CIRCUITPY_AUDIOBUSIO = 0
CIRCUITPY_AUDIOIO = 0
CIRCUITPY_COUNTIO = 0
diff --git a/ports/esp32s2/peripherals/pins.c b/ports/esp32s2/peripherals/pins.c
index 34fd6483e..2c8b61c62 100755
--- a/ports/esp32s2/peripherals/pins.c
+++ b/ports/esp32s2/peripherals/pins.c
@@ -26,56 +26,58 @@
#include "peripherals/pins.h"
-#define NO_ADC 0xff
+#define NO_ADC 0
+#define NO_ADC_CHANNEL ADC_CHANNEL_MAX
// This macro is used to simplify pin definition in boards/<board>/pins.c
-#define PIN(p_name, p_number) \
+#define PIN(p_name, p_number, p_adc_index, p_adc_channel) \
const mcu_pin_obj_t pin_## p_name = { \
PIN_PREFIX_VALUES \
.number = p_number, \
+ .adc_index = p_adc_index, \
+ .adc_channel = p_adc_channel, \
}
-PIN(GPIO0, 0);
-PIN(GPIO1, 1);
-PIN(GPIO2, 2);
-PIN(GPIO3, 3);
-PIN(GPIO4, 4);
-PIN(GPIO5, 5);
-PIN(GPIO6, 6);
-PIN(GPIO7, 7);
-PIN(GPIO8, 8);
-PIN(GPIO9, 9);
-PIN(GPIO10, 10);
-PIN(GPIO11, 11);
-PIN(GPIO12, 12);
-PIN(GPIO13, 13);
-PIN(GPIO14, 14);
-PIN(GPIO15, 15);
-PIN(GPIO16, 16);
-PIN(GPIO17, 17);
-PIN(GPIO18, 18);
-
-PIN(GPIO19, 19);
-PIN(GPIO20, 20);
-PIN(GPIO21, 21);
-PIN(GPIO26, 26);
-PIN(GPIO27, 27);
-PIN(GPIO28, 28);
-PIN(GPIO29, 29);
-PIN(GPIO30, 30);
-PIN(GPIO31, 31);
-PIN(GPIO32, 32);
-PIN(GPIO33, 33);
-PIN(GPIO34, 34);
-PIN(GPIO35, 35);
-PIN(GPIO36, 36);
-PIN(GPIO37, 37);
-PIN(GPIO38, 38);
-PIN(GPIO39, 39);
-PIN(GPIO40, 40);
-PIN(GPIO41, 41);
-PIN(GPIO42, 42);
-PIN(GPIO43, 43);
-PIN(GPIO44, 44);
-PIN(GPIO45, 45);
-PIN(GPIO46, 46);
+PIN(GPIO0, 0, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO1, 1, ADC_UNIT_1, ADC_CHANNEL_0);
+PIN(GPIO2, 2, ADC_UNIT_1, ADC_CHANNEL_1);
+PIN(GPIO3, 3, ADC_UNIT_1, ADC_CHANNEL_2);
+PIN(GPIO4, 4, ADC_UNIT_1, ADC_CHANNEL_3);
+PIN(GPIO5, 5, ADC_UNIT_1, ADC_CHANNEL_4);
+PIN(GPIO6, 6, ADC_UNIT_1, ADC_CHANNEL_5);
+PIN(GPIO7, 7, ADC_UNIT_1, ADC_CHANNEL_6);
+PIN(GPIO8, 8, ADC_UNIT_1, ADC_CHANNEL_7);
+PIN(GPIO9, 9, ADC_UNIT_1, ADC_CHANNEL_8);
+PIN(GPIO10, 10, ADC_UNIT_1, ADC_CHANNEL_9);
+PIN(GPIO11, 11, ADC_UNIT_2, ADC_CHANNEL_0);
+PIN(GPIO12, 12, ADC_UNIT_2, ADC_CHANNEL_1);
+PIN(GPIO13, 13, ADC_UNIT_2, ADC_CHANNEL_2);
+PIN(GPIO14, 14, ADC_UNIT_2, ADC_CHANNEL_3);
+PIN(GPIO15, 15, ADC_UNIT_2, ADC_CHANNEL_4);
+PIN(GPIO16, 16, ADC_UNIT_2, ADC_CHANNEL_5);
+PIN(GPIO17, 17, ADC_UNIT_2, ADC_CHANNEL_6);
+PIN(GPIO18, 18, ADC_UNIT_2, ADC_CHANNEL_7);
+PIN(GPIO19, 19, ADC_UNIT_2, ADC_CHANNEL_8);
+PIN(GPIO20, 20, ADC_UNIT_2, ADC_CHANNEL_9);
+PIN(GPIO21, 21, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO26, 26, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO27, 27, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO28, 28, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO29, 29, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO30, 30, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO31, 31, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO32, 32, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO33, 33, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO34, 34, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO35, 35, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO36, 36, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO37, 37, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO38, 38, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO39, 39, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO40, 40, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO41, 41, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO42, 42, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO43, 43, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO44, 44, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO45, 45, NO_ADC, NO_ADC_CHANNEL);
+PIN(GPIO46, 46, NO_ADC, NO_ADC_CHANNEL);
diff --git a/ports/esp32s2/peripherals/pins.h b/ports/esp32s2/peripherals/pins.h
index 9776fbb78..84123a80e 100644
--- a/ports/esp32s2/peripherals/pins.h
+++ b/ports/esp32s2/peripherals/pins.h
@@ -34,11 +34,15 @@
#include "esp32s2_peripherals_config.h"
#include "esp-idf/config/sdkconfig.h"
+
#include "components/hal/include/hal/gpio_types.h"
+#include "components/hal/include/hal/adc_types.h"
typedef struct {
PIN_PREFIX_FIELDS
gpio_num_t number;
+ uint8_t adc_index:2;
+ uint8_t adc_channel:6;
} mcu_pin_obj_t;
extern const mcu_pin_obj_t pin_GPIO0;
diff --git a/shared-bindings/socketpool/Socket.c b/shared-bindings/socketpool/Socket.c
index de05b8eb4..b0af57a5d 100644
--- a/shared-bindings/socketpool/Socket.c
+++ b/shared-bindings/socketpool/Socket.c
@@ -36,8 +36,6 @@
#include "py/runtime.h"
#include "py/mperrno.h"
-static const char* TAG = "socket binding";
-
//| class Socket:
//| """TCP, UDP and RAW socket. Cannot be created directly. Instead, call
//| `SocketPool.socket()`.
@@ -182,7 +180,6 @@ STATIC mp_obj_t socketpool_socket_connect(mp_obj_t self_in, mp_obj_t addr_in) {
bool ok = common_hal_socketpool_socket_connect(self, host, hostlen, port);
if (!ok) {
- ESP_EARLY_LOGW(TAG, "socket connect failed");
mp_raise_OSError(0);
}
diff --git a/shared-bindings/socketpool/SocketPool.c b/shared-bindings/socketpool/SocketPool.c
index 9f56e8c7e..527cf7e98 100644
--- a/shared-bindings/socketpool/SocketPool.c
+++ b/shared-bindings/socketpool/SocketPool.c
@@ -37,8 +37,6 @@
#include "shared-bindings/socketpool/Socket.h"
#include "shared-bindings/socketpool/SocketPool.h"
-static const char* TAG = "socketpool binding";
-
//| class SocketPool:
//| """A pool of socket resources available for the given radio. Only one
//| SocketPool can be created for each radio.
@@ -121,7 +119,6 @@ STATIC mp_obj_t socketpool_socketpool_getaddrinfo(size_t n_args, const mp_obj_t
}
if (ip_str == mp_const_none) {
- ESP_EARLY_LOGW(TAG, "no ip str");
mp_raise_OSError(0);
}
diff --git a/shared-bindings/wifi/ScannedNetworks.c b/shared-bindings/wifi/ScannedNetworks.c
index d04f0f92a..9316faa45 100644
--- a/shared-bindings/wifi/ScannedNetworks.c
+++ b/shared-bindings/wifi/ScannedNetworks.c
@@ -32,8 +32,6 @@
#include "py/runtime.h"
#include "shared-bindings/wifi/ScannedNetworks.h"
-static const char *TAG = "cp iternext";
-
//| class ScannedNetworks:
//| """Iterates over all `wifi.Network` objects found while scanning. This object is always created
//| by a `wifi.Radio`: it has no user-visible constructor."""
@@ -46,7 +44,6 @@ STATIC mp_obj_t scannednetworks_iternext(mp_obj_t self_in) {
return network;
}
- ESP_EARLY_LOGI(TAG, "stop iteration");
return MP_OBJ_STOP_ITERATION;
}