How-To Guide for Timing Analysis

Photo 1: I used Timing Diagrammer Pro for the timing analysis of the simplified digital circuit. Note that the gray areas on the waveform denote regions of uncertainty. The red areas show a timing violation.

Although many young engineers have been taught excellent circuit design techniques, most haven’t been schooled about the importance of timing analysis. What is timing analysis? Why is timing analysis important? How do you perform timing analysis? Philip Nowe’s Circuit Cellar … Continue reading


Vintage Programming Languages

PHOTO 1: An online emulator for my old Apple II

For the last 30 years, C has been my programming language of choice. As you probably know, C was invented in the early 1970s by Dennis M. Ritchie for the first UNIX kernel and ran on a DEC PDP-11 computer. I … Continue reading


Bipolar Transistor Biasing

Figure 1
This NPN bipolar junction transistor is wired in the common-emitter configuration, meaning its emitter is grounded. Two basic equations dictate its behavior.

Going back to the basics is never a bad idea. Many electronics engineers are fluent with complex systems—such as microcontrollers, embedded OSes, or FPGAs—but seem to have more difficulties with single transistors. What a shame! A transistor can be a … Continue reading


3-D Object Segmentation for Robot Handling

Photo 1
The InMoov robot built at Portland State University’s robotics lab

A commercial humanoid service robot needs to have capabilities to perform human-like tasks. One such task for a robot in a medical scenario would be to provide medicine to a patient. The robot would need to detect the medicine bottle … Continue reading


Reflections on Software Development

FIGURE 1: Simplified software design process documentation. Testing, verification and validation (V&V) and control documents are not shown.

Present-day equipment relies on increasingly complex software, creating ever-greater demand for software quality and security. The two attributes, while similar in their effects, are different. A quality software is not necessarily secure, while a secure software is not necessarily of … Continue reading


Understanding Embedded Security

Table 1: Take a look at each attacker class compared to available resources. As you can see, each class has specific
capabilities that will play a part in determining your product’s risk of attack.[2]

Protecting products and intellectual property (IP) from attackers is a fairly new concept that many engineers have not yet had to face. It is only a matter of time, though, until products—which are becoming more embedded and integrated with the … Continue reading


Arduino Program Timing

Each of the digitalWrite() functions producing this pulse requires 5.1 µs, roughly 50 instructions, on the 16 MHz ATmega328 microcontroller. The Arduino loop() adds 0.40 µs to the low portion of the waveform.

Ed Nisely explains how output pulses can reveal the progress of invisible firmware routines. After presenting a straightforward way to instrument your code, he covers the detailed timing produced by Arduino statements and functions. While writing the Arduino program for … Continue reading


Analog Tips & Tricks

The top image is the top copper layer from
an EAGLE board design. The bare board shows several
flaws, but the one on the bottom came out fine. The
ruler scales are 0.050″ vertically and 1 mm horizontally.
The board has extremely small features!

Are you looking for ways to improve your analog and RF circuitry? Engineer Ed Nisley provides a few tips for getting started. He shows you how easy it is to take your PCB wiring skills to the next level. Who … Continue reading


Debugging Embedded Systems with Minimal Resources

This is the schematic for a serial port
RS-232 driver. It's a standardized
circuit that plugs into a header on the
board to be debugged.

Debugging an embedded system can be difficult when you’re dealing with either a simple system with few pins or a complex system with nearly every pin in use. Stuart Ball provides some tips to make debugging such systems a little … Continue reading


The Perfect PCB Prototype

Photo 3: Notice that D1 will not actually touch J2, as the PCB layout program’s silkscreen outline indicates.

Interested in constructing perfect PCB prototypes? Richard Haendel has the solution for you. In this article, he explains how five simple steps—print, mount, punch, fit, and evaluate—can save you a lot of time and money. The following article first appeared in Circuit Cellar 156. … Continue reading


Minimum Mass Waveform Capture

Photo 1—The only components added to the operating Atmel AT90S2313 circuit needed to allow for waveform sampling with less than 1-μs resolution at 1-V full scale are the capacitor and two resistors. Imagine how small the circuit will be using surface-mount components.

I can capture repetitive waveforms at 1 Msps using a microcontroller’s on-chip PWM and comparator. The impetus for developing this technique came from my own need to capture repetitive waveforms using the least expensive and lowest part count means possible. … Continue reading


Execute Open-Source Arduino Code in a PIC Microcontroller Using the MPLAB IDE

Exercise 1 prototype

The Arduino single-board computer is a de facto standard tool for developing microcomputer applications within the hobbyist and educational communities. It provides an open-source hardware (OSH) environment based on a simple microcontroller board, as well as an open-source (OS) development … Continue reading


Analog Filter Essentials

With a tool like the Analog Filter Wizard (Analog Devices), life is easy

Analog frequency-selective filters are useful for noise reduction, antialiasing before digitizing a signal, frequency response correction, and more. In this article, Circuit Cellar columnist Robert Lacoste explains the differences between filters and how to design them with computer-aided tools.   The following article by Robert Lacoste … Continue reading


The Internet of Things: Cell Modem Certification

Japenga CC305

In the multipart article series, “The Internet of Things,” Bob Japenga details how to connect simple devices wirelessly to the Internet.  This month, he covers at the requirements for, the cost of, and some of the problems with cell modem … Continue reading


An Introduction to Verilog

Figure 1

If you are new to programming FPGAs and CPLDs or looking for a new design language, Kareem Matariyeh has the solution for you. In this article, he introduces you to Verilog. Although the hardware description language has been used in the … Continue reading