1. Introduction

1.1. Scope

This demo, running on the MicroEJ VEE RT500, demonstrates how MicroEJ enables hardware IPs used by various MCU/MPU/SoC such as Graphic Processor Units (GPU). The demo is a wearable application running on VEE for NXP i.MX RT595. It features several watch faces and side applications such as heart rate monitoring, activity tracking, compass, and more.

The i.MX RT595 MCU is part of the NXP i.MX RT500 crossover MCU product line. It embeds the Vivante GCNanoLiteV IP from Verisilicon, featuring a low-power vector graphics IP to accelerate the rendering of high-quality drawings while keeping power consumption extremely low.

Besides using a vector graphic accelerator for rendering widgets and fonts, this demo demonstrates both the dynamic application loads using MicroEJ VEE secure multi-application sandboxes and the low-power capabilities of VEE RT500 for NXP i.MX RT595 MCU.

A video of the application is available here.

../_images/watchfaces.png

Note

This packaging is compatible with boards MIMXRT595-EVK Revision C1 and D, equipped with the LCD G1120B0MIPI.

1.2. Intended Audience

This document’s intended audience is developers who wish to understand how MicroEJ VEE RT500 leverages i.MX RT595 GPU advanced features: MicroEJ VEE RT500 platform, some MicroEJ libraries, a first demo application.

1.3. Prerequisites

1.4. Delivery Package

  • [root]/application/application-src.zip: This file contains the MicroEJ application source (Java part). See chapter Setup.
  • [root]/artifactsRepository: This folder contains some additional artifacts which are not available yet on MicroEJ Central Repository (https://developer.microej.com/central-repository/). Along with the MicroEJ Central Repository, this repository helps build the MicroEJ VEE RT500 platform for MIMXRT595-EVK and make the demo application. See chapter Setup.
  • [root]/bsp/mimxrt595_freertos-bsp: This folder contains a BSP designed for the MIMXRT595-EVK: it is compatible with the MicroEJ VEE RT500 platform. See chapter Setup.
  • [root]/documentation: This documentation.
  • [root]/gettingStarted/board: This folder contains the pre-compiled demo for the VEE RT500. See Getting Started.
  • [root]/gettingStarted/player: This folder contains the MicroEJ Virtual Device to play the demo on a desktop. See Getting Started.
  • [root]/platform/mimxrt595_freertos-platform.zip: This file contains projects to build the MicroEJ VEE RT500 platform tailored for MIMXRT595-EVK. See chapter Setup.
  • [root]/tools: This folder contains tools useful to pre-compile resources before building the application. See Images.

1.5. GPU Features

The VEE RT500 makes use of the i.MX RT595 integrated GPU: GCNanoLiteV, a Vector Graphics Processing Unit, targeting embedded and IoT low power markets. Next is the available list of GPU features used by the application:

  • blit
  • VG path with a fixed color
  • VG path with a gradient
  • transformation (rotate, scale)

RT500 VEE connects to the Hardware GPU features using three means:

  • MicroUI shapes and image drawings: MicroUI (the UX/UI stack) offers the possibility to perform each MicroUI’s built-in shape and image drawing using the Hardware GPU instead of the graphical software engine. The Hardware GPU draws aliased lines, lines with thickness and anti-aliasing, fills rectangles, draws elliptical arcs, draws, blends, transform (rotate, scale) pixelated images, and more.
  • Extended drawings: MicroUI for RT500 permits applications to use new drawings capabilities: draw VG paths with fixed color or gradient, draw SVG images, draw vector fonts, and more.
  • Third-party engine: Thanks to the extended drawings, the VEE RT500 platform can embed third-party algorithms to perform advanced drawings. MicroEJ VEE RT500 embeds a Freetype engine to render TrueType fonts. The Freetype engine uses the VG engine to render the character glyphs.

All MicroUI drawings and extended drawings (third-party) run on the Virtual RT500 virtual device. It allows the developer who writes applications to test his/her code (flow, rendering, widget placement, etc.) quickly on a desktop computer before “flashing it” onto the real physical board.

1.6. Low Power Features

The VEE RT500 is designed to efficiently use the low power features offered by FreeRTOS software and i.MX RT595 hardware.

On hardware side, the VEE RT500 leverages different hardware capabilities of the i.MX RT595 such as DMA/SDMA, hardware timers, hardware interrupts to reduce the CPU load as much as possible.

The FreeRtos tickless mode feature enables the activation of the i.MX RT595 sleep modes when the application does not need to execute a task.

The VEE RT500 can be customized to provide the best power consumption versus performance ratio depending on specific application contexts.

1.7. References Documents