Building a connected home automation device with the Digi ConnectCore™ Wi-i.MX51 using LinuxLink

In this hands-on series, you will utilize open source Linux and Timesys’ LinuxLink tools to build a custom home control and automation device using Digi’s Wi-i.MX51 ConnectCore™ reference board. The requirements for this small project include technologies such as WiFi, Bluetooth, GPIO, LCD displays, graphics stacks, power management and more.

The product designed in this Timesys University track will be optimized for small footprint deployment on the target and fast boot time. All sessions are designed to provide hands-on experience throughout the entire development process, including assembly of the development environment and its use to develop a Linux based platform and a Qt based UI application.
 

This track consists of the following four 1-hour sessions:

Session 1: How to assemble and deploy an initial BSP and setup the development environment with the matching SDK

During this session, you will assemble a full development environment and learn how to quickly create a BusyBox-based, small footprint, custom Linux platform. Developers will learn how to jumpstart application development and system customization with GCC, glibc, libraries and utilities such as GDB. In addition, the session will cover various boot time optimization techniques that will be used in the final deployed product.

What you will learn:

  • ConnectCore Wi.iMX51 platform capabilities
  • Embedded Linux primer, including an overview of embedded systems
  • Embedded Linux concepts, including BSP, SDK, LinuxLink and Timesys’ Factory build system
  • How to set up a Linux cross-development environment
  • How to reflect product requirements in embedded Linux design
  • How to design a footprint-optimized Linux platform
  • How to deploy Linux on an embedded board

Hands-On Exercises:

  • Embedded Linux-based product design process
  • Building a custom BSP and SDK
  • Deploying Linux on the Wi-i.MX51 platform

View session (.MP4)    Download slides

Session 2: How to build a control application using Qt Embedded for Linux to design a UI experience

In this session, attendees will enhance their host development environment with desktop tools that help customize their Linux platform, including filesystem enhancements and Linux kernel modifications and value-add software integration. The control application will be designed using Timesys’ TimeStorm IDE with Qt WYSIWYG features. The application designed will collect information from various sensors, communicate status and allow action by the end user. The control application will control devices connected to GPIO pins, gather information from remote Bluetooth connected sensors, and it will push alerts via a WiFi network.

What you will learn:

  • How to customize a Linux design on your desktop system
  • Qt Embedded for Linux as an example of a WYSIWYG UI design
  • How to add support for WiFi
  • How to develop an application with a modern IDE

Hands-On Exercises:

  • Customizing Linux on your host development system
  • Setting up application development environment
  • Building a UI based application
  • Application testing and debugging

View session (.MP4)    Download slides    Get sample code

Session 3: How to integrate GPIO and Bluetooth functionality with the control application

The application developed in Session 2 relies on information gathered from sensors, and it controls GPIO connected devices. In the first half of this session, attendees will develop a specialized Linux kernel module that implements a set of GPIO attached LEDs which control the state of attached devices.

The second part of this session will focus on adding Bluetooth subsystem functionality to the target Linux platform. Attendees will simulate the use of Bluetooth enabled remote accelerometer sensors with WIIMOTE. This scenario will demonstrate the use of Bluetooth attached sensors to control the state (LED on / off) of another device when the remote sensor is flipped.

What you will learn:

  • What is GPIO and how an application can control GPIO connected devices
  • Linux kernel module primer
  • How to manage Linux kernel builds with custom patches
  • How to add Bluetooth subsystem functionality to the Linux platform
  • How to pair Bluetooth devices
  • How to use accelerometer based sensors to trigger an action

Hands-On Exercises:

  • Writing a loadable kernel module
  • Developing code and scripts to manage GPIO connected devices
  • Writing sound generation code
  • Reading accelerometer sensor data and triggering LED state change

View session (.MP4)    Download slides    View video demo (.MP4)

Session 4: How to optimize, test and integrate the solution for quick deployment

The last session of this track will focus on Linux platform integration and explain how to integrate the solution for quick deployment into onboard NAND flash. Attendees will learn how to ensure the quality of their product using system profiling and memory tracing. In conclusion, this session will cover make-based build systems and how to adopt Timesys’ LinuxLink Desktop Edition for your in-house embedded product development.

What you will learn:

  • How to combine all developed Linux components into a final product
  • How to optimize for deployment: footprint, boot time
  • How to modify a product for profiling and memory analysis
  • How to perform System Testing using open source Linux Test Project (LTP)
  • How to integrate LinuxLink tools into your corporate systems (case study)

Hands-On Exercises:

  • Building a NAND formatted Linux images for deployment
  • Profiling and memory tracing the Linux design
  • Running LTP / benchmark
  • Setting up a nightly build system with Desktop Factory tools

View session (.MP4)    Download slides

Timesys is a Technology partner of the Qt Company
<div align="center"><h2 class="white">Have training needs you’d like to discuss?</h2><p class="white">We’d be happy to discuss how our Timesys University Training programs can help you shorten the learning curve and reduce risk. For more information, please fill out our <a href="/request-contact/"><strong>online form</strong></a>, email <a href="mailto:sales@timesys.com?subject=I have training needs I'd like to discuss"><strong>sales@timesys.com</strong></a> or call us at <strong>1.888.432.8463</strong> (toll-free) or <strong>+1.412.232.3250</strong>.</p><p><a class="et_pb_promo_button et_pb_button darker" href="/request-contact/" style="letter-spacing: normal;">Contact Us</a></p></div>