CC279: What’s Ahead in the October Issue

Although we’re still in September, it’s not too early to be looking forward to the October issue already available online.

The theme of the issue is signal processing, and contributor Devlin Gualtieri offers an interesting take on that topic.

Gualtieiri, who writes a science and technology blog, looks at how to improve Improvig Microprocessor Audio microprocessor audio.

“We’re immersed in a world of beeps and boops,” Gualtieri says. “Every digital knick-knack we own, from cell phones to microwave ovens, seeks to attract our attention.”

“Many simple microprocessor circuits need to generate one, or several, audio alert signals,” he adds. “The designer usually uses an easily programmed square wave voltage as an output pin that feeds a simple piezoelectric speaker element. It works, but it sounds awful. How can microprocessor audio be improved in some simple ways?”

Gualtieri’s article explains how analog circuitry and sine waves are often a better option than digital circuitry and square waves for audio alert signals.

Another article that touches on signal processing is columnist Colin Flynn’s look at advanced methods of debugging an FPGA design. It’s the debut of his new column Programmable Logic in Practice.

“This first article introduces the use of integrated logic analyzers, which provide an internal view of your running hardware,” O’Flynn says. “My next article will continue this topic and show you how hardware co-simulation enables you to seamlessly split the verification between real hardware interfacing to external devices and simulated hardware on your computer.”

You can find videos and other material that complement Colin’s articles on his website.

Another October issue highlight is a real prize-winner. The issue features the first installment of a two-part series on the SunSeeker Solar Array Tracker, which won third SunSeekerplace in the 2012 DesignSpark chipKit challenge overseen by Circuit Cellar.

The SunSeeker, designed by Canadian Graig Pearen, uses a Microchip Technology chipKIT Max32 and tracks, monitors, and adjusts PV arrays based on weather and sky conditions. It measures PV and air temperature, compiles statistics, and communicates with a local server that enables the SunSeeker to facilitate software algorithm development. Diagnostic software monitors the design’s motors to show both movement and position.

Pearen, semi-retired from the telecommunications industry and a part-time solar technician, is still refining his original design.

“Over the next two to three years of development and field testing, I plan for it to evolve into a full-featured ‘bells-and-whistles’ solar array tracker,” Pearen says. “I added a few enhancements as the software evolved, but I will develop most of the additional features later.”

Walter Krawec, a PhD student studying Computer Science at the Stevens Institute of Technology in Hoboken, NJ, wraps up his two-part series on “Experiments in Developmental Robotics.”

In Part 1, he introduced readers to the basics of artificial neural networks (ANNs) in robots and outlined an architecture for a robot’s evolving neural network, short-term memory system, and simple reflexes and instincts. In Part 2, Krawec discusses the reflex and instinct system that rewards an ENN.

“I’ll also explain the ‘decision path’ system, which rewards/penalizes chains of actions,” he says. “Finally, I’ll describe the experiments we’ve run demonstrating this architecture in a simulated environment.”

Videos of some of Krawec’s robot simulations can be found on his website.

Speaking of robotics, in this issue columnist Jeff Bachiochi introduces readers to the free robot control programming language RobotBASIC and explains how to use it with an integrated simulator for robot communication.

Other columnists also take on a number of very practical subjects. Robert Lacoste explains how inexpensive bipolar junction transistors (BJTs) can be helpful in many designs and outlines how to use one to build an amplifier.

George Novacek, who has found that the cost of battery packs account for half the DIY Battery Chargerpurchase price of his equipment, explains how to build a back-up power source with a lead-acid battery and a charger.

“Building a good battery charger is easy these days because there are many ICs specifically designed for battery chargers,” he says.

Columnist Bob Japenga begins a new series looking at file systems available on Linux for embedded systems.

“Although you could build a Linux system without a file system, most Linux systems will have some sort of file system,” Japenga says. “And there are various types. There are files systems that do not retain their data (volatile) across power outages (i.e., RAM drives). There are nonvolatile read-only file systems that cannot be changed (e.g., CRAMFS). And there are nonvolatile read/write file systems.”

Linux provides all three types of file systems, Japenga says, and his series will address all of them.

Finally, the magazine offers some special features, including an interview with Alenka Zajić, who teaches signal processing and electromagnetics at Georgia Institute of Technology’s School of Electrical and Computer Engineering. Also, two North Carolina State University researchers write about advances in 3-D liquid metal printing and possible applications such as electrical wires that can “heal” themselves after being severed.

For more, check out the Circuit Cellar’s October issue.



Jesper Poulsen Wins the CC Code Challenge (Week 15)

We have a winner of last week’s CC Weekly Code Challenge, sponsored by IAR Systems! We posted a code snippet with an error and challenged the engineering community to find the mistake!

Congratulations to Jesper Poulsen of København, Denmark for winning the CC Weekly Code Challenge for Week 15! Jesper will receive a CCGold Issues Archive.

Jesper’s correct answer was randomly selected from the pool of responses that correctly identified an error in the code. Jesper answered:

Line 23: Should be 0..@list-2 to avoid array overrun when taking $list[$i+1]


You can see the complete list of weekly winners and code challenges here.

What is the CC Weekly Code Challenge?
Each week, Circuit Cellar’s technical editors purposely insert an error in a snippet of code. It could be a semantic error, a syntax error, a design error, a spelling error, or another bug the editors slip in. You are challenged to find the error.Once the submission deadline passes, Circuit Cellar will randomly select one winner from the group of respondents who submit the correct answer.

Inspired? Want to try this week’s challenge? Get started!

Submission Deadline: The deadline for each week’s challenge is Sunday, 12 PM ESTRefer to the Rules, Terms & Conditions for information about eligibility and prizes.

CC278: New Issue, New Look, New Media

Over the years, Circuit Cellar editors have learned you simply can’t stand still when your magazine focuses on ever-evolving embedded electronics. So with the September issue, we introduce a dramatic redesign to make the magazine’s look more contemporary and its connection with our website stronger.

The heart of our content is still project pieces and columns. For example, in this issue, Nelson Epp writes about a Rubik’s Cube-solving robot (p. 24), Walter Krawec examines evolving neural networks in robotics (p. 42), and Brian Millier describes how to configure his “Iso-Pi” I/0 board for the Raspberry Pi single-board computer (p. 32).

In addition, our column topics include examining different battery types and their characteristics (p. 48), exploring commodity LED characteristics with a stress tester and an optical output detector (p. 54), and understanding BMP graphical file formats (p. 64).

Speaking of columnists, the September issue introduces a new one—Ayse Coskun, a Boston University assistant professor. Her bimonthly Green Computing column will focus on topics that recognize energy is a “first-order constraint” on any computing system, large or small. So she will be looking at everything from energy-efficient software and hardware-design strategies to electricity cost savings and battery-life extension (p. 60).

Another new feature is CC World (p. 8), which will provide monthly updates on topics of interest to the magazine’s international community of engineers, academics, and students. This month, we touch on the CC Weekly Code Challenge and the designers participating in, the lab-tested, project-sharing site provided by Elektor International Media (EIM).

But our changes are not simply about what you see on the magazine’s pages. This redesign makes it easier for you to connect our print content to related material at

At the end of each article, you’ll discover an easier way to find project files and supporting documents online. You can either type in your browser or use your smartphone to scan the printed QR code.

We hope you enjoy the new look and conveniences.

Ayse Coskun and Green Computing

Green computing can mean different things to different people—and interests.

Environmental organizations tend to embrace the definition of green computing that stresses practices that lead to efficient and eco-friendly use of computing resources.

But businesses are also interested in green computing, particularly when it creates energy efficiencies that reduce their costs.

So, the topic is a hot one. And with that in mind, next month Circuit Cellar will introduce a bimonthly Green Computing column written by Ayse Coskun.

Coskun, who has MS and PhD degrees in Computer Science and Engineering, is an assistant professor in the Electrical and Computer Engineering Department at Boston University. Her research interests include temperature and energy management, 3-D stack architectures, computer architecture, and embedded systems. You can find out even more about her by checking out our interview published in July 2012.

Coskun will address a wide range of topics in her columns. “I will be writing about energy-efficient software and hardware design strategies, opportunities for electricity cost savings and battery-life extension, system-level policies for energy and thermal management, and smart infrastructures for improving efficiency,” she says.

Her September column focuses on energy-efficient cooling strategies for servers, which require striking a balance between cooling energy and leakage power. “You can reduce the cooling energy used by enabling the processor temperatures to rise within safe limits, “ she says.  “However, leakage power increases at high temperatures and can cause excessive energy waste. “

Her column explains how  to experimentally analyze the trade-off between a server’s cooling and leakage and how to use that analysis to design energy-efficient cooling strategies—not only for servers, but for computing systems in general.

For more details, be sure to check out her debut column in the September issue.

An experimental setup for enabling customized fan control for a commercial server.



Microcontroller-Based, Cube-Solving Robot

Cube Solver in ActionCanadian Nelson Epp has earned degrees in physics and electrical engineering. But as a child, he was stumped by the Rubik’s Cube puzzle. So, as an adult, he built a Rubik’s Cube-solving robot that uses a Parallax Propeller microcontroller and a 52-move algorithm to solve the 3-D puzzle.

Designing and completing the robot wasn’t easy. Epp says he originally used a “gripper”-type robot that was “a complete disaster.” Then he experimented with different algorithms–”human memorizable ones”—before settling on a solution method developed by mathematician Morwen Thistlethwaite. (The algorithm is based on the mathematical concepts of a group, a subgroup, and generator and coset representatives.)

Nelson also developed a version of his Rubik’s Cube solver that used neural networks to analyze the cube’s colors, but that worked only half the time.

So, considering the time he had to spend on project trial and error (and his obligations to work, family, and pets), it took about six years to complete the robot. He writes about the results in the September issue of Circuit Cellar magazine. 

Here, he describes some of the choices he made in hardware components.

“The cube solver hardware uses two external power supplies: 5 VDC for the servomotors and 12 VDC for the remaining circuits. The 12-VDC power supply feeds a Texas Instruments (TI) UA78M33 and a UA78M05 linear regulator. The UA78M05 regulator powers an Electronics123 C3088 camera board. The UA78M33 regulator powers a Maxim Integrated MAX3232 ECPE RS-232 transceiver, a Microchip Technology 24LC256 CMOS serial EEPROM, remote reset circuitry, the Propeller, a SD/MMC card, the camera board’s digital output circuitry, and an ECS ECS-300C-160 oscillator. The images at right show my cube solver and circuit board.
“The ECS-300C-160 is a self-contained dual-output oscillator that can produce clock signals that are binary fractions of the 16-MHz base signal. My application uses the 8- and 16-MHz clock taps. The Propeller is clocked with the 8-MHz signal and then internally multiplied up to 64 MHz. The 16-MHz signal is fed to the camera.

“I used a MAX3232 transceiver to communicate to the host’s RS-232 port. The Propeller’s serial input pin and serial output pin are only required at startup. After the Propeller starts up, these pins can be used to exchange commands with the host. The Propeller also has pins for serial communication to an EEPROM, which are used during power up when a host is not sending a program.

“The cube-solving algorithm uses the coset representative file stored on an SD card, which is read by the Propeller via a SparkFun Electronics Breakout Board for SD-MMC cards. The Propeller interface to the SD card consists of a chip select, data in, data out, data clock, and power. The chip select is fixed into the active state. The three lines associated with data are wired to the Propeller.

“The Propeller uses a camera to determine the cube’s starting permutation. The C3088 uses an Electronics123 OV6630 color sensor module. I chose the camera because its data format and clocking speed was within the range of the Propeller’s capabilities. The C3088 has jumpers for external or internal clocking.”

To read more about Epp’s design journey—and outcomes—check out Circuit Cellar’s September issue. And click here for a video of his robot at work.