LVGL - UI para Sistemas Embarcados

Sobre

LVGL (Light and Versatile Graphics Library) é um ecossistema open source de interface gráfica para sistemas embarcados. O site o descreve como o ecossistema de UI embarcada open source mais adotado do mundo. É independente de fornecedor, gratuito inclusive para uso comercial e sem dependências externas.

Funcionamento

  • Biblioteca escrita em C, integrada ao firmware do dispositivo.
  • Funciona em bare metal ou sobre qualquer (RT)OS: FreeRTOS, RT-Thread, Zephyr, NuttX, PX5RTOS, Linux, Windows e macOS.
  • Roda em MCUs a partir de ~100 MHz até MPUs Linux multi-core.
  • Suporta displays ePaper, monocromáticos, OLED, TFT e monitores.
  • Aceleração gráfica por hardware: NXP (VG-Lite, PXP), Renesas (Dave2D), Arm (Arm2D, Helium).
  • Os exemplos do site são em C (arc_example.c, button_example.c).

Principais Recursos

  • Mais de 30 widgets e mais de 100 propriedades de estilo.
  • Gerenciadores de layout inspirados na web.
  • Sistema tipográfico com suporte a vários idiomas.
  • Baixo consumo de memória: demo estilo smartphone com cerca de 50 KB de RAM, 100 KB de Flash, 30 KB de fontes e 200 linhas de código.
  • Projetos prontos para placas, mantidos pelo próprio LVGL.
  • Ferramentas: Project Creator, Font Converter, Image Converter.
  • Produtos do ecossistema: LVGL Safe e LVGL Pro (recursos não detalhados na página).

Casos de Uso

  • Interfaces de produtos embarcados com display (eletrodomésticos, IoT, wearables, painéis).
  • Integração com o MCUXpresso da NXP, com adição ao projeto em um clique.
  • Uso em grande volume de dispositivos da Xiaomi, segundo depoimento no site.
  • Parceiros oficiais citados: Actions, Alif, Arm, Espressif, ICOP, NXP, Renesas, ST, Texas Instruments, Think Silicon e VeriSilicon.

Público-alvo

Desenvolvedores de firmware e produtos embarcados que precisam de UI rica com poucos recursos de hardware, sem royalties e sem lock-in de fornecedor.

Limitações

  • A página não detalha quais bindings de linguagem existem (há uma seção de bindings, sem lista).
  • Não menciona editor visual nem simuladores na página inicial.
  • Recursos de LVGL Safe e LVGL Pro não estão descritos na página.

Referências