Porting board : ESP32-S3-DevKitC-1 v1.1

I am considering porting ESP32-S3-DevKitC-1 v1.1 to RIOT. Considering that :

  • v1 is already supported
  • as I understand from the release note, the changes are mainly on pin assignment

What would be the best strategy ? Copy the board directory and adapt the files for v1.1, or is there a smarter way, like inherit the code from v1 ?

1 Like

I believe the typical approach is to add a folder to boards/common and move all the common bits to that folder. However, in the link you shared, there also appears to be a BOARD_VERSION already. Maybe you want to study how that could be used for your purposes?

In the meantime, I found out that only the only difference between the 2 versions is the pin connected to the RGB LED… and that although I ordered a v1.1, I got a v1.0.

Anyway, not sure if it’s super clean, but the pin change can be done easily by adding this line to the makefile for a v1.1 board. The pin on the v1.0 is GPIO48.

CFLAGS += -DWS281X_PARAM_PIN=GPIO38

If it’s such a trivial change you can also just create a new board folder that includes everything from the previous version and overwrites that pin. See e.g. openlabs-kw41z-mini-256kib for such an example.

esp32s2-devkit uses BOARD_VERSION instead to model slight hardware differences. While this is nicer to CI build times, it’s harder to discover.