In the datasheet of ESP32, Table 1 "Pin description" there is the list of all pins and their function. For example, let's see the UART ones:
GPIO16 25 I/O GPIO16, HS1_DATA4, U2RXD, EMAC_CLK_OUT GPIO17 27 I/O GPIO17, HS1_DATA5, U2TXD, EMAC_CLK_OUT_180 SD_DATA_2 28 I/O GPIO9, HS1_DATA2, U1RXD ,SD_DATA2, SPIHD SD_DATA_3 29 I/O GPIO10, HS1_DATA3, U1TXD, SD_DATA3, SPIWP U0RXD 40 I/O GPIO3, U0RXD, CLK_OUT2 U0TXD 41 I/O GPIO1, U0TXD, CLK_OUT3, EMAC_RXD2 But in Table 10 "Peripheral Pin Configurations", I read:
UART U0RXD_in Any GPIO Pins U0TXD_out U1RXD_in U1TXD_out U2RXD_in U2TXD_out (note: for clarity I removed the flow-control pins)
What does the first table actually mean?
It cannot be the "default" function, because for each pin are listed several functions. From the second table I assume I can configure each UART function to any GPIO pin.
May I rely on the second table? I mean, I really can assign UART, I2C, SPI, etc... to any GPIO as stated?