ESP32-S3 Baremetal Support

Changing things

Every peripheral takes its settings as arguments to its *_init() call — pins, baud rate, bus speed, SPI mode, PWM frequency — so there is no configuration file and nothing to regenerate. The headers in include/ document the range each one accepts.

The LED driver is the one exception, because it has wire timings that come from a datasheet rather than from you:

  • ColourLED_RGB(r, g, b), or the LED_RED / LED_GREEN / LED_BLUE / LED_WHITE presets in led.h. Plain RGB order; the GRB order the part wants on the wire is led_write()'s problem, not the caller's.
  • Brightness — the numbers in those macros, 0 to 255 per channel. The presets use 10, which is already bright enough to be unpleasant to look at.
  • Pin — the argument to led_init(). PIN_LED is GPIO21 on this board.
  • Wire timingLED_T0H_NS and the four constants beside it at the top of board/led.c, in nanoseconds, from the WS2812B datasheet.