ESP32

The ESP32 devboard we’re using has most pins of the ESP32 exposed, so we have a lot of GPIO’s available (which we will need!).

The table below gives all the inputs we need

ESP32 VFD Key pins Slider pins Description
5V - - - 5V input from 5V regulator
GPIO2 - - - Test LED (blinking)
- 1 - - Filament F-
3.3V 5 - - Vdd, same for ESP32 Vdd
- 8 - - Vdisp-ON, to enable Vdisp, via the NPN-PNP high side, dual power rail transistor circuit
? - - - Vdisp_ON signal from ESP32, via transistors
GND 7 - - GND common ground (V-)
- 8 - - OSC circuit for VFD
? 9 - - RST reset pin VFD
GP5 10 - - CS Chip Select SPI
GP18 11 - - CLK Clock for SPI (VSPI)
GP23 12 - - DIN Data input for SPI (VSPI MOSI pin on ESP32)
GP19 - - - VSPI MISO pin on ESP32, not usable as it is read by the SPI library
- 45 - - Filament F+
TX0 - - - Serial port
RX0 - - - Serial port
GP16 - - - RX UART Serial for audio module
GP17 - - - TX UART Serial for audio module
GP21 - - - SDA I2C bus
GP22 - - - SCL I2C bus
GP13 - 8 - Key scan output
GP4 - 9 - Key scan output
GP25 - 10 - Key scan output
GP26 - 11 - Key scan output
GP27 - - 5 Slider scan output
GP32 - - 6 Slider scan output
GP33 - - 7 Slider scan output

For the 12 input pins, we could use two daisy-chained 74HC165 as described here => paralel to serial. These chips have internal pull-down resistors, so we don’t have to worry about that.

…but we finaly settled for the MCP23017. Communication is over the I2C bus, this chip is configured in “input” mode, with pull-up resistors.

GP16 and GP17 are used for the serial communcation with the audio module, we will use the DFRobot Voice Module DFR0534