Skip to content

mipidsi.Display: non_burst and continuous_clock, for DSI-to-RGB bridges - #48

Merged
bdbarnett merged 1 commit into
mainfrom
feat/mipidsi-video-mode
Oct 6, 2026
Merged

bdbarnett merged 1 commit into
mainfrom
feat/mipidsi-video-mode

Conversation

@bdbarnett

Copy link
Copy Markdown
Contributor

Raspberry Pi-style DSI panels put a DSI-to-RGB bridge in front of the glass, such as the Chipone ICN6211 on a KeDei 5" (800x480). ESP-IDF's DPI panel always sends burst-mode video and lets the clock lane drop to LP between lines, and with that the bridge produces nothing: the panel stays white. Two new keyword options fix it:

  • non_burst=True: non-burst video with sync pulses.
  • continuous_clock=True: the clock lane held in HS.

Both default to off, so every existing board is unchanged.

ESP-IDF has no public switch for either. The only route is the HAL context inside its private esp_lcd_dsi_bus_t (components/esp_lcd/dsi/mipi_dsi_priv.h), whose leading fields are mirrored here. That layout is checked for v5.5.4 only, the version micropython-pydevices pins. On any other ESP-IDF the options raise NotImplementedError instead of reaching into a struct that may have moved. Asking ESP-IDF for a public switch is a separate issue.

Proven 2026-10-06 on the Waveshare ESP32-P4 WIFI6 DEV-KIT with the KeDei 5", firmware built from this branch with --modules all:

  • with both options, the panel shows the intended image;
  • without them, a white panel (spike branch spike/kedei-dsi, where this was found);
  • lv_test_timer.py runs (the counter counts, the arc spins, the button responds to touch) through the new board config in pydevices.

The spike's generic DSI writes and register reads were for diagnosis and aren't in this PR.

…es like the ICN6211 (checked against ESP-IDF v5.5.4)
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