Wiring & Pinout

The firmware supports three boards: Generic (a normal ESP32 dev board with a separate e-paper display), Waveshare (the Waveshare ESP32 board with an integrated e-paper driver) and the JC3248W535C (an ESP32-S3 board with an integrated 3.5” touchscreen). Generic and Waveshare differ only in the display SPI and control pins; the JC3248W535C needs far less wiring — see its section below and skip the display and button sections.

Note

The authoritative pin assignments live in src/board.rs. The tables below are generated from it — if you ever change a pin in the firmware, update it there and re-check these tables.

E-paper display

Connect the Waveshare e-paper display to the ESP32 using the GPIO for your board profile:

Display pin

Generic (GPIO)

Waveshare (GPIO)

BUSY

27

25

RST

33

26

DC

25

27

CS

26

15

CLK (SCK)

18

13

DIN (MOSI)

23

14

GND

GND

GND

3.3V

3.3V

3.3V

Coin acceptor & MOSFET

The MOSFET module lets the firmware block or enable the coin acceptor at the right moments.

Signal

Generic / Waveshare (GPIO)

JC3248W535C (GPIO)

Coin acceptor “Coin” pin

17

18

MOSFET control pin (gate)

16

17

MOSFET GND pin

GND

GND

Wiring notes:

  • For the Coin signal connection, use a cable that is as short as possible.

  • Short-circuit the two pins below the switch on the coin acceptor with the MOSFET on GND IN and GND OUT.

  • Connect the MOSFET GND pin to the board’s GND and the control pin to the coin acceptor’s blocking-MOSFET GPIO from the table.

  • Give the board, the step-up converter and the coin acceptor one common ground.

See Programming the Coin Acceptor for programming the acceptor itself.

JC3248W535C touchscreen

On this board the display, the touch input (which replaces the push button) and the BOOT button are integrated — the two GPIOs above and GND are the only wires. They sit on the 4-pin side connector, which exists twice with identical pinout (P3 with 1.25 mm pitch, P4 with 1.0 mm); every pin is labelled on the silkscreen: GND / 3V3 / IO17 / IO18. The 3V3 pin stays unconnected. Power the board through its USB-C port.

Warning

The third 4-pin connector P1 (next to the USB-C port) carries +5 V / TX / RX / GND and has the same 1.25 mm pitch as P3, so a P3 harness plugs right into it — with 5 V where GND is expected. Prefer the smaller P4 connector for the harness, or mark the plug.

LED push button

The illuminated push button triggers the withdrawal (Generic and Waveshare boards only — on the JC3248W535C, tapping the touchscreen replaces it). These pins are identical on both classic board profiles.

Signal

ESP32 GPIO

Button LED (+)

21

Button LED (−)

GND

Button switch pin 1

32

Button switch pin 2

GND

For further wiring inspiration, see the original Lightning ATM documentation.

Reconfiguration button

The ESP32’s onboard BOOT button (GPIO 0) is used to re-enter the configuration portal — hold it during power-on. It lives on the ESP32 board inside the enclosure and is not accessible to end users. See Configuration.