Set up an embedded systems training lab for under $1,000 -

Set up an embedded systems training lab for under $1,000

Nowadays, we are surrounded by embedded systems; products containingdigital computers and software running on those embedded computingdevices. Exampleembedded systems are mobile telephones, DVD players, car radios,automotive control electronics, airplanes, and medical systems.

Generally speaking, an embedded system is made up of hardware andsoftware. Embedded software can be sub-categorized into applicationfirmware (domain specific knowledge involved), middleware and systemsoftware (Real Time OS or Embedded OS Kernel, Device Drivers) anddigital signal processing tracks.

Embedded hardware folks can be grouped into prototypecircuit design electrical engineers and custom chip designers (RTL forFPGA IC for moderate volumes). An embedded engineer should have EE and/or CSbackground although any graduate in science and technology can learnthe tools and skills of the trade.

The embedded system software must be designed on a platformdifferent from the platform on which the system is intended to bedeployed. Cross platform development means that, for example, thedevelopment of embedded software for Fujitsu F2MC 16 bitsmicro-controller can be done on a system running Linux Operating systemon a 64 bit Wintel desktop PC.

Similarly, the development of some firmware code for Embedded Linuxcould be done on a Microsoft Windows System. That implies crossplatform development tools (such as cross compilers) andemulation/demonstration boards are needed and those used to beexpensive.

Taking the traditional approach it could cost more than $50,000 fora fully equipped embedded system labs.

Another way
With new products and free software nowadays make it possible to buildan embedded system laboratory for less than $1000. The lab could be forboth academic and continuing professional education purposes. Whatfollows is a collection of resources, some free, some online, and allinexpensive.

Required Skills for an EmbeddedSoftware Engineer: A Sample Syllabus
The resources described here will, I feel, go a long way towardqualifying a student embedded software engineer with a basic skill setthat includes the following subjects:

1) Set Theory, BooleanAlgebra and Demorgan's Law
2) Discrete Mathematics (forDSP folks)
3) Basic Electrical andElectronics Engineering
4) Electrical circuits,schematic, assembling and soldering of an electronic circuit
5) Fundamentals of ControlEngineering and Linear Systems
6) C Programming and DataStructures, ANSI C and MISRA C
7) Computer OperatingSystems:Linux, eCos, uC/OS II, etc..
8) Real Time Systems Concepts
9) Digital Logic and Circuitsand I/O interfacing
10) Object Oriented Conceptsand its application in software design
11) Object Oriented ProgrammingLanguage (preferably C++)
12) Concepts of SoftwareEngineering and Product Life Cycle Models

There are advanced topics which embedded system design engineershould know too. Following are the examples of advanced topics thestudent should master with the help of the resoources listed here:

1) Hardware SoftwareCo-Design
2) Object Oriented DesignPatterns and Reusable Frameworks for Embedded Software
3) GUI Design
4) Software Architecture
5) Model Driven Architectureand Code generation
6) Embedded CommunicationTechnologies

However, since the scope of this article is on how to set up anembedded laboratory, the rest of this discussion will be focused onbuilding lab resources to cover most needs of an embedded systemcourse. This proposed sub-$1000 laboratory will be able to providehands-on resources laboratory for training in all aspects of embeddedengineering.

Shopping List
To set up a hands on laboratory with less than $1000, an assumption ismade that there are two desktop PC workstations with either the Linuxand/or Microsoft Windows operating systems with USB and UART serialports. The under $1000 shopping list in Table 1 below includes the followingtools and building blocks for designing and implementing embeddedsoftware and hardware.

Table1. Price Lists of items to be purchased

Now we have acquired adequate educational kit to train futureembedded software engineers how to design embedded software on 8 bitsmicro-controllers, 32 bits micro-processors with memory cache, 32 bitsDigital signal processors and automatic code generation using MatlabSimulink.

Engineers can experiment RTOS environment on 8 bits and 32 bitsmicroprocessors by using freeRTOS, uCOS II and Embedded Linux on thosedemonstration boards and SBC (Single Board Computers)[4]

Moreover, freely download-able 8085/8086 Simulators[26] can be installed to refresh PCassembly language accompanying computer architecture courses.

Similarly, some basic electronic courses can be run with AIM-spicesimulator [12] , freelyavailable from University of Berkeley. The free Micro-controllersimulators such as MicroDev can be useful for student learners also.[22] .

The hands on laboratory projects could be created as derivative workbased on the sample projects provided by the product vendors. Thecertificate level courses in Embedded systems design can be a goodstarting place to design courses.[45]

Figure1. A sample setup for an embedded system laboratory

Sample Laboratory Set Up
Using the embedded system development gear in Figure 1, above , a sample lab set upis relatively strait forward.

First, used one of the available desktops, Windows can be configuredto serve as the workstation by installing the microcontollers and DSPavailable with the starter kits, development boards and evaluation kitsshow in Table 1, earlier .

Thus populated, it can support DSP simulators and IDES such as CodeComposer Studio for Texas Instruments MSP430 Micro-Controllers andDigital Signal Processors; Freescale's Code Warrior Studio for the HC08Micro-controllers and the Keil 8051 IDE for 8051 basedmicro-controllers.

The need for a digital oscilloscope can be solved by PC basedoscilloscopes from a lot of vendors. And for low frequency applications(<20000) you can turn your PC sound card into a handy andinexpensive oscilloscope with freely available software from off theWeb and a simple USB connection.

There are a lot of vendors that provide such a USB connected PCbased digital oscilloscope capability, such as, for example, the USBBITSCOPE 310, which is suitable for most of the embedded applicationsexcept video.

On the second workstation, to set up the development environment forEmbedded Linux you will need to install cross compilation tools (fromnative x86 processor on which PC is running) as well as an ARM basedLinux SBU (single board computer) board.

To facilitate SoC (System on a chip) design environment on FPGAboards there are a number of free VHDL tools, such as Signs [5] , which can be installed.

Following is a list of the texts I found it useful for embeddedsoftware engineers, some of which are available in electronic form, aswell as a number of electronic books which can be downloaded forlearning purposes. For some book reviews of these and other usefulbooks go to the Embedded SIG, the Association of Computing Machineries(ACM), as well as the Jack Ganssle's book review for embeddedengineering texts.[27]

(1) Programming EmbeddedSystems in C and C++ , by Michael Barr, O'Reilly
(2) Building EmbeddedLinuxSystems, by Karim Yaghmour, O'Reilly
(3) The Scientist andEngineer's Guideto Digital Signal Processing, by Steven W. Smith
(4) C++GUI Programming with Qt3 by Jasmin Blanchette, Mark Summerfield; Prentice Hall.
(5) Numerical Recipes in C andC++: TheArt of Scientific Computing, William H. Press, Saul A. Teukolsky,William T. Vetterling, and Brian P. Flannery. Cambridge UniversityPress

On line references and resources
Following are the URLs of papers, articles, information and softwareand other resources I have found useful:

[1]How to become an Embedded Geek“by Jack Ganssle
[2] Settingup an Embedded System Lab at home
[3] TexasInstruments MSP430 microprocessor based demonstration boards forless than $20
[4] Free Real Time Operating System formicro-controllers; there is RTOS port for MSP430.
[5] Signs ” FreeVHDL Hardware Development IDE for simulation, compilation,synthesis.
[6] A free VHDL simulation tool
[7] FPGA e-Lab, a Technique toRemote Access a Laboratory to Design and Test byReza Hashemian, Jason Riddley
[8] Inexpensive student-assembledFPGA / micro-controller board
[9] PIC24 Microcontroller anddsPIC33 Digital Signal ControllerDevelopmentBoard
[10] Cyclone II FPGAStarter Development Kit
[11] Explorer16 for PIC24 Microcontroller and dsPIC33 Digital Signal Controller(DSC) families
[12] Free Mixed Signal Emulator AIM-spice
[13] Scopingout palm-sized USB oscilloscope
[20] Free Embedded C programmingcourse
[21] Linux Source Code for differentplatforms Cross Reference
[22] MicroDev, an IDE forlogic devices such as micro-controllers and microprocessors
[23] Introductionto Misra C on
[24] New C standardeBook
[25] CSDP(Certified Software Development Professional), IEEE for GenericSoftware Engineers
[26] 8086 Simulatoras teaching aid to 8086 Assembly Language and Computer Architecture
[27] Book Reviews ofEmbedded Texts by Jack Ganssle
[28] Whatis an Embedded System by Rational IBM
[29] MATLAB StudentVersion
[30] Eagle Layout Editor Freeware (upto double layer PCB)
[31] PC based Oscilloscope from Bitscope
[32] PC based Oscilloscope fromTiePie
[33] Free Code Warrior IDE (C compiler) forcode on the Freescale HC08 less than 2KB
[34] GettingStarted and Evaluating Microsoft Embedded OSes 
[35] Keil IDE and C51 C compilerEvaluation Software for less than 2KB code
[36] EdSim51 – Free 8051 Simulator
EmbeddedMCU from Fujitsu Microcontroller
[38] University of Colorado Embedded Systems Research
[39] C/C++Programmer's Guide to Embedded Systems
[41] Essential C,Computer Science Library, Stanford University
[42] Embedded C++ or C++for Embedded Systems
[43] EmbeddedSoftware Engineering: The State of the Practice, by Bas Graaf,Marco Lormans, Hans Toetenel, Delft University of Technology
[44] University of CaliforniaIrvine ExtensionCertificate in Embedded Software Engineering
[45] Association of ComputingMachines Embedded SIG
[46] Doxygen for documentation
[47] Graphviz tool to accompany Doxygen
[48] Cygwin to make Unix development onMicrosoft Windows
[49] MinGw to make make utility work onMicrosoft Windows

Aung Kyaw Soe isan Embedded Software Design Engineer with a Master of Embedded SystemsDesign from Technical University of Eindhoven, the Netherlands and agraduate of the National University of Singapore, Singapore. He can bereached at

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.