Fast and Effective Embedded System Design: Applying the ARM mbed. Second Edition

Reader and Instructor Support

Home (Embedded Know-How)

 click image to expand

For sample content see Look Inside at

Amazon UK

Buy the Book through the Internet

from Elsevier

from Amazon (UK)

from Amazon (USA)

from Amazon (Canada)     

from Amazon (Germany)

from Amazon (Japan)


Questions and Comments


Please email if you have any questions or comments about the book. We want to stay in touch with our readership, help with anything which appears unclear, and hear about the exciting projects that you or your students are working on!

Instructor Support

The mbed allows a new style of teaching about embedded systems and microcontrollers in university and college courses. Support material, made available to instructors reommending the book, take the form of:

Powerpoint slides: These are directly linked to the book content. There is one slide presentation for each book chapter. PDFs are available for free download here.

Chapter 1 Chapter 4 Chapter 7 Chapter 10 Chapter13 Chapter 16
Chapter 2 Chapter 5 Chapter 8 Chapter 11 Chapter14 Appendix B
Chapter 3 Chapter 6 Chapter 9 Chapter 12 Chapter 15  

Solutions to Quiz questions.

For Quiz solutions or Lecture Note powerpoints, please email from a university/college email address. In your email please give brief information about the course you're using the book for (or are aiming to use the book for).

Code Examples.

These are available below - copy and paste from the Word document into the mbed compiler.

Chapter 1 Chapter 4 Chapter 7 Chapter 10 Chapter13
Chapter 2 Chapter 5 Chapter 8 Chapter 11 Chapter14
Chapter 3 Chapter 6 Chapter 9 Chapter 12 Chapter 15

back to top

Ways of Using the Book

1. As an introduction to embedded systems, the mbed, and embedded C/C++: Just start working from the beginning, and cover chapters 1 to 5.

2. As an intermediate course in embedded systems, the mbed, and embedded C/C++: Cover chapters 6 to 10.

3. For more advanced studies in embedded systems and C/C++ programming. Use chapters 11-16 as appropriate, to explore wireless and internet-linked devices, audio applications, and to get deeper into programming and hardware issues.

4. As an ancillary to an electronics course: There is plenty of scope to present the mbed as a reconfigurable electronic system, which of course it is. A number of exercises in the book explore characteristics of electronic aspects such as digital interfacing, PWM, DAC and ADC. We use parts of the early chapters in this way in an Electronic Systems module at the University of Derby.

5. As the core element of an electronics club. Issue club members with an mbed, breadboard, and access to components listed in Appendix D. Let them work through activities in the book, and from the mbed web site, at their own speed. Be ready to supply further components as needed, and as costs allow. Amazing things may happen!

6. As a launchpad for advanced projects: See the "moon buggy" example below.

back to top

An Example: the "Moon Buggy" Project

This project, with detail adjusted year on year, is taken by teams of 15 students on the MSc, Control and Instrumentation, at the University of Derby, between October and December of any year. Students are divided into sub-teams, and asked to respond to a task statement (example from 2012).

The Control and Instrumentation Block Diagram
This formed the starting point for the student teams. It was the students' responsibility to design and develop the instrumentation and control, using a network of mbed microcontrollers. The teams covered the following areas: central controller and locomotion, diagnostics, data communications and deployable solar panel, obstacle sensing, deployable solar panel, light sensing.

click image to expand

The Build Overview
The chassis and power supply of the vehicle were given. The vehicle has a four-wheel geometry, with each wheel being independently steerable, and driven by geared DC  motor.

click image to expand
The Vehicle under Test
The vehicle under development. Notice the five mbeds, all networked. We use a simple prototyping pcb, which has the same basic layout as the breadboards normally used with the mbed. When a circuit has been prototyped and tested, it can be readily transferred to a more permanent form on the pcb.



click image to expand

back to top

Comments and Errata

Chapter 3

Page 62: Figure 3.14 b). The upper terminal of the MOSFET transistor should be labelled "Drain", not "Gate".


Chapter 12

Program Example 12.4 has caused compilation issues for some readers.

It has been uploaded to the mbed portal here:

In case of difficulty, try importing this version to your compiler. Email if difficulties persist. 


Chapter 14

Program Example 14.3

The first line of the while (1) loop reads:

 if (FIO0PIN0&0x01==1){   

This is not great, because in C operator precedence terms, == has higher precedence than &. Thus the expression only evaluates correctly for 0x01, not 0x02 or other values. The line should be changed to:

 if ((FIO0PIN0&0x01)==1){   

The down-loadable code example above has been adjusted to reflect this. The mask can then be changed for other bits/pins, e.g.

if ((FIO0PIN0&0x02)==2){  

if ((FIO0PIN0&0x80)==0x80){  



Chapter 15

Page 414: In the top Line the reference should be to Exercise 15.9, not 15.8.


Appendix C

Page 470: Para. 4. "The value is defined for a load current of 0.4 mA..." should read "The value is defined for a load current of 4 mA...".

back to top