Antonios Chorevas Wins the CC Code Challenge (Week 5)

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 Antonios Chorevas of Attiki, Greece, for winning the CC Weekly Code Challenge for Week 5! He’ll receive a CC “Tag Cloud” T-shirt and a hardcopy of the CC25 Anniversary Issue.

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

Line 04: (x*x) must be replaced by ((x)*(x)) because there is problem with the priority of the operations


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.

Electrical Engineering Crossword (Issue 276)

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

3.    CRAY—Seattle, WA-based supercomputer company founded in the 1970s
5.    SUPERSTATE—A subprogram common to several states [two words]
7.    ONESCOMPLIANT—Inverted bits’ value [two words]
11.    BACKPLANE—Lacks processing and storage
13.    FALSECLOCK—Locks on an incorrect frequency [two words]
15.    TERNARY—This signal is capable of taking on one of three conditions
16.    BLUMLEIN—Known for advancements in telecommunications and radar
17.    JABBER—XML messaging protocol (hint: prior to 2000)
18.    DIRECTCURRENT—Zero frequency [two words]
20.    SERIALTRANSFER—Moves data bit by bit [two words]

1.    LYAPUNOV—Theory applies input-to-state (ISS) to systems with inputs
2.    LOWFREQUENCYOSCILLATOR—Produces a frequency below approximately 20 Hz [three words]
4.    HASHING—Security method
6.    SIGNIFICAND—aka, mantissa
8.    THYRISTOR—They have a four-layer N- and P-type construction
9.    HALFADDER—Combines two single binary digits [two words]
10.    DARKTRACE—A type of direct-view bistable storage tube [two words]
12.    FARADAYCAGE—Electric field-buffer [two words]
14.    SYMMETRIC—Uses the same key to code and decode
19.    KAHAN—Helped create the IEEE 754 floating-point computation specification

LED Characterization: An Arduino-Based Curve Tracer

Circuit Cellar columnist Ed Nisley doesn’t want to rely solely on datasheets to understand the values of LEDs in his collection. So he built a curve tracer to measure his LEDs’ specific characteristics.

Why was he so exacting?

“Most of the time, we take small light-emitting diodes for granted: connect one in series with a suitable resistor and voltage source, it lights up, then we expect it to work forever,” he says in his July column in Circuit Cellar. “A recent project prompted me to take a closer look at commodity 5-mm LEDs, because I intended to connect them in series for better efficiency from a fixed DC supply and in parallel to simplify the switching. Rather than depend on the values found in datasheets, I built a simple Arduino-based LED Curve Tracer to measure the actual characteristics of the LEDs I intended to use.”

The Arduino Pro Micro clone in this hand-wired LED Curve Tracer controls the LED current and measures the resulting voltage.

Ed decided to share the curve tracer with his Circuit Cellar readers.

“Even though this isn’t a research-grade instrument, it can provide useful data that helps demonstrate LED operation and shows why you must pay more attention to their needs,” he says.

Ed says that although he thinks of his circuit as an “LED Curve Tracer,” it doesn’t display its data.

“Instead, I create the graphs with data files captured from the Arduino serial port and processed through Gnuplot,” he says. “One advantage of that process is that I can tailor the graphs to suit the data, rather than depend on a single graphic format. One disadvantage is that I must run a program to visualize the measurements. Feel free to add a graphics display to your LED Curve Tracer and write the code to support it!”

He adds that “any circuit attached to an Arduino should provide its own power to avoid overloading the Arduino’s on-board regulator.”

“I used a regulated 7.5 VDC wall wart for both the Arduino Pro Mini board and the LED under test, because the relatively low voltage minimized the power dissipation in the Arduino regulator,” he says. “You could use a 9 VDC or 12 VDC supply.”

To read more about Ed’s curve tracer, check out Circuit Cellar’s July issue.


New Products: July 2013



The USBee QX is a PC-based mixed-signal oscilloscope (MSO) integrated with a protocol analyzer utilizing USB 3.0 and Wi-Fi technology. The highly integrated, 600-MHz MSO features 24 digital channels and four analog channels.

With its large 896-Msample buffer memory and data compression capability, the USBeeQX can capture up to 32 days of traces. It displays serial or parallel protocols in a human-readable format, enabling developers to find and resolve obscure and difficult defects. The MOS includes popular serial protocols (e.g., RS-232/UARTs, SPI, I2C, CAN, SDIO, Async, 1-Wire, and I2S), which are typically costly add-ons for benchtop oscilloscopes. The MOS utilizes APIs and Tool Builders that are integrated into the USBee QX software to support any custom protocol.

The USBee QX’s Wi-Fi capability enables you set up testing in the lab while you are at your desk. The Wi-Fi capability also creates electrical isolation of the device under test to the host computer.

The USBee QX costs $2,495.

CWAV, Inc.


DownStream Technologies FabStream


FabStream is an integrated PCB design and manufacturing solution designed for the DIY electronics market, including small businesses, start-ups, engineers, inventors, hobbyists, and other electronic enthusiasts. FabStream consists of free SoloPCB Design software customized to each manufacturing partner in the FabStream network.

The FabStream service works in three easy steps. First, you log onto the FabStream website (, select a FabStream manufacturing partner, and download the free design software. Next, you create PCB libraries, schematics, and board layouts. Finally, the software leads you through the process of ordering PCBs online with the manufacturer. You only pay for the PCBs you purchase. Because the service is mostly Internet-based, FabStream can be accessed globally and is available 24/7/365.

FabStream’s free SoloPCB Design software includes a commercial-quality schematic capture, PCB layout, and autorouting in one, easy-to-use environment. The software is customized to each manufacturing partner. All of the manufacturer’s production capabilities are built into SoloPCB, enabling you to work within the manufacturers’ constraints. Design changes can be made and then verified through an integrated analyzer that uses a quick pass/fail check to compare the modification to the manufacturer’s rules.

SoloPCB does not contain any CAM outputs. Instead, a secure, industry-standard IPC-2581 manufacturing file is automatically extracted, encrypted, and electronically routed to the manufacturer during the ordering process. The IPC-2581 file contains all the design information needed for manufacturing, which eliminates the need to create Gerber and NC drill files.

FabStream is available as a free download. More information can be found at

DownStream Technologies, LLC


Rohde Schwarz SMW200A


The R&S SMW200A high-performance vector signal generator combines flexibility, performance, and intuitive operation to quickly and easily generate complex, high-quality signals for LTE Advanced and next-generation mobile standards. The generator is designed to simpify complex 4G device testing.

With its versatile configuration options, the R&S SMW200A’s range of applications extends from single-path vector signal generation to multichannel multiple-input and multiple-output (MIMO) receiver testing. The vector signal generator provides a baseband generator, a RF generator, and a real-time MIMO fading simulator in a single instrument.

The R&S SMW200A covers the100 kHz-to-3-GHz, or 6 GHz, frequency range, and features a 160-MHz I/Q modulation bandwidth with internal baseband. The generator is well suited for verification of 3G and 4G base stations and aerospace and defense applications.

The R&S SMW200A can be equipped with an optional second RF path for frequencies up to 6 GHz. It can have a a maximum of two baseband and four fading simulator modules, providing users with two full-featured vector signal generators in a single unit. Fading scenarios, such as 2 × 2 MIMO, 8 × 2 MIMO for TD-LTE, and 2 × 2 MIMO for LTE Advanced carrier aggregation, can be easily simulated.

Higher-order MIMO applications (e.g., 3 × 3 MIMO for WLAN or 4 × 4 MIMO for LTE-FDD) are easily supported by connecting a third and fourth source to the R&S SMW200A. The R&S SGS100A are highly compact RF sources that are controlled directly from the front panel of the R&S SMW200A.

The R&S SMW200A ensures high accuracy in spectral and modulation measurements. The SSB phase noise is –139 dBc (typical) at 1 GHz (20 kHz offset). Help functions are provided for additional ease-of-use, and presets are provided for all important digital standards and fading scenarios. LTE and UMTS test case wizards simplify complex base station conformance testing in line with the 3GPP specification.

Contact Rohde & Schwarz for pricing.

Rohde & Schwarz


Texas Instruments CC2538


The Texas Instruments (TI) CC2538 system-on-chip (SoC) is designed to simplify the development of ZigBee wireless connectivity-enabled smart energy infrastructure, home and building automation, and intelligent lighting gateways. The cost-efficient SoC features an ARM Cortex-M3 microcontroller, memory, and hardware accelerators on one piece of silicon. The CC2538 supports ZigBee PRO, ZigBee Smart Energy and ZigBee Home Automation and lighting standards to deliver interoperability with existing and future ZigBee products. The SoC also uses IEEE 802.15.4 and 6LoWPAN IPv6 networks to support IP standards-based development.

The CC2538 is capable of supporting fast digital management and features scalable memory options from 128 to 512 KB flash to support smart energy infrastructure applications. The SoC sustains a mesh network with hundreds of end nodes using integrated 8-to-32-KB RAM options that are pin-for-pin compatible for maximum flexibility.

The CC2538’s additional benefits include temperature operation up to 125°C, optimization for battery-powered applications using only 1.3 uA in Sleep mode, and efficient processing for centralized networks and reduced bill of materials cost through integrated ARM Cortex-M3 core.

The CC2538 development kit (CC2538DK) provides a complete development platform for the CC2538, enabling users to see all functionality without additional layout. It comes with high-performance CC2538 evaluation modules (CC2538EMK) and motherboards with an integrated ARM Cortex-M3 debug probe for software development and peripherals including an LCD, buttons, LEDs, light sensor and accelerometer for creating demo software. The boards are also compatible with TI’s SmartRF Studio for running RF performance tests. The CC2538 supports current and future Z-Stack releases from TI and over-the-air software downloads for easier upgrades in the field.

The CC2538 is available in an 8-mm x 8-mm QFN56 package and costs $3 in high volumes. The CC2538 is also available through TI’s free sample program. The CC2538DK costs $299.

Texas Instruments, Inc.

CC 276: MCU-Based Prosthetic Arm with Kinect

In its July issue, Circuit Cellar presents a project that combines the technology behind Microsoft’s Kinect gaming device with a prototype prosthetic arm.

The project team and  authors of the article include Jung Soo Kim, an undergraduate student in Biomedical Engineering at Ryerson University in Toronto, Canada, Nika Zolfaghari, a master’s student at Ryerson, and Dr. James Andrew Smith, who specializes in Biomedical Engineering at Ryerson.

“We designed an inexpensive, adaptable platform for prototype prosthetics and their testing systems,” the team says. “These systems use Microsoft’s Kinect for Xbox, a motion sensing device, to track a healthy human arm’s instantaneous movement, replicate the exact movement, and test a prosthetic prototype’s response.”

“Kelvin James was one of the first to embed a microprocessor in a prosthetic limb in the mid-1980s…,” they add. “With the maker movement and advances in embedded electronics, mechanical T-slot systems, and consumer-grade sensor systems, these applications now have more intuitive designs. Integrating Xbox provides a platform to test prosthetic devices’ control algorithms. Xbox also enables prosthetic arm end users to naturally train their arms.”

They elaborate on their choices in building the four main hardware components of their design, which include actuators, electronics, sensors, and mechanical support:

“Robotis Dynamixel motors combine power-dense neodymium motors from Maxon Motors with local angle sensing and high gear ratio transmission, all in a compact case. Atmel’s on-board 8-bit ATmega8 microcontroller, which is similar to the standard Arduino, has high (17-to-50-ms) latency. Instead, we used a 16-bit Freescale Semiconductor MC9S12 microcontroller on an Arduino-form-factor board. It was bulkier, but it was ideal for prototyping. The Xbox system provided high-level sensing. Finally, we used Twintec’s MicroRAX 10-mm profile T-slot aluminum to speed the mechanical prototyping.”

The team’s goal was to design a  prosthetic arm that is markedly different from others currently available. “We began by building a working prototype of a smooth-moving prosthetic arm,” they say in their article.

“We developed four quadrant-capable H-bridge-driven motors and proportional-derivative (PD) controllers at the prosthetic’s joints to run on a MC9S12 microcontroller. Monitoring the prosthetic’s angular position provided us with an analytic comparison of the programmed and outputted results.”

A Technological Arts Esduino microcontroller board is at the heart of the prosthetic arm design.

The team concludes that its project illustrates how to combine off-the-shelf Arduino-compatible parts, aluminum T-slots, servomotors, and a Kinect into an adaptable prosthetic arm.

But more broadly, they say, it’s a project that supports the argument that  “more natural ways of training and tuning prostheses” can be achieved because the Kinect “enables potential end users to manipulate their prostheses without requiring complicated scripting or programming methods.”

For more on this interesting idea, check out the July issue of Circuit Cellar. And for a video from an earlier Circuit Cellar post about this project, click here.