← micropython-hardware docs

Wokwi hardware reference

Technical reference for the in-repo Wokwi project. For setup steps, see Wokwi simulator guide.

Project layout

Path Role
wokwi/ main.py, diagram.json — core packages + testris

Simulated hardware

Item Detail
MCU ESP32-S3 DevKitC-1 (board-esp32-s3-devkitc-1), 16 MB flash
Display ILI9341 240×320 via SPI (board-ili9341-cap-touch)
Touch FT6206 I2C (simulated on the cap-touch board)

Pin wiring

Matches wokwi_ili9341_ft6x36_esp32s3/board_config.py:

Signal GPIO diagram.json part / pin
Power 3V3 lcd1:VCCesp:3V3.1
SPI SCK 36 lcd1:SCKesp:36
SPI MOSI 35 lcd1:MOSIesp:35
SPI MISO 37 lcd1:MISOesp:37
Display D/C 16 lcd1:D/Cesp:16
Display CS 5 lcd1:CSesp:5
Touch I2C SDA 7 lcd1:SDAesp:7
Touch I2C SCL 6 lcd1:SCLesp:6
Backlight 3V3 lcd1:LEDesp:3V3.1

Display part id in diagram.json: lcd1 (board-ili9341-cap-touch).


FT6206 (Wokwi) vs FT6X36 (pydisplay driver)

Wokwi’s cap-touch board simulates an FT6206 I2C controller. pydisplay’s board config uses the FT6X36 driver (ft6x36.py) — same FT6xx family and register-style protocol. No board_config change is expected; if touch behaves oddly, compare with real hardware and file an issue.


Board env attribute (optional)

Committed diagram.json does not pin a MicroPython env string. Browser sims use built-in firmware.

If you need a specific MicroPython build, copy the current env value from the ESP32-S3 MicroPython template into the DevKit attrs — do not commit a release-specific string in the repo.


MIP install pattern

mip.install pattern in wokwi/main.py:

import mip

for pkg in ("displaysys", "eventsys", "graphics", "multimer"):
    mip.install(f"github:PyDevices/pydisplay/packages/{pkg}.json", target=".")
mip.install(
    "github:PyDevices/micropython-hardware/board_configs/busdisplay/spi/wokwi_ili9341_ft6x36_esp32s3",
    target=".",
)  # last — installs root board_config.py
mip.install(
    "github:PyDevices/pydisplay/src/examples/testris.py",
    target=".",
)

import lib.path
import testris

Full install on Wokwi: uncomment the add_ons and examples mip.install lines in main.py.

No-touch variant:

mip.install(
    "github:PyDevices/micropython-hardware/board_configs/busdisplay/spi/wokwi_ili9341_esp32s3_no_touch"
)

Use a display-only diagram.json (no touch I2C wires) with that config.


Known issues

Issue Notes
TouchKeypad IndexError on last row Wokwi simulator quirk; may not reproduce on hardware
Old hosted wokwi.com project IDs May be stale; use in-repo wokwi/

See also Troubleshooting.