Skip to content

Board configs: Arduino GIGA R1 WiFi with the GIGA Display Shield - #424

Merged
bdbarnett merged 2 commits into
mainfrom
arduino-giga-display-shield
Nov 6, 2026
Merged

bdbarnett merged 2 commits into
mainfrom
arduino-giga-display-shield

Conversation

@bdbarnett

@bdbarnett bdbarnett commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

arduino-giga-display-shield is a board package for the GIGA R1 WiFi with the GIGA Display Shield: the shield's 480x800 ST7701S panel on 2-lane MIPI DSI through displayif's mipidsi, its GT911 touch on I2C4, and wlan as a lazy role. The panel's start-up commands are a driver package of their own, giga_display_shield_init, like the Tab5's. Its register values are Arduino's, from Zephyr's ST7701 driver, binding defaults and shield overlay, so that file carries Arduino's copyright and the Apache-2.0 licence, and its docstring says where each part came from. The display boards, board configs and device matrix pages list it.

It needs a firmware with displayif's stm32 mipidsi: micropython-pydevices' ARDUINO_GIGA DISPLAY_SHIELD variant (PyDevices/micropython-pydevices#265 and PyDevices/micropython-pydevices#266). There's no room to freeze the OmniPython libraries into that firmware, so they go in the board's ROMFS with the two drivers this board needs, and the board's section of the display boards page has the commands. I ran them against the board: one mpremote romfs deploy of the libraries, gt911 and giga_display_shield_init, then board_config.py and board_peripherals.py copied to /flash, and board_config imported with its drivers from /rom and brought the display up.

tools/libbuild.py check and installers --check pass. On the board, with this config in /flash/lib and lv_test_timer running for 60 s: board_config imports, the panel draws (seen on camera), the GT911 answers, and the timers ran with no errors (app.service 5776 fires, refresh 1752, LVGL 5314, longest gap 30 ms). Taps were counted with the same pins and settings before they moved into this package (25 in 60 s); this run had none, as nobody touched the screen. wlan is the same network.WLAN the board joins Wi-Fi with at boot, but I didn't call the role itself.

arduino-giga-display-shield sets up the shield's 480x800 ST7701S panel on
2-lane MIPI DSI through displayif's mipidsi, and its GT911 touch on I2C4.
The panel's start-up commands are a driver package of their own,
giga_display_shield_init, with the register values from Arduino's Zephyr
ST7701 driver (Apache-2.0).

It needs micropython-pydevices' ARDUINO_GIGA DISPLAY_SHIELD firmware with
displayif and LVGL; the Python libraries go in the board's ROMFS. Ran
tools/libbuild.py check and installers --check, then the config on the
board: lv_test_timer for 60 s with no timer errors and touch reading.
@bdbarnett
bdbarnett merged commit 808d7fd into main Nov 6, 2026
5 checks passed
@bdbarnett
bdbarnett deleted the arduino-giga-display-shield branch November 6, 2026 10:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant