Skip to content
Open
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
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.
160 changes: 142 additions & 18 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

.. 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 @@ -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 @@ -127,6 +206,34 @@
.. 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"}
=============================

1. Launch the Arm Analytics demo by clicking the **Arm Analytics** widget in the apps scroll menu.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2. Connect the microphone and click the **Play** button to start audio recognition.

.. Image:: /images/ti-lvgl-demo-arm-analytics1.png
:height: 300
3. 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.PassiveVoice] 'is used' is passive voice. In general, use active voice. Consult the style guide for acceptable use of passive voice. Raw Output: {"message": "[RedHat.PassiveVoice] 'is used' is passive voice. In general, use active voice. Consult the style guide for acceptable use of passive voice.", "location": {"path": "source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst", "range": {"start": {"line": 230, "column": 65}}}, "severity": "INFO"}

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:

Check warning on line 232 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 'information about' rather than 'information on'. Raw Output: {"message": "[RedHat.TermsSuggestions] Depending on the context, consider using 'information about' rather than 'information on'.", "location": {"path": "source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst", "range": {"start": {"line": 232, "column": 10}}}, "severity": "INFO"}

- :ref:`TensorFlow Lite (LiteRT) <tflite-label>` - Deep learning inference framework

Check warning on line 234 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": 234, "column": 34}}}, "severity": "INFO"}
- :ref:`NNStreamer <nnstreamer-label>` - Neural network pipeline management

Check warning on line 235 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": 235, "column": 20}}}, "severity": "INFO"}

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
1. 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')

$ git clone --recurse-submodules https://github.com/TexasInstruments/ti-lvgl-demo.git
.. code-block:: console
$ git clone -b legacy --recurse-submodules https://github.com/TexasInstruments/ti-lvgl-demo.git
2. Create the docker environment and build the application:

.. code-block:: console

$ cd ti-lvgl-demo
$ sudo ./scripts/docker_setup.sh --create-image
$ sudo ./scripts/docker_setup.sh --build-app
.. code-block:: console
$ cd ti-lvgl-demo
$ sudo ./scripts/docker_setup.sh --create-image
$ sudo ./scripts/docker_setup.sh --build-app
3. Copy the compiled binary to :file:`/usr/bin` directory of the device

.. code-block:: console
.. ifconfig:: CONFIG_part_variant in ('AM62LX', 'AM62X', 'AM62PX')

.. 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