User Tools

Site Tools


French VersionDeutsche VersionEnglish Version

WIO Control


Work In Progress

The WIO Control is based on ESP32 Dev Module and LOLIN D32 boards.


wioctrl-display.jpgwiocontrol-lolind32.jpg WIO Control needs a display for some of its functions:

  • Status bar
  • Locomotive selection
  • Function selection
  • Locomotive Automatic Mode (Shown in the server connection icon.)


ESP32 Dev Module

The Boot button must be pressed to be able to flash this module over USB.
This button is located right beneath the display.

The following error will show up in the Arduino IDE if this button is not pressed:

A fatal error occurred: Failed to connect to ESP32: Timed out waiting for packet header


ESP32 Dev Module LOLIN D32
esp32devmodule-pinout.jpg lolin-d32.jpg

Extended Layout

The ESP32 type board selection is set by WIO Dialog.


Compared with the ESP8266, the ESP32 has a lot more I/O Pins, so an extra F0 and Shift button are added.

Dev Module
Lolin D32
Function Selection mode Shift function Long click Long click + shift
26 26 Rotary V+ Browse loco list down / Select function right - -
25 25 Rotary V- Browse loco list up / Select function left - -
34 34 Rotary direction Take over the selected loco from the list / Flip selected function - -
27 27 F0 - Alter between loco 1 and 2 Power off Power on
32 32 F1 - F9 F5 F13
33 33 F2 - F10 F6 F14
0 0 F3 - F11 F7 F15
14 14 F4 - F12 F8 F16
12 12 Shift - - Function selection mode -
16 5 LED - - - -
35 35 Battery (ADC) - - -
5 21 SDA (Display) - - - -
4 22 SCL (Display) - - - -

Note: Do not use a hardware pull-up resistor on GPIO12 because this will block uploading firmware by USB.

ESP32 Dev Module

Voltage divider

A voltage divider is needed to measure the Lipo(battery).
GPIO35 is connected to the Lipo + with 47k resistor, and with a 100k resistor to the ground(GND).

NoGo Pins

The following pins can not be used:

  • GPIO06 - GPIO11 (Are in use by the Flash interface.)


Voltage divider

The LOLIN D32 has a build in divider on GPIO35: 100k/100k.

I2C Display

The I2C SSD1306 compatible 128*64 display, must be connected to GPIO21(SDA) and GPIO22(SCL).

Short IDs

Use Transmit short IDs to load the locomotive short IDs into WIO Control.

Selecting a locomotive

  1. Press and release the shift button; On the bottom display line the first ID is shown.
  2. Turn the rotary until the wanted locomotive is selected.
  3. Push the rotary button to activate the selected locomotive.

Just press and release the shift again to cancel the selection procedure.

Schematic and PCB

arduino/wioctrl-en.txt · Last modified: 2022/02/27 08:39 by rjversluis