Skip to content

Avnet/MaaXBoard-RT-V3--GUI-Demo

Repository files navigation

MaaXBoard-RT-Demo

This program demonstrates the basic functionality of MaaXBoard-RT board. It includes:

  • GUI pages built by free GUI-Guider tool from nxp. Total 6 pages:
    1. Led Control
    2. Wi-fi & Network
    3. USB & Expansion
    4. Audio & Video
    5. Custom
    6. Help & Info
  • basic connectivity application using Ethernet 100Mb, Ethernet 1Gb, Wifi.
  • USB peripherals and IO Expansion (usb mouse, keyboard, i2c scan).
  • audio test program using 4 onboard microphones.

Table of Contents

  1. Mode of Operation
    1. Console mode
    2. Gui mode
  2. Project structure
  3. Add new cli command

Required Hardwares

MaaXBoard-rt-board

  • NXP i.MX RT1176 Processor
  • Arm Cortex-M7 @1GHz, 32KB/32KB L1 Cache
  • Arm Cortex-M4F @400MHz, 16KB/16KB L1 Cache
  • Fast Real-time, low-latency response (12ns)
  • 2D GPU and Graphics Accelerator
  • Advanced Security (on RT1176 plus TO136 Device)
  • 2MB of Fast On-Chip SRAM
  • (includes 512KB of A7 TCM and 256KB M4 TCM)
  • 256 Mb Onboard SDRAM
  • 256 Mb Onboard HyperFlash

MCU-Link debug probe

MIPI DSI 7-INCH CAPACITIVE TOUCH DISPLAY (Optional)

Cloning

Downloading the source code from GitHub

To simplify the porting of the source code into the MCUXpresso IDE, it is recommended to download the source code as a ZIP file and not cloning the project directly. From the main repository page, click on the “Code” button and select “Download ZIP”. Locate the downloaded file which is to be used in the next steps.

Importing the demo

Once the MCUXpresso IDE and SDK are installed, import the GUI example demo zip file that was downloaded in the previous section into a new workspace by clicking on the “Import project(s) from file system link” on the “Quickstart Panel”.

Select the zip file to import from the file system by pressing the browse button and then press finish.

Supported displays

This demo will now support both the AES-ACC-MAAX-DISP1 and AES-ACC-MAAX-DISP2 displays.
To switch to the AES-ACC-MAAX-DISP2 display, add a "AES_ACC_MAAX_DISP2" preprocessor definition under project properties -> C/C++ Build -> Settings -> Tool Settings tab -> MCU C Compiler -> Preprocessor.

Mode of Operation

Console mode

User with no MIPI 7-inch display can run the demo completely from console. MaaXBoard RT CLI use LPUART1 on J17 Debug UART 3 pin header. Baudrate is 115200.

Note: If running without display, following definition in globals.h must be set 0

#define GUI_EN			0

List of supported commands:

--------- PERIPHERALS ----------------
 led ***    : RGB LEDs on/off
 i2c #      : I2C Scan (bus# 2/3/5/6)
--------- WIFI & LAN -----------------
 ws         : Wifi Scan
 wc         : Wifi Connect
 wi         : Wifi Info
 es         : Ethernet Scan
 -------- USB HOST & DEV -------------
 ul         : USB List (attached devices)
 uk         : Keyboard Test
 um         : Mouse Test
--------- AUDIO & VIDEO --------------
 am ##      : Audio L/R output (mic# 1-4)
--------- UTILITY --------------------
 stats      : RTOS Statistics
 clr        : Clear the terminal
 q/ctrl+c   : Abort the command
 ? / h      : Menu Help
========= Avnet GUI Demo v1.0 [2021-06-25]

GUI mode

In order to run in GUI mode, (720x1280) 7inch MIPI display is required. Menu can be navigated using touch display or usb mouse.

welcome_page

network_page

usb_page

audio_page

Depending on the orientation, user may want to rotate the screen by 180 degree. To do that, AVT_DISPLAY_ROTATE_180 must defined in the preprocessor under project settings.

Supporting projects

The GUI was generated using GUI Guider 1.2.1, the GUI Guider project can be found here https://github.com/Avnet/MaaXBoard-RT-V3--GUI-Guider-Demo

Project Structure

  • generated/
    • Gui-guider generated source files
  • sources/
    • application source files
  • board/
    • board.c/h
      • board specific definitions
    • clock_config.c/h
      • generated clock configuration from MCUXpresso configurator
    • pin_mux.c/h
      • generated pin configuration from MCUXpresso configurator
  • littlevgl/
    • lvgl graphics library version 7.11
  • wifi/
    • wifi driver, bluetooth firmware

The main function is located under source/littlevgl_guider.c There are total 10 freertos tasks running.

Add new cli command

MaaXBoard-demo uses FREERTOS+CLI framework. Basically following 3 steps must be done. Look for other function implementations in source/UART_CLI.c

  1. create the function with these 3 parameters. pcWriteBuffer is the output buffer sending string to console, after command execution.
   static BaseType_t newFunction( char *pcWriteBuffer,size_t, 
                   xWriteBufferLen, const char *pcCommandString ){}
  1. create the new struct like below
   static const CLI_Command_Definition_t taskNewFuncCommandStruct =
   {
       "newfunc",
       "--------- UTILITY --------------------\r\n"
       " newfunc      : newfunc description \r\n",
       newFunction,
       0
   };
  1. Register the new command
   FreeRTOS_CLIRegisterCommand(&taskNewFuncCommandStruct)

Reference

Issues

About

Reference design for the MaaXBoard RT Rev.03 hardware demonstrating various capabilities of the NXP i.MX RT1176 Processor.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published