and the ESP32 MCU pinout like this:

New pinout for MCU:

PinTypeFunctionNameFunction
1PGroundGNDGround
2PPower supply.3.3VPower supply to ESP32 WROOM32
3IChip-enable signal. Active high.ESP32_EN"EN" switch
4IGPIO36, SENSOR_VP, ADC_H, ADC1_CH0, RTC_GPIO0ADC_INADC in (from 12V vehicle power voltage divider)
5IGPIO39, SENSOR_VN, ADC1_CH3, ADC_H, RTC_GPIO3SD_DETSD Card DETECT
6IGPIO34, ADC1_CH6, RTC_GPIO4SP_INT1VSPI INT 1
7IGPIO35, ADC1_CH7, RTC_GPIO5SP_INT2VSPI INT 2
8I/OGPIO32, XTAL_32K_P (32.768 kHz crystal oscillator input), ADC1_CH4, TOUCH9, RTC_GPIO9EXP_1Expansion GPIO 1
9I/OGPIO33, XTAL_32K_N (32.768 kHz crystal oscillator output), ADC1_CH5, TOUCH8, RTC_GPIO8EXP_2Expansion GPIO 2
10I/OGPIO25, DAC_1, ADC2_CH8, RTC_GPIO6, EMAC_RXD0CAN_TXDCAN, tx to transceiver
11I/OGPIO26, DAC_2, ADC2_CH9, RTC_GPIO7, EMAC_RXD1CAN_RXDCAN, rx from transceiver
12I/OGPIO27, ADC2_CH7, TOUCH7, RTC_GPIO17, EMAC_RX_DVSP_CS2VSPI CS 2 (MCP2515)
13I/OGPIO14, ADC2_CH6, TOUCH6, RTC_GPIO16, MTMS, HSPICLK, HS2_CLK, SD_CLK, EMAC_TXD2SD_CLKSD Card CLK
14I/OGPIO12, ADC2_CH5, TOUCH5, RTC_GPIO15, MTDI, HSPIQ, HS2_DATA2, SD_DATA2, EMAC_TXD3SD_DATA2SD Card DATA2
15PGroundGNDGround
16I/OGPIO13, ADC2_CH4, TOUCH4, RTC_GPIO14, MTCK, HSPID, HS2_DATA3, SD_DATA3, EMAC_RX_ERSD_DATA3SD Card DATA3
17I/OGPIO9, SD_DATA2, SPIHD, HS1_DATA2, U1RXDFL_DATA2SPI flash on ESP-WROOM-32
18I/OGPIO10, SD_DATA3, SPIWP, HS1_DATA3, U1TXDFL_DATA3SPI flash on ESP-WROOM-32
19I/OGPIO11, SD_CMD, SPICS0, HS1_CMD, U1RTSFL_CS1SPI flash on ESP-WROOM-32
20I/OGPIO6, SD_CLK, SPICLK, HS1_CLK, U1CTSFL_CLKSPI flash on ESP-WROOM-32
21I/OGPIO7, SD_DATA0, SPIQ, HS1_DATA0, U2RTSFL_DATA0SPI flash on ESP-WROOM-32
22I/OGPIO8, SD_DATA1, SPID, HS1_DATA1, U2CTSFL_DATA1SPI flash on ESP-WROOM-32
23I/OGPIO15, ADC2_CH3, TOUCH3, MTDO, HSPICS0, RTC_GPIO13, HS2_CMD, SD_CMD, EMAC_RXD3SD_CMDSD Card CMD
24I/OGPIO2, ADC2_CH2, TOUCH2, RTC_GPIO12, HSPIWP, HS2_DATA0, SD_DATA0SD_DATA0SD Card DATA0
25I/OGPIO0, ADC2_CH1, TOUCH1, RTC_GPIO11, CLK_OUT1, EMAC_TX_CLKESP32_IO0"BOOT" switch
26I/OGPIO4, ADC2_CH0, TOUCH0, RTC_GPIO10, HSPIHD, HS2_DATA1, SD_DATA1, EMAC_TX_ERSD_DATA1SD Card DATA1
27I/OGPIO16, HS1_DATA4, U2RXD, EMAC_CLK_OUTMDM_TXDUART 2, TX to modem
28I/OGPIO17, HS1_DATA5, U2TXD, EMAC_CLK_OUT_180MDM_RXDUART 2, RX from modem
29I/OGPIO5, VSPICS0, HS1_DATA6, EMAC_RX_CLKSP_CS1VSPI CS 1 (MCP2515)
30I/OGPIO18, VSPICLK, HS1_DATA7SP_CLKVSPI CLK
31I/OGPIO19, VSPIQ, U0CTS, EMAC_TXD0SP_MISOVSPI MISO
32--n/aNo connection
33I/OGPIO21, VSPIHD, EMAC_TX_ENSP_CS3VSPI CS3 (MAX7317 I/O expander)
34I/OGPIO3, U0RXD, CLK_OUT2CSL_TXDUART 0, TX to console
35I/OGPIO1, U0TXD, CLK_OUT3, EMAC_RXD2CSL_RXDUART 0, RX from console
36I/OGPIO22, VSPIWP, U0RTS, EMAC_TXD1FL_CS2SPI to external flash, Chip Select
37I/OGPIO23, VSPID, HS1_STROBESP_MOSIVSPI MOSI
38PGroundGNDGround
39PGroundGNDGround

Overall, that gives us two free GPIO directly on the ESP-32 and eight free GPIO on the MAX7317 expander.

If China is OK with that, they’ll finalise the board layout next week and make a couple of development boards to ensure that all the components work as expected.

I attached the revised draft schematic (2017-05-01). This one also incorporates the change to the external flash arrangement.

Regards, Mark.