Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions configs/AM335X/AM335X_linux_toc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ linux/Foundational_Components/Graphics/SGX/Build_Guide

linux/Demo_User_Guides/index_Demos
linux/Demo_User_Guides/Webserver_Demo_User_Guide
linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide

linux/How_to_Guides
linux/How_to_Guides_Host
Expand Down
2 changes: 2 additions & 0 deletions configs/AM437X/AM437X_linux_toc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,8 @@ linux/Foundational_Components/Graphics/SGX/Overview
linux/Foundational_Components/Graphics/SGX/SGX_Debug_Info
linux/Foundational_Components/Graphics/SGX/Build_Guide

linux/Demo_User_Guides/index_Demos
linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide

linux/How_to_Guides
linux/How_to_Guides_Host
Expand Down
3 changes: 3 additions & 0 deletions configs/AM65X/AM65X_linux_toc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,9 @@ linux/Foundational_Components/Graphics/SGX/Overview
linux/Foundational_Components/Graphics/SGX/SGX_Debug_Info
linux/Foundational_Components/Graphics/SGX/Build_Guide

linux/Demo_User_Guides/index_Demos
linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide

linux/Industrial_Protocols
linux/Industrial_Protocols_ICSS_Dual_EMAC
linux/Industrial_Protocols_HSR_PRP
Expand Down
1 change: 1 addition & 0 deletions source/devices/AM437X/linux/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ Processor SDK Linux Software Developer's Guide
/linux/Overview
Release_Specific
/linux/Foundational_Components
/linux/Demo_User_Guides/index_Demos
/linux/Industrial_Protocols
/linux/How_to_Guides
/linux/Documentation_Tarball
Expand Down
2 changes: 1 addition & 1 deletion source/devices/AM65X/linux/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Processor SDK Linux Software Developer's Guide
Release_Specific
/linux/Foundational_Components
/linux/Industrial_Protocols
/linux/Examples_and_Demos
/linux/Demo_User_Guides/index_Demos
/linux/How_to_Guides
/linux/Documentation_Tarball

Expand Down
Binary file added source/images/ti-lvgl-demo-arm-analytics1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/images/ti-lvgl-demo-arm-analytics2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/images/ti-lvgl-demo-arm-analytics3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added source/images/ti-lvgl-demo-legacy-home.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
186 changes: 155 additions & 31 deletions source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@

- EV Charging

- Arm analytics

- Smart Home

- Smart Meter
Expand All @@ -21,6 +23,64 @@

- Security

.. note::

Platform compatibility varies for different demo applications. Please see the platform compatibility table below:

Check warning on line 28 in source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.TermsSuggestions] Depending on the context, consider using 'after', 'later', or 'following' rather than 'below'. Raw Output: {"message": "[RedHat.TermsSuggestions] Depending on the context, consider using 'after', 'later', or 'following' rather than 'below'.", "location": {"path": "source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst", "range": {"start": {"line": 28, "column": 111}}}, "severity": "INFO"}

.. list-table:: Demo Compatibility by Platform
:header-rows: 1
:widths: 20 16 16 16 16 16 16

* - Platform
- EV Charging
- Arm analytics
- Smart Home
- Smart Meter
- Thermostat
- Security
* - AM62L
- ✓
- ✗
- ✓
- ✓
- ✓
- ✓
* - AM62x
- ✓
- ✗
- ✓
- ✓
- ✓
- ✓
* - AM62P
- ✓
- ✗
- ✓
- ✓
- ✓
- ✓
* - AM335X
- ✗
- ✓
- ✓
- ✓
- ✓
- ✗
* - AM437X
- ✗
- ✓
- ✓
- ✓
- ✓
- ✗
* - AM65X
- ✗
- ✓
- ✓
- ✓
- ✓
- ✗

All necessary equipment and step by step instructions are provided below:

.. note::
Expand All @@ -34,15 +94,28 @@

.. ifconfig:: CONFIG_part_variant in ('AM62LX')

- AM62L Evaluation Module: TMDS62LEVM
- AM62L Evaluation Module: `TMDS62LEVM <https://www.ti.com/tool/TMDS62LEVM>`__

.. ifconfig:: CONFIG_part_variant in ('AM62X')

- TI AM62x SK / TI AM62x-LP SK / TI AM62xSIP SK / BeaglePlay
- TI AM62x SK / TI AM62x-LP SK / TI AM62xSIP SK / BeaglePlay `SK-AM62 <https://www.ti.com/tool/SK-AM62>`__

.. ifconfig:: CONFIG_part_variant in ('AM62PX')

- TI |__PART_FAMILY_DEVICE_NAMES__| SK
- TI SK-AM62P-LP `TMDS62LEVM <https://www.ti.com/tool/SK-AM62P-LP>`__

.. ifconfig:: CONFIG_part_variant in ('AM335X')

- AM335x Evaluation Module: AM335x EVM or `BEAGL-BONE-GRN-ECO <https://www.ti.com/tool/BEAGL-BONE-GRN-ECO>`__
- BeagleBone Black `BEAGL-BONE-BLACK <https://www.ti.com/tool/BEAGL-BONE-BLACK>`__

.. ifconfig:: CONFIG_part_variant in ('AM437X')

- AM437x Evaluation Module: AM437x GP EVM `TMDSEVM437X <https://www.ti.com/tool/TMDSEVM437X>`__

.. ifconfig:: CONFIG_part_variant in ('AM65X')

- AM65x Evaluation Module: AM654x GP EVM `TMDX654IDKEVM <https://www.ti.com/tool/TMDX654IDKEVM>`__

Check warning on line 118 in source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'EVM') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'EVM') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst", "range": {"start": {"line": 118, "column": 42}}}, "severity": "INFO"}

- PC (Windows or Linux, to use serial terminal console)

Expand Down Expand Up @@ -73,25 +146,25 @@

The demo will auto launch upon Linux booting on the EVM. Follow the below instructions to flash the SD card:

1. Flash an SD card with the :file:`tisdk-default-image`. User can download the :file:`tisdk-default-image` wic image from |__SDK_DOWNLOAD_URL__|.
Please follow the instructions from here to :ref:`Flash an SD card <processor-sdk-linux-create-sd-card>`.
#. Flash an SD card with the :file:`tisdk-default-image`. User can download the :file:`tisdk-default-image` wic image from |__SDK_DOWNLOAD_URL__|.
Please follow the instructions from here to :ref:`Flash an SD card <processor-sdk-linux-create-sd-card>`.

Check warning on line 150 in source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.UserReplacedValues] Separate words by underscores in user-replaced values. Raw Output: {"message": "[RedHat.UserReplacedValues] Separate words by underscores in user-replaced values.", "location": {"path": "source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst", "range": {"start": {"line": 150, "column": 74}}}, "severity": "INFO"}

2. Insert the flashed SD card to the board, connect the display, mouse/touch-input, ethernet cable, aux cable, jumper wire and power on the EVM.
The TI LVGL Demo will launch automatically when the device is fully booted.
#. Insert the flashed SD card to the board, connect the display, mouse/touch-input, ethernet cable, aux cable, jumper wire and power on the EVM.
The TI LVGL Demo will launch automatically when the device is fully booted.

Check warning on line 153 in source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Definitions] Define acronyms and abbreviations (such as 'LVGL') on first occurrence if they're likely to be unfamiliar. Raw Output: {"message": "[RedHat.Definitions] Define acronyms and abbreviations (such as 'LVGL') on first occurrence if they're likely to be unfamiliar.", "location": {"path": "source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst", "range": {"start": {"line": 153, "column": 14}}}, "severity": "INFO"}

.. ifconfig:: CONFIG_sdk in ('DebianSDK')

Upon booting the EVM, Weston is launched automatically. To launch the LVGL demo, refer the following
instructions:

1. Flash an SD card with the :file:`tisdk-debian-trixie` wic image. User can download the wic image from |__SDK_DOWNLOAD_URL__|.
Please follow the instructions from here to :ref:`Flash an SD card <processor-sdk-debian-create-sd-card>`.
#. Flash an SD card with the :file:`tisdk-debian-trixie` wic image. User can download the wic image from |__SDK_DOWNLOAD_URL__|.
Please follow the instructions from here to :ref:`Flash an SD card <processor-sdk-debian-create-sd-card>`.

Check warning on line 161 in source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.UserReplacedValues] Separate words by underscores in user-replaced values. Raw Output: {"message": "[RedHat.UserReplacedValues] Separate words by underscores in user-replaced values.", "location": {"path": "source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst", "range": {"start": {"line": 161, "column": 74}}}, "severity": "INFO"}

2. Insert the flashed SD card to the board, connect the display, mouse/touch-input, ethernet cable, aux cable, jumper wire and power the EVM on.
#. Insert the flashed SD card to the board, connect the display, mouse/touch-input, ethernet cable, aux cable, jumper wire and power the EVM on.

3. Weston is launched on boot. Shut it down with `systemctl stop weston`.
#. Weston is launched on boot. Shut it down with `systemctl stop weston`.

4. Launch the demo by typing `/usr/bin/lvglsim` into the UART command prompt.
#. Launch the demo by typing `/usr/bin/lvglsim` into the UART command prompt.


**********************
Expand All @@ -100,10 +173,16 @@

The landing/home page of the LVGL demo looks like the following:

.. Image:: /images/ti-lvgl-demo-home-page.gif
:height: 500
.. ifconfig:: CONFIG_part_variant in ('AM335X' 'AM437X' 'AM65X')

.. Image:: /images/ti-lvgl-demo-legacy-home.png
:height: 500

.. ifconfig:: CONFIG_part_variant in ('AM62LX' 'AM62PX' 'AM62X')

.. Image:: /images/ti-lvgl-demo-home-page.gif
:height: 500

|

- In the demo, scroll through the various widgets to launch different apps.
- The date/time panel shows the UTC timezone provided the EVM is connected to the internet.
Expand All @@ -119,14 +198,42 @@
Launching the EV Charging HMI
=============================

1. To launch the EV Charging HMI demo, click on the `EV Charging` widget in the apps scroll menu.
2. Click on the `Start charging` button to emulate charging of EV. This will increment charge percentage at fixed time intervals.
#. To launch the EV Charging HMI demo, click on the `EV Charging` widget in the apps scroll menu.
#. Click on the `Start charging` button to emulate charging of EV. This will increment charge percentage at fixed time intervals.

Check warning on line 202 in source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.TermsWarnings] Consider using 'click' rather than 'Click on' unless updating existing content that uses the term. Raw Output: {"message": "[RedHat.TermsWarnings] Consider using 'click' rather than 'Click on' unless updating existing content that uses the term.", "location": {"path": "source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst", "range": {"start": {"line": 202, "column": 4}}}, "severity": "WARNING"}

.. Image:: /images/ti-lvgl-demo-ev-charging1.png
:height: 300
.. Image:: /images/ti-lvgl-demo-ev-charging2.png
:height: 300


Launching the Arm analytics

Check warning on line 210 in source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.Headings] Use sentence-style capitalization in 'Launching the Arm analytics'. Raw Output: {"message": "[RedHat.Headings] Use sentence-style capitalization in 'Launching the Arm analytics'.", "location": {"path": "source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst", "range": {"start": {"line": 210, "column": 1}}}, "severity": "INFO"}
=============================

#. Launch the Arm Analytics demo by clicking the **Arm Analytics** widget in the apps scroll menu.
#. Connect the microphone and click the **Play** button to start audio recognition.

.. Image:: /images/ti-lvgl-demo-arm-analytics1.png
:height: 300
#. Expose multiple audio sources to the microphone to view the output results. Click the **Stop** button to stop audio recognition.

Check warning on line 218 in source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.SimpleWords] Use simple language. Consider using 'many' rather than 'multiple'. Raw Output: {"message": "[RedHat.SimpleWords] Use simple language. Consider using 'many' rather than 'multiple'.", "location": {"path": "source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst", "range": {"start": {"line": 218, "column": 11}}}, "severity": "INFO"}

.. Image:: /images/ti-lvgl-demo-arm-analytics2.png
:height: 300
.. Image:: /images/ti-lvgl-demo-arm-analytics3.png
:height: 300

**Technical Details:**

The Arm Analytics demo leverages machine learning for real-time audio recognition:

- **ML Framework**: The demo uses :ref:`TensorFlow Lite (LiteRT) <tflite-label>` as the deep learning runtime for efficient on-device inference on Arm Cortex-A cores

Check warning on line 229 in source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.UserReplacedValues] Separate words by underscores in user-replaced values. Raw Output: {"message": "[RedHat.UserReplacedValues] Separate words by underscores in user-replaced values.", "location": {"path": "source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst", "range": {"start": {"line": 229, "column": 66}}}, "severity": "INFO"}
- **Pipeline Management**: :ref:`NNStreamer <nnstreamer-label>` is used to manage the neural network pipeline, providing seamless integration between audio capture and ML inference through GStreamer plugins

Check warning on line 230 in source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst

View workflow job for this annotation

GitHub Actions / vale

[vale] reported by reviewdog 🐶 [RedHat.UserReplacedValues] Separate words by underscores in user-replaced values. Raw Output: {"message": "[RedHat.UserReplacedValues] Separate words by underscores in user-replaced values.", "location": {"path": "source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst", "range": {"start": {"line": 230, "column": 45}}}, "severity": "INFO"}

For more information on the underlying technologies:

- :ref:`TensorFlow Lite (LiteRT) <tflite-label>` - Deep learning inference framework
- :ref:`NNStreamer <nnstreamer-label>` - Neural network pipeline management

Launching the Smart Home HMI
============================

Expand Down Expand Up @@ -345,27 +452,44 @@
The source code is available at `TI LVGL Demo <https://github.com/TexasInstruments/ti-lvgl-demo.git/>`__ and can be re-compiled with the
following steps:

1. First clone the git repository and its submodules using:

.. code-block:: console
#. First clone the appropriate git repository and its submodules using:

.. ifconfig:: CONFIG_part_variant in ('AM62LX', 'AM62X', 'AM62PX')

.. code-block:: console

$ git clone --recurse-submodules https://github.com/TexasInstruments/ti-lvgl-demo.git

.. ifconfig:: CONFIG_part_variant in ('AM335X', 'AM437X', 'AM65X')

.. code-block:: console

$ git clone -b legacy --recurse-submodules https://github.com/TexasInstruments/ti-lvgl-demo.git

#. Create the docker environment and build the application:


$ git clone --recurse-submodules https://github.com/TexasInstruments/ti-lvgl-demo.git
.. code-block:: console

2. Create the docker environment and build the application:
$ cd ti-lvgl-demo
$ sudo ./scripts/docker_setup.sh --create-image
$ sudo ./scripts/docker_setup.sh --build-app

.. code-block:: console
#. Copy the compiled binary to :file:`/usr/bin` directory of the device

$ cd ti-lvgl-demo
$ sudo ./scripts/docker_setup.sh --create-image
$ sudo ./scripts/docker_setup.sh --build-app
.. ifconfig:: CONFIG_part_variant in ('AM62LX', 'AM62X', 'AM62PX')

3. Copy the compiled binary to :file:`/usr/bin` directory of the device
.. code-block:: console

.. code-block:: console
$ scp lv_port_linux/bin/lvglsim root@<ip-addr-of-device>:/usr/bin/
$ scp -r lv_port_linux/demos/high_res/assets/* root@<ip-addr-of-device>:/usr/share/ti-lvgl-demo/assets/ #make sure assets directory is there on target
$ scp -r lv_port_linux/demos/high_res/slides/* root@<ip-addr-of-device>:/usr/share/ti-lvgl-demo/slides/ #make sure slides directory is there on target
$ scp lv_port_linux/certs/<certificate> root@<ip-addr-of-device>:/usr/share/ti-lvgl-demo/cert/ #make sure cert directory is there on target

$ scp lv_port_linux/bin/lvglsim root@<ip-addr-of-device>:/usr/bin/
$ scp -r lv_port_linux/demos/high_res/assets/* root@<ip-addr-of-device>:/usr/share/ti-lvgl-demo/assets/ #make sure assets directory is there on target
$ scp -r lv_port_linux/demos/high_res/slides/* root@<ip-addr-of-device>:/usr/share/ti-lvgl-demo/slides/ #make sure slides directory is there on target
$ scp lv_port_linux/certs/<certificate> root@<ip-addr-of-device>:/usr/share/ti-lvgl-demo/cert/ #make sure cert directory is there on target
.. ifconfig:: CONFIG_part_variant in ('AM335X', 'AM437X', 'AM65X')

.. code-block:: console

$ scp lv_port_linux/build-arm64/bin/lvglsim root@<ip-addr-of-device>:/usr/bin/
$ scp -r lv_port_linux/build-arm64/_deps/lv_demos_ext-src/src/high_res/assets/* root@<ip-addr-of-device>:/usr/share/ti-lvgl-demo/assets/ #make sure assets directory is there on target
Loading