This is an HTML rendering of a working paper draft that led to a publication. The publication should always be cited in preference to this draft using the following reference:

This document is also available in PDF format.

The document's metadata is available in BibTeX format.

Find the publication on Google Scholar

This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.

Diomidis Spinellis Publications

© 2002 IEEE. Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works must be obtained from the IEEE.

A Gentle Introduction to Embedded Systems

Diomidis Spinellis

Microcontroller Projects with Basic Stamps, by Al Williams, R&D Books, Gilroy, Calif., 2000, ISBN 0-87930-587-8, 407 pp., US$44.95.

Information appliances and ubiquitous computing are the wave of the future, yet many of us are designing and implementing software for desktop or server machines with hundreds of Mbytes of RAM running at hundreds of MHz, thereby drawing hundreds of watts. To exploit the power of our machines, we run on them operating systems, programming languages, development tools, and communication protocols of great complexity. Microcontroller Projects with Basic Stamps introduces a different world, where program listings fit on a single page, memory resources are measured in bytes, and self-contained designs communicate directly with the outside world using switches, lights, and motors.

A simple hardware platform

Anyone who has contemplated the design of a microprocessor-based prototype in the last 10 years will have come across a number of obstacles. To decrease size and increase communication bandwidth, modern microprocessors use hundreds of pins and surface-mounted technology. This pushes their use beyond the soldering-iron hobbyist's domain. Memory and I/O interfacing are also more complicated: modern processors are optimized for buses with intelligent arbitration protocols and multi-level caches. However, hardware evolution has also benefited microcontroller-based devices. The "Basic Stamps" that Al Williams presents are self-contained microcontrollers. They have eight or 16 (depending on the product version) readily accessible I/O pins and can run for hours on a single 9V battery. They can be directly programmed in a variation of Basic using an editor running in Microsoft Windows. Programmers can then can download the programs into the Stamp's non-volatile memory using a cable attached to the PC. From that point onwards the Stamp will function as a stand-alone appliance.

Appliances communicate with the outside world using sensors and simple output devices such as speakers, actuators, and LCD panels. Fortunately, designers with mostly software experience will be able to experiment with their own projects after learning from the book's clear descriptions of the practical aspects that underlie hardware implementations. Readers will learn how to use Ohm's law to calculate the value of pull-up resistors to drive LEDs, how to amplify sound using operational amplifiers, and how to reverse-engineer a stepper motor taken from an old floppy drive and give it new life as a robot part. For those elements not covered in this book I recommend the classic The Art of Electronics (Paul Horowitz and Winfield Hill, University Press, 2nd edi., 1989) as a companion book.

Apart from a large reference chapter describing the Stamp's Basic dialect, most of the book is presented in the form of concrete, self-contained projects-a capacitance meter, a PC-based frequency counter, a phone dialer, a reaction game, a pocket watch, a Morse-code keyer. A circuit diagram and a listing of the firmwire accompanies each project. The chapters are devoted to digital and analog I/O, serial communications, liquid crystal displays and keypads, and motors. More adventurous readers might wish to experiment with PIC, the microprocessor that forms the core of the Basic Stamp; a separate chapter provides the introductory information.

Minor problems, but an inspiring book

A few minor problems distract from an otherwise lively, well-written book. I missed a formal reference covering the Stamp's hardware and found the gray background used for the examples an unfortunate choice. However, the complete Stamp reference and all the examples are included in the accompanying CD-ROM. In addition, the chapter covering the Basic commands would better fit in an appendix; a running header that is wrong for the chapter's 100 pages hinders its casual browsing.

Overall, the book left me with an urge to order hardware and try out some Stamp projects. I recommend it as a starter for those wanting to spice up their software designs with some hardware.

Diomidis Spinellis is an assistant professor in the Department of Management Science and Technology at the Athens University of Economics and Business. Contact him at