Skip to main content

lvgl-music-player

:::warning [UNTESTED] The UI is the upstream lv_demo_music() reference; panel bring-up gates on the v1.0 HiL sweep. Try lvgl-widgets-demo first — it is the simplest LVGL test. :::

Wraps the upstream lv_demo_music() — the most polished of LVGL's bundled demos: album-art carousel, time slider, track list, equaliser visualiser.

Source: examples/display/lvgl-music-player/.

:::info This is a display-only demo — there is no audio path lv_demo_music() animates the player scene but does not decode or play any audio, and main.c makes no alp_i2s_* or codec calls. A real audio output path (a WM8960 / TLV320 codec over I²S plus an MP3 decoder) is intentionally out of scope here.

For the decoder half see minimp3-decode; for the I²S output half see i2s-tone. :::

What it shows

  • LVGL renders the player UI on a 240×320 ST7789 panel.
  • The app opens the panel through <alp/display.h> and binds LVGL with <alp/gui.h>, with CONFIG_LV_Z_AUTO_INIT=n in prj.conf — see lvgl-widgets-demo for the reference init sequence.
  • The demo is memory-hungry by LVGL standards: CONFIG_LV_Z_MEM_POOL_SIZE=131072 and CONFIG_HEAP_MEM_POOL_SIZE=262144.

Hardware needed

  • E1M-AEN family SoM.
  • E1M-EVK board.
  • 240×320 ST7789 TFT on SPI + control GPIOs.

board.yaml

libraries:
- name: lvgl
cores: [m55_hp]

som:
sku: E1M-AEN801

preset: e1m-evk

pins:
- { e1m: E1M_SPI1, macro: EVK_SPI_BUS_ARDUINO, doc: "Arduino UNO header SPI" }

cores:
a32_cluster:
os: "off"
m55_hp:
app: ./src
peripherals:
- spi
- gpio # ST7789 panel: SPI data + control GPIOs.

chips:
- st7789 # Display.

diagnostics:
log_level: info

Note there is no i2c / i2s peripheral and no codec chip — consistent with the display-only scope above.

See also

Questions about this page? Discuss in Community Forum