Open-Source Guide for Embedded Systems Developers (EE Tip #114)

What comes to mind when you hear the term “open source”? Hopefully, it means more to you than just a software application running on a PC.

As an embedded systems developer, you should familiarize yourself with the wide range of open-source programs, programming tools, and hardware platforms currently available. In addition to saving yourself the costs of pricey user licenses, you’ll find that open-source community forums helpful, informative, and engaging.

Open-source software offers a number of advantages. The product is independent of a particular manufacturer and there aren’t license costs. Plus, the product is usually high quality because it is often supported by a large active community of users. When a program’s source code is available, you have the chance to fix errors, change its behavior, and even add new features.

The aforementioned advantages should be good enough reasons for any designer of microcontroller applications to work with open-source software. PC tools such as editors, documentation programs, toolchains (for the vast majority of microcontrollers), operating systems, and libraries are widely available with open-source code.

On the hardware side, open-source microcontroller boards are gaining popularity among serious engineers. The circuits, PCBs, and CAD files are available so you can modify them, improve them, and add more features to meet the demands of your applications. It’s an added benefit that open-source hardware is always supported by software code and libraries that enable you to get up and running fairly quickly.

Since we couldn’t include in the space provided all the open-source resources currently available, we simply list several open-source projects that Elektor and Circuit Cellar engineers and editors recommend.

Below we provide the following lists: hardware; libraries and run-time tools; PC tools, and GNU toolchains. By no means are the lists complete. Still, they’re helpful starting points.

Download your Arduino Uno poster

Click image to download a free Arduino Uno poster

Arduino—This popular platform offers a range of simple microcontroller and development boards that you can purchase from several suppliers. The Arduino website has an active forum and the wide range of software examples will ensure that you are up and running in minimum time.

Openmoko—It’s a complete software stack for a smart. The Neo FreeRunner mobile phone is the target hardware platform. Development and debug boards are also available.

GNU Radio & Universal Software Radio Peripheral—The GNU Radio project is a software toolkit to produce a software-defined radio. The open-source hardware for this project is the Universal Software Radio Peripheral (USRPBoard), which is based on an FPGA.

KiCAD—One of the best-known suites of CAD programs for hardware production, KiCAD includes tools for generating circuit diagrams and PCBs. You can view 3-D representations of the finished board.

Fab Lab—This interesting project offers 3-D laser cutters, 3-D printers, and other machines for use by the general public. It’s a handy resource for making robot parts and art objects.

uIP/lwIP—Two outstanding network stacks, the first is for 8-bit microcontrollers. lwIP is a development of the first and more suited to medium sized controllers. The uIP licence is not so strict allowing the stack to be used in commercial products.

LUFA (formally MyUSB)—A large library of applications for interfacing (both Host and Device) USB enabled AVR controllers. The demonstration applications allow an AVR controller for example to emulate a keyboard and many other devices (mass storage device, audio I/O etc.)OpenSource2

Crypto-avr-lib—It’s a library of optimized cryptographic routines for the Atmel ATmega controller. Issued under the GPL Version 3 licence. Contact the author for other types of licence.

FreeRTOS—FreeRTOS is a lightweight Real Time kernel which can run on many controller families. It can be used in commercial applications and allows the use of closed-source software.

U-Boot—Universal bootloader with a large range of routines for memory, UART interface, SD card, network and USB etc. Conceived originally as a bootloader but now through comprehensive hardware support can be used as the basis of a C code module.

Embedded Filesystems Library—A useful (FAT) file format, when you are short of memory. The GPL licence includes a clause allowing static linking to the library without public disclosure of your code.

.NET Micro Framework—Now open source this very compact, trimmed down .NET Framework running on diverse ARM platforms. Programmable using the object orientated C variant C#; lots of resources including support for I2C, Ethernet and many more. Helps reduce development time.

Eclipse—This is a good development environment. It has a modular structure which makes it very easy to configure. There are around 1,000 plug-in modules (both open source and commercial) for a range of program languages and target systems.

Kdevelop—Kdevelop is an integrated development environment which should satisfy most power-user needs. Runs in MS Windows, Mac OsX, Linux, Solaris and FreeBSD. Plug-in expandable.

Programmer’s Notepad—A lightweight but efficient editor for writing source code. Allows fast, simple and comfortable program production. Can be expanded with plug-ins.

Doxygen—An intelligent tool which can automatically generate code documentation (C, C++, Java etc.). The programmer provides tags in the source file; Doxygen generates the comprehensive documentation in PDF or HTML format. It can also extract the code structure from undocumented source files.

WinMerge—A good tool for code comparison and code synchronization. The program can also compare the contents of folders/files and display the results in a visual text format that makes it easy to understand.

Tera Term—A terminal program to access COM ports, supports Telnet communication Protocol. A debugging tool to eavesdrop on serial communications.

Note: Toolchains for GNU projects are available most processor architectures AVR, Coldfire, ARM, MIPS, PowerPC and Intel x86. The GNU-toolchain includes not only compilers for C, C++ and in most cases also Java (GCC = GNU Compiler Collection), but also Linkers, Assemblers and Debuggers together with C libraries (libc = C library). The tools are used from within other-open source projects, like WinAVR, which provides a familiar user interface to speed up program development.

Registration Open for Sensors Expo & Conference

Thousands of engineers, scientists, and industry professionals are expected to gather for the 28th Annual Sensors Expo & Conference to assess and discuss the development and deployment of sensors and sensors systems.

The Expo & Conference will take place at The Donald E. Stephens Convention Center in Rosemont, IL, from June 25-June 26, 2014, with pre-conference symposia on June 24. Registration is now open at www.sensorsexpo.com.

This event, exclusively focused on sensor technology, will offer more than 65 technical sessions on the latest solutions to current sensing challenges while exploring the most recent sensing technologies. In addition to two full days of education sessions, attendees can participate in three full-day pre-conference symposia, taking place Tuesday, June 24.  The topics include “Designing MEMS In: How to Engage the Supply Chain,” chaired by Karen Lightman, executive director, MEMS Industry Group; “Energy Harvesting for Powering Wireless Sensors,” chaired by Randy Frank, president, Randy Frank & Associates, Ltd.; and “Making the Internet of Things a Reality: A Toolkit for Designing ‘Smart,’ ” chaired by Will Tu, ARM.

“Our team has been working diligently with our advisory board and partners to develop a stellar program offering nine tracks including Chemical & Gas Sensing, Energy Harvesting for Sensor Applications, Internet of Things, M2M, MEMS, Novel Approaches to Measurement and Detection, Power Management for Sensing Applications, Sensors @ Work, and Wireless, in addition to an expanded trade show floor offering hundreds of top vendors in the industry,” said Wendy Loew, group show director.

Conference program topics include smart power grid monitoring, the future of mobile intelligence with sensor fusion, sensors conditioning, challenges of high temperature sensing, and what you need to know to make your product a success. The Expo Hall provides access to suppliers along with information and education on their sensing products and solutions.

In the Expo Hall, attendees will see the latest sensing technologies and solutions, identify new ways to improve products and expand their functionalities using sensors, and learn about “hot” and cutting-edge technology areas. The Expo Hall will feature exhibitors including Analog Devices, Anaren, GridConnect, Microchip Technology, Mouser Electronics, Parker-Hannifin Corporation, Rowebots, STMicroelectronics, and Wyless.

Metcal Launches New MX-500

MetcalThe latest version of Metcal’s MX-500 soldering and rework system features ground fault interrupt and universal power supply in a new housing. The system is compatible with existing MX-500 products, including MX upgrade kits, tip-cartridges, and accessories.

Built on Metcal’s SmartHeat technology, the new MX-500 retains switchable dual port, 40-W operation. The system provides responsive and highly controlled heating and delivers the exact energy needed to ensure a precise and reliable solder connection.

Contact Metcal for pricing.

Metcal
www.metcal.com

Client Profile: Lauterbach, Inc

1111 Main Street #115
Vancouver, WA 98660

Contact:
sales_us@lauterbach.com

LauterbachFeatured Product: The TRACE32-ICD in-circuit debugger supports a range of on-chip debug interfaces. The debugger’s hardware is universal and enables you to connect to different target processors by simply changing the debug cable. The PowerDebug USB 3.0 can be upgraded with the PowerProbe or the PowerIntergrator to a logic analyzer.

Product Features: The TRACE 32-ICD JTAG debugger has a 5,000-KBps download rate. It features easy high-level Assembler debugging and an interface to all industry-standard compilers. The debugger enables fast download of code to target, OS awareness debugging, and flash programming. It displays internal and external peripherals at a logical level and includes support for hardware breakpoints and trigger (if supported by chip), multicore debugging (SMP and AMP), C and C++, and all common NOR and NAND flash devices.

For more information, visit www.lauterbach.com/bdmusb3.html.

PCB Design Guidelines (EE Tips #113)

Designing a matching printed circuit board (PCB) can be a challenge for many electronics enthusiasts. To help ease the process, Circuit Cellar and Elektor editors compiled a list of tips for laying out components, routing, and more.PCB1

  • When compactness is not a major consideration and the boards will be assembled by hand, through-hole components are the better choice. In this case you can use the pins of these components as “vias.”
  • On the other hand, surface-mount components can save a whole load of drilling on self-made PCBs. They make it simpler to achieve objectives such as minimum length for traces , minimal area inside trace loops, etc.
  • The orientation of components should consider not only simplicity of assembly but also the need to test the circuitry afterward. This is the time to remember the need for test points!
  • The place for switches, press buttons, plug-in connectors, LEDs and other user-interface components is outside the enclosure. Anything requiring subsequent access should be on the front panel of the case.
  • Components that require assembling with the right polarity should all have the same orientation.
  • Manual routing is preferable to using the autorouter. The latter has its uses nevertheless for discovering bottlenecks and other critical points.
  • When routing, never even think about giving up! Many PCBs appear “unroutable” at the outset, yet after a while it turns out you have plenty of space to spare.
  • If you’re not satisfied with your efforts, it’s better to go back a step or two rather than just muddle onwards.
  • Complete the routing for each of the functional groups of the circuit first. Link the groups together only after you have finished this stage.
  • Short traces are better than long ones. High impedance connections are more sensitive to interference and for this reason require to be kept as short as possible.
  • Where traces form a loop, their surface area should be kept to an absolute minimum.
  • Decoupling capacitors must be located as close as possible to the switching element that needs to be decoupled.
  • Traces carrying signals should be routed early on (first the short ones, then the long ones). Except, that is, when the power supply traces are particularly critical.
  • Bus lines should be routed alongside one another.
  • Separate analog circuitry from digital whenever possible.PCB2
  • On multilayer boards arrange traces carrying signals so that one of the layers hosts the vertical traces and another one accommodates the horizontal ones.
  • If possible, reserve one layer or side exclusively for a continuous ground plane. Only in exceptional situations, e.g. with high speed op-amps, is this undesirable.
  • Keep traces carrying heavy currents well away from sensitive pickups, sensors and so on.
  • Beginners should take special care with mains and high voltages!
  • Ground and earth traces require exactly the same consideration as the power supply traces. Electromagnetic interference can be minimized by keeping the power and ground traces parallel (or better still arranged over each other on either side of a double-sided board).
  • Bends should be no more than 45°. Sharp angles between the traces and the pads are also to be avoided.
  • Observe PCB manufacturers’ requirements without exception in order to avoid unpleasant surprises later.
  • If you are using software for checking conformity to specifications, carry out these checks regularly at each design phase.
  • A border of 0.12″ (approximately 3 mm) around the edge of the PCB should be kept entirely clear of components.
  • If components are to be inserted by machine you must provide at least three location marks.
  • Don’t forget the holes for fixing screws or pillars!
  • Don’t skimp on text markings on the PCB: indicate polarity, voltages, on-board functions, part designation, design date, version number…
  • Check not just twice but three times that all components will actually fit the PCB!
  • Leave time at the end of the process for tidying up and optimizing.

Good luck!

Hand-Held DSOs for Industrial Applications

B&KThe 2510 Series hand-held digital storage oscilloscopes (DSOs) includes 60- and 100-MHz bandwidth models in non-isolated and isolated designs. The portable, dual-channel DSOs provide floating measurement capabilities with built-in digital multimeter (DMM) and recorder functions.

Models 2511 and 2512 provide non-isolated 300-V CAT II-rated inputs and are well suited for general electronics. Designed for industrial applications, models 2515 and 2516 provide two fully isolated 1,000-V CAT II/600-V CAT III-rated inputs and feature fully isolated channels for safe and accurate floating measurements.

All 2510 Series models offer 5.7” color displays, a built-in 6,000-count DMM with dedicated terminals for current measurement, and oscilloscope/meter trend plot functions to log measurement values. You can use the DSOs to capture and record up to two voltage or time parameters or graph any of the DMM’s measurements, including DC/AC voltage and current, resistance, capacitance, diode, and continuity testing.

The 2510 Series’ additional features include digital filtering with adjustable limits, 32 automatic measurements, FFT and math functions, a multi-language interface, and USB connectivity for remote PC control. A side-panel USB host port is available to save setups, waveform data, screenshots, or CSV files to a USB flash drive.

Each model weighs approximately 3.4 lb with the included rechargeable lithium-ion battery and can provide up to 4 h of continuous battery operation. The DSOs include two high-bandwidth safety-rated passive probes and a pair of DMM test leads. Models 2515 and 2516 include a hard plastic carry case accessory. The 2510 Series models are backed by a standard three-year warranty. The model 2511 (60 MHz, two non-isolated Ch, 300 V CAT II) costs $935.

The model 2512 (100 MHz, two non-isolated Channel, 300 V CAT II) costs $1,125. The model 2515 (60 MHz, two isolated Channel, 1,000 V CAT II, 600 V CAT III) costs $2,165. The model 2516 (100 MHz, two isolated Channel, 1,000 V CAT II, 600 V CAT III) costs $2,395.

B&K Precision Corp.
www.bkprecision.com

Gordon Margulieux Wins the CC Code Challenge (Week 29)

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 Gordon Margulieux of Oregon, United States for winning the CC Weekly Code Challenge for Week 29! Gordon will receive an Elektor 2012 & 2011 Archive DVD.

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

Line 10: Conditional should be “if (number == 0)” instead of number < 0

2013_code_challenge_29_answer

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 EST. Refer to the Rules, Terms & Conditions for information about eligibility and prizes.

Electrical Engineering Crossword (Issue 282)

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

282-Crossword-key

Across

4.    VENNDIAGRAM—Represents many relation possibilities [two words]
5.    PERSISTRON—Produces a persistent display
9.    CODOMAIN—A set that includes attainable values
12.    HOMOPOLAR—Electrically symmetrical
13.    TRUTHTABLE—Determines a complicated statement’s validity [two words]
17.    POWERCAPPING—Controls either the instant or the average power consumption [two words]
18.    MAGNETRON—The first form, invented in 1920, was a split-anode type
19.    MAGNETICFLUX—F
20.    TURINGCOMPLETE—The Z3 functional program-controlled computer, for example [two words]

Down

1.    CHAOSCOMPUTERCLUB—Well-known European hacker association [three words]
2.    LOGICLEVEL—When binary, it is high and low [two words]
3.    LINEARINTERPOLATION—A simple, but inaccurate, way to convert A/D values into engineering units [two words]
6.    SYNCHRONOUSCIRCUIT—A clock signal ensures this device’s parts are in parallel [two words]
7.    BOARDBRINGUP—Design validation process [three words]
8.    HORNERSRULE—An algorithm for any polynomial order [two words]
10.    MEALY—This machine’s current state and inputs dictate its output values
11.    SQUAREWAVE—It is produced by a binary logic device [two words]
14.    THEREMIN—Its electronic signals can be amplified and sent to a loudspeaker
15.    ABAMPERE—10 A
16.    SCOPEPROBE—Connects test equipment to a DUT [two words]

 

Q&A: Andrew Godbehere, Imaginative Engineering

Engineers are inherently imaginative. I recently spoke with Andrew Godbehere, an Electrical Engineering PhD candidate at the University of California, Berkeley, about how his ideas become realities, his design process, and his dream project. —Nan Price, Associate Editor

Andrew Godbehere

Andrew Godbehere

NAN: You are currently working toward your Electrical Engineering PhD at the University of California, Berkeley. Can you describe any of the electronics projects you’ve worked on?

ANDREW: In my final project at Cornell University, I worked with a friend of mine, Nathan Ward, to make wearable wireless accelerometers and find some way to translate a dancer’s movement into music, in a project we called CUMotive. The computational core was an Atmel ATmega644V connected to an Atmel AT86RF230 802.15.4 wireless transceiver. We designed the PCBs, including the transmission line to feed the ceramic chip antenna. Everything was hand-soldered, though I recommend using an oven instead. We used Kionix KXP74 tri-axis accelerometers, which we encased in a lot of hot glue to create easy-to-handle boards and to shield them from static.

This is the central control belt-pack to be worn by a dancer for CUMotive, the wearable accelerometer project. An Atmel ATmega644V and an AT86RF230 were used inside to interface to synthesizer. The plastic enclosure has holes for the belt to attach to a dancer. Wires connect to accelerometers, which are worn on the dancer’s limbs.

This is the central control belt-pack to be worn by a dancer for CUMotive, the wearable accelerometer project. An Atmel ATmega644V and an AT86RF230 were used inside to interface to synthesizer. The plastic enclosure has holes for the belt to attach to a dancer. Wires connect to accelerometers, which are worn on the dancer’s limbs.

The dancer had four accelerometers connected to a belt pack with an Atmel chip and transceiver. On the receiver side, a musical instrument digital interface (MIDI) communicated with a synthesizer. (Design details are available at http://people.ece.cornell.edu/land/courses/ece4760/FinalProjects/s2007/njw23_abg34/index.htm.)

I was excited about designing PCBs for 802.15.4 radios and making them work. I was also enthusiastic about trying to figure out how to make some sort of music with the product. We programmed several possibilities, one of which was a sort of theremin; another was a sort of drum kit. I found that this was the even more difficult part—not just the making, but the making sense.

When I got to Berkeley, my work switched to the theoretical. I tried to learn everything I could about robotic systems and how to make sense of them and their movements.

NAN: Describe the real-time machine vision-tracking algorithm and integrated vision system you developed for the “Are We There Yet?” installation.

ANDREW: I’ve always been interested in using electronics and robotics for art. Having a designated emphasis in New Media on my degree, I was fortunate enough to be invited to help a professor on a fascinating project.

This view of the Yud Gallery is from the installed camera with three visitors present. Note the specular reflections on the floor. They moved throughout the day with the sun. This movement needed to be discerned from a visitor’s typical movement .

This view of the Yud Gallery is from the installed camera with three visitors present. Note the specular reflections on the floor. They moved throughout the day with the sun. This movement needed to be discerned from a visitor’s typical movement .

For the “Are We There Yet?” installation, we used a PointGrey FireFlyMV camera with a wide-angle lens. The camera was situated a couple hundred feet away from the control computer, so we used a USB-to-Ethernet range extender to communicate with the camera.

We installed a color camera in a gallery in the Contemporary Jewish Museum in San Francisco, CA. We used Meyer Sound speakers with a high-end controller system, which enabled us to “position” sound in the space and to sweep audio tracks around at (the computer’s programmed) will. The Meyer Sound D-Mitri platform was controlled by the computer with Open Sound Control (OSC).

This view of the Yud Gallery is from the perspective of the computer running the analysis. This is a probabilistic view, where the brightness of each pixel represents the “belief” that the pixel is part of an interesting foreground object, such as a pedestrian. Note the hot spots corresponding nicely with the locations of the visitors in the image above.

This view of the Yud Gallery is from the perspective of the computer running the analysis. This is a probabilistic view, where the brightness of each pixel represents the “belief” that the pixel is part of an interesting foreground object, such as a pedestrian. Note the hot spots corresponding nicely with the locations of the visitors in the image above.

The hard work was to then program the computer to discern humans from floors, furniture, shadows, sunbeams, and cloud reflections. The gallery had many skylights, which made the lighting very dynamic. Then, I programmed the computer to keep track of people as they moved and found that this dynamic information was itself useful to determine whether detected color-perturbance was human or not.

Once complete, the experience of the installation was beautiful, enchanting, and maybe a little spooky. The audio tracks were all questions (e.g., “Are we there yet?”) and they were always spoken near you, as if addressed to you. They responded to your movement in a way that felt to me like dancing with a ghost. You can watch videos about the installation at www.are-we-there-yet.org.

The “Are We There Yet?” project opens itself up to possible use as an embedded system. I’ve been told that the software I wrote works on iOS devices by the start-up company Romo (www.kickstarter.com/projects/peterseid/romo-the-smartphone-robot-for-everyone), which was evaluating my vision-tracking code for use in its cute iPhone rover. Further, I’d say that if someone were interested, they could create a similar pedestrian, auto, pet, or cloud-tracking system using a Raspberry Pi and a reasonable webcam.

I may create an automatic cloud-tracking system to watch clouds. I think computers could be capable of this capacity for abstraction, even though we think of the leisurely pastime as the mark of a dreamer.

NAN: Some of the projects you’ve contributed to focus on switched linear systems, hybrid systems, wearable interfaces, and computation and control. Tell us about the projects and your research process.

ANDREW: I think my research is all driven by imagination. I try to imagine a world that could be, a world that I think would be nice, or better, or important. Once I have an idea that captivates my imagination in this way, I have no choice but to try to realize the idea and to seek out the knowledge necessary to do so.

For the wearable wireless accelerometers, it began with the thought: Wouldn’t it be cool if dance and music were inherently connected the way we try to make it seem when we’re dancing? From that thought, the designs started. I thought: The project has to be wireless and low power, it needs accelerometers to measure movement, it needs a reasonable processor to handle the data, it needs MIDI output, and so forth.

My switched linear systems research came about in a different way. As I was in class learning about theories regarding stabilization of hybrid systems, I thought: Why would we do it this complicated way, when I have this reasonably simple intuition that seems to solve the problem? I happened to see the problem a different way as my intuition was trying to grapple with a new concept. That naive accident ended up as a publication, “Stabilization of Planar Switched Linear Systems Using Polar Coordinates,” which I presented in 2010 at Hybrid Systems: Computation and Control (HSCC) in Stockholm, Sweden.

NAN: How did you become interested in electronics?

ANDREW: I always thought things that moved seemingly of their own volition were cool and inherently attention-grabbing. I would think: Did it really just do that? How is that possible?

Andrew worked on this project when computers still had parallel ports. a—This photo shows manually etched PCB traces for a digital EKG (the attempted EEG) with 8-bit LED optoisolation. The rainbow cable connects to a computer’s parallel port. The interface code was written in C++ and ran on DOS. b—The EKG circuitry and digitizer are shown on the left. The 8-bit parallel computer interface is on the right. Connecting the two boards is an array of coupled LEDs and phototransistors, encased in heat shrink tubing to shield against outside light.

Andrew worked on this project when computers still had parallel ports. a—This photo shows manually etched PCB traces for a digital EKG (the attempted EEG) with 8-bit LED optoisolation. The rainbow cable connects to a computer’s parallel port. The interface code was written in C++ and ran on DOS. b—The EKG circuitry and digitizer are shown on the left. The 8-bit parallel computer interface is on the right. Connecting the two boards is an array of coupled LEDs and phototransistors, encased in heat shrink tubing to shield against outside light.

Electric rally-car tracks and radio-controlled cars were a favorite of mine. I hadn’t really thought about working with electronics or computers until middle school. Before that, I was all about paleontology. Then, I saw an episode of Scientific American Frontiers, which featured Alan Alda excitedly interviewing RoboCup contestants. Watching RoboCup [a soccer game involving robotic players], I was absolutely enchanted.

While my childhood electronic toys moved and somehow acted as their own entities, they were puppets to my intentions. Watching RoboCup, I knew these robots were somehow making their own decisions on-the-fly, magically making beautiful passes and goals not as puppets, but as something more majestic. I didn’t know about the technical blood, sweat, and tears that went into it all, so I could have these romantic fantasies of what it was, but I was hooked from that moment.

That spurred me to apply to a specialized science and engineering high school program. It was there that I was fortunate enough to attend a fabulous electronics class (taught by David Peins), where I learned the basics of electronics, the joy of tinkering, and even PCB design and assembly (drilling included). I loved everything involved. Even before I became academically invested in the field, I fell in love with the manual craft of making a circuit.

NAN: Tell us about your first design.

ANDREW: Once I’d learned something about designing and making circuits, I jumped in whole-hog, to a comical degree. My very first project without any course direction was an electroencephalograph!

I wanted to make stuff move on my computer with my brain, the obvious first step. I started with a rough design and worked on tweaking parameters and finding components.

In retrospect, I think that first attempt was actually an electromyograph that read the movements of my eye muscles. And it definitely was an electrocardiograph. Success!

Someone suggested that it might not be a good idea to have a power supply hooked up in any reasonably direct path with your brain. So, in my second attempt, I tried to make something new, so I digitized the signal on the brain side and hooked it up to eight white LEDs. On the other side, I had eight phototransistors coupled with the LEDs and covered with heat-shrink tubing to keep out outside light. That part worked, and I was excited about it, even though I was having some trouble properly tuning the op-amps in that version.

NAN: Describe your “dream project.”

ANDREW: Augmented reality goggles. I’m dead serious about that, too. If given enough time and money, I would start making them.

I would use some emerging organic light-emitting diode (OLED) technology. I’m eyeing the start-up MicroOLED (www.microoled.net) for its low-power “near-to-eye” display technologies. They aren’t available yet, but I’m hopeful they will be soon. I’d probably hook that up to a Raspberry Pi SBC, which is small enough to be worn reasonably comfortably.

Small, high-resolution cameras have proliferated with modern cell phones, which could easily be mounted into the sides of goggles, driving each OLED display independently. Then, it’s just a matter of creativity for how to use your newfound vision! The OpenCV computer vision library offers a great starting point for applications such as face detection, image segmentation, and tracking.

Google Glass is starting to get some notice as a sort of “heads-up” display, but in my opinion, it doesn’t go nearly far enough. Here’s the craziest part—please bear with me—I’m willing to give up directly viewing the world with my natural eyes, I would be willing to have full field-of-vision goggles with high-resolution OLED displays with stereoscopic views from two high-resolution smartphone-style cameras. (At least until the technology gets better, as described in Rainbows End by Vernor Vinge.) I think, for this version, all the components are just now becoming available.

Augmented reality goggles would do a number of things for vision and human-computer interaction (HCI). First, 3-D overlays in the real world would be possible.

Crude example: I’m really terrible with faces and names, but computers are now great with that, so why not get a little help and overlay nametags on people when I want? Another fascinating thing for me is that this concept of vision abstracts the body from the eyes. So, you could theoretically connect to the feed from any stereoscopic cameras around (e.g., on an airplane, in the Grand Canyon, or on the back of some wild animal), or you could even switch points of view with your friend!

Perhaps reality goggles are not commercially viable now, but I would unabashedly use them for myself. I dream about them, so why not make them?

RF Switch for TVs, Set-Top Boxes, and DVRs

PeregrineThe PE42721 is an absorptive 75-Ω single pole, double throw (SPDT) RF switch developed on Peregrine’s UltraCMOSprocess technology. The Peregrine HaRP technology-enhanced switch is well suited for designers of digital TV (DTV) tuner modules, cable TV (CATV) signal switching and distribution systems, multi-tuner DVRs, and set-top boxes.

The switch is ideal for geographic markets (e.g., China, Japan, Korea, and Latin America) where broadband-TV devices must accommodate multiple RF inputs for cable, satellite, and terrestrial reception while avoiding interference among these signals. The PE42721 switch’s isolation is very high; therefore only one tuner chip is needed in each device.
The PE42721 switch pairs the high isolation with low insertion loss, which improves the signal fidelity by reducing the signal-to-noise ratio (SNR). This feature also helps the switch deliver best-in-class linearity and electrostatic-discharge (ESD) performance.

The PE42721 provides isolation of greater than 55 dB across the entire broad-frequency range from 5 MHz to 2.2 GHz. The 3-mm × 3-mm switch supports 1.8- and 3.3-V control logic and RoHS-compliant packaging.

The PE42721 costs $0.45 each in 10,000-unit quantities. Evaluation kit boards cost $95.

Peregrine Semiconductor Corp.
www.psemi.com

AMD Embedded G-Series SoC Solution

AvalueThe ECM-KA SBC is powered by the AMD Embedded G-Series 1st generation system-on-chip (SoC) accelerated processing unit (APU) based on 28-nm design technology. The AMD processors are built on Jaguar microarchitecture and integrate Quad-core CPU and next-generation graphics core.

The small-footprint ECM-KA provides extremely low power consumption, high graphic performance, multimedia, and I/O. The SBC is designed for embedded applications including industrial controls and automation, gaming, thin clients, retail/digital signage, SMB storage server, surveillance, medical, communication, entertainment, and data acquisition.

The ECM-KA supports one 204-pin DDR3 SODIMM socket that supports up to 8 GB DDR3 1600 SDRAM. It also supports dual-channel 18-/24-bit LVDS as well as HDMI, LVDS, and VGA multi-display configurations. The I/O deployment includes two SATA III, one mini PCIe, one CF, two USB 3.0, six USB 2.0, two COM, 8-bit DIO, and 2-Gb Ethernet. Multiple OS support including Windows 8, Windows 7, and Linux can be used in various embedded designs.

Contact Avalue for pricing.

Avalue Technology, Inc.
www.avalue.com.tw

MCU-Based Projects and Practical Tasks

Circuit Cellar’s January issue presents several microprocessor-based projects that provide useful tools and, in some cases, entertainment for their designers.

Our contributors’ articles in the Embedded Applications issue cover a hand-held PIC IDE, a real-time trailer-monitoring system, and a prize-winning upgrade to a multi-zone audio setup.

Jaromir Sukuba describes designing and building the PP4, a PIC-to-PIC IDE system for programming and debugging a Microchip Technology PIC18. His solar-powered,

The PP4 hand-held PIC-to-PIC programmer

The PP4 hand-held PIC-to-PIC programmer

portable computing device is built around a Digilent chipKIT Max32 development platform.

“While other popular solutions can overshadow this device with better UI and OS, none of them can work with 40 mW of power input and have fully in-house developed OS. They also lack PP4’s fun factor,” Sukuba says. “A friend of mine calls the device a ‘camel computer,’ meaning you can program your favorite PIC while riding a camel through endless deserts.”

Not interested in traveling (much less programming) atop a camel? Perhaps you prefer to cover long distances towing a comfortable RV? Dean Boman built his real-time trailer monitoring system after he experienced several RV trailer tire blowouts. “In every case, there were very subtle changes in the trailer handling in the minutes prior to the blowouts, but the changes were subtle enough to go unnoticed,” he says.

Boman’s system notices. Using accelerometers, sensors, and a custom-designed PCB with a Microchip Technology PIC18F2620 microcontroller, it continuously monitors each trailer tire’s vibration and axle temperature, displays that information, and sounds an alarm if a tire’s vibration is excessive.  The driver can then pull over before a dangerous or trailer-damaging blowout.

But perhaps you’d rather not travel at all, just stay at home and listen to a little music? This issue includes Part 1 of Dave Erickson’s two-part series about upgrading his multi-zone home audio system with an STMicroelectronics STM32F100 microprocessor, an LCD, and real PC boards. His MCU-controlled, eight-zone analog sound system won second-place in a 2011 STMicroelectronics design contest.

In addition to these special projects, the January issue includes our columnists exploring a variety of  EE topics and technologies.

Jeff Bachiochi considers RC and DC servomotors and outlines a control mechanism for a DC motor that emulates a DC servomotor’s function and strength. George Novacek explores system safety assessment, which offers a standard method to identify and mitigate hazards in a designed product.

Ed Nisley discusses a switch design that gives an Arduino Pro Mini board control over its own power supply. He describes “a simple MOSFET-based power switch that turns on with a push button and turns off under program control: the Arduino can shut itself off and reduce the battery drain to nearly zero.”

“This should be useful in other applications that require automatic shutoff, even if they’re not running from battery power,” Nisley adds.

Ayse K. Coskun discusses how 3-D chip stacking technology can improve energy efficiency. “3-D stacked systems can act as energy-efficiency boosters by putting together multiple chips (e.g., processors, DRAMs, other sensory layers, etc.) into a single chip,” she says. “Furthermore, they provide high-speed, high-bandwidth communication among the different layers.”

“I believe 3-D technology will be especially promising in the mobile domain,” she adds, “where the data access and processing requirements increase continuously, but the power constraints cannot be pushed much because of the physical and cost-related constraints.”

Alvin Schurman Wins the CC Code Challenge (Week 28)

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 Alvin Schurman of Florida, United States for winning the CC Weekly Code Challenge for Week 27! Alvin will receive a CC T-Shirt and a one year digital subscription/renewal.

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

Line #35: Missing “, terminate()” before “after 0 -> ok” to recursively kill all (both) processes before ending

2013_code_challenge_28_answer

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 EST. Refer to the Rules, Terms & Conditions for information about eligibility and prizes.

Testing Power Supplies (EE Tip #112)

How can you determine the stability of your lab or bench-top supply? You can get a good impression of the stability of a power supply under various conditions by loading the output dynamically. This can be implemented using just a handful of components.

Power supply testing

Power supply testing

Apart from obvious factors such as output voltage and current, noise, hum and output resistance, it is also important that a power supply has a good regulation under varying load conditions. A standard test for this uses a resistor array across the output that can be switched between two values. Manufacturers typically use resistor values that correspond to 10% and 90% of the rated power output of the supply.

The switching frequency between the values is normally several tens of hertz (e.g. 40 Hz). The behavior of the output can then be inspected with an oscilloscope, from which you can deduce how stable the power supply is. At the rising edge of the square wave you will usually find an overshoot, which is caused by the way the regulator functions, the inductance of the internal and external wiring and any output filter.

This dynamic behavior is normally tested at a single frequency, but the designers in the Elektor Lab have tested numerous lab supplies over the years and it seemed interesting to check what happens at higher switching frequencies. The only items required for this are an ordinary signal generator with a square wave output and the circuit shown in Figure 1.Fig1-pwrsupply

You can then take measurements up to several megahertz, which should give you a really good insight for which applications the power supply is suitable. More often than not you will come across a resonance frequency at which the supply no longer remains stable and it’s interesting to note at which frequency that occurs.

The circuit really is very simple. The power MOSFET used in the circuit is a type that is rated at 80 V/75 A and has an on-resistance of only 10 mΩ (VGS = 10 V).

The output of the supply is continuously loaded by R2, which has a value such that 1/10th of the maximum output current flows through it (R2 = Vmax/0.1/max). The value of R1 is chosen such that 8/10th of the maximum current flows through it (R1 = Vmax/0.8/max). Together this makes 0.9/max when the MOSFET conducts. You should round the calculated values to the nearest E12 value and make sure that the resistors are able to dissipate the heat generated (using forced cooling, if required).

At larger output currents the MOSFET should also be provided with a small heatsink. The gate of the FET is connected to ground via two 100-Ω resistors, providing a neat 50-Ω impedance to the output of the signal generator. The output voltage of the signal generator should be set to a level between 5 V and 10 V, and you’re ready to test. Start with a low switching frequency and slowly increase it, whilst keeping an eye on the square wave on the oscilloscope. And then keep increasing the frequency… Who knows what surprises you may come across? Bear in mind though that the editorial team can’t be held responsible for any damage that may occur to the tested power supply. Use this circuit at your own risk!

— Harry Baggen and Ton Giesberts (Elektor, February 210)

Real-Time Trailer Monitoring System

Dean Boman, a retired electrical engineer and spacecraft communications systems designer, noticed a problem during vacations towing the family’s RV trailer—tire blowouts.

“In every case, there were very subtle changes in the trailer handling in the minutes prior to the blowouts, but the changes were subtle enough to go unnoticed,” he says in his article appearing in January’s Circuit Cellar magazine.

So Boman, whose retirement hobbies include embedded system design, built the trailer monitoring system (TMS), which monitors the vibration of each trailer tire, displays the

Figure 1—The Trailer Monitoring System consists of the display unit and a remote data unit (RDU) mounted in the trailer. The top bar graph shows the right rear axle vibration level and the lower bar graph is for left rear axle. Numbers on the right are the axle temperatures. The vertical bar to the right of the bar graph is the driver-selected vibration audio alarm threshold. Placing the toggle switch in the other position  displays the front axle data.

Photo 1 —The Trailer Monitoring System consists of the display unit and a remote data unit (RDU) mounted in the trailer. The top bar graph shows the right rear axle vibration level and the lower bar graph is for left rear axle. Numbers on the right are the axle temperatures. The vertical bar to the right of the bar graph is the driver-selected vibration audio alarm threshold. Placing the toggle switch in the other position displays the front axle data.

information to the driver, and sounds an alarm if tire vibration or heat exceeds a certain threshold. The alarm feature gives the driver time to pull over before a dangerous or damaging blowout occurs.

Boman’s article describes the overall layout and operation of his system.

“The TMS consists of accelerometers mounted on each tire’s axles to convert the gravitational (g) level vibration into an analog voltage. Each axle also contains a temperature sensor to measure the axle temperature, which is used to detect bearing or brake problems. Our trailer uses the Dexter Torflex suspension system with four independent axles supporting four tires. Therefore, a total of four accelerometers and four temperature sensors were required.

“Each tire’s vibration and temperature data is processed by a remote data unit (RDU) that is mounted in the trailer. This unit formats the data into RS-232 packets, which it sends to the display unit, which is mounted in the tow vehicle.”

Photo 1 shows the display unit. Figure 1 is the complete system’s block diagram.

Figure 1—This block diagram shows the remote data unit accepting data from the accelerometers and temperature sensors and sending the data to the display unit, which is located in the tow vehicle for the driver display.

Figure 1—This block diagram shows the remote data unit accepting data from the accelerometers and temperature sensors and sending the data to the display unit, which is located in the tow vehicle for the driver display.

The remote data unit’s (RDU’s) hardware design includes a custom PCB with a Microchip Technology PIC18F2620 processor, a power supply, an RS-232 interface, temperature sensor interfaces, and accelerometers. Photo 2 shows the final board assembly. A 78L05 linear regulator implements the power supply, and the RS-232 interface utilizes a Maxim Integrated MAX232. The RDU’s custom software design is written in C with the Microchip MPLAB integrated development environment (IDE).

The remote data unit’s board assembly is shown.

Photo 2—The remote data unit’s board assembly is shown.

The display unit’s hardware includes a Microchip Technology PIC18F2620 processor, a power supply, a user-control interface, an LCD interface, and an RS-232 data interface (see Figure 1). Boman chose a Hantronix HDM16216H-4 16 × 2 LCD, which is inexpensive and offers a simple parallel interface. Photo 3 shows the full assembly.

The display unit’s completed assembly is shown with the enclosure opened. The board on top is the LCD’s rear view. The board on bottom is the display unit board.

Photo 3—The display unit’s completed assembly is shown with the enclosure opened. The board on top is the LCD’s rear view. The board on bottom is the display unit board.

Boman used the Microchip MPLAB IDE to write the display unit’s software in C.

“To generate the display image, the vibration data is first converted into an 11-element bar graph format and the temperature values are converted from Centigrade to Fahrenheit. Based on the toggle switch’s position, either the front or the rear axle data is written to the LCD screen,” Boman says.

“To implement the audio alarm function, the ADC is read to determine the driver-selected alarm level as provided by the potentiometer setting. If the vibration level for any of the four axles exceeds the driver-set level for more than 5 s, the audio alarm is sounded.

“The 5-s requirement prevents the alarm from sounding for bumps in the road, but enables vibration due to tread separation or tire bubbles to sound the alarm. The audio alarm is also sounded if any of the temperature reads exceed 160°F, which could indicate a possible bearing or brake failure.”

The comprehensive monitoring gives Boman peace of mind behind the wheel. “While the TMS cannot prevent tire problems, it does provide advance warning so the driver can take action to prevent serious damage or even an accident,” he says.

For more details about Boman’s project, including RDU and display unit schematics, check out the January issue.