esphome / feature-requests

ESPHome Feature Request Tracker
https://esphome.io/
411 stars 26 forks source link

New board def for ESP32C3 generic luatos #2018

Open bwsoftinc opened 1 year ago

bwsoftinc commented 1 year ago

Describe the problem you have/What new integration you would like

New board defs for ESP32C3 were included in a recent release. None are pin compatible with a readily available and economically priced C3 board to the point the reserved pins of the existing C3 definitions prevent compilation due to pins thought to be flash q-lanes but actually control the onboard leds (GPIO12 & GPIO13) on this particular board layout.

The board datasheet is here: https://wiki.luatos.com/chips/esp32c3/board.html#id5

Please describe your use case for this integration and alternatives you've tried:

Want to be able to build for this board without hacky workarounds to make esphome think it is flashing a different variant. Currently flashing a vanilla image over USB, then calling the variant an S2 board lets me assign to the desired pins and then can be updated OTA.

Additional context

The Board is DIO, typical QIO pins are not used for flash.

godefroi commented 1 year ago

@bwsoftinc can you describe in more detail the workaround you used?

bwsoftinc commented 1 year ago

@bwsoftinc can you describe in more detail the workaround you used?

1) Use add device in esphome and let esphome flash the default image over usb 2) Edit the yaml, add wifi and ota info, and change

esphome:
  name: myWorkaround
  platformio_options:
    board_build.flash_mode: dio

esp32:
  board: esp32-c3-devkitm-1
  variant: esp32s2

3) Flash once more over USB 4) Now, using pins that would fail to compile come from esp32s2 variant, and pins normally blocked by esp32-c3-devkitm-1 can be used. 5) Still don't have full access to pins, flashing over usb again while using variant: esp32s2 will not be accepted due to board validation, only OTA from here on.

To undo, start at step 1 again

Buka666 commented 1 year ago

It doesn't work fine. There is no access to Bluetooth. A normal correction in the code esphome is required

fluppie commented 11 months ago

Also cross referencing this one https://github.com/esphome/issues/issues/3744

davidmonro commented 8 months ago

With https://github.com/esphome/esphome/pull/5982 (and https://github.com/platformio/platform-espressif32/pull/777) this should be able to be closed.

Appropriate yaml:

esp32:
  board: airm2m_core_esp32c3
  framework:
    type: esp-idf

Note that the framework is optional as the arduino framework also works, but if you want logging over the USB-C port you need the esp-idf framework, plus the following:

logger:
  hardware_uart: USB_SERIAL_JTAG