embedded and real time systems training and consultancy

ARM Cortex-M Internet of Things (IoT) Programming

Duration: 5 Days

Course Background

At the heart of the Internet of Things are many small embedded systems and devices connected together via some kind of networking technology, often wireless based. There is much debate as to the role 8 bit microcontroller based systems have in this technical ecosystem, and of course this includes microcontrollers built around the ARM Cortex-M core processor architecture. The key problem is the networking software and how it can be used to co-ordinate all the various IoT nodes belonging to the network. As this is a practical course the "wonderful business opportunities and strategies for becoming a dominant investor or technology provider" will only be reviewed briefly. This is very much a "get your hands working building applications" kind of course. Instead of exploring a wide range of technologies the course will focus on installing and working with 6loWPAN, using Contiki as the operating system and framework for this purpose.

Course Prerequisites and Target Audience

A good knowledge of embedded systems C programming is assumed. Detailed knowledge of wireless technology and associated protocols is not required as this will be covered in depth during the course. A knowledge of the ARM Cortex-M architecture and instruction set would also be helpful.

Course Overview

The course will survey the essential concepts and rationale behind the Internet of Things (IoT) and the role that 8 bit microcontroller devices can play in IoT applications. This will be followed by an overview of AdHoc networking frameworks and technologies such as TinyOS and 6loWPAN. The course will then focus on developing applications using Contiki runnning on ARM Cortex-M based platforms with Microchip wireless devices. The C compiler used on this course will be the either a Keil or IAR compiler. Practical work will also include protocol analysis and troubleshooting using TI's SmartRF Packet Sniffer and connecting 6-lowPAN clouds via edge routers to the Internet and also to Cloud Computing systems. The networking part of the course will cover the IPv6 protocol as well as the subset of IPv6 that constitutes 6-lowPAN. It will also cover important topics such as mixed IPv4 and IPv6 networking as it applies to the IoT.

Course Benefits

The course provides a thorough understanding of IoT concepts and underlying wireless networking technologies. On completion of the course attendees should have a good working knowledge of 6-loWPAN and how to develop Contiki based 6-lowPAN applications. They will also have a sound understanding of IPv6 and IPv4 and how they interwork with 6-lowPAN and will have implemented and tested out a number of IoT 6-lowPAN based applications. In addition they will know how to compile Contiki from source and of the constraints involved in deploying Contiki 6-loWPAN based applications on small memory devices.

Course Outline