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 only compatible with board i.MX RT595 EVK Revision C1 or D and LCD SCH-46966 RevA.

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 i.MX RT595 EVK Rev. C1 and make the demo application. See chapter Setup.
  • [root]/bsp/mimxrt595_freertos-bsp: This folder contains a BSP designed for the i.MX RT595 EVK Rev. C1: 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 i.MX RT595 EVK Rev. C1. 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. References Documents