CC272: Issue of Ingenuity

The March issue of Circuit Cellar includes articles from a number of practical problem solvers, such as a homeowner who wanted to get a better grasp of his electrical usage and a professor who built a better-than-average music box.

Dean Boman, a retired spacecraft communications systems designer, decided to add oversight of his electric usage (in real time) to his home-monitoring system. After all, his system already addressed everything from security to fire detection to irrigation control. On page 34, he describes his energy monitoring system, which provides a webpage with circuit-by-circuit energy usage. This level of detail can make you a well-informed energy consumer.

Dean Bowman’s energy-monitoring system

Bruce Land, a senior lecturer in electronics and computer science at Cornell University, thought developing a microcontroller-based music device would be a useful class lesson. But more importantly, he knew his 3-year-old granddaughter would love an interactive music box. On page 28, he shares how he built a music device with an 8-bit microcontroller that enables changing the note sequence, timbre, tempo, and beat.

Computer engineer Chris Paiano has written many application notes for the Cypress programmable-system-on-chip (PSoC) chipset. He is even working on a PSoC solution for his broken dishwasher. But that’s far from his most impressive work. Read an interview with this problem-solver on page 41.

College students built a rotational inverted pendulum (RIP) to test nonlinear control theory. But you might want to make and tune one for fun. Nelson Epp did. On page 20, he describes how he built his RIP and utilized a TV remote control to meet the challenges of balance and swing. “It is a good project because the hardware used is fairly common, the firmware techniques and math behind them are relatively easy to understand, and you get a good feeling when, for the first time, the thing actually works,” he says.

Nelson Epp’s rotational inverted pendulum (RIP)

Chip biometrics are unique digital chip features—left by the manufacturing process—that distinguish one chip from another of the same type. Finding these chip “fingerprints” is important in developing trustworthy and secure electronics. On page 45, Patrick Schaumont discusses how to extract a fingerprint from a field programmable gate array (FPGA) and authenticate a chip’s identity.

Maurizio Di Paolo Emilio, a telecommunications engineer from Italy, designs data acquisition system software for physics experiments and industrial use. In the Tech the Future essay on page 80, he discusses the many alternatives for data acquisition software and the goal of developing credit-card-sized embedded data acquisition systems, using open-source software, to manage industrial systems.

Other article highlights include George Novacek’s look at ways to reduce product failures in the field (p. 52), Ed Nisley’s take on how to get true analog voltages from the Arduino’s PWM outputs (p. 56), and Jeff Bachiochi’s guidance on using a development kit to design a tool to help transmit Morse code (p. 68).

With this issue’s emphasis on robotics, you’ll want to check out  our From the Archives article about a SOPHOCLES design for a solar-powered robot that can detect poisonous gas (p. 62).

Issue 270: EQ Answers

The answers to the Circuit Cellar 270 Engineering Quotient are now available. The problems and answers are listed below.

Problem 1: Given a microprocessor that has hardware support for just one level of priority for interrupts, is it possible to implement multiple priorities in software? If so, what are the prerequisites that are required?

Answer 1: Yes, given a few basic capabilities, it is possible to implement multiple levels of interrupt priority in software. The basic requirements are that it must be possible to reenable interrupts from within an interrupt service routine (ISR) and that the different interrupt sources can be individually masked.

Question 2: What is the basic scheme for implementing software interrupt priorities?

Answer 2: In normal operation, all the interrupt sources are enabled, along with the processor’s global-interrupt mask.

When an interrupt occurs, the global interrupt mask is disabled and the “master” ISR is entered. This code must (quickly) determine which interrupt occurred, disable that interrupt and all lower-priority interrupts at their sources, then reenable the global-interrupt mask before jumping to the ISR for that interrupt. This can often be facilitated by precomputing a table of interrupt masks for each priority level.

Question 3: What are some of the problems associated with software interrupt priorities?

Answer 3: For one thing, the start-up latency of all the ISRs is increased by the time spent in the “master” ISR. This can be a problem in time-critical systems. This scheme enables interrupts to be nested, so the stack must be large enough to handle the worst-case nesting of ISRs, on top of the worst-case nesting of non-interrupt subroutine calls.

Finally, it is very tricky to do this in anything other than Assembly language. If you want to use a high-level language, you’ll need to be intimately familiar with the language’s run-time library and how it handles interrupts and reentrancy, in general.

Answer 4: Yes, on most such processors, you can execute a subroutine call to a “return from interrupt” instruction while still in the master ISR, which will then return to the master ISR, but with interrupts enabled.

Check to see whether the “return from interrupt” affects any other processor state (e.g., popping a status word from the stack) and prepare the stack accordingly.

Also, beware that another interrupt could occur immediately thereafter, and make sure the master ISR is reentrant beyond that point.


Contributed by David Tweed

CC271: Got Range?

As with wireless connectivity, when it comes to your engineering skills, range matters. The more you know about a variety of applicable topics, the more you’ll profit in your professional and personal engineering-related endeavors. Thus, it makes sense to educate yourself on a continual basis on the widest range of topics you can. It can be a daunting task. But no worries. We’re here to help. In this issue, we feature articles on topics as seemingly diverse as wireless technology to embedded programming to open-source development. Let’s take a closer look.

Consider starting with Catarina Mota and Marcin Jakubowski’s Tech the Future essay, “Open-Source Hardware for the Efficient Economy” (p. 80). They are thoughtful visionaries at the forefront of a global open-source hardware project. You’ll find their work exciting and inspirational.

Stuart Ball’s Dip Meter

On page 20, Stuart Ball describes the process of designing a digital dip meter. It’s a go-to tool for checking a device’s resonant frequency, or you can use it as a signal source to tune receivers. Ball used a microcontroller to digitize the dip meter’s display.

Interested in 3-D technology? William Meyers and Guo Jie Chin’s 3-D Paint project (p. 26) is a complete hardware and software package that uses free space as a canvas and enables you to draw in 3-D by measuring ultrasonic delays. They used a PC and MATLAB to capture movements and return them in real time.

This month we’re running the third article in Richard Lord’s series, “Digital Camera Controller” (p. 32). He covers the process of building a generic front-panel controller for the Photo-Pal flash-trigger camera controller project.

Richard Lord’s front panel CPU

Turn to page 37 for the fifth article in Bob Japenga’s series on concurrency in embedded systems. He covers the portable operating system interface (POSIX), mutex, semaphores, and more.

Check out the interview on page 41 for insight into the interests and work of electrical engineer and graduate student Colin O’Flynn. He describes some of his previous work, as well as his Binary Explorer Board, which he designed in 2012.

Colin O’Flynn’s Binary Explorer Board

In Circuit Cellar 270, George Novacek tackled the topic of failure mode and criticality analysis (FMECA). This month he focuses on fault-tree analysis (p. 46).

Arduino is clearly one of the hottest design platforms around. But how can you use it in a professional-level design? Check out Ed Nisley’s “Arduino Survival Guide” (p. 49).

Standing waves are notoriously difficult to understand. Fortunately, Robert Lacoste prepared an article on the topic that covers an experimental platform and measurements (p. 54).

This month’s article from the archives relates directly to the issue’s wireless technology theme. On page 60 is Roy Franz’s 2003 article about his WiFi SniFi design, which can locate wireless networks and then display “captured” packet information.

If you like this issue’s cover, you’ll have to check out Jeff Bachiochi’s article on QR coding (p. 68). He provides an excellent analysis of the technology from a pro engineer’s point of view.

Circuit Cellar 271 is now available.

CC25 Is Now Available

Ready to take a look at the past, present, and future of embedded technology, microcomputer programming, and electrical engineering? CC25 is now available.

Check out the issue preview.

We achieved three main goals by putting together this issue. One, we properly documented the history of Circuit Cellar from its launch in 1988 as a bi-monthly magazine
about microcomputer applications to the present day. Two, we gathered immediately applicable tips and tricks from professional engineers about designing, programming, and completing electronics projects. Three, we recorded the thoughts of innovative engineers, academics, and industry leaders on the future of embedded technologies ranging from
rapid prototyping platforms to 8-bit chips to FPGAs.

The issue’s content is gathered in three main sections. Each section comprises essays, project information, and interviews. In the Past section, we feature essays on the early days of Circuit Cellar, the thoughts of long-time readers about their first MCU-based projects, and more. For instance, Circuit Cellar‘s founder Steve Ciarcia writes about his early projects and the magazine’s launch in 1988. Long-time editor/contributor Dave Tweed documents some of his favorite projects from the past 25 years.

The Present section features advice from working hardware and software engineers. Examples include a review of embedded security risks and design tips for ensuring system reliability. We also include short interviews with professionals about their preferred microcontrollers, current projects, and engineering-related interests.

The Future section features essays by innovators such as Adafruit Industries founder Limor Fried, ARM engineer Simon Ford, and University of Utah professor John Regehr on topics such as the future of DIY engineering, rapid prototyping, and small-RAM devices. The section also features two different sets of interviews. In one, corporate leaders such as Microchip Technology CEO Steve Sanghi and IAR Systems CEO Stefan Skarin speculate on the future of embedded technology. In the other, engineers such as Stephen Edwards (Columbia University) offer their thoughts about the technologies that will shape our future.

As you read the issue, ask yourself the same questions we asked our contributors: What’s your take on the history of embedded technology? What can you design and program today? What do you think about the future of embedded technology? Let us know.

Electrical Engineer Crossword (Issue 271)

The answers to Circuit Cellar’s February electronics engineering crossword puzzle are now available.


3.            CONFORMALCOATING—Used on PCBs intended for extreme environments [two words]

4.            LOOP—An often repetitious code sequence

7.            VUMETER—Measures program volume [two words]

8.            GALVANOMETER—An electric current identifier

10.         FACTORIAL—“n!”

11.         DIPMETER—Evaluates radio frequency circuits [two words]

13.         REEDSOLOMON—Non-binary code [two words]

16.         SHOCKLEY—One of a group of three co-inventors who, in 1956, were awarded the Nobel Prize in Physics for creating the transistor

18.         SUBSTRATE—An insulating board’s surface

19.         TELEPHONY—Concept proposed by Belgian engineer Charles Bourseul in 1856

20.         ACTUATOR—Electric motors and loudspeakers, for example



1.            TORODIAL—A type of inductor or transformer whose windings form a closed circular tube

2.            POTENTIOMETER—May be used to control volume on audio equipment

5.            PIEZOELECTRICITY—Often used to produce and detect high voltages, sound, and electronic frequency generation

6.            OCCAMPROCESS—An electronic circuit board manufacturing method [two words]

9.            FLYWHEEL—An energy-storing device

12.         MONOBLOCK—A single-channel power amp with high current power

14.         RELIABILITY—Quality over time

15.         MICROMETER—Used to measure small objects’ thickness

17.         EISLER—Austrian engineer (1907–992) credited with inventing the printed circuit