diff --git a/configs/AM335X/AM335X_linux_toc.txt b/configs/AM335X/AM335X_linux_toc.txt index 44611f582..4e47ef257 100644 --- a/configs/AM335X/AM335X_linux_toc.txt +++ b/configs/AM335X/AM335X_linux_toc.txt @@ -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 diff --git a/configs/AM437X/AM437X_linux_toc.txt b/configs/AM437X/AM437X_linux_toc.txt index bbad4f1c2..61d83d590 100644 --- a/configs/AM437X/AM437X_linux_toc.txt +++ b/configs/AM437X/AM437X_linux_toc.txt @@ -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 diff --git a/configs/AM65X/AM65X_linux_toc.txt b/configs/AM65X/AM65X_linux_toc.txt index 42a496b97..c3f0dc873 100644 --- a/configs/AM65X/AM65X_linux_toc.txt +++ b/configs/AM65X/AM65X_linux_toc.txt @@ -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 diff --git a/source/devices/AM437X/linux/index.rst b/source/devices/AM437X/linux/index.rst index 4b3239c6f..921c62106 100644 --- a/source/devices/AM437X/linux/index.rst +++ b/source/devices/AM437X/linux/index.rst @@ -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 diff --git a/source/devices/AM65X/linux/index.rst b/source/devices/AM65X/linux/index.rst index df20f557d..884424743 100644 --- a/source/devices/AM65X/linux/index.rst +++ b/source/devices/AM65X/linux/index.rst @@ -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 diff --git a/source/images/ti-lvgl-demo-arm-analytics1.png b/source/images/ti-lvgl-demo-arm-analytics1.png new file mode 100644 index 000000000..0cac94e01 Binary files /dev/null and b/source/images/ti-lvgl-demo-arm-analytics1.png differ diff --git a/source/images/ti-lvgl-demo-arm-analytics2.png b/source/images/ti-lvgl-demo-arm-analytics2.png new file mode 100644 index 000000000..59e6732a1 Binary files /dev/null and b/source/images/ti-lvgl-demo-arm-analytics2.png differ diff --git a/source/images/ti-lvgl-demo-arm-analytics3.png b/source/images/ti-lvgl-demo-arm-analytics3.png new file mode 100644 index 000000000..0244fa329 Binary files /dev/null and b/source/images/ti-lvgl-demo-arm-analytics3.png differ diff --git a/source/images/ti-lvgl-demo-legacy-home.png b/source/images/ti-lvgl-demo-legacy-home.png new file mode 100644 index 000000000..570e1f0a1 Binary files /dev/null and b/source/images/ti-lvgl-demo-legacy-home.png differ diff --git a/source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst b/source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst index b436155ab..089b49ac6 100644 --- a/source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst +++ b/source/linux/Demo_User_Guides/TI_LVGL_Demo_User_Guide.rst @@ -13,6 +13,8 @@ It includes various demo applications, such as: - EV Charging +- Arm analytics + - Smart Home - Smart Meter @@ -21,6 +23,64 @@ It includes various demo applications, such as: - Security +.. note:: + + Platform compatibility varies for different demo applications. Please see the platform compatibility table below: + + .. 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:: @@ -34,15 +94,28 @@ Hardware Prerequisites .. ifconfig:: CONFIG_part_variant in ('AM62LX') - - AM62L Evaluation Module: TMDS62LEVM + - AM62L Evaluation Module: `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 `__ .. ifconfig:: CONFIG_part_variant in ('AM62PX') - - TI |__PART_FAMILY_DEVICE_NAMES__| SK + - TI SK-AM62P-LP `TMDS62LEVM `__ + +.. ifconfig:: CONFIG_part_variant in ('AM335X') + + - AM335x Evaluation Module: AM335x EVM or `BEAGL-BONE-GRN-ECO `__ + - BeagleBone Black `BEAGL-BONE-BLACK `__ + +.. ifconfig:: CONFIG_part_variant in ('AM437X') + + - AM437x Evaluation Module: AM437x GP EVM `TMDSEVM437X `__ + +.. ifconfig:: CONFIG_part_variant in ('AM65X') + + - AM65x Evaluation Module: AM654x GP EVM `TMDX654IDKEVM `__ - PC (Windows or Linux, to use serial terminal console) @@ -73,25 +146,25 @@ Launching the TI LVGL Demo 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 `. + #. 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 `. - 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. .. 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 `. + #. 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 `. - 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. ********************** @@ -100,10 +173,16 @@ Using the TI LVGL Demo 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. @@ -119,14 +198,42 @@ Using the TI LVGL Demo 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. .. Image:: /images/ti-lvgl-demo-ev-charging1.png :height: 300 .. Image:: /images/ti-lvgl-demo-ev-charging2.png :height: 300 + +Launching the Arm analytics +============================= + +#. 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. + + .. 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) ` as the deep learning runtime for efficient on-device inference on Arm Cortex-A cores +- **Pipeline Management**: :ref:`NNStreamer ` is used to manage the neural network pipeline, providing seamless integration between audio capture and ML inference through GStreamer plugins + +For more information on the underlying technologies: + +- :ref:`TensorFlow Lite (LiteRT) ` - Deep learning inference framework +- :ref:`NNStreamer ` - Neural network pipeline management + Launching the Smart Home HMI ============================ @@ -345,27 +452,44 @@ assets here while making any modifications. The source code is available at `TI LVGL Demo `__ 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@:/usr/bin/ + $ scp -r lv_port_linux/demos/high_res/assets/* root@:/usr/share/ti-lvgl-demo/assets/ #make sure assets directory is there on target + $ scp -r lv_port_linux/demos/high_res/slides/* root@:/usr/share/ti-lvgl-demo/slides/ #make sure slides directory is there on target + $ scp lv_port_linux/certs/ root@:/usr/share/ti-lvgl-demo/cert/ #make sure cert directory is there on target - $ scp lv_port_linux/bin/lvglsim root@:/usr/bin/ - $ scp -r lv_port_linux/demos/high_res/assets/* root@:/usr/share/ti-lvgl-demo/assets/ #make sure assets directory is there on target - $ scp -r lv_port_linux/demos/high_res/slides/* root@:/usr/share/ti-lvgl-demo/slides/ #make sure slides directory is there on target - $ scp lv_port_linux/certs/ root@:/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@:/usr/bin/ + $ scp -r lv_port_linux/build-arm64/_deps/lv_demos_ext-src/src/high_res/assets/* root@:/usr/share/ti-lvgl-demo/assets/ #make sure assets directory is there on target