Boot2Qt Getting Started Guide

Published on December 15, 2015

Archived Notice

This article has been archived and may contain broken links, photos and out-of-date information. If you have any questions, please Contact Us.

Introduction

Developing an embedded product requires 3 main steps:  selection of the proper hardware platform, operating system selection/setup, and User Interface (UI) development.  All 3 of these steps are very closely tied together.  t is critical to select the proper hardware platform that also has excellent operating system support as well as the proper UI tools.  Boundary Devices products are exclusively based on the very popular and powerful i.MX family of processors from Freescale.  Our boards have been designed to harness the extreme versatility of the processor while providing the user a variety of integration options.  On the operating system side, Boundary Devices has industry leading operating system options including Android, Yocto, Ubuntu, and Buildroot.  The third and final piece of the puzzle is the UI and this blog post intends to show how fast and easy the setup to get started with a new Qt project when using Boundary Devices platforms.   One of the most complex and time-consuming elements of an embedded project is the User Interface development.  

Thanks to a Qt for Device Creation image (formerly called Boot2Qt or B2Qt) working on all our platforms, one can download the IDE and start developing within minutes!

Note that all our platforms are based on Freescale i.MX processors which provide all the features required for the best Qt experience:

  • 3D/2D/VG processing
  • Video Processing Unit (VPU) for 1080p60 hardware decoding
  • Image Processing Unit (IPU) for hardware-accelerated re-sizing/blending/rotation
  • HDMI, RGB and LVDS display interfaces
  • CSI parallel & MIPI capture capable

Our platforms range from a low-end i.MX6Solo with 512MB of RAM (Nit6xlite) to a high-end i.MX6Quad with 4GB of RAM (Nitrogen6_MAX).

Installation

First, download the online installer from Qt website. Note that is can be downloaded for Windows, Linux or MAC OS.

Start the installation and make sure to select Boundary Devices platforms SDK.

1_Screenshot from 2015-11-19 15-59-53

After a few clicks, the installation will be complete and the environment ready for development.

Flashing instructions

QtCreator provides a "Help" tab which provides lots of information on the APIs but also on the supported hardware. In our case, it also gives the flashing instructions which you can find online:

2_Screenshot from 2015-11-19 16-34-10

$ cd $ sudo 5.5/Boot2Qt/nitrogen6x-eLinux/images/deploy.sh /dev/

First boot

Once the flashing process is completed, you can insert the SDCard inside your platform and the system should come up with the following screen:

3_b2qt

This Qt launcher app is made of different sample applications which show off different graphics features such as blurring, 3D/2D, dynamic re-sizing, multimedia and so on.

Application development

Now that everything is set up properly, you can start developing your application. This section will describe the creation of a Canvas 3D sample app.

Create a "New Project" > "Application" > "Qt Canvas 3D Application". Select the location of this project as well as its name. Then make sure to select the Boundary Devices dev kit:

4_Screenshot from 2015-11-19 16-38-14

Finally the sample app will appear in the IDE, ready to be built/debugged. You can add a breakpoint anywhere and launch the application on the target selecting "Debug" > "Start Debugging" (or F5).

Below is a screenshot of QtCreator during a simple debugging session.

5_Screenshot from 2015-11-19 17-11-36

Here is what should be displayed on the platform display.

6_canvas_3d

That's all folks! You've created your first app and now are ready for app development directly on target.  By working with Boundary Devices hardware, customers can significantly improve their time to market with production-ready hardware and software as well as a well-documented, step-by-step instructions on UI development.  Please contact us for more information or to select the best hardware/software combination for your project.