Barnard Microsystems Limited

Developing Unmanned Aircraft Systems to benefit Mankind

Avionics software - Avionics Software

Simplified Unmanned Aircraft computer system block diagram

Avionics software

return to top

The FreeRTOS Real Time Operating System

- from http://www.freertos.org/

Avionics software

FreeRTOS.org TM is a portable, open source, mini Real Time Kernel - a free to download and royalty free RTOS that can be used in commercial applications .

Ports exist for many different processor architectures and development tools. Each official port includes a pre-configured example application demonstrating the kernel features , expediting learning, and permitting 'out of the box' development.

Free support is provided by an active user community. Commercial support along with a full development service is also provided.

SafeRTOS TM is a version that has been certified for use in safety critical applications. It is a functionally similar product for which complete IEC 61508 compliant development/safety lifecyle documentation is available (conformance certified by TÜV SÜD, including compiler verification evidence). While FreeRTOS.org does not contain the same safety features as SafeRTOS there is still commonality - allowing FreeRTOS.org to benefit directly from the very rigorous SafeRTOS testing and validation activities.

Ports exist for many different microprocessors, including the NXP LPC2106, LPC2124 and LPC2129 (ARM7). Includes I2C driver source code. Demo's for Olimex and Keil hardware.

return to top

Microsoft XP Embedded Windows

Notes from Lee Allen at Silica.

Starting to develop an image

You can pretty much develop your image using the Target Designer eval software on the Microsoft site. Once you do an actual build on the image, you will have 120 or 180 days before it times out.

You will find some very useful development information at: http://msdn2.microsoft.com/en-us/library/bb847972.aspx

Developing a Licensed Image

You can purchase the full version of Target Designer to develop your image - this will never time out.

The full version gives you the ability to enter the license number, which you will need to do when you wish to ship fully licensed hardware with the OS loaded.

Target Designer Cost:   £550

Licensing Your Device

When you wish to start shipping product with the XP Embedded image loaded, you will need to purchase a COA (Certificate Of Authenticity) for every unit you ship. The COAs are the stickers that you stick to the product.

Each time you purchase some stickers, you will receive a flyer inside the envelope detailing a Product ID number.

The very first time you build your fully licensed image, you have to enter this Product ID number in to Target Designer. Note that you only ever do this once, though it is recommended that for your own tracking purposes, if you change your image, then load a new Product ID number.

Purchasing Licenses

Any customer that wishes to buy embedded Microsoft licenses has to complete something called a Customer License Agreement (CLA). This has to be done via hard copy, but I have attached a .PDF copy for reference only.

NOTE - you do not need the CLA in place to buy the full version of the toolkit.

return to top

Insitu Selects RTI for Unmanned Air Vehicle Products

Date: 2nd April, 2007

from http://www.mil-embedded.com/news/db/?5936

SAN JOSE, CA, Embedded Systems Conference SV–April 2, 2007– Real-Time Innovations (RTI), The Real-Time Middleware Experts, announced today that its real-time messaging middleware has been selected for use by Insitu Inc., a pioneer developer of long-endurance, unmanned autonomous aircraft (UAV). RTI's technology will be used in Insitu's next generation of unmanned air vehicles, including the company's next-generation ScanEagle and newer platforms. Insitu is using RTI Data Distribution Service in multiple portions of platforms, such as on the UAV, in the ground control stations (GCSs) and in future air-to-ground communications. On the UAV airframe, RTI connects the flight computers, sensors and on-board application computers. Within the GCS, RTI connects the systems that decode data feeds, analyze the UAV's situation and interface to the operator control.

UAVs serve increasingly strategic roles in a broad range of applications, including military reconnaissance, border patrol and search missions. A successful UAV mission requires both impressive autonomy and reliable ground-control. UAVs are by far the fastest-growing segment of the aeronautics industry.

Insitu's newly designed distributed software architecture allows developers to put much more intelligence on the airplane. The design leverages RTI's message bus to implement a hierarchical control network with well controlled data-flows. The information flow is now much more orchestrated and flexible than in Insitu's previous designs. For instance, this allows Insitu to seamlessly switch control between multiple GCSs and to reliably connect to an aircraft even over unre

Using commercially available middleware also saves Insitu significant time and effort. Gary Viviani, vice president of Software Engineering at Insitu said, “Historically, we've had multiple people working on communications it was a dominating activity for our platform. Despite that, transferring data was the source of many of our problems and most of our consternation. Now, with minimal resources, we have seen at least a 30 percent increase in productivity by using RTI

“Insitu is a recognized leader in the exploding UAV industry,” said Stan Schneider, chief executive officer at RTI. “Insitu is developing a highly capable, reliable air vehicle at a low cost. We are impressed with Insitu's dedication to excellence in aviation design. We look forward to a strong partnership in flight systems.”

return to top

Microsoft Robotics Studio

See http://msdn2.microsoft.com/en-us/robotics/default.aspx

Microsoft Robotics Studio Visual Programming Language Introduction

Microsoft Visual Programming Language (VPL) is an application development environment designed on a graphical data-flow-based programming model rather than control flow typically found in conventional programming. Rather than series of imperative commands sequentially executed, a data-flow program is more like a series of workers on an assembly line, who do their assigned task as the materials arrive. As a result VPL is well suited to programming a variety of concurrent or distributed processing scenarios.

VPL is targeted for beginner programmers with a basic understanding of concepts like variables and logic. However, VPL is not limited to novices. The compositional nature of the programming language may appeal to more advanced programmers for rapid prototyping or code development. In addition, while its toolbox is tailored developing robot applications, the underlying architecture is not limited to programming robots and could be applied to other applications as well. As a result, VPL may appeal to a wide audience of users including students, enthusiasts/hobbyists, as well as possibly web developers and professional programmers.

Avionics software

Figure Sample Microsoft Visual Programming Language (VPL) diagram for simple bump-turn-go wander behavior, from http://msdn2.microsoft.com/en-us/library/bb483088.aspx.

A Microsoft Visual Programming Language data-flow consists of a connected sequence of activities represented as blocks with inputs and outputs that can be connected to other activity blocks.

Avionics software

Figure The link arrows between the blocks represent messages that send data from one activity to another, from http://msdn2.microsoft.com/en-us/library/bb483088.aspx.

Activities can represent pre-built services, data-flow control, functions, or other code modules. The resulting application is therefore often referred to as orchestration, the sequencing of separate processes.

Activities can also include compositions of other of activities. This makes it possible to compose activities and reuse the composition as a building block. In this sense an application built in VPL is itself an activity.

Activity blocks typically include the activity’s name and borders that represent its connection points. An activity block may also include graphics to illustrate the purpose of the activity as well as user interface elements that may enable the user to enter values, assignments, or transformations for data used in an activity.

return to top