Embedded Software

Most of the software development that we do is embedded in hardware we have developed or increasingly, in single board computers like the Raspberry Pi or the Beaglebone Black or Beaglebone-XM running some flavor of Linux, which in our case has usually been Debian or Ubuntu. The advantage of using these single board computers, is the ease with which off-the-shelf, plug and play devices can be assimilated into a design. The particular boards mentioned above are very popular, and therefore there is a massive community support network. The Raspberry Pi and Beaglebone Black are open designs and the full schematics and design files are available so that aspects of the design can be integrated with other bespoke hardware design.

We write our software in a number of different languages depending on the application and requirements. If we are doing a bare metal design (without an operating system like embedded Linux or android), we will generally use C or assembler. We have written our own preemptive kernel which enables us to develop systems which need to respond to real-time events with quantifiable and guaranteed response times.

If we are developing for embedded Linux, for example on the Beaglebone or Raspberry Pi, we could use bash scripts, C, C++, html/CSS, php or java script.  This enables us to be able to equip designs with a web server for a rich and convenient user interface.

Another option we use often for the user interface is National Instrument’s Labview running on a PC with Microsoft Windows.  This application might communicate with the target hardware via USB or RS422 or via TCP/IP using Ethernet or Wifi.

© 2005-2015 Precision Technology Ltd All rights reserved