mirror of
https://github.com/esphome/esphome.git
synced 2024-12-22 21:44:55 +01:00
Initial ESP32-C3-DevKitM-1 board support (#2062)
Co-authored-by: Stijn Tintel <stijn@linux-ipv6.be>
This commit is contained in:
parent
159744e09e
commit
d9f09a7523
10 changed files with 984 additions and 887 deletions
875
esphome/boards.py
Normal file
875
esphome/boards.py
Normal file
|
@ -0,0 +1,875 @@
|
||||||
|
ESP8266_BASE_PINS = {
|
||||||
|
"A0": 17,
|
||||||
|
"SS": 15,
|
||||||
|
"MOSI": 13,
|
||||||
|
"MISO": 12,
|
||||||
|
"SCK": 14,
|
||||||
|
"SDA": 4,
|
||||||
|
"SCL": 5,
|
||||||
|
"RX": 3,
|
||||||
|
"TX": 1,
|
||||||
|
}
|
||||||
|
|
||||||
|
ESP8266_BOARD_PINS = {
|
||||||
|
"d1": {
|
||||||
|
"D0": 3,
|
||||||
|
"D1": 1,
|
||||||
|
"D2": 16,
|
||||||
|
"D3": 5,
|
||||||
|
"D4": 4,
|
||||||
|
"D5": 14,
|
||||||
|
"D6": 12,
|
||||||
|
"D7": 13,
|
||||||
|
"D8": 0,
|
||||||
|
"D9": 2,
|
||||||
|
"D10": 15,
|
||||||
|
"D11": 13,
|
||||||
|
"D12": 14,
|
||||||
|
"D13": 14,
|
||||||
|
"D14": 4,
|
||||||
|
"D15": 5,
|
||||||
|
"LED": 2,
|
||||||
|
},
|
||||||
|
"d1_mini": {
|
||||||
|
"D0": 16,
|
||||||
|
"D1": 5,
|
||||||
|
"D2": 4,
|
||||||
|
"D3": 0,
|
||||||
|
"D4": 2,
|
||||||
|
"D5": 14,
|
||||||
|
"D6": 12,
|
||||||
|
"D7": 13,
|
||||||
|
"D8": 15,
|
||||||
|
"LED": 2,
|
||||||
|
},
|
||||||
|
"d1_mini_lite": "d1_mini",
|
||||||
|
"d1_mini_pro": "d1_mini",
|
||||||
|
"esp01": {},
|
||||||
|
"esp01_1m": {},
|
||||||
|
"esp07": {},
|
||||||
|
"esp12e": {},
|
||||||
|
"esp210": {},
|
||||||
|
"esp8285": {},
|
||||||
|
"esp_wroom_02": {},
|
||||||
|
"espduino": {"LED": 16},
|
||||||
|
"espectro": {"LED": 15, "BUTTON": 2},
|
||||||
|
"espino": {"LED": 2, "LED_RED": 2, "LED_GREEN": 4, "LED_BLUE": 5, "BUTTON": 0},
|
||||||
|
"espinotee": {"LED": 16},
|
||||||
|
"espresso_lite_v1": {"LED": 16},
|
||||||
|
"espresso_lite_v2": {"LED": 2},
|
||||||
|
"gen4iod": {},
|
||||||
|
"heltec_wifi_kit_8": "d1_mini",
|
||||||
|
"huzzah": {
|
||||||
|
"LED": 0,
|
||||||
|
"LED_RED": 0,
|
||||||
|
"LED_BLUE": 2,
|
||||||
|
"D4": 4,
|
||||||
|
"D5": 5,
|
||||||
|
"D12": 12,
|
||||||
|
"D13": 13,
|
||||||
|
"D14": 14,
|
||||||
|
"D15": 15,
|
||||||
|
"D16": 16,
|
||||||
|
},
|
||||||
|
"inventone": {},
|
||||||
|
"modwifi": {},
|
||||||
|
"nodemcu": {
|
||||||
|
"D0": 16,
|
||||||
|
"D1": 5,
|
||||||
|
"D2": 4,
|
||||||
|
"D3": 0,
|
||||||
|
"D4": 2,
|
||||||
|
"D5": 14,
|
||||||
|
"D6": 12,
|
||||||
|
"D7": 13,
|
||||||
|
"D8": 15,
|
||||||
|
"D9": 3,
|
||||||
|
"D10": 1,
|
||||||
|
"LED": 16,
|
||||||
|
},
|
||||||
|
"nodemcuv2": "nodemcu",
|
||||||
|
"oak": {
|
||||||
|
"P0": 2,
|
||||||
|
"P1": 5,
|
||||||
|
"P2": 0,
|
||||||
|
"P3": 3,
|
||||||
|
"P4": 1,
|
||||||
|
"P5": 4,
|
||||||
|
"P6": 15,
|
||||||
|
"P7": 13,
|
||||||
|
"P8": 12,
|
||||||
|
"P9": 14,
|
||||||
|
"P10": 16,
|
||||||
|
"P11": 17,
|
||||||
|
"LED": 5,
|
||||||
|
},
|
||||||
|
"phoenix_v1": {"LED": 16},
|
||||||
|
"phoenix_v2": {"LED": 2},
|
||||||
|
"sparkfunBlynk": "thing",
|
||||||
|
"thing": {"LED": 5, "SDA": 2, "SCL": 14},
|
||||||
|
"thingdev": "thing",
|
||||||
|
"wifi_slot": {"LED": 2},
|
||||||
|
"wifiduino": {
|
||||||
|
"D0": 3,
|
||||||
|
"D1": 1,
|
||||||
|
"D2": 2,
|
||||||
|
"D3": 0,
|
||||||
|
"D4": 4,
|
||||||
|
"D5": 5,
|
||||||
|
"D6": 16,
|
||||||
|
"D7": 14,
|
||||||
|
"D8": 12,
|
||||||
|
"D9": 13,
|
||||||
|
"D10": 15,
|
||||||
|
"D11": 13,
|
||||||
|
"D12": 12,
|
||||||
|
"D13": 14,
|
||||||
|
},
|
||||||
|
"wifinfo": {
|
||||||
|
"LED": 12,
|
||||||
|
"D0": 16,
|
||||||
|
"D1": 5,
|
||||||
|
"D2": 4,
|
||||||
|
"D3": 0,
|
||||||
|
"D4": 2,
|
||||||
|
"D5": 14,
|
||||||
|
"D6": 12,
|
||||||
|
"D7": 13,
|
||||||
|
"D8": 15,
|
||||||
|
"D9": 3,
|
||||||
|
"D10": 1,
|
||||||
|
},
|
||||||
|
"wio_link": {"LED": 2, "GROVE": 15, "D0": 14, "D1": 12, "D2": 13, "BUTTON": 0},
|
||||||
|
"wio_node": {"LED": 2, "GROVE": 15, "D0": 3, "D1": 5, "BUTTON": 0},
|
||||||
|
"xinabox_cw01": {"SDA": 2, "SCL": 14, "LED": 5, "LED_RED": 12, "LED_GREEN": 13},
|
||||||
|
}
|
||||||
|
|
||||||
|
FLASH_SIZE_1_MB = 2 ** 20
|
||||||
|
FLASH_SIZE_512_KB = FLASH_SIZE_1_MB // 2
|
||||||
|
FLASH_SIZE_2_MB = 2 * FLASH_SIZE_1_MB
|
||||||
|
FLASH_SIZE_4_MB = 4 * FLASH_SIZE_1_MB
|
||||||
|
FLASH_SIZE_16_MB = 16 * FLASH_SIZE_1_MB
|
||||||
|
|
||||||
|
ESP8266_FLASH_SIZES = {
|
||||||
|
"d1": FLASH_SIZE_4_MB,
|
||||||
|
"d1_mini": FLASH_SIZE_4_MB,
|
||||||
|
"d1_mini_lite": FLASH_SIZE_1_MB,
|
||||||
|
"d1_mini_pro": FLASH_SIZE_16_MB,
|
||||||
|
"esp01": FLASH_SIZE_512_KB,
|
||||||
|
"esp01_1m": FLASH_SIZE_1_MB,
|
||||||
|
"esp07": FLASH_SIZE_4_MB,
|
||||||
|
"esp12e": FLASH_SIZE_4_MB,
|
||||||
|
"esp210": FLASH_SIZE_4_MB,
|
||||||
|
"esp8285": FLASH_SIZE_1_MB,
|
||||||
|
"esp_wroom_02": FLASH_SIZE_2_MB,
|
||||||
|
"espduino": FLASH_SIZE_4_MB,
|
||||||
|
"espectro": FLASH_SIZE_4_MB,
|
||||||
|
"espino": FLASH_SIZE_4_MB,
|
||||||
|
"espinotee": FLASH_SIZE_4_MB,
|
||||||
|
"espresso_lite_v1": FLASH_SIZE_4_MB,
|
||||||
|
"espresso_lite_v2": FLASH_SIZE_4_MB,
|
||||||
|
"gen4iod": FLASH_SIZE_512_KB,
|
||||||
|
"heltec_wifi_kit_8": FLASH_SIZE_4_MB,
|
||||||
|
"huzzah": FLASH_SIZE_4_MB,
|
||||||
|
"inventone": FLASH_SIZE_4_MB,
|
||||||
|
"modwifi": FLASH_SIZE_2_MB,
|
||||||
|
"nodemcu": FLASH_SIZE_4_MB,
|
||||||
|
"nodemcuv2": FLASH_SIZE_4_MB,
|
||||||
|
"oak": FLASH_SIZE_4_MB,
|
||||||
|
"phoenix_v1": FLASH_SIZE_4_MB,
|
||||||
|
"phoenix_v2": FLASH_SIZE_4_MB,
|
||||||
|
"sparkfunBlynk": FLASH_SIZE_4_MB,
|
||||||
|
"thing": FLASH_SIZE_512_KB,
|
||||||
|
"thingdev": FLASH_SIZE_512_KB,
|
||||||
|
"wifi_slot": FLASH_SIZE_1_MB,
|
||||||
|
"wifiduino": FLASH_SIZE_4_MB,
|
||||||
|
"wifinfo": FLASH_SIZE_1_MB,
|
||||||
|
"wio_link": FLASH_SIZE_4_MB,
|
||||||
|
"wio_node": FLASH_SIZE_4_MB,
|
||||||
|
"xinabox_cw01": FLASH_SIZE_4_MB,
|
||||||
|
}
|
||||||
|
|
||||||
|
ESP8266_LD_SCRIPTS = {
|
||||||
|
FLASH_SIZE_512_KB: ("eagle.flash.512k0.ld", "eagle.flash.512k.ld"),
|
||||||
|
FLASH_SIZE_1_MB: ("eagle.flash.1m0.ld", "eagle.flash.1m.ld"),
|
||||||
|
FLASH_SIZE_2_MB: ("eagle.flash.2m.ld", "eagle.flash.2m.ld"),
|
||||||
|
FLASH_SIZE_4_MB: ("eagle.flash.4m.ld", "eagle.flash.4m.ld"),
|
||||||
|
FLASH_SIZE_16_MB: ("eagle.flash.16m.ld", "eagle.flash.16m14m.ld"),
|
||||||
|
}
|
||||||
|
|
||||||
|
ESP32_BASE_PINS = {
|
||||||
|
"TX": 1,
|
||||||
|
"RX": 3,
|
||||||
|
"SDA": 21,
|
||||||
|
"SCL": 22,
|
||||||
|
"SS": 5,
|
||||||
|
"MOSI": 23,
|
||||||
|
"MISO": 19,
|
||||||
|
"SCK": 18,
|
||||||
|
"A0": 36,
|
||||||
|
"A3": 39,
|
||||||
|
"A4": 32,
|
||||||
|
"A5": 33,
|
||||||
|
"A6": 34,
|
||||||
|
"A7": 35,
|
||||||
|
"A10": 4,
|
||||||
|
"A11": 0,
|
||||||
|
"A12": 2,
|
||||||
|
"A13": 15,
|
||||||
|
"A14": 13,
|
||||||
|
"A15": 12,
|
||||||
|
"A16": 14,
|
||||||
|
"A17": 27,
|
||||||
|
"A18": 25,
|
||||||
|
"A19": 26,
|
||||||
|
"T0": 4,
|
||||||
|
"T1": 0,
|
||||||
|
"T2": 2,
|
||||||
|
"T3": 15,
|
||||||
|
"T4": 13,
|
||||||
|
"T5": 12,
|
||||||
|
"T6": 14,
|
||||||
|
"T7": 27,
|
||||||
|
"T8": 33,
|
||||||
|
"T9": 32,
|
||||||
|
"DAC1": 25,
|
||||||
|
"DAC2": 26,
|
||||||
|
"SVP": 36,
|
||||||
|
"SVN": 39,
|
||||||
|
}
|
||||||
|
|
||||||
|
ESP32_BOARD_PINS = {
|
||||||
|
"alksesp32": {
|
||||||
|
"A0": 32,
|
||||||
|
"A1": 33,
|
||||||
|
"A2": 25,
|
||||||
|
"A3": 26,
|
||||||
|
"A4": 27,
|
||||||
|
"A5": 14,
|
||||||
|
"A6": 12,
|
||||||
|
"A7": 15,
|
||||||
|
"D0": 40,
|
||||||
|
"D1": 41,
|
||||||
|
"D10": 19,
|
||||||
|
"D11": 21,
|
||||||
|
"D12": 22,
|
||||||
|
"D13": 23,
|
||||||
|
"D2": 15,
|
||||||
|
"D3": 2,
|
||||||
|
"D4": 0,
|
||||||
|
"D5": 4,
|
||||||
|
"D6": 16,
|
||||||
|
"D7": 17,
|
||||||
|
"D8": 5,
|
||||||
|
"D9": 18,
|
||||||
|
"DHT_PIN": 26,
|
||||||
|
"LED": 23,
|
||||||
|
"L_B": 5,
|
||||||
|
"L_G": 17,
|
||||||
|
"L_R": 22,
|
||||||
|
"L_RGB_B": 16,
|
||||||
|
"L_RGB_G": 21,
|
||||||
|
"L_RGB_R": 4,
|
||||||
|
"L_Y": 23,
|
||||||
|
"MISO": 22,
|
||||||
|
"MOSI": 21,
|
||||||
|
"PHOTO": 25,
|
||||||
|
"PIEZO1": 19,
|
||||||
|
"PIEZO2": 18,
|
||||||
|
"POT1": 32,
|
||||||
|
"POT2": 33,
|
||||||
|
"S1": 4,
|
||||||
|
"S2": 16,
|
||||||
|
"S3": 18,
|
||||||
|
"S4": 19,
|
||||||
|
"S5": 21,
|
||||||
|
"SCK": 23,
|
||||||
|
"SCL": 14,
|
||||||
|
"SDA": 27,
|
||||||
|
"SS": 19,
|
||||||
|
"SW1": 15,
|
||||||
|
"SW2": 2,
|
||||||
|
"SW3": 0,
|
||||||
|
},
|
||||||
|
"bpi-bit": {
|
||||||
|
"BUTTON_A": 35,
|
||||||
|
"BUTTON_B": 27,
|
||||||
|
"BUZZER": 25,
|
||||||
|
"LIGHT_SENSOR1": 36,
|
||||||
|
"LIGHT_SENSOR2": 39,
|
||||||
|
"MPU9250_INT": 0,
|
||||||
|
"P0": 25,
|
||||||
|
"P1": 32,
|
||||||
|
"P10": 26,
|
||||||
|
"P11": 27,
|
||||||
|
"P12": 2,
|
||||||
|
"P13": 18,
|
||||||
|
"P14": 19,
|
||||||
|
"P15": 23,
|
||||||
|
"P16": 5,
|
||||||
|
"P19": 22,
|
||||||
|
"P2": 33,
|
||||||
|
"P20": 21,
|
||||||
|
"P3": 13,
|
||||||
|
"P4": 15,
|
||||||
|
"P5": 35,
|
||||||
|
"P6": 12,
|
||||||
|
"P7": 14,
|
||||||
|
"P8": 16,
|
||||||
|
"P9": 17,
|
||||||
|
"RGB_LED": 4,
|
||||||
|
"TEMPERATURE_SENSOR": 34,
|
||||||
|
},
|
||||||
|
"d-duino-32": {
|
||||||
|
"D1": 5,
|
||||||
|
"D10": 1,
|
||||||
|
"D2": 4,
|
||||||
|
"D3": 0,
|
||||||
|
"D4": 2,
|
||||||
|
"D5": 14,
|
||||||
|
"D6": 12,
|
||||||
|
"D7": 13,
|
||||||
|
"D8": 15,
|
||||||
|
"D9": 3,
|
||||||
|
"MISO": 12,
|
||||||
|
"MOSI": 13,
|
||||||
|
"SCK": 14,
|
||||||
|
"SCL": 4,
|
||||||
|
"SDA": 5,
|
||||||
|
"SS": 15,
|
||||||
|
},
|
||||||
|
"esp-wrover-kit": {},
|
||||||
|
"esp32-devkitlipo": {},
|
||||||
|
"esp32-evb": {
|
||||||
|
"BUTTON": 34,
|
||||||
|
"MISO": 15,
|
||||||
|
"MOSI": 2,
|
||||||
|
"SCK": 14,
|
||||||
|
"SCL": 16,
|
||||||
|
"SDA": 13,
|
||||||
|
"SS": 17,
|
||||||
|
},
|
||||||
|
"esp32-gateway": {"BUTTON": 34, "LED": 33, "SCL": 16, "SDA": 32},
|
||||||
|
"esp32-poe-iso": {
|
||||||
|
"BUTTON": 34,
|
||||||
|
"MISO": 15,
|
||||||
|
"MOSI": 2,
|
||||||
|
"SCK": 14,
|
||||||
|
"SCL": 16,
|
||||||
|
"SDA": 13,
|
||||||
|
},
|
||||||
|
"esp32-poe": {"BUTTON": 34, "MISO": 15, "MOSI": 2, "SCK": 14, "SCL": 16, "SDA": 13},
|
||||||
|
"esp32-pro": {
|
||||||
|
"BUTTON": 34,
|
||||||
|
"MISO": 15,
|
||||||
|
"MOSI": 2,
|
||||||
|
"SCK": 14,
|
||||||
|
"SCL": 16,
|
||||||
|
"SDA": 13,
|
||||||
|
"SS": 17,
|
||||||
|
},
|
||||||
|
"esp320": {
|
||||||
|
"LED": 5,
|
||||||
|
"MISO": 12,
|
||||||
|
"MOSI": 13,
|
||||||
|
"SCK": 14,
|
||||||
|
"SCL": 14,
|
||||||
|
"SDA": 2,
|
||||||
|
"SS": 15,
|
||||||
|
},
|
||||||
|
"esp32cam": {},
|
||||||
|
"esp32dev": {},
|
||||||
|
"esp32doit-devkit-v1": {"LED": 2},
|
||||||
|
"esp32thing": {"BUTTON": 0, "LED": 5, "SS": 2},
|
||||||
|
"esp32vn-iot-uno": {},
|
||||||
|
"espea32": {"BUTTON": 0, "LED": 5},
|
||||||
|
"espectro32": {"LED": 15, "SD_SS": 33},
|
||||||
|
"espino32": {"BUTTON": 0, "LED": 16},
|
||||||
|
"featheresp32": {
|
||||||
|
"A0": 26,
|
||||||
|
"A1": 25,
|
||||||
|
"A10": 27,
|
||||||
|
"A11": 12,
|
||||||
|
"A12": 13,
|
||||||
|
"A13": 35,
|
||||||
|
"A2": 34,
|
||||||
|
"A4": 36,
|
||||||
|
"A5": 4,
|
||||||
|
"A6": 14,
|
||||||
|
"A7": 32,
|
||||||
|
"A8": 15,
|
||||||
|
"A9": 33,
|
||||||
|
"Ax": 2,
|
||||||
|
"LED": 13,
|
||||||
|
"MOSI": 18,
|
||||||
|
"RX": 16,
|
||||||
|
"SCK": 5,
|
||||||
|
"SDA": 23,
|
||||||
|
"SS": 33,
|
||||||
|
"TX": 17,
|
||||||
|
},
|
||||||
|
"firebeetle32": {"LED": 2},
|
||||||
|
"fm-devkit": {
|
||||||
|
"D0": 34,
|
||||||
|
"D1": 35,
|
||||||
|
"D10": 0,
|
||||||
|
"D2": 32,
|
||||||
|
"D3": 33,
|
||||||
|
"D4": 27,
|
||||||
|
"D5": 14,
|
||||||
|
"D6": 12,
|
||||||
|
"D7": 13,
|
||||||
|
"D8": 15,
|
||||||
|
"D9": 23,
|
||||||
|
"I2S_DOUT": 22,
|
||||||
|
"I2S_LRCLK": 25,
|
||||||
|
"I2S_MCLK": 2,
|
||||||
|
"I2S_SCLK": 26,
|
||||||
|
"LED": 5,
|
||||||
|
"SCL": 17,
|
||||||
|
"SDA": 16,
|
||||||
|
"SW1": 4,
|
||||||
|
"SW2": 18,
|
||||||
|
"SW3": 19,
|
||||||
|
"SW4": 21,
|
||||||
|
},
|
||||||
|
"frogboard": {},
|
||||||
|
"heltec_wifi_kit_32": {
|
||||||
|
"A1": 37,
|
||||||
|
"A2": 38,
|
||||||
|
"BUTTON": 0,
|
||||||
|
"LED": 25,
|
||||||
|
"RST_OLED": 16,
|
||||||
|
"SCL_OLED": 15,
|
||||||
|
"SDA_OLED": 4,
|
||||||
|
"Vext": 21,
|
||||||
|
},
|
||||||
|
"heltec_wifi_lora_32": {
|
||||||
|
"BUTTON": 0,
|
||||||
|
"DIO0": 26,
|
||||||
|
"DIO1": 33,
|
||||||
|
"DIO2": 32,
|
||||||
|
"LED": 25,
|
||||||
|
"MOSI": 27,
|
||||||
|
"RST_LoRa": 14,
|
||||||
|
"RST_OLED": 16,
|
||||||
|
"SCK": 5,
|
||||||
|
"SCL_OLED": 15,
|
||||||
|
"SDA_OLED": 4,
|
||||||
|
"SS": 18,
|
||||||
|
"Vext": 21,
|
||||||
|
},
|
||||||
|
"heltec_wifi_lora_32_V2": {
|
||||||
|
"BUTTON": 0,
|
||||||
|
"DIO0": 26,
|
||||||
|
"DIO1": 35,
|
||||||
|
"DIO2": 34,
|
||||||
|
"LED": 25,
|
||||||
|
"MOSI": 27,
|
||||||
|
"RST_LoRa": 14,
|
||||||
|
"RST_OLED": 16,
|
||||||
|
"SCK": 5,
|
||||||
|
"SCL_OLED": 15,
|
||||||
|
"SDA_OLED": 4,
|
||||||
|
"SS": 18,
|
||||||
|
"Vext": 21,
|
||||||
|
},
|
||||||
|
"heltec_wireless_stick": {
|
||||||
|
"BUTTON": 0,
|
||||||
|
"DIO0": 26,
|
||||||
|
"DIO1": 35,
|
||||||
|
"DIO2": 34,
|
||||||
|
"LED": 25,
|
||||||
|
"MOSI": 27,
|
||||||
|
"RST_LoRa": 14,
|
||||||
|
"RST_OLED": 16,
|
||||||
|
"SCK": 5,
|
||||||
|
"SCL_OLED": 15,
|
||||||
|
"SDA_OLED": 4,
|
||||||
|
"SS": 18,
|
||||||
|
"Vext": 21,
|
||||||
|
},
|
||||||
|
"hornbill32dev": {"BUTTON": 0, "LED": 13},
|
||||||
|
"hornbill32minima": {"SS": 2},
|
||||||
|
"intorobot": {
|
||||||
|
"A1": 39,
|
||||||
|
"A2": 35,
|
||||||
|
"A3": 25,
|
||||||
|
"A4": 26,
|
||||||
|
"A5": 14,
|
||||||
|
"A6": 12,
|
||||||
|
"A7": 15,
|
||||||
|
"A8": 13,
|
||||||
|
"A9": 2,
|
||||||
|
"BUTTON": 0,
|
||||||
|
"D0": 19,
|
||||||
|
"D1": 23,
|
||||||
|
"D2": 18,
|
||||||
|
"D3": 17,
|
||||||
|
"D4": 16,
|
||||||
|
"D5": 5,
|
||||||
|
"D6": 4,
|
||||||
|
"LED": 4,
|
||||||
|
"MISO": 17,
|
||||||
|
"MOSI": 16,
|
||||||
|
"RGB_B_BUILTIN": 22,
|
||||||
|
"RGB_G_BUILTIN": 21,
|
||||||
|
"RGB_R_BUILTIN": 27,
|
||||||
|
"SCL": 19,
|
||||||
|
"SDA": 23,
|
||||||
|
"T0": 19,
|
||||||
|
"T1": 23,
|
||||||
|
"T2": 18,
|
||||||
|
"T3": 17,
|
||||||
|
"T4": 16,
|
||||||
|
"T5": 5,
|
||||||
|
"T6": 4,
|
||||||
|
},
|
||||||
|
"iotaap_magnolia": {},
|
||||||
|
"iotbusio": {},
|
||||||
|
"iotbusproteus": {},
|
||||||
|
"lolin32": {"LED": 5},
|
||||||
|
"lolin32_lite": {"LED": 22},
|
||||||
|
"lolin_d32": {"LED": 5, "_VBAT": 35},
|
||||||
|
"lolin_d32_pro": {"LED": 5, "_VBAT": 35},
|
||||||
|
"lopy": {
|
||||||
|
"A1": 37,
|
||||||
|
"A2": 38,
|
||||||
|
"LED": 0,
|
||||||
|
"MISO": 37,
|
||||||
|
"MOSI": 22,
|
||||||
|
"SCK": 13,
|
||||||
|
"SCL": 13,
|
||||||
|
"SDA": 12,
|
||||||
|
"SS": 17,
|
||||||
|
},
|
||||||
|
"lopy4": {
|
||||||
|
"A1": 37,
|
||||||
|
"A2": 38,
|
||||||
|
"LED": 0,
|
||||||
|
"MISO": 37,
|
||||||
|
"MOSI": 22,
|
||||||
|
"SCK": 13,
|
||||||
|
"SCL": 13,
|
||||||
|
"SDA": 12,
|
||||||
|
"SS": 18,
|
||||||
|
},
|
||||||
|
"m5stack-core-esp32": {
|
||||||
|
"ADC1": 35,
|
||||||
|
"ADC2": 36,
|
||||||
|
"G0": 0,
|
||||||
|
"G1": 1,
|
||||||
|
"G12": 12,
|
||||||
|
"G13": 13,
|
||||||
|
"G15": 15,
|
||||||
|
"G16": 16,
|
||||||
|
"G17": 17,
|
||||||
|
"G18": 18,
|
||||||
|
"G19": 19,
|
||||||
|
"G2": 2,
|
||||||
|
"G21": 21,
|
||||||
|
"G22": 22,
|
||||||
|
"G23": 23,
|
||||||
|
"G25": 25,
|
||||||
|
"G26": 26,
|
||||||
|
"G3": 3,
|
||||||
|
"G34": 34,
|
||||||
|
"G35": 35,
|
||||||
|
"G36": 36,
|
||||||
|
"G5": 5,
|
||||||
|
"RXD2": 16,
|
||||||
|
"TXD2": 17,
|
||||||
|
},
|
||||||
|
"m5stack-fire": {
|
||||||
|
"ADC1": 35,
|
||||||
|
"ADC2": 36,
|
||||||
|
"G0": 0,
|
||||||
|
"G1": 1,
|
||||||
|
"G12": 12,
|
||||||
|
"G13": 13,
|
||||||
|
"G15": 15,
|
||||||
|
"G16": 16,
|
||||||
|
"G17": 17,
|
||||||
|
"G18": 18,
|
||||||
|
"G19": 19,
|
||||||
|
"G2": 2,
|
||||||
|
"G21": 21,
|
||||||
|
"G22": 22,
|
||||||
|
"G23": 23,
|
||||||
|
"G25": 25,
|
||||||
|
"G26": 26,
|
||||||
|
"G3": 3,
|
||||||
|
"G34": 34,
|
||||||
|
"G35": 35,
|
||||||
|
"G36": 36,
|
||||||
|
"G5": 5,
|
||||||
|
},
|
||||||
|
"m5stack-grey": {
|
||||||
|
"ADC1": 35,
|
||||||
|
"ADC2": 36,
|
||||||
|
"G0": 0,
|
||||||
|
"G1": 1,
|
||||||
|
"G12": 12,
|
||||||
|
"G13": 13,
|
||||||
|
"G15": 15,
|
||||||
|
"G16": 16,
|
||||||
|
"G17": 17,
|
||||||
|
"G18": 18,
|
||||||
|
"G19": 19,
|
||||||
|
"G2": 2,
|
||||||
|
"G21": 21,
|
||||||
|
"G22": 22,
|
||||||
|
"G23": 23,
|
||||||
|
"G25": 25,
|
||||||
|
"G26": 26,
|
||||||
|
"G3": 3,
|
||||||
|
"G34": 34,
|
||||||
|
"G35": 35,
|
||||||
|
"G36": 36,
|
||||||
|
"G5": 5,
|
||||||
|
"RXD2": 16,
|
||||||
|
"TXD2": 17,
|
||||||
|
},
|
||||||
|
"m5stick-c": {
|
||||||
|
"ADC1": 35,
|
||||||
|
"ADC2": 36,
|
||||||
|
"G0": 0,
|
||||||
|
"G10": 10,
|
||||||
|
"G26": 26,
|
||||||
|
"G32": 32,
|
||||||
|
"G33": 33,
|
||||||
|
"G36": 36,
|
||||||
|
"G37": 37,
|
||||||
|
"G39": 39,
|
||||||
|
"G9": 9,
|
||||||
|
"MISO": 36,
|
||||||
|
"MOSI": 15,
|
||||||
|
"SCK": 13,
|
||||||
|
"SCL": 33,
|
||||||
|
"SDA": 32,
|
||||||
|
},
|
||||||
|
"magicbit": {
|
||||||
|
"BLUE_LED": 17,
|
||||||
|
"BUZZER": 25,
|
||||||
|
"GREEN_LED": 16,
|
||||||
|
"LDR": 36,
|
||||||
|
"LED": 16,
|
||||||
|
"LEFT_BUTTON": 35,
|
||||||
|
"MOTOR1A": 27,
|
||||||
|
"MOTOR1B": 18,
|
||||||
|
"MOTOR2A": 16,
|
||||||
|
"MOTOR2B": 17,
|
||||||
|
"POT": 39,
|
||||||
|
"RED_LED": 27,
|
||||||
|
"RIGHT_PUTTON": 34,
|
||||||
|
"YELLOW_LED": 18,
|
||||||
|
},
|
||||||
|
"mhetesp32devkit": {"LED": 2},
|
||||||
|
"mhetesp32minikit": {"LED": 2},
|
||||||
|
"microduino-core-esp32": {
|
||||||
|
"A0": 12,
|
||||||
|
"A1": 13,
|
||||||
|
"A10": 25,
|
||||||
|
"A11": 26,
|
||||||
|
"A12": 27,
|
||||||
|
"A13": 14,
|
||||||
|
"A2": 15,
|
||||||
|
"A3": 4,
|
||||||
|
"A6": 38,
|
||||||
|
"A7": 37,
|
||||||
|
"A8": 32,
|
||||||
|
"A9": 33,
|
||||||
|
"D0": 3,
|
||||||
|
"D1": 1,
|
||||||
|
"D10": 5,
|
||||||
|
"D11": 23,
|
||||||
|
"D12": 19,
|
||||||
|
"D13": 18,
|
||||||
|
"D14": 12,
|
||||||
|
"D15": 13,
|
||||||
|
"D16": 15,
|
||||||
|
"D17": 4,
|
||||||
|
"D18": 22,
|
||||||
|
"D19": 21,
|
||||||
|
"D2": 16,
|
||||||
|
"D20": 38,
|
||||||
|
"D21": 37,
|
||||||
|
"D3": 17,
|
||||||
|
"D4": 32,
|
||||||
|
"D5": 33,
|
||||||
|
"D6": 25,
|
||||||
|
"D7": 26,
|
||||||
|
"D8": 27,
|
||||||
|
"D9": 14,
|
||||||
|
"SCL": 21,
|
||||||
|
"SCL1": 13,
|
||||||
|
"SDA": 22,
|
||||||
|
"SDA1": 12,
|
||||||
|
},
|
||||||
|
"nano32": {"BUTTON": 0, "LED": 16},
|
||||||
|
"nina_w10": {
|
||||||
|
"D0": 3,
|
||||||
|
"D1": 1,
|
||||||
|
"D10": 5,
|
||||||
|
"D11": 19,
|
||||||
|
"D12": 23,
|
||||||
|
"D13": 18,
|
||||||
|
"D14": 13,
|
||||||
|
"D15": 12,
|
||||||
|
"D16": 32,
|
||||||
|
"D17": 33,
|
||||||
|
"D18": 21,
|
||||||
|
"D19": 34,
|
||||||
|
"D2": 26,
|
||||||
|
"D20": 36,
|
||||||
|
"D21": 39,
|
||||||
|
"D3": 25,
|
||||||
|
"D4": 35,
|
||||||
|
"D5": 27,
|
||||||
|
"D6": 22,
|
||||||
|
"D7": 0,
|
||||||
|
"D8": 15,
|
||||||
|
"D9": 14,
|
||||||
|
"LED_BLUE": 21,
|
||||||
|
"LED_GREEN": 33,
|
||||||
|
"LED_RED": 23,
|
||||||
|
"SCL": 13,
|
||||||
|
"SDA": 12,
|
||||||
|
"SW1": 33,
|
||||||
|
"SW2": 27,
|
||||||
|
},
|
||||||
|
"node32s": {},
|
||||||
|
"nodemcu-32s": {"BUTTON": 0, "LED": 2},
|
||||||
|
"odroid_esp32": {"ADC1": 35, "ADC2": 36, "LED": 2, "SCL": 4, "SDA": 15, "SS": 22},
|
||||||
|
"onehorse32dev": {"A1": 37, "A2": 38, "BUTTON": 0, "LED": 5},
|
||||||
|
"oroca_edubot": {
|
||||||
|
"A0": 34,
|
||||||
|
"A1": 39,
|
||||||
|
"A2": 36,
|
||||||
|
"A3": 33,
|
||||||
|
"D0": 4,
|
||||||
|
"D1": 16,
|
||||||
|
"D2": 17,
|
||||||
|
"D3": 22,
|
||||||
|
"D4": 23,
|
||||||
|
"D5": 5,
|
||||||
|
"D6": 18,
|
||||||
|
"D7": 19,
|
||||||
|
"D8": 33,
|
||||||
|
"LED": 13,
|
||||||
|
"MOSI": 18,
|
||||||
|
"RX": 16,
|
||||||
|
"SCK": 5,
|
||||||
|
"SDA": 23,
|
||||||
|
"SS": 2,
|
||||||
|
"TX": 17,
|
||||||
|
"VBAT": 35,
|
||||||
|
},
|
||||||
|
"pico32": {},
|
||||||
|
"pocket_32": {"LED": 16},
|
||||||
|
"pycom_gpy": {
|
||||||
|
"A1": 37,
|
||||||
|
"A2": 38,
|
||||||
|
"LED": 0,
|
||||||
|
"MISO": 37,
|
||||||
|
"MOSI": 22,
|
||||||
|
"SCK": 13,
|
||||||
|
"SCL": 13,
|
||||||
|
"SDA": 12,
|
||||||
|
"SS": 17,
|
||||||
|
},
|
||||||
|
"quantum": {},
|
||||||
|
"sparkfun_lora_gateway_1-channel": {"MISO": 12, "MOSI": 13, "SCK": 14, "SS": 16},
|
||||||
|
"tinypico": {},
|
||||||
|
"ttgo-lora32-v1": {
|
||||||
|
"A1": 37,
|
||||||
|
"A2": 38,
|
||||||
|
"BUTTON": 0,
|
||||||
|
"LED": 2,
|
||||||
|
"MOSI": 27,
|
||||||
|
"SCK": 5,
|
||||||
|
"SS": 18,
|
||||||
|
},
|
||||||
|
"ttgo-t-beam": {"BUTTON": 39, "LED": 14, "MOSI": 27, "SCK": 5, "SS": 18},
|
||||||
|
"ttgo-t-watch": {"BUTTON": 36, "MISO": 2, "MOSI": 15, "SCK": 14, "SS": 13},
|
||||||
|
"ttgo-t1": {"LED": 22, "MISO": 2, "MOSI": 15, "SCK": 14, "SCL": 23, "SS": 13},
|
||||||
|
"ttgo-t7-v13-mini32": {"LED": 22},
|
||||||
|
"ttgo-t7-v14-mini32": {"LED": 19},
|
||||||
|
"turta_iot_node": {},
|
||||||
|
"vintlabs-devkit-v1": {
|
||||||
|
"LED": 2,
|
||||||
|
"PWM0": 12,
|
||||||
|
"PWM1": 13,
|
||||||
|
"PWM2": 14,
|
||||||
|
"PWM3": 15,
|
||||||
|
"PWM4": 16,
|
||||||
|
"PWM5": 17,
|
||||||
|
"PWM6": 18,
|
||||||
|
"PWM7": 19,
|
||||||
|
},
|
||||||
|
"wemos_d1_mini32": {
|
||||||
|
"D0": 26,
|
||||||
|
"D1": 22,
|
||||||
|
"D2": 21,
|
||||||
|
"D3": 17,
|
||||||
|
"D4": 16,
|
||||||
|
"D5": 18,
|
||||||
|
"D6": 19,
|
||||||
|
"D7": 23,
|
||||||
|
"D8": 5,
|
||||||
|
"LED": 2,
|
||||||
|
"RXD": 3,
|
||||||
|
"TXD": 1,
|
||||||
|
"_VBAT": 35,
|
||||||
|
},
|
||||||
|
"wemosbat": {"LED": 16},
|
||||||
|
"wesp32": {"MISO": 32, "SCL": 4, "SDA": 15},
|
||||||
|
"widora-air": {
|
||||||
|
"A1": 39,
|
||||||
|
"A2": 35,
|
||||||
|
"A3": 25,
|
||||||
|
"A4": 26,
|
||||||
|
"A5": 14,
|
||||||
|
"A6": 12,
|
||||||
|
"A7": 15,
|
||||||
|
"A8": 13,
|
||||||
|
"A9": 2,
|
||||||
|
"BUTTON": 0,
|
||||||
|
"D0": 19,
|
||||||
|
"D1": 23,
|
||||||
|
"D2": 18,
|
||||||
|
"D3": 17,
|
||||||
|
"D4": 16,
|
||||||
|
"D5": 5,
|
||||||
|
"D6": 4,
|
||||||
|
"LED": 25,
|
||||||
|
"MISO": 17,
|
||||||
|
"MOSI": 16,
|
||||||
|
"SCL": 19,
|
||||||
|
"SDA": 23,
|
||||||
|
"T0": 19,
|
||||||
|
"T1": 23,
|
||||||
|
"T2": 18,
|
||||||
|
"T3": 17,
|
||||||
|
"T4": 16,
|
||||||
|
"T5": 5,
|
||||||
|
"T6": 4,
|
||||||
|
},
|
||||||
|
"xinabox_cw02": {"LED": 27},
|
||||||
|
}
|
||||||
|
|
||||||
|
ESP32_C3_BASE_PINS = {
|
||||||
|
"TX": 21,
|
||||||
|
"RX": 20,
|
||||||
|
"ADC1_0": 0,
|
||||||
|
"ADC1_1": 1,
|
||||||
|
"ADC1_2": 2,
|
||||||
|
"ADC1_3": 3,
|
||||||
|
"ADC1_4": 4,
|
||||||
|
"ADC2_0": 5,
|
||||||
|
}
|
||||||
|
|
||||||
|
ESP32_C3_BOARD_PINS = {
|
||||||
|
"esp32-c3-devkitm-1": {"LED": 8},
|
||||||
|
"esp32-c3-devkitc-02": "esp32-c3-devkitm-1",
|
||||||
|
}
|
|
@ -14,6 +14,7 @@ static const char *const TAG = "adc";
|
||||||
void ADCSensor::set_attenuation(adc_atten_t attenuation) { this->attenuation_ = attenuation; }
|
void ADCSensor::set_attenuation(adc_atten_t attenuation) { this->attenuation_ = attenuation; }
|
||||||
|
|
||||||
inline adc1_channel_t gpio_to_adc1(uint8_t pin) {
|
inline adc1_channel_t gpio_to_adc1(uint8_t pin) {
|
||||||
|
#if CONFIG_IDF_TARGET_ESP32
|
||||||
switch (pin) {
|
switch (pin) {
|
||||||
case 36:
|
case 36:
|
||||||
return ADC1_CHANNEL_0;
|
return ADC1_CHANNEL_0;
|
||||||
|
@ -34,6 +35,22 @@ inline adc1_channel_t gpio_to_adc1(uint8_t pin) {
|
||||||
default:
|
default:
|
||||||
return ADC1_CHANNEL_MAX;
|
return ADC1_CHANNEL_MAX;
|
||||||
}
|
}
|
||||||
|
#elif CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32H2
|
||||||
|
switch (pin) {
|
||||||
|
case 0:
|
||||||
|
return ADC1_CHANNEL_0;
|
||||||
|
case 1:
|
||||||
|
return ADC1_CHANNEL_1;
|
||||||
|
case 2:
|
||||||
|
return ADC1_CHANNEL_2;
|
||||||
|
case 3:
|
||||||
|
return ADC1_CHANNEL_3;
|
||||||
|
case 4:
|
||||||
|
return ADC1_CHANNEL_4;
|
||||||
|
default:
|
||||||
|
return ADC1_CHANNEL_MAX;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -46,8 +63,10 @@ void ADCSensor::setup() {
|
||||||
#ifdef ARDUINO_ARCH_ESP32
|
#ifdef ARDUINO_ARCH_ESP32
|
||||||
adc1_config_channel_atten(gpio_to_adc1(pin_), attenuation_);
|
adc1_config_channel_atten(gpio_to_adc1(pin_), attenuation_);
|
||||||
adc1_config_width(ADC_WIDTH_BIT_12);
|
adc1_config_width(ADC_WIDTH_BIT_12);
|
||||||
|
#if !CONFIG_IDF_TARGET_ESP32C3 && !CONFIG_IDF_TARGET_ESP32H2
|
||||||
adc_gpio_init(ADC_UNIT_1, (adc_channel_t) gpio_to_adc1(pin_));
|
adc_gpio_init(ADC_UNIT_1, (adc_channel_t) gpio_to_adc1(pin_));
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
void ADCSensor::dump_config() {
|
void ADCSensor::dump_config() {
|
||||||
LOG_SENSOR("", "ADC Sensor", this);
|
LOG_SENSOR("", "ADC Sensor", this);
|
||||||
|
@ -89,6 +108,7 @@ float ADCSensor::sample() {
|
||||||
#ifdef ARDUINO_ARCH_ESP32
|
#ifdef ARDUINO_ARCH_ESP32
|
||||||
int raw = adc1_get_raw(gpio_to_adc1(pin_));
|
int raw = adc1_get_raw(gpio_to_adc1(pin_));
|
||||||
float value_v = raw / 4095.0f;
|
float value_v = raw / 4095.0f;
|
||||||
|
#if CONFIG_IDF_TARGET_ESP32
|
||||||
switch (this->attenuation_) {
|
switch (this->attenuation_) {
|
||||||
case ADC_ATTEN_DB_0:
|
case ADC_ATTEN_DB_0:
|
||||||
value_v *= 1.1;
|
value_v *= 1.1;
|
||||||
|
@ -105,6 +125,24 @@ float ADCSensor::sample() {
|
||||||
default: // This is to satisfy the unused ADC_ATTEN_MAX
|
default: // This is to satisfy the unused ADC_ATTEN_MAX
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
#elif CONFIG_IDF_TARGET_ESP32C3 || CONFIG_IDF_TARGET_ESP32H2
|
||||||
|
switch (this->attenuation_) {
|
||||||
|
case ADC_ATTEN_DB_0:
|
||||||
|
value_v *= 0.84;
|
||||||
|
break;
|
||||||
|
case ADC_ATTEN_DB_2_5:
|
||||||
|
value_v *= 1.13;
|
||||||
|
break;
|
||||||
|
case ADC_ATTEN_DB_6:
|
||||||
|
value_v *= 1.56;
|
||||||
|
break;
|
||||||
|
case ADC_ATTEN_DB_11:
|
||||||
|
value_v *= 3.0;
|
||||||
|
break;
|
||||||
|
default: // This is to satisfy the unused ADC_ATTEN_MAX
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
return value_v;
|
return value_v;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ from esphome.coroutine import FakeEventLoop as _FakeEventLoop
|
||||||
from esphome.coroutine import coroutine, coroutine_with_priority # noqa
|
from esphome.coroutine import coroutine, coroutine_with_priority # noqa
|
||||||
from esphome.helpers import ensure_unique_string, is_hassio
|
from esphome.helpers import ensure_unique_string, is_hassio
|
||||||
from esphome.util import OrderedDict
|
from esphome.util import OrderedDict
|
||||||
|
from esphome import boards
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from ..cpp_generator import MockObj, MockObjClass, Statement
|
from ..cpp_generator import MockObj, MockObjClass, Statement
|
||||||
|
@ -593,10 +594,20 @@ class EsphomeCore:
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_esp32(self):
|
def is_esp32(self):
|
||||||
|
"""Check if the ESP32 platform is used.
|
||||||
|
|
||||||
|
This checks if the ESP32 platform is in use, which
|
||||||
|
support ESP32 as well as other chips such as ESP32-C3
|
||||||
|
"""
|
||||||
if self.esp_platform is None:
|
if self.esp_platform is None:
|
||||||
raise ValueError("No platform specified")
|
raise ValueError("No platform specified")
|
||||||
return self.esp_platform == "ESP32"
|
return self.esp_platform == "ESP32"
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_esp32_c3(self):
|
||||||
|
"""Check if the ESP32-C3 SoC is being used."""
|
||||||
|
return self.is_esp32 and self.board in boards.ESP32_C3_BOARD_PINS
|
||||||
|
|
||||||
def add_job(self, func, *args, **kwargs):
|
def add_job(self, func, *args, **kwargs):
|
||||||
self.event_loop.add_job(func, *args, **kwargs)
|
self.event_loop.add_job(func, *args, **kwargs)
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ import re
|
||||||
|
|
||||||
import esphome.codegen as cg
|
import esphome.codegen as cg
|
||||||
import esphome.config_validation as cv
|
import esphome.config_validation as cv
|
||||||
from esphome import automation, pins
|
from esphome import automation, boards
|
||||||
from esphome.const import (
|
from esphome.const import (
|
||||||
CONF_ARDUINO_VERSION,
|
CONF_ARDUINO_VERSION,
|
||||||
CONF_BOARD,
|
CONF_BOARD,
|
||||||
|
@ -50,18 +50,19 @@ VERSION_REGEX = re.compile(r"^[0-9]+\.[0-9]+\.[0-9]+(?:[ab]\d+)?$")
|
||||||
CONF_NAME_ADD_MAC_SUFFIX = "name_add_mac_suffix"
|
CONF_NAME_ADD_MAC_SUFFIX = "name_add_mac_suffix"
|
||||||
|
|
||||||
|
|
||||||
def validate_board(value):
|
def validate_board(value: str):
|
||||||
if CORE.is_esp8266:
|
if CORE.is_esp8266:
|
||||||
board_pins = pins.ESP8266_BOARD_PINS
|
boardlist = boards.ESP8266_BOARD_PINS.keys()
|
||||||
elif CORE.is_esp32:
|
elif CORE.is_esp32:
|
||||||
board_pins = pins.ESP32_BOARD_PINS
|
boardlist = list(boards.ESP32_BOARD_PINS.keys())
|
||||||
|
boardlist += list(boards.ESP32_C3_BOARD_PINS.keys())
|
||||||
else:
|
else:
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
if value not in board_pins:
|
if value not in boardlist:
|
||||||
raise cv.Invalid(
|
raise cv.Invalid(
|
||||||
"Could not find board '{}'. Valid boards are {}".format(
|
"Could not find board '{}'. Valid boards are {}".format(
|
||||||
value, ", ".join(sorted(board_pins.keys()))
|
value, ", ".join(sorted(boardlist))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
return value
|
return value
|
||||||
|
|
895
esphome/pins.py
895
esphome/pins.py
|
@ -4,877 +4,22 @@ import esphome.config_validation as cv
|
||||||
from esphome.const import CONF_INVERTED, CONF_MODE, CONF_NUMBER
|
from esphome.const import CONF_INVERTED, CONF_MODE, CONF_NUMBER
|
||||||
from esphome.core import CORE
|
from esphome.core import CORE
|
||||||
from esphome.util import SimpleRegistry
|
from esphome.util import SimpleRegistry
|
||||||
|
from esphome import boards
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
ESP8266_BASE_PINS = {
|
|
||||||
"A0": 17,
|
|
||||||
"SS": 15,
|
|
||||||
"MOSI": 13,
|
|
||||||
"MISO": 12,
|
|
||||||
"SCK": 14,
|
|
||||||
"SDA": 4,
|
|
||||||
"SCL": 5,
|
|
||||||
"RX": 3,
|
|
||||||
"TX": 1,
|
|
||||||
}
|
|
||||||
|
|
||||||
ESP8266_BOARD_PINS = {
|
|
||||||
"d1": {
|
|
||||||
"D0": 3,
|
|
||||||
"D1": 1,
|
|
||||||
"D2": 16,
|
|
||||||
"D3": 5,
|
|
||||||
"D4": 4,
|
|
||||||
"D5": 14,
|
|
||||||
"D6": 12,
|
|
||||||
"D7": 13,
|
|
||||||
"D8": 0,
|
|
||||||
"D9": 2,
|
|
||||||
"D10": 15,
|
|
||||||
"D11": 13,
|
|
||||||
"D12": 14,
|
|
||||||
"D13": 14,
|
|
||||||
"D14": 4,
|
|
||||||
"D15": 5,
|
|
||||||
"LED": 2,
|
|
||||||
},
|
|
||||||
"d1_mini": {
|
|
||||||
"D0": 16,
|
|
||||||
"D1": 5,
|
|
||||||
"D2": 4,
|
|
||||||
"D3": 0,
|
|
||||||
"D4": 2,
|
|
||||||
"D5": 14,
|
|
||||||
"D6": 12,
|
|
||||||
"D7": 13,
|
|
||||||
"D8": 15,
|
|
||||||
"LED": 2,
|
|
||||||
},
|
|
||||||
"d1_mini_lite": "d1_mini",
|
|
||||||
"d1_mini_pro": "d1_mini",
|
|
||||||
"esp01": {},
|
|
||||||
"esp01_1m": {},
|
|
||||||
"esp07": {},
|
|
||||||
"esp12e": {},
|
|
||||||
"esp210": {},
|
|
||||||
"esp8285": {},
|
|
||||||
"esp_wroom_02": {},
|
|
||||||
"espduino": {"LED": 16},
|
|
||||||
"espectro": {"LED": 15, "BUTTON": 2},
|
|
||||||
"espino": {"LED": 2, "LED_RED": 2, "LED_GREEN": 4, "LED_BLUE": 5, "BUTTON": 0},
|
|
||||||
"espinotee": {"LED": 16},
|
|
||||||
"espresso_lite_v1": {"LED": 16},
|
|
||||||
"espresso_lite_v2": {"LED": 2},
|
|
||||||
"gen4iod": {},
|
|
||||||
"heltec_wifi_kit_8": "d1_mini",
|
|
||||||
"huzzah": {
|
|
||||||
"LED": 0,
|
|
||||||
"LED_RED": 0,
|
|
||||||
"LED_BLUE": 2,
|
|
||||||
"D4": 4,
|
|
||||||
"D5": 5,
|
|
||||||
"D12": 12,
|
|
||||||
"D13": 13,
|
|
||||||
"D14": 14,
|
|
||||||
"D15": 15,
|
|
||||||
"D16": 16,
|
|
||||||
},
|
|
||||||
"inventone": {},
|
|
||||||
"modwifi": {},
|
|
||||||
"nodemcu": {
|
|
||||||
"D0": 16,
|
|
||||||
"D1": 5,
|
|
||||||
"D2": 4,
|
|
||||||
"D3": 0,
|
|
||||||
"D4": 2,
|
|
||||||
"D5": 14,
|
|
||||||
"D6": 12,
|
|
||||||
"D7": 13,
|
|
||||||
"D8": 15,
|
|
||||||
"D9": 3,
|
|
||||||
"D10": 1,
|
|
||||||
"LED": 16,
|
|
||||||
},
|
|
||||||
"nodemcuv2": "nodemcu",
|
|
||||||
"oak": {
|
|
||||||
"P0": 2,
|
|
||||||
"P1": 5,
|
|
||||||
"P2": 0,
|
|
||||||
"P3": 3,
|
|
||||||
"P4": 1,
|
|
||||||
"P5": 4,
|
|
||||||
"P6": 15,
|
|
||||||
"P7": 13,
|
|
||||||
"P8": 12,
|
|
||||||
"P9": 14,
|
|
||||||
"P10": 16,
|
|
||||||
"P11": 17,
|
|
||||||
"LED": 5,
|
|
||||||
},
|
|
||||||
"phoenix_v1": {"LED": 16},
|
|
||||||
"phoenix_v2": {"LED": 2},
|
|
||||||
"sparkfunBlynk": "thing",
|
|
||||||
"thing": {"LED": 5, "SDA": 2, "SCL": 14},
|
|
||||||
"thingdev": "thing",
|
|
||||||
"wifi_slot": {"LED": 2},
|
|
||||||
"wifiduino": {
|
|
||||||
"D0": 3,
|
|
||||||
"D1": 1,
|
|
||||||
"D2": 2,
|
|
||||||
"D3": 0,
|
|
||||||
"D4": 4,
|
|
||||||
"D5": 5,
|
|
||||||
"D6": 16,
|
|
||||||
"D7": 14,
|
|
||||||
"D8": 12,
|
|
||||||
"D9": 13,
|
|
||||||
"D10": 15,
|
|
||||||
"D11": 13,
|
|
||||||
"D12": 12,
|
|
||||||
"D13": 14,
|
|
||||||
},
|
|
||||||
"wifinfo": {
|
|
||||||
"LED": 12,
|
|
||||||
"D0": 16,
|
|
||||||
"D1": 5,
|
|
||||||
"D2": 4,
|
|
||||||
"D3": 0,
|
|
||||||
"D4": 2,
|
|
||||||
"D5": 14,
|
|
||||||
"D6": 12,
|
|
||||||
"D7": 13,
|
|
||||||
"D8": 15,
|
|
||||||
"D9": 3,
|
|
||||||
"D10": 1,
|
|
||||||
},
|
|
||||||
"wio_link": {"LED": 2, "GROVE": 15, "D0": 14, "D1": 12, "D2": 13, "BUTTON": 0},
|
|
||||||
"wio_node": {"LED": 2, "GROVE": 15, "D0": 3, "D1": 5, "BUTTON": 0},
|
|
||||||
"xinabox_cw01": {"SDA": 2, "SCL": 14, "LED": 5, "LED_RED": 12, "LED_GREEN": 13},
|
|
||||||
}
|
|
||||||
|
|
||||||
FLASH_SIZE_1_MB = 2 ** 20
|
|
||||||
FLASH_SIZE_512_KB = FLASH_SIZE_1_MB // 2
|
|
||||||
FLASH_SIZE_2_MB = 2 * FLASH_SIZE_1_MB
|
|
||||||
FLASH_SIZE_4_MB = 4 * FLASH_SIZE_1_MB
|
|
||||||
FLASH_SIZE_16_MB = 16 * FLASH_SIZE_1_MB
|
|
||||||
|
|
||||||
ESP8266_FLASH_SIZES = {
|
|
||||||
"d1": FLASH_SIZE_4_MB,
|
|
||||||
"d1_mini": FLASH_SIZE_4_MB,
|
|
||||||
"d1_mini_lite": FLASH_SIZE_1_MB,
|
|
||||||
"d1_mini_pro": FLASH_SIZE_16_MB,
|
|
||||||
"esp01": FLASH_SIZE_512_KB,
|
|
||||||
"esp01_1m": FLASH_SIZE_1_MB,
|
|
||||||
"esp07": FLASH_SIZE_4_MB,
|
|
||||||
"esp12e": FLASH_SIZE_4_MB,
|
|
||||||
"esp210": FLASH_SIZE_4_MB,
|
|
||||||
"esp8285": FLASH_SIZE_1_MB,
|
|
||||||
"esp_wroom_02": FLASH_SIZE_2_MB,
|
|
||||||
"espduino": FLASH_SIZE_4_MB,
|
|
||||||
"espectro": FLASH_SIZE_4_MB,
|
|
||||||
"espino": FLASH_SIZE_4_MB,
|
|
||||||
"espinotee": FLASH_SIZE_4_MB,
|
|
||||||
"espresso_lite_v1": FLASH_SIZE_4_MB,
|
|
||||||
"espresso_lite_v2": FLASH_SIZE_4_MB,
|
|
||||||
"gen4iod": FLASH_SIZE_512_KB,
|
|
||||||
"heltec_wifi_kit_8": FLASH_SIZE_4_MB,
|
|
||||||
"huzzah": FLASH_SIZE_4_MB,
|
|
||||||
"inventone": FLASH_SIZE_4_MB,
|
|
||||||
"modwifi": FLASH_SIZE_2_MB,
|
|
||||||
"nodemcu": FLASH_SIZE_4_MB,
|
|
||||||
"nodemcuv2": FLASH_SIZE_4_MB,
|
|
||||||
"oak": FLASH_SIZE_4_MB,
|
|
||||||
"phoenix_v1": FLASH_SIZE_4_MB,
|
|
||||||
"phoenix_v2": FLASH_SIZE_4_MB,
|
|
||||||
"sparkfunBlynk": FLASH_SIZE_4_MB,
|
|
||||||
"thing": FLASH_SIZE_512_KB,
|
|
||||||
"thingdev": FLASH_SIZE_512_KB,
|
|
||||||
"wifi_slot": FLASH_SIZE_1_MB,
|
|
||||||
"wifiduino": FLASH_SIZE_4_MB,
|
|
||||||
"wifinfo": FLASH_SIZE_1_MB,
|
|
||||||
"wio_link": FLASH_SIZE_4_MB,
|
|
||||||
"wio_node": FLASH_SIZE_4_MB,
|
|
||||||
"xinabox_cw01": FLASH_SIZE_4_MB,
|
|
||||||
}
|
|
||||||
|
|
||||||
ESP8266_LD_SCRIPTS = {
|
|
||||||
FLASH_SIZE_512_KB: ("eagle.flash.512k0.ld", "eagle.flash.512k.ld"),
|
|
||||||
FLASH_SIZE_1_MB: ("eagle.flash.1m0.ld", "eagle.flash.1m.ld"),
|
|
||||||
FLASH_SIZE_2_MB: ("eagle.flash.2m.ld", "eagle.flash.2m.ld"),
|
|
||||||
FLASH_SIZE_4_MB: ("eagle.flash.4m.ld", "eagle.flash.4m.ld"),
|
|
||||||
FLASH_SIZE_16_MB: ("eagle.flash.16m.ld", "eagle.flash.16m14m.ld"),
|
|
||||||
}
|
|
||||||
|
|
||||||
ESP32_BASE_PINS = {
|
|
||||||
"TX": 1,
|
|
||||||
"RX": 3,
|
|
||||||
"SDA": 21,
|
|
||||||
"SCL": 22,
|
|
||||||
"SS": 5,
|
|
||||||
"MOSI": 23,
|
|
||||||
"MISO": 19,
|
|
||||||
"SCK": 18,
|
|
||||||
"A0": 36,
|
|
||||||
"A3": 39,
|
|
||||||
"A4": 32,
|
|
||||||
"A5": 33,
|
|
||||||
"A6": 34,
|
|
||||||
"A7": 35,
|
|
||||||
"A10": 4,
|
|
||||||
"A11": 0,
|
|
||||||
"A12": 2,
|
|
||||||
"A13": 15,
|
|
||||||
"A14": 13,
|
|
||||||
"A15": 12,
|
|
||||||
"A16": 14,
|
|
||||||
"A17": 27,
|
|
||||||
"A18": 25,
|
|
||||||
"A19": 26,
|
|
||||||
"T0": 4,
|
|
||||||
"T1": 0,
|
|
||||||
"T2": 2,
|
|
||||||
"T3": 15,
|
|
||||||
"T4": 13,
|
|
||||||
"T5": 12,
|
|
||||||
"T6": 14,
|
|
||||||
"T7": 27,
|
|
||||||
"T8": 33,
|
|
||||||
"T9": 32,
|
|
||||||
"DAC1": 25,
|
|
||||||
"DAC2": 26,
|
|
||||||
"SVP": 36,
|
|
||||||
"SVN": 39,
|
|
||||||
}
|
|
||||||
|
|
||||||
ESP32_BOARD_PINS = {
|
|
||||||
"alksesp32": {
|
|
||||||
"A0": 32,
|
|
||||||
"A1": 33,
|
|
||||||
"A2": 25,
|
|
||||||
"A3": 26,
|
|
||||||
"A4": 27,
|
|
||||||
"A5": 14,
|
|
||||||
"A6": 12,
|
|
||||||
"A7": 15,
|
|
||||||
"D0": 40,
|
|
||||||
"D1": 41,
|
|
||||||
"D10": 19,
|
|
||||||
"D11": 21,
|
|
||||||
"D12": 22,
|
|
||||||
"D13": 23,
|
|
||||||
"D2": 15,
|
|
||||||
"D3": 2,
|
|
||||||
"D4": 0,
|
|
||||||
"D5": 4,
|
|
||||||
"D6": 16,
|
|
||||||
"D7": 17,
|
|
||||||
"D8": 5,
|
|
||||||
"D9": 18,
|
|
||||||
"DHT_PIN": 26,
|
|
||||||
"LED": 23,
|
|
||||||
"L_B": 5,
|
|
||||||
"L_G": 17,
|
|
||||||
"L_R": 22,
|
|
||||||
"L_RGB_B": 16,
|
|
||||||
"L_RGB_G": 21,
|
|
||||||
"L_RGB_R": 4,
|
|
||||||
"L_Y": 23,
|
|
||||||
"MISO": 22,
|
|
||||||
"MOSI": 21,
|
|
||||||
"PHOTO": 25,
|
|
||||||
"PIEZO1": 19,
|
|
||||||
"PIEZO2": 18,
|
|
||||||
"POT1": 32,
|
|
||||||
"POT2": 33,
|
|
||||||
"S1": 4,
|
|
||||||
"S2": 16,
|
|
||||||
"S3": 18,
|
|
||||||
"S4": 19,
|
|
||||||
"S5": 21,
|
|
||||||
"SCK": 23,
|
|
||||||
"SCL": 14,
|
|
||||||
"SDA": 27,
|
|
||||||
"SS": 19,
|
|
||||||
"SW1": 15,
|
|
||||||
"SW2": 2,
|
|
||||||
"SW3": 0,
|
|
||||||
},
|
|
||||||
"bpi-bit": {
|
|
||||||
"BUTTON_A": 35,
|
|
||||||
"BUTTON_B": 27,
|
|
||||||
"BUZZER": 25,
|
|
||||||
"LIGHT_SENSOR1": 36,
|
|
||||||
"LIGHT_SENSOR2": 39,
|
|
||||||
"MPU9250_INT": 0,
|
|
||||||
"P0": 25,
|
|
||||||
"P1": 32,
|
|
||||||
"P10": 26,
|
|
||||||
"P11": 27,
|
|
||||||
"P12": 2,
|
|
||||||
"P13": 18,
|
|
||||||
"P14": 19,
|
|
||||||
"P15": 23,
|
|
||||||
"P16": 5,
|
|
||||||
"P19": 22,
|
|
||||||
"P2": 33,
|
|
||||||
"P20": 21,
|
|
||||||
"P3": 13,
|
|
||||||
"P4": 15,
|
|
||||||
"P5": 35,
|
|
||||||
"P6": 12,
|
|
||||||
"P7": 14,
|
|
||||||
"P8": 16,
|
|
||||||
"P9": 17,
|
|
||||||
"RGB_LED": 4,
|
|
||||||
"TEMPERATURE_SENSOR": 34,
|
|
||||||
},
|
|
||||||
"d-duino-32": {
|
|
||||||
"D1": 5,
|
|
||||||
"D10": 1,
|
|
||||||
"D2": 4,
|
|
||||||
"D3": 0,
|
|
||||||
"D4": 2,
|
|
||||||
"D5": 14,
|
|
||||||
"D6": 12,
|
|
||||||
"D7": 13,
|
|
||||||
"D8": 15,
|
|
||||||
"D9": 3,
|
|
||||||
"MISO": 12,
|
|
||||||
"MOSI": 13,
|
|
||||||
"SCK": 14,
|
|
||||||
"SCL": 4,
|
|
||||||
"SDA": 5,
|
|
||||||
"SS": 15,
|
|
||||||
},
|
|
||||||
"esp-wrover-kit": {},
|
|
||||||
"esp32-devkitlipo": {},
|
|
||||||
"esp32-evb": {
|
|
||||||
"BUTTON": 34,
|
|
||||||
"MISO": 15,
|
|
||||||
"MOSI": 2,
|
|
||||||
"SCK": 14,
|
|
||||||
"SCL": 16,
|
|
||||||
"SDA": 13,
|
|
||||||
"SS": 17,
|
|
||||||
},
|
|
||||||
"esp32-gateway": {"BUTTON": 34, "LED": 33, "SCL": 16, "SDA": 32},
|
|
||||||
"esp32-poe-iso": {
|
|
||||||
"BUTTON": 34,
|
|
||||||
"MISO": 15,
|
|
||||||
"MOSI": 2,
|
|
||||||
"SCK": 14,
|
|
||||||
"SCL": 16,
|
|
||||||
"SDA": 13,
|
|
||||||
},
|
|
||||||
"esp32-poe": {"BUTTON": 34, "MISO": 15, "MOSI": 2, "SCK": 14, "SCL": 16, "SDA": 13},
|
|
||||||
"esp32-pro": {
|
|
||||||
"BUTTON": 34,
|
|
||||||
"MISO": 15,
|
|
||||||
"MOSI": 2,
|
|
||||||
"SCK": 14,
|
|
||||||
"SCL": 16,
|
|
||||||
"SDA": 13,
|
|
||||||
"SS": 17,
|
|
||||||
},
|
|
||||||
"esp320": {
|
|
||||||
"LED": 5,
|
|
||||||
"MISO": 12,
|
|
||||||
"MOSI": 13,
|
|
||||||
"SCK": 14,
|
|
||||||
"SCL": 14,
|
|
||||||
"SDA": 2,
|
|
||||||
"SS": 15,
|
|
||||||
},
|
|
||||||
"esp32cam": {},
|
|
||||||
"esp32dev": {},
|
|
||||||
"esp32doit-devkit-v1": {"LED": 2},
|
|
||||||
"esp32thing": {"BUTTON": 0, "LED": 5, "SS": 2},
|
|
||||||
"esp32vn-iot-uno": {},
|
|
||||||
"espea32": {"BUTTON": 0, "LED": 5},
|
|
||||||
"espectro32": {"LED": 15, "SD_SS": 33},
|
|
||||||
"espino32": {"BUTTON": 0, "LED": 16},
|
|
||||||
"featheresp32": {
|
|
||||||
"A0": 26,
|
|
||||||
"A1": 25,
|
|
||||||
"A10": 27,
|
|
||||||
"A11": 12,
|
|
||||||
"A12": 13,
|
|
||||||
"A13": 35,
|
|
||||||
"A2": 34,
|
|
||||||
"A4": 36,
|
|
||||||
"A5": 4,
|
|
||||||
"A6": 14,
|
|
||||||
"A7": 32,
|
|
||||||
"A8": 15,
|
|
||||||
"A9": 33,
|
|
||||||
"Ax": 2,
|
|
||||||
"LED": 13,
|
|
||||||
"MOSI": 18,
|
|
||||||
"RX": 16,
|
|
||||||
"SCK": 5,
|
|
||||||
"SDA": 23,
|
|
||||||
"SS": 33,
|
|
||||||
"TX": 17,
|
|
||||||
},
|
|
||||||
"firebeetle32": {"LED": 2},
|
|
||||||
"fm-devkit": {
|
|
||||||
"D0": 34,
|
|
||||||
"D1": 35,
|
|
||||||
"D10": 0,
|
|
||||||
"D2": 32,
|
|
||||||
"D3": 33,
|
|
||||||
"D4": 27,
|
|
||||||
"D5": 14,
|
|
||||||
"D6": 12,
|
|
||||||
"D7": 13,
|
|
||||||
"D8": 15,
|
|
||||||
"D9": 23,
|
|
||||||
"I2S_DOUT": 22,
|
|
||||||
"I2S_LRCLK": 25,
|
|
||||||
"I2S_MCLK": 2,
|
|
||||||
"I2S_SCLK": 26,
|
|
||||||
"LED": 5,
|
|
||||||
"SCL": 17,
|
|
||||||
"SDA": 16,
|
|
||||||
"SW1": 4,
|
|
||||||
"SW2": 18,
|
|
||||||
"SW3": 19,
|
|
||||||
"SW4": 21,
|
|
||||||
},
|
|
||||||
"frogboard": {},
|
|
||||||
"heltec_wifi_kit_32": {
|
|
||||||
"A1": 37,
|
|
||||||
"A2": 38,
|
|
||||||
"BUTTON": 0,
|
|
||||||
"LED": 25,
|
|
||||||
"RST_OLED": 16,
|
|
||||||
"SCL_OLED": 15,
|
|
||||||
"SDA_OLED": 4,
|
|
||||||
"Vext": 21,
|
|
||||||
},
|
|
||||||
"heltec_wifi_lora_32": {
|
|
||||||
"BUTTON": 0,
|
|
||||||
"DIO0": 26,
|
|
||||||
"DIO1": 33,
|
|
||||||
"DIO2": 32,
|
|
||||||
"LED": 25,
|
|
||||||
"MOSI": 27,
|
|
||||||
"RST_LoRa": 14,
|
|
||||||
"RST_OLED": 16,
|
|
||||||
"SCK": 5,
|
|
||||||
"SCL_OLED": 15,
|
|
||||||
"SDA_OLED": 4,
|
|
||||||
"SS": 18,
|
|
||||||
"Vext": 21,
|
|
||||||
},
|
|
||||||
"heltec_wifi_lora_32_V2": {
|
|
||||||
"BUTTON": 0,
|
|
||||||
"DIO0": 26,
|
|
||||||
"DIO1": 35,
|
|
||||||
"DIO2": 34,
|
|
||||||
"LED": 25,
|
|
||||||
"MOSI": 27,
|
|
||||||
"RST_LoRa": 14,
|
|
||||||
"RST_OLED": 16,
|
|
||||||
"SCK": 5,
|
|
||||||
"SCL_OLED": 15,
|
|
||||||
"SDA_OLED": 4,
|
|
||||||
"SS": 18,
|
|
||||||
"Vext": 21,
|
|
||||||
},
|
|
||||||
"heltec_wireless_stick": {
|
|
||||||
"BUTTON": 0,
|
|
||||||
"DIO0": 26,
|
|
||||||
"DIO1": 35,
|
|
||||||
"DIO2": 34,
|
|
||||||
"LED": 25,
|
|
||||||
"MOSI": 27,
|
|
||||||
"RST_LoRa": 14,
|
|
||||||
"RST_OLED": 16,
|
|
||||||
"SCK": 5,
|
|
||||||
"SCL_OLED": 15,
|
|
||||||
"SDA_OLED": 4,
|
|
||||||
"SS": 18,
|
|
||||||
"Vext": 21,
|
|
||||||
},
|
|
||||||
"hornbill32dev": {"BUTTON": 0, "LED": 13},
|
|
||||||
"hornbill32minima": {"SS": 2},
|
|
||||||
"intorobot": {
|
|
||||||
"A1": 39,
|
|
||||||
"A2": 35,
|
|
||||||
"A3": 25,
|
|
||||||
"A4": 26,
|
|
||||||
"A5": 14,
|
|
||||||
"A6": 12,
|
|
||||||
"A7": 15,
|
|
||||||
"A8": 13,
|
|
||||||
"A9": 2,
|
|
||||||
"BUTTON": 0,
|
|
||||||
"D0": 19,
|
|
||||||
"D1": 23,
|
|
||||||
"D2": 18,
|
|
||||||
"D3": 17,
|
|
||||||
"D4": 16,
|
|
||||||
"D5": 5,
|
|
||||||
"D6": 4,
|
|
||||||
"LED": 4,
|
|
||||||
"MISO": 17,
|
|
||||||
"MOSI": 16,
|
|
||||||
"RGB_B_BUILTIN": 22,
|
|
||||||
"RGB_G_BUILTIN": 21,
|
|
||||||
"RGB_R_BUILTIN": 27,
|
|
||||||
"SCL": 19,
|
|
||||||
"SDA": 23,
|
|
||||||
"T0": 19,
|
|
||||||
"T1": 23,
|
|
||||||
"T2": 18,
|
|
||||||
"T3": 17,
|
|
||||||
"T4": 16,
|
|
||||||
"T5": 5,
|
|
||||||
"T6": 4,
|
|
||||||
},
|
|
||||||
"iotaap_magnolia": {},
|
|
||||||
"iotbusio": {},
|
|
||||||
"iotbusproteus": {},
|
|
||||||
"lolin32": {"LED": 5},
|
|
||||||
"lolin32_lite": {"LED": 22},
|
|
||||||
"lolin_d32": {"LED": 5, "_VBAT": 35},
|
|
||||||
"lolin_d32_pro": {"LED": 5, "_VBAT": 35},
|
|
||||||
"lopy": {
|
|
||||||
"A1": 37,
|
|
||||||
"A2": 38,
|
|
||||||
"LED": 0,
|
|
||||||
"MISO": 37,
|
|
||||||
"MOSI": 22,
|
|
||||||
"SCK": 13,
|
|
||||||
"SCL": 13,
|
|
||||||
"SDA": 12,
|
|
||||||
"SS": 17,
|
|
||||||
},
|
|
||||||
"lopy4": {
|
|
||||||
"A1": 37,
|
|
||||||
"A2": 38,
|
|
||||||
"LED": 0,
|
|
||||||
"MISO": 37,
|
|
||||||
"MOSI": 22,
|
|
||||||
"SCK": 13,
|
|
||||||
"SCL": 13,
|
|
||||||
"SDA": 12,
|
|
||||||
"SS": 18,
|
|
||||||
},
|
|
||||||
"m5stack-core-esp32": {
|
|
||||||
"ADC1": 35,
|
|
||||||
"ADC2": 36,
|
|
||||||
"G0": 0,
|
|
||||||
"G1": 1,
|
|
||||||
"G12": 12,
|
|
||||||
"G13": 13,
|
|
||||||
"G15": 15,
|
|
||||||
"G16": 16,
|
|
||||||
"G17": 17,
|
|
||||||
"G18": 18,
|
|
||||||
"G19": 19,
|
|
||||||
"G2": 2,
|
|
||||||
"G21": 21,
|
|
||||||
"G22": 22,
|
|
||||||
"G23": 23,
|
|
||||||
"G25": 25,
|
|
||||||
"G26": 26,
|
|
||||||
"G3": 3,
|
|
||||||
"G34": 34,
|
|
||||||
"G35": 35,
|
|
||||||
"G36": 36,
|
|
||||||
"G5": 5,
|
|
||||||
"RXD2": 16,
|
|
||||||
"TXD2": 17,
|
|
||||||
},
|
|
||||||
"m5stack-fire": {
|
|
||||||
"ADC1": 35,
|
|
||||||
"ADC2": 36,
|
|
||||||
"G0": 0,
|
|
||||||
"G1": 1,
|
|
||||||
"G12": 12,
|
|
||||||
"G13": 13,
|
|
||||||
"G15": 15,
|
|
||||||
"G16": 16,
|
|
||||||
"G17": 17,
|
|
||||||
"G18": 18,
|
|
||||||
"G19": 19,
|
|
||||||
"G2": 2,
|
|
||||||
"G21": 21,
|
|
||||||
"G22": 22,
|
|
||||||
"G23": 23,
|
|
||||||
"G25": 25,
|
|
||||||
"G26": 26,
|
|
||||||
"G3": 3,
|
|
||||||
"G34": 34,
|
|
||||||
"G35": 35,
|
|
||||||
"G36": 36,
|
|
||||||
"G5": 5,
|
|
||||||
},
|
|
||||||
"m5stack-grey": {
|
|
||||||
"ADC1": 35,
|
|
||||||
"ADC2": 36,
|
|
||||||
"G0": 0,
|
|
||||||
"G1": 1,
|
|
||||||
"G12": 12,
|
|
||||||
"G13": 13,
|
|
||||||
"G15": 15,
|
|
||||||
"G16": 16,
|
|
||||||
"G17": 17,
|
|
||||||
"G18": 18,
|
|
||||||
"G19": 19,
|
|
||||||
"G2": 2,
|
|
||||||
"G21": 21,
|
|
||||||
"G22": 22,
|
|
||||||
"G23": 23,
|
|
||||||
"G25": 25,
|
|
||||||
"G26": 26,
|
|
||||||
"G3": 3,
|
|
||||||
"G34": 34,
|
|
||||||
"G35": 35,
|
|
||||||
"G36": 36,
|
|
||||||
"G5": 5,
|
|
||||||
"RXD2": 16,
|
|
||||||
"TXD2": 17,
|
|
||||||
},
|
|
||||||
"m5stick-c": {
|
|
||||||
"ADC1": 35,
|
|
||||||
"ADC2": 36,
|
|
||||||
"G0": 0,
|
|
||||||
"G10": 10,
|
|
||||||
"G26": 26,
|
|
||||||
"G32": 32,
|
|
||||||
"G33": 33,
|
|
||||||
"G36": 36,
|
|
||||||
"G37": 37,
|
|
||||||
"G39": 39,
|
|
||||||
"G9": 9,
|
|
||||||
"MISO": 36,
|
|
||||||
"MOSI": 15,
|
|
||||||
"SCK": 13,
|
|
||||||
"SCL": 33,
|
|
||||||
"SDA": 32,
|
|
||||||
},
|
|
||||||
"magicbit": {
|
|
||||||
"BLUE_LED": 17,
|
|
||||||
"BUZZER": 25,
|
|
||||||
"GREEN_LED": 16,
|
|
||||||
"LDR": 36,
|
|
||||||
"LED": 16,
|
|
||||||
"LEFT_BUTTON": 35,
|
|
||||||
"MOTOR1A": 27,
|
|
||||||
"MOTOR1B": 18,
|
|
||||||
"MOTOR2A": 16,
|
|
||||||
"MOTOR2B": 17,
|
|
||||||
"POT": 39,
|
|
||||||
"RED_LED": 27,
|
|
||||||
"RIGHT_PUTTON": 34,
|
|
||||||
"YELLOW_LED": 18,
|
|
||||||
},
|
|
||||||
"mhetesp32devkit": {"LED": 2},
|
|
||||||
"mhetesp32minikit": {"LED": 2},
|
|
||||||
"microduino-core-esp32": {
|
|
||||||
"A0": 12,
|
|
||||||
"A1": 13,
|
|
||||||
"A10": 25,
|
|
||||||
"A11": 26,
|
|
||||||
"A12": 27,
|
|
||||||
"A13": 14,
|
|
||||||
"A2": 15,
|
|
||||||
"A3": 4,
|
|
||||||
"A6": 38,
|
|
||||||
"A7": 37,
|
|
||||||
"A8": 32,
|
|
||||||
"A9": 33,
|
|
||||||
"D0": 3,
|
|
||||||
"D1": 1,
|
|
||||||
"D10": 5,
|
|
||||||
"D11": 23,
|
|
||||||
"D12": 19,
|
|
||||||
"D13": 18,
|
|
||||||
"D14": 12,
|
|
||||||
"D15": 13,
|
|
||||||
"D16": 15,
|
|
||||||
"D17": 4,
|
|
||||||
"D18": 22,
|
|
||||||
"D19": 21,
|
|
||||||
"D2": 16,
|
|
||||||
"D20": 38,
|
|
||||||
"D21": 37,
|
|
||||||
"D3": 17,
|
|
||||||
"D4": 32,
|
|
||||||
"D5": 33,
|
|
||||||
"D6": 25,
|
|
||||||
"D7": 26,
|
|
||||||
"D8": 27,
|
|
||||||
"D9": 14,
|
|
||||||
"SCL": 21,
|
|
||||||
"SCL1": 13,
|
|
||||||
"SDA": 22,
|
|
||||||
"SDA1": 12,
|
|
||||||
},
|
|
||||||
"nano32": {"BUTTON": 0, "LED": 16},
|
|
||||||
"nina_w10": {
|
|
||||||
"D0": 3,
|
|
||||||
"D1": 1,
|
|
||||||
"D10": 5,
|
|
||||||
"D11": 19,
|
|
||||||
"D12": 23,
|
|
||||||
"D13": 18,
|
|
||||||
"D14": 13,
|
|
||||||
"D15": 12,
|
|
||||||
"D16": 32,
|
|
||||||
"D17": 33,
|
|
||||||
"D18": 21,
|
|
||||||
"D19": 34,
|
|
||||||
"D2": 26,
|
|
||||||
"D20": 36,
|
|
||||||
"D21": 39,
|
|
||||||
"D3": 25,
|
|
||||||
"D4": 35,
|
|
||||||
"D5": 27,
|
|
||||||
"D6": 22,
|
|
||||||
"D7": 0,
|
|
||||||
"D8": 15,
|
|
||||||
"D9": 14,
|
|
||||||
"LED_BLUE": 21,
|
|
||||||
"LED_GREEN": 33,
|
|
||||||
"LED_RED": 23,
|
|
||||||
"SCL": 13,
|
|
||||||
"SDA": 12,
|
|
||||||
"SW1": 33,
|
|
||||||
"SW2": 27,
|
|
||||||
},
|
|
||||||
"node32s": {},
|
|
||||||
"nodemcu-32s": {"BUTTON": 0, "LED": 2},
|
|
||||||
"odroid_esp32": {"ADC1": 35, "ADC2": 36, "LED": 2, "SCL": 4, "SDA": 15, "SS": 22},
|
|
||||||
"onehorse32dev": {"A1": 37, "A2": 38, "BUTTON": 0, "LED": 5},
|
|
||||||
"oroca_edubot": {
|
|
||||||
"A0": 34,
|
|
||||||
"A1": 39,
|
|
||||||
"A2": 36,
|
|
||||||
"A3": 33,
|
|
||||||
"D0": 4,
|
|
||||||
"D1": 16,
|
|
||||||
"D2": 17,
|
|
||||||
"D3": 22,
|
|
||||||
"D4": 23,
|
|
||||||
"D5": 5,
|
|
||||||
"D6": 18,
|
|
||||||
"D7": 19,
|
|
||||||
"D8": 33,
|
|
||||||
"LED": 13,
|
|
||||||
"MOSI": 18,
|
|
||||||
"RX": 16,
|
|
||||||
"SCK": 5,
|
|
||||||
"SDA": 23,
|
|
||||||
"SS": 2,
|
|
||||||
"TX": 17,
|
|
||||||
"VBAT": 35,
|
|
||||||
},
|
|
||||||
"pico32": {},
|
|
||||||
"pocket_32": {"LED": 16},
|
|
||||||
"pycom_gpy": {
|
|
||||||
"A1": 37,
|
|
||||||
"A2": 38,
|
|
||||||
"LED": 0,
|
|
||||||
"MISO": 37,
|
|
||||||
"MOSI": 22,
|
|
||||||
"SCK": 13,
|
|
||||||
"SCL": 13,
|
|
||||||
"SDA": 12,
|
|
||||||
"SS": 17,
|
|
||||||
},
|
|
||||||
"quantum": {},
|
|
||||||
"sparkfun_lora_gateway_1-channel": {"MISO": 12, "MOSI": 13, "SCK": 14, "SS": 16},
|
|
||||||
"tinypico": {},
|
|
||||||
"ttgo-lora32-v1": {
|
|
||||||
"A1": 37,
|
|
||||||
"A2": 38,
|
|
||||||
"BUTTON": 0,
|
|
||||||
"LED": 2,
|
|
||||||
"MOSI": 27,
|
|
||||||
"SCK": 5,
|
|
||||||
"SS": 18,
|
|
||||||
},
|
|
||||||
"ttgo-t-beam": {"BUTTON": 39, "LED": 14, "MOSI": 27, "SCK": 5, "SS": 18},
|
|
||||||
"ttgo-t-watch": {"BUTTON": 36, "MISO": 2, "MOSI": 15, "SCK": 14, "SS": 13},
|
|
||||||
"ttgo-t1": {"LED": 22, "MISO": 2, "MOSI": 15, "SCK": 14, "SCL": 23, "SS": 13},
|
|
||||||
"ttgo-t7-v13-mini32": {"LED": 22},
|
|
||||||
"ttgo-t7-v14-mini32": {"LED": 19},
|
|
||||||
"turta_iot_node": {},
|
|
||||||
"vintlabs-devkit-v1": {
|
|
||||||
"LED": 2,
|
|
||||||
"PWM0": 12,
|
|
||||||
"PWM1": 13,
|
|
||||||
"PWM2": 14,
|
|
||||||
"PWM3": 15,
|
|
||||||
"PWM4": 16,
|
|
||||||
"PWM5": 17,
|
|
||||||
"PWM6": 18,
|
|
||||||
"PWM7": 19,
|
|
||||||
},
|
|
||||||
"wemos_d1_mini32": {
|
|
||||||
"D0": 26,
|
|
||||||
"D1": 22,
|
|
||||||
"D2": 21,
|
|
||||||
"D3": 17,
|
|
||||||
"D4": 16,
|
|
||||||
"D5": 18,
|
|
||||||
"D6": 19,
|
|
||||||
"D7": 23,
|
|
||||||
"D8": 5,
|
|
||||||
"LED": 2,
|
|
||||||
"RXD": 3,
|
|
||||||
"TXD": 1,
|
|
||||||
"_VBAT": 35,
|
|
||||||
},
|
|
||||||
"wemosbat": {"LED": 16},
|
|
||||||
"wesp32": {"MISO": 32, "SCL": 4, "SDA": 15},
|
|
||||||
"widora-air": {
|
|
||||||
"A1": 39,
|
|
||||||
"A2": 35,
|
|
||||||
"A3": 25,
|
|
||||||
"A4": 26,
|
|
||||||
"A5": 14,
|
|
||||||
"A6": 12,
|
|
||||||
"A7": 15,
|
|
||||||
"A8": 13,
|
|
||||||
"A9": 2,
|
|
||||||
"BUTTON": 0,
|
|
||||||
"D0": 19,
|
|
||||||
"D1": 23,
|
|
||||||
"D2": 18,
|
|
||||||
"D3": 17,
|
|
||||||
"D4": 16,
|
|
||||||
"D5": 5,
|
|
||||||
"D6": 4,
|
|
||||||
"LED": 25,
|
|
||||||
"MISO": 17,
|
|
||||||
"MOSI": 16,
|
|
||||||
"SCL": 19,
|
|
||||||
"SDA": 23,
|
|
||||||
"T0": 19,
|
|
||||||
"T1": 23,
|
|
||||||
"T2": 18,
|
|
||||||
"T3": 17,
|
|
||||||
"T4": 16,
|
|
||||||
"T5": 5,
|
|
||||||
"T6": 4,
|
|
||||||
},
|
|
||||||
"xinabox_cw02": {"LED": 27},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
def _lookup_pin(value):
|
def _lookup_pin(value):
|
||||||
if CORE.is_esp8266:
|
if CORE.is_esp8266:
|
||||||
board_pins_dict = ESP8266_BOARD_PINS
|
board_pins_dict = boards.ESP8266_BOARD_PINS
|
||||||
base_pins = ESP8266_BASE_PINS
|
base_pins = boards.ESP8266_BASE_PINS
|
||||||
elif CORE.is_esp32:
|
elif CORE.is_esp32:
|
||||||
board_pins_dict = ESP32_BOARD_PINS
|
if CORE.board in boards.ESP32_C3_BOARD_PINS:
|
||||||
base_pins = ESP32_BASE_PINS
|
board_pins_dict = boards.ESP32_C3_BOARD_PINS
|
||||||
|
base_pins = boards.ESP32_C3_BASE_PINS
|
||||||
|
else:
|
||||||
|
board_pins_dict = boards.ESP32_BOARD_PINS
|
||||||
|
base_pins = boards.ESP32_BASE_PINS
|
||||||
else:
|
else:
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
|
@ -915,9 +60,27 @@ _ESP_SDIO_PINS = {
|
||||||
11: "Flash Command",
|
11: "Flash Command",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_ESP32C3_SDIO_PINS = {
|
||||||
|
12: "Flash IO3/HOLD#",
|
||||||
|
13: "Flash IO2/WP#",
|
||||||
|
14: "Flash CS#",
|
||||||
|
15: "Flash CLK",
|
||||||
|
16: "Flash IO0/DI",
|
||||||
|
17: "Flash IO1/DO",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def validate_gpio_pin(value):
|
def validate_gpio_pin(value):
|
||||||
value = _translate_pin(value)
|
value = _translate_pin(value)
|
||||||
|
if CORE.is_esp32_c3:
|
||||||
|
if value < 0 or value > 22:
|
||||||
|
raise cv.Invalid(f"ESP32-C3: Invalid pin number: {value}")
|
||||||
|
if value in _ESP32C3_SDIO_PINS:
|
||||||
|
raise cv.Invalid(
|
||||||
|
"This pin cannot be used on ESP32-C3s and is already used by "
|
||||||
|
"the flash interface (function: {})".format(_ESP_SDIO_PINS[value])
|
||||||
|
)
|
||||||
|
return value
|
||||||
if CORE.is_esp32:
|
if CORE.is_esp32:
|
||||||
if value < 0 or value > 39:
|
if value < 0 or value > 39:
|
||||||
raise cv.Invalid(f"ESP32: Invalid pin number: {value}")
|
raise cv.Invalid(f"ESP32: Invalid pin number: {value}")
|
||||||
|
@ -995,6 +158,10 @@ def output_pin(value):
|
||||||
def analog_pin(value):
|
def analog_pin(value):
|
||||||
value = validate_gpio_pin(value)
|
value = validate_gpio_pin(value)
|
||||||
if CORE.is_esp32:
|
if CORE.is_esp32:
|
||||||
|
if CORE.is_esp32_c3:
|
||||||
|
if 0 <= value <= 4: # ADC1
|
||||||
|
return value
|
||||||
|
raise cv.Invalid("ESP32-C3: Only pins 0 though 4 support ADC.")
|
||||||
if 32 <= value <= 39: # ADC1
|
if 32 <= value <= 39: # ADC1
|
||||||
return value
|
return value
|
||||||
raise cv.Invalid("ESP32: Only pins 32 though 39 support ADC.")
|
raise cv.Invalid("ESP32: Only pins 32 though 39 support ADC.")
|
||||||
|
|
|
@ -202,6 +202,8 @@ STACKTRACE_ESP8266_PC_RE = re.compile(r"epc1=0x(4[0-9a-fA-F]{7})")
|
||||||
STACKTRACE_ESP8266_EXCVADDR_RE = re.compile(r"excvaddr=0x(4[0-9a-fA-F]{7})")
|
STACKTRACE_ESP8266_EXCVADDR_RE = re.compile(r"excvaddr=0x(4[0-9a-fA-F]{7})")
|
||||||
STACKTRACE_ESP32_PC_RE = re.compile(r"PC\s*:\s*(?:0x)?(4[0-9a-fA-F]{7})")
|
STACKTRACE_ESP32_PC_RE = re.compile(r"PC\s*:\s*(?:0x)?(4[0-9a-fA-F]{7})")
|
||||||
STACKTRACE_ESP32_EXCVADDR_RE = re.compile(r"EXCVADDR\s*:\s*(?:0x)?(4[0-9a-fA-F]{7})")
|
STACKTRACE_ESP32_EXCVADDR_RE = re.compile(r"EXCVADDR\s*:\s*(?:0x)?(4[0-9a-fA-F]{7})")
|
||||||
|
STACKTRACE_ESP32_C3_PC_RE = re.compile(r"MEPC\s*:\s*(?:0x)?(4[0-9a-fA-F]{7})")
|
||||||
|
STACKTRACE_ESP32_C3_RA_RE = re.compile(r"RA\s*:\s*(?:0x)?(4[0-9a-fA-F]{7})")
|
||||||
STACKTRACE_BAD_ALLOC_RE = re.compile(
|
STACKTRACE_BAD_ALLOC_RE = re.compile(
|
||||||
r"^last failed alloc call: (4[0-9a-fA-F]{7})\((\d+)\)$"
|
r"^last failed alloc call: (4[0-9a-fA-F]{7})\((\d+)\)$"
|
||||||
)
|
)
|
||||||
|
@ -228,6 +230,9 @@ def process_stacktrace(config, line, backtrace_state):
|
||||||
# ESP32 PC/EXCVADDR
|
# ESP32 PC/EXCVADDR
|
||||||
_parse_register(config, STACKTRACE_ESP32_PC_RE, line)
|
_parse_register(config, STACKTRACE_ESP32_PC_RE, line)
|
||||||
_parse_register(config, STACKTRACE_ESP32_EXCVADDR_RE, line)
|
_parse_register(config, STACKTRACE_ESP32_EXCVADDR_RE, line)
|
||||||
|
# ESP32-C3 PC/RA
|
||||||
|
_parse_register(config, STACKTRACE_ESP32_C3_PC_RE, line)
|
||||||
|
_parse_register(config, STACKTRACE_ESP32_C3_RA_RE, line)
|
||||||
|
|
||||||
# bad alloc
|
# bad alloc
|
||||||
match = re.match(STACKTRACE_BAD_ALLOC_RE, line)
|
match = re.match(STACKTRACE_BAD_ALLOC_RE, line)
|
||||||
|
|
|
@ -10,7 +10,7 @@ from esphome.helpers import get_bool_env, write_file
|
||||||
from esphome.log import color, Fore
|
from esphome.log import color, Fore
|
||||||
|
|
||||||
# pylint: disable=anomalous-backslash-in-string
|
# pylint: disable=anomalous-backslash-in-string
|
||||||
from esphome.pins import ESP32_BOARD_PINS, ESP8266_BOARD_PINS
|
from esphome.boards import ESP32_BOARD_PINS, ESP8266_BOARD_PINS
|
||||||
from esphome.storage_json import StorageJSON, ext_storage_path
|
from esphome.storage_json import StorageJSON, ext_storage_path
|
||||||
from esphome.util import safe_print
|
from esphome.util import safe_print
|
||||||
from esphome.const import ALLOWED_NAME_CHARS, ENV_QUICKWIZARD
|
from esphome.const import ALLOWED_NAME_CHARS, ENV_QUICKWIZARD
|
||||||
|
|
|
@ -25,7 +25,7 @@ from esphome.helpers import (
|
||||||
get_bool_env,
|
get_bool_env,
|
||||||
)
|
)
|
||||||
from esphome.storage_json import StorageJSON, storage_path
|
from esphome.storage_json import StorageJSON, storage_path
|
||||||
from esphome.pins import ESP8266_FLASH_SIZES, ESP8266_LD_SCRIPTS
|
from esphome.boards import ESP8266_FLASH_SIZES, ESP8266_LD_SCRIPTS
|
||||||
from esphome import loader
|
from esphome import loader
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
|
@ -11,13 +11,13 @@ import pytest
|
||||||
|
|
||||||
from esphome.config_validation import Invalid
|
from esphome.config_validation import Invalid
|
||||||
from esphome.core import EsphomeCore
|
from esphome.core import EsphomeCore
|
||||||
from esphome import pins
|
from esphome import boards, pins
|
||||||
|
|
||||||
|
|
||||||
MOCK_ESP8266_BOARD_ID = "_mock_esp8266"
|
MOCK_ESP8266_BOARD_ID = "_mock_esp8266"
|
||||||
MOCK_ESP8266_PINS = {"X0": 16, "X1": 5, "X2": 4, "LED": 2}
|
MOCK_ESP8266_PINS = {"X0": 16, "X1": 5, "X2": 4, "LED": 2}
|
||||||
MOCK_ESP8266_BOARD_ALIAS_ID = "_mock_esp8266_alias"
|
MOCK_ESP8266_BOARD_ALIAS_ID = "_mock_esp8266_alias"
|
||||||
MOCK_ESP8266_FLASH_SIZE = pins.FLASH_SIZE_2_MB
|
MOCK_ESP8266_FLASH_SIZE = boards.FLASH_SIZE_2_MB
|
||||||
|
|
||||||
MOCK_ESP32_BOARD_ID = "_mock_esp32"
|
MOCK_ESP32_BOARD_ID = "_mock_esp32"
|
||||||
MOCK_ESP32_PINS = {"Y0": 12, "Y1": 8, "Y2": 3, "LED": 9, "A0": 8}
|
MOCK_ESP32_PINS = {"Y0": 12, "Y1": 8, "Y2": 3, "LED": 9, "A0": 8}
|
||||||
|
@ -31,19 +31,19 @@ def mock_mcu(monkeypatch):
|
||||||
"""
|
"""
|
||||||
Add a mock MCU into the lists as a stable fixture
|
Add a mock MCU into the lists as a stable fixture
|
||||||
"""
|
"""
|
||||||
pins.ESP8266_BOARD_PINS[MOCK_ESP8266_BOARD_ID] = MOCK_ESP8266_PINS
|
boards.ESP8266_BOARD_PINS[MOCK_ESP8266_BOARD_ID] = MOCK_ESP8266_PINS
|
||||||
pins.ESP8266_FLASH_SIZES[MOCK_ESP8266_BOARD_ID] = MOCK_ESP8266_FLASH_SIZE
|
boards.ESP8266_FLASH_SIZES[MOCK_ESP8266_BOARD_ID] = MOCK_ESP8266_FLASH_SIZE
|
||||||
pins.ESP8266_BOARD_PINS[MOCK_ESP8266_BOARD_ALIAS_ID] = MOCK_ESP8266_BOARD_ID
|
boards.ESP8266_BOARD_PINS[MOCK_ESP8266_BOARD_ALIAS_ID] = MOCK_ESP8266_BOARD_ID
|
||||||
pins.ESP8266_FLASH_SIZES[MOCK_ESP8266_BOARD_ALIAS_ID] = MOCK_ESP8266_FLASH_SIZE
|
boards.ESP8266_FLASH_SIZES[MOCK_ESP8266_BOARD_ALIAS_ID] = MOCK_ESP8266_FLASH_SIZE
|
||||||
pins.ESP32_BOARD_PINS[MOCK_ESP32_BOARD_ID] = MOCK_ESP32_PINS
|
boards.ESP32_BOARD_PINS[MOCK_ESP32_BOARD_ID] = MOCK_ESP32_PINS
|
||||||
pins.ESP32_BOARD_PINS[MOCK_ESP32_BOARD_ALIAS_ID] = MOCK_ESP32_BOARD_ID
|
boards.ESP32_BOARD_PINS[MOCK_ESP32_BOARD_ALIAS_ID] = MOCK_ESP32_BOARD_ID
|
||||||
yield
|
yield
|
||||||
del pins.ESP8266_BOARD_PINS[MOCK_ESP8266_BOARD_ID]
|
del boards.ESP8266_BOARD_PINS[MOCK_ESP8266_BOARD_ID]
|
||||||
del pins.ESP8266_FLASH_SIZES[MOCK_ESP8266_BOARD_ID]
|
del boards.ESP8266_FLASH_SIZES[MOCK_ESP8266_BOARD_ID]
|
||||||
del pins.ESP8266_BOARD_PINS[MOCK_ESP8266_BOARD_ALIAS_ID]
|
del boards.ESP8266_BOARD_PINS[MOCK_ESP8266_BOARD_ALIAS_ID]
|
||||||
del pins.ESP8266_FLASH_SIZES[MOCK_ESP8266_BOARD_ALIAS_ID]
|
del boards.ESP8266_FLASH_SIZES[MOCK_ESP8266_BOARD_ALIAS_ID]
|
||||||
del pins.ESP32_BOARD_PINS[MOCK_ESP32_BOARD_ID]
|
del boards.ESP32_BOARD_PINS[MOCK_ESP32_BOARD_ID]
|
||||||
del pins.ESP32_BOARD_PINS[MOCK_ESP32_BOARD_ALIAS_ID]
|
del boards.ESP32_BOARD_PINS[MOCK_ESP32_BOARD_ALIAS_ID]
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
import esphome.wizard as wz
|
import esphome.wizard as wz
|
||||||
import pytest
|
import pytest
|
||||||
from esphome.pins import ESP8266_BOARD_PINS
|
from esphome.boards import ESP8266_BOARD_PINS
|
||||||
from mock import MagicMock
|
from mock import MagicMock
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue