Config files

August 17, 2026 ยท View on GitHub

Board-specific setup lives in pydevices/board_configs. Application and third-party GUI adapters live in pydevices-examples's lib/utils.

FileLocationPurpose
board_config.pyinstalled from pydevices/board_configsDisplay, audio, input readers, and timing preference for one board/host
path.pypydevices-examples/lib/utilsDevelopment-checkout path setup when packages are not installed
color_setup.pypydevices-examples/lib/utilsNano-GUI adapter
hardware_setup.pypydevices-examples/lib/utilsMicro-GUI button/encoder adapter
touch_setup.pypydevices-examples/lib/utilsMicroPython-Touch adapter
fetch_ph_gui.pypydevices-examples/lib/utilsInstalls one Peter Hinch GUI tree into utils/gui
tft_config.pypydevices-examples/lib/utilsrusshughes-style TFT example adapter

board_config.py

Install a board package using the hardware install workflows or copy the closest config and customize it. Desktop installs use the pydevices-desktop distribution to provide the default host config.

Board configs instantiate hardware interfaces such as display_drv. When available, they expose neutral capabilities such as host_read, touch_read, keypad_read, encoder_read, encoder_button_read, joystick_driver, emulate, and timer_async. They never instantiate an application runtime.

Runtime selection

Non-LVGL applications instantiate the optional coordinator directly:

import board_config
import eventsys

runtime = eventsys.Runtime.from_board_config(board_config)

LVGL applications use from display_driver import runtime; that coordinator is part of the LVGL binding and does not use eventsys.

Development checkout paths

Installed packages require no path helper. For a sibling development checkout, utils.path adds pydevices-examples utilities and the canonical pydevices lib, utils, and display-driver directories when present:

import utils.path

Prefer normal PYTHONPATH / MICROPYPATH settings when the runtime supports them. See Utils.