Client Profile: Netburner, Inc

NetBurner, Inc.
5405 Morehouse Drive
San Diego, CA 92121

www.netburner.com

Contact: sales@netburner.com

Embedded Products/Services: The NetBurner solution provides hardware, software, and tools to network enable new and existing products. All components are integrated and fully functional, so you can immediately begin working on your application.

Product Categories:

  • Serial to Ethernet: Modules can be used out of the box with no programming, or you can use a development kit to create your own custom applications. Hardware ranges from a single chip to small modules with many features.
  • Core Modules: Typically used as the core processing module in a design, core modules include the processor, flash, RAM and on-board network capability. The processor pins are brought out to connectors and include functions such as SPI, I2C, address/data bus, ADC, DAC, UARTs, digital I/O, PWM, and CAN.
  • Development Kits: Development kits can be used to customize any of NetBurner’s Serial-to-Ethernet or Core Modules. Kits include the Eclipse IDE, a C/C++ compiler/linker, a debugger, a RTOS, a TCP/IP stack, and board support packages.

Product Information: The MOD54415 and the NANO54415 modules provide 250-MHz processor, up to 32 MB flash, 64 MB DDR, ADC, DAC, eight UARTs, four I2C, three SPI, 1-wire, microSD flash socket, five PWM, and up to 44 digital I/O.

Exclusive Offer: Receive 15% off on select development kits. Promo code: CIRCUITCELLAR


Circuit Cellar prides itself on presenting readers with information about innovative companies, organizations, products, and services relating to embedded technologies. This space is where Circuit Cellar enables clients to present readers useful information, special deals, and more.

ISM Basics (EE Tip #100)

The industrial, scientific, and medical (ISM) bands are radio frequency ranges freely available for industrial, scientific and medical applications, although there are also many devices aimed at private users that operate in these bands. ISM devices require only general type approval and no individual testing.

Source: Wolfgang Rudolph & Burkhard Kainka’s article, “ATM18 on the Air,” 080852, Elektor, 1/2009.

Source: Wolfgang Rudolph & Burkhard Kainka’s article, “ATM18 on the Air,” 080852, Elektor, 1/2009.

The radio communication sector of the International Telecommunication Union (ITUR) defines the ISM bands at an international level. Wi-Fi and Bluetooth operate in ISM bands, as do many radio headphones and remote cameras, although these are not usually described as ISM devices. These devices are responsible for considerable radio communications interference (especially at 433 MHz and at 2.4 GHz).

ITU-R defines the following bands, not all of which are available in every country:

  • 6.765 to 6.795 MHz
  • 13.553 to 13.567 MHz
  • 26.957 to 27.283 MHz
  • 40.66 to 40.70 MHz
  • 433.05 to 434.79 MHz
  • 902 to 928 MHz
  • 2.400 to 2.500 GHz
  • 5.725 to 5.875 GHz
  • 24 to 24.25 GHz

Some countries allocate further ISM bands in addition to those above. ISM applications have the lowest priority within any given band. Many bands available for ISM are shared with other spectrum users: for example the 433 MHz ISM band is shared with 70 cm amateur radio communications.

ISM users must not interfere with other users, but must be able to tolerate the interference to their own communications caused by higher-priority users in the same band. The band from 868 MHz to 870 MHz is often mistakenly characterized as an ISM band. It is nevertheless available to short-range radio devices, such as RFID tags, remote switches, remote alarm systems, and radio modules.

For more information, refer to Wolfgang Rudolph & Burkhard Kainka’s article, “ATM18 on the Air,” 080852, Elektor, 1/2009.

Member Profile: Dean Boman

Dean Boman

Dean Boman

LOCATION:
Chandler, AZ

MEMBER STATUS:
Dean has been a subscriber for about  20 years.

TECH INTERESTS:
Dean enjoys designing and building home automation systems. His current system’s functions include: security system monitoring, irrigation control, water leak detection, temperature and electrical usage monitoring, fire detection, access control, weather and water usage monitoring, solar hot water system control, and security video recording.

MOST RECENT EMBEDDED TECH ACQUISITION:
A Microchip Technology debugger.

CURRENT PROJECTS:
Dean is currently designing a hybrid solar power system to power his home automation system. “The power system will use a processor-controlled dual-input power converter design to harvest the maximum energy possible from the photovoltaic cells and then augment that with utility power as necessary to support the load,” he explained. “The system will be a hybrid between an on-grid and an off-grid system. The hybrid approach was chosen to avoid the regulatory issues with an on-grid system and the cost of batteries in an off-grid system.”

THOUGHTS ON THE FUTURE OF EMBEDDED TECH:
“As more and more capability is being made available to the embedded world, the design opportunities are endless. I particularly find it exciting that network connectivity can now be so easily added to an embedded system so various embedded systems can communicate with each other and with the outside world via the Internet. I am concerned that so many of the new embedded parts are designed with extremely fine pitch leads, which makes DIY assembly with hand soldering a challenge,” he said.

CC278: Evolving Neural Networks in Robotics

ccpostrobotAre you curious about how an evolving neural network helps a robot learn about itself and its environment?

CCKRAWECPOST

A neural network with two inputs, one output, and three hidden neurons.

In the September issue of Circuit Cellar, Walter O. Krawec begins a two-part series that describes an ENN he uses in robot development experiments, explains how short-term memory (STM) evaluates a network’s conditions and how to add data to STM, and discusses how an ENN uses a robot’s minimalistic “instincts” and “reflexes” to guide a robot’s evolution.

Krawec, who has been building robots since 1999, is a research assistant and PhD student in Computer Science at the Stevens Institute of Technology in Hoboken, N.J. The work presented in his two-part series is based on a paper published in the proceedings of the 13th International Artificial Life Conference in 2012.

The overall goal of the Krawec’s experiments in developmental robotics is to enable a robot to learn on its own without human intervention. “An ENN is used to accomplish this,” he says.  “This network will be capable of growing and learning in real time as the robot operates.”

In his series, Krawec presents an architecture he says “enables a robot to ‘grow’ from a naive individual with no knowledge of itself (i.e., no notion of what its sensors are reporting or what its outputs actually do) to one that can operate in an environment.”

“This architecture will consist of an evolving neural network (ENN), a short-term memory (STM), and simple instincts and reflexes.

“Despite a minimal set of instincts, which provide penalties and rewards for certain actions (e.g., crashing into a wall, the robots described in this article sometimes develop complicated and unexpected behaviors. Such behaviors range from following walls (despite the robots’ binary proximity sensors) to games of ‘follow the leader.’…

“This article explores basic artificial neural network (ANN) concepts and outlines the ENN I’m using in this project. This is a neural network that, over time, learns not only by adjusting synaptic weights but also by growing new neurons and new connections (generally resulting in a recurrent neural network). Finally, I’ll discuss the STM system and how it is used to evaluate a network’s fitness.”

The second article in Krawec’s series appears in Circuit Cellar’s October issue.

“In Part 2, I’ll examine the reflex and instinct system, which feeds reward information to an ENN and the ‘decision path’ system, which rewards or penalizes chains of actions,” Krawec says. “Finally, I’ll discuss experiments conducted to demonstrate this architecture in a simulated environment. In particular, I’ll describe some interesting behaviors that robots have developed in trial runs.”

For more, check out Krawec’s articles on “Experiments in Developmental Robotics” in the September and October issues. You will also find information and videos about his work with robots on his website.

 

Internet of Things (IoT) Resources

Here we list several handy resources for engineers interested in the Internet of Things (IoT).IoT-WordCloud

  • The IoT Events site is an easy-to-use resource for find IoT events and meet-ups around the world.
  • The Internet of Things Conference is a resource for information relating to “IoT applications, IoT solutions, IoT example and m2m opportunities in smart cities, connected cars, smart grids, consumer electronics and mobile healthcare.”
  • The IoT Counsel website includes useful info such as bios and contact info for engineers, innovators, and thinkers working on IoT-related projects.
  • Michael Chui, Markus Loffler, and Roger Roberts present a comprehensive article on IoT in the McKinsey Quarterly. While this isn’t a design-centric document, you’ll find it’s an interesting in-depth overview of the technology and its applications.
  • The Business Leaders Network (BLN) has a page on the IoT. The most recent IoT even took place in June, but the site still has some interesting info about speakers, partners, and more.

Let us know about other good resources. Send your links via email or Twitter @circuitcellar.

Carl Hage Wins the CC Code Challenge (Week 14)

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 Carl Hage of California, USA for winning the CC Weekly Code Challenge for Week 14! Carl will receive an IAR Kickstart: KSK-STM32F407ZG kit.

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

Line 11: Need + int($year/400) not – int($year/400)

Tech Note: it’s perfectly legitimate in Perl to have a “bare” expression as the last line of a subroutine — the default return value from any function (if there’s no explicit “return” statement) is the value of the last expression evaluated.

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.

Line 11: Need + int($year/400) not – int($year/400)

One Desk Serves Two Roles for Professor and Designer

Chris Coulston, head of the Computer Science and Software Engineering department at Penn State Erie, The Behrend College, has a broad range of technical interests, including embedded systems, computer graphics algorithms, and sensor design.

Since 2005, he has submitted five articles for publication in Circuit Cellar, on projects and topics ranging from DIY motion-controlled gaming to a design for a “smart” jewelry pendant utilizing RGB LEDs.

We asked him to share photos and a description of the workspace in his Erie, PA, home. His office desk (see Photo 1) has something of an alter ego. When need and invention arise, he reconfigures it into an “embedded workstation.”

Coulston's workspace configured as an office desk

Photo 1: Coulston’s workspace configured as an office desk

When working on my projects, my embedded workstation contains only the essential equipment that I need to complete my project (see Photo 2).  What it lacks in quantity I’ve tried to make up for in quality instrumentation; a Tektronix TDS 3012B oscilloscope, a Fluke 87-V digital multimeter, and a Weller WS40 soldering iron.  While my workstation lacks a function generator and power supply, most of my projects are digital and have modest power requirements.

Coulston can reconfigure his desk into the embedded workstation pictured here.

Photo 2: Coulston can reconfigure his desk into the embedded workstation pictured here.

Coulston says his workspace must function as a “typical office desk” 80 percent of the time and electronics station 20 percent of the time.

It must do this while maintaining some semblance of being presentable—my wife shares a desk in the same space. The foundation of my workstation is a recycled desk with a heavy plywood backing on which I attached shelving. Being a bit clumsy, I’ve tried to screw down anything that could be knocked over—speakers, lights, bulletin board, power strip, cable modem, and routers.

The head of a university department has different needs in a workspace than does an electronics designer. So how does Coulston make his single office desk suffice for both his professional and personal interests? It’s definitely not a messy solution.

My role as department chair and professor means that I spend a lot time grading, writing, and planning. For this work, there is no substitute for uncluttered square footage—getting all the equipment off the working surface. However, when it’s time to play with the circuits, I need to easily reconfigure this space.

I have found organization to be key to successfully realize this goal. Common parts are organized in a parts case, parts for each project are put in their own bag, the active project is stored in the top draw, frequently used tools, jumper wires, and DMM are stored in the next draw. All other equipment is stored in a nearby closet.

I’ve looked at some of the professional-looking workspaces in Circuit Cellar and must admit that I am a bit jealous. However, when it comes to operating under the constraints of a busy professional life, I have found that my reconfigurable space is a practical compromise.

To learn more about Coulston and his technical interests, check out our Member Profile posted earlier this year.

 

Chris Coulston

Chris Coulston

Electrical Engineering Crossword (Issue 278)

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

ACROSS

4.    ADIABATIC—Heat is neither gained nor lost
5.    DISCRETECIRCUIT—Made of resistors and transistors; not integrated [two words]
8.    FULLDUPLEX—Two-way communication [two words]
10.    KERMIT—Muppet-inspired protocol
12.    DEBIAN—Unix-like OS
14.    CHIRP—Conveys information
16.    FORTRAN—Others like it include BASIC and Pascal
18.    NANOKERNEL—Contains a minute amount of code capable of executing in the hardware’s privileged mode
19.    RHEOSTAT—Current regulator

DOWN

1.    BIPOLARJUNCTION—There are two types: NPN and PNP [two words]
2.    ECBBUS—1970s communication system for Zilog and Intel microprocessors [two words]
3.    VISUALSERVOING—Used to control a robot’s motions [two words]
4.    ATTOSECOND—10-18 of a second
6.    NICKELCADMIUM—This small, light, high-power type is commonly used in hand-held devices [two words]
7.    DEFCON—Place where hackers annually assemble
9.    PIGGYBACKING—Bi-directional data transmission
11.    GRASSHOPPER—Programming language for rhinos
13.    FLOSSMANUALS—Netherlands-based foundation that provides information about and access to free software [two words]
15.    RASPBERRYPI—An inexpensive SBC [two words]
17.    LIDAR—Laser-based measurement technique

 

CC278: Serial Displays Save Resources (BMP Files)

In Circuit Cellar’s September issue, columnist Jeff Bachiochi provides his final installment in a three-part series titled “Serial Displays Save Resources.” The third article focuses on bitmap (BMP) files, which store images.

Photo1

A BMP file has image data storage beginning with the image’s last row. a—Displaying this data as stored will result in an upside-down image. b—Using the upsidedown=1 command will rotate the display 180°. c—The mirror=1 command flips the image horizontally. d—Finally, an origin change is necessary to shift the image to the desired location. These commands are all issued prior to transferring the pixels, to correct for the way the image data is stored.

LCDs are inexpensive and simple to use, so they are essential to many interesting projects, Jeff says. The handheld video game industry helped popularize the use of LCDs among DIYers.

Huge production runs in the industry “made graphic displays commonplace, helping to quickly reduce their costs,” Jeff says. “We can finally take advantage of lower-cost graphic displays, with one caveat: While built-in hardware controllers and drivers take charge of the pixels, you are now responsible for more than just sending a character to be printed to the screen. This makes the controllers and drivers not work well with the microcontroller project. That brings us to impetus for this article series.

“In Part 1 (‘Routines, Registers and Commands,’ Circuit Cellar 276, 2013), I began by discussing how to use a graphic display to print text, which, of course, includes character generation. In essence, I showed how to insert some intelligence between a project and the display. This intermediary would interpret some simple commands that enable you to easily make use of the display’s flexibility by altering position, screen orientation, color, magnification, and so forth.

“Part 2 (‘Button Commands,’ Circuit Cellar 277) revealed how touch-sensitive overlays are constructed and used to provide user input. The graphic display/touch overlay combination is a powerful combination that integrates I/O into a single module. Adding more commands to the interface makes it easier to create dynamic buttons on the graphic screen and reports back whenever a button is touched.

The prototype PCB I used for this project mounts to the reverse side of the thin-film transistor (TFT) LCD. The black connector holds the serial and power connections to your project. The populated header is for the Microchip Technology MPLAB ICD 3 debugger/programmer.

“Since I am using a graphic screen, it makes sense to investigate graphic files. This article (Part 3, ‘BMP Files,’ Circuit Cellar 277) examines the BMP file makeup and how this relates to the graphic screen.”

To learn more about the BMP graphical file format and Jeff’s approach to working with a graphic icon’s data, check out the September issue.

 

Q&A: Jack Ganssle, Electronics Entrepreneur

Jack Ganssle is a well-known engineer, author, lecturer, and consultant. After learning about oscilloscopes, transistors, and capacitors in his father’s engineering lab, Jack went on to write hundreds of articles and several books about embedded development-related topics. He also started and sold three electronics companies, worked on classified government projects, and founded The Ganssle Group, based in Reisterstown, MD. I recently spoke with Jack about some of his career highlights, his current work, and what’s next in the embedded design industry.—Nan Price, Associate Editor

NAN: You’ve been interested in electronics since the age of 9. Give us a little background information. What was your first project?

Jack Ganssle

Jack Ganssle

JACK: My first project was a crystal radio with the inductor wound on the quintessential Quaker oatmeal box! It was really exciting to get AM reception over that. Back then, pretty much no one had FM. AM was it.

Later I learned to repair TVs and made pocket money doing that. Those sets were all vacuum tubes. Usually there was just a bad tube or dried out capacitor. But from there, my friends and I learned to design amplifiers (the Beatles were very hot and everyone was starting a band). For graduation from eighth grade, my dad gave me an old oscilloscope he had built from a kit years earlier.

He was part of a startup when I was in my early teens. We kids were coerced into being the (unpaid) janitors for the place. That was annoying at first. But, we were allowed to keep anything we swept up. The engineering lab’s floor was always covered in resistors, capacitors, transistors, and the like, so my parts collection grew. (ICs existed then, but were rare.)

When I was 16 I got a ham license, built  various transmitters, and used WWII surplus receivers. One day an angry letter arrived from the Federal Communications Commission (FCC). They had picked me up on my second harmonic clear across the country. I was really proud of that contact.

But it wasn’t long before some resistor-transistor logic (RTL) digital ICs came my way. Projects included controls for tube transmitters, Estes model rocket telemetry, and even a crude TV camera that used a photomultiplier tube to scan a spiral set of holes in a spinning disk. A couple of us worked on a ham radio moon bounce, but I accidentally shorted out a resistor and my only hydrogen thyratron (sort of a tube version of an SCR) blew up. There was no money for a replacement, so that project died. The transmitter used a little lighthouse tube that had a maximum rating of a couple of watts, but it worked OK when pulsing it for a few microseconds at 1 kW.

Senior year of high school a friend and I hitchhiked from Maryland to Boston to go to a surplus store. I bought a core memory plane that was 13,000 bits in a 6 in2 cube. Long hair didn’t help. We were picked up on the New Jersey Turnpike and strip searched. The cops never believed my explanation that the thing was computer memory.

A few years later, I had a 6501 microprocessor in the glove compartment of my Volkswagen bus (which I lived in for a year while saving for a sailboat). Coming into a sleepy Maine town from Canada that event was repeated when the border cops searched the bus and found the chip. They didn’t believe in computers on a chip. But the PC was years away and computers were mostly seen in science fiction films.

Freshman year of college, I designed and built a 12-bit computer using hundreds of TTL chips soldered together using phone company wire on vectorboards. For I/O there was an old Model 15 teletype using 5-bit Baudot codes that my software drove via bit banging. The OS, such as it was, lived in a pair of 1702 EPROMs, which each held 256 bytes. The computer worked great! And then the 8008, the first 8-bit microcontroller, came out and the thing was obsolete. I junked it, and now I wish I had saved at least the schematics.

But by then I had been working part-time as an electronics technician for a few years and the company needed to update its analog products to digital. No one knew anything about computers, so they promoted me to engineer. Eventually I ran the digital group there. We designed one of the first floppy disk controllers, insanely high-resolution graphics controllers, and a lot of other products. We also integrated minicomputers (Data General Novas and DEC PDP-11s) into systems with microprocessors. We bought a 5-MB disk drive for a Nova. It cost $5,000 (back when that was a lot of money) and weighed 500 lb. How things have changed.

NAN: Tell us about The Ganssle Group (www.ganssle.com). When and why did you start the company? What types of services do you provide?

JACK:  I formed The Ganssle Group in 1997 after 15 years of running an in-circuit emulator company. Working 70 h a week was getting old and I wanted more time with my kids. So my objective was to reverse the usual model. Instead of fitting life around a job, I wanted to fit the job into life.

Goal 1: Four months of vacation a year. It turns out that is elusive, in no small part due to the cool stuff going on around here, but most years we do manage two to three months off. My wife, Marybeth, works with me. She takes care of all of the administrative/travel and the like.

Goal 2: No commute. So we work out of the house (for the first few years, we worked out of the houseboat where we raised two kids).

Now the kids are grown, so there’s a Goal 3: Have as much fun as possible with Marybeth, so when I travel to new or interesting places she often accompanies me. There’s a lot more to life than work. Some of my side projects are available at www.ganssle.com/jack.

I’m not really sure what I do. I write—a lot. Readers are incredibly smart and vocal. The dialogue with them is a highlight of my day. I also give one- and two-day seminars on pretty much every continent (except Antarctica—so far!) about ways to get better firmware done faster. Sometimes I do an expert witness gig. Those are always fascinating as one gets to dig deeply into products and learn about the law. On rare occasions, I’ll do a day or three of consulting if the problem is particularly interesting. And there’s always some experiment I’m working on, which sometimes gets written up as an article.

NAN: Speaking of articles, you’ve written hundreds—including nine for Circuit Cellar magazine—on topics ranging from the history of the embedded systems programming industry, to memory management, to using programmable logic devices (PLDs). You also write a column for Embedded (www.embedded.com) and you are editor of the biweekly newsletter The Embedded Muse. Tell us about the types of projects you enjoy constructing and writing about.

The breadboard is discharging batteries. To the left, a battery is soldered to some coax. Using the waveform generator in the oscilloscope I’m measuring the battery's reactance (which, it turns out, is entirely capacitive). The IAR tool is profiling current consumption of an evaluation board.

The breadboard is discharging batteries. To the left, a battery is soldered to some coax. Using the waveform generator in the oscilloscope I’m measuring the battery’s reactance (which, it turns out, is entirely capacitive). The IAR tool is profiling current consumption of an evaluation board.

JACK: I have one experiment that’s running right now. For the last four months I’ve been discharging coin cells. It sounds dull, but some microcontroller vendors are making outrageous claims about battery life that are on the surface true but irrelevant in real circuits. This circuit runs a complex profile on the batteries, tossing different loads on for a few milliseconds, and an ARM microcontroller samples the batteries’ voltage (as well as the transistors, VCE drop) into a log file. That data goes into a spreadsheet for further analysis. I’m making a much bigger version of this now, which will handle far more batteries at a time. I recently gave some preliminary results at a talk in Asilomar, CA, which garnered a lot of interest. More results will be forthcoming soon…I promise!

Another aspect of this is leakage. Does handling a battery leave finger oils that can affect the decades-long life claimed by the vendors? To test this, I built a femtoammeter. A polypropylene capacitor is charged and feeds a super-low bias current op-amp. Another ARM board monitors the op-amp voltage to watch the capacitor discharge as various contaminants are electrically connected to the capacitor. With no contaminants connected, even after 48 h, the cap discharged less than 1 mV. The thing resolves to better than 10 fA. (One fA is a millionth of a nanoamp, or about 6,000 electrons/second).

In fact, the ADC’s transfer function is a proxy for temperature. We heat the house with wood and you could see a perfect correlation of op-amp output and temperature throughout the day. (It’s lowest in the morning as the fire burns out overnight.)

NAN: You wrote the two-part Circuit Cellar article series, “Writing a Real-Time Operating System” (Issue 7 and 8, 1989) about the Hitachi HD64180 Z80-based embedded microprocessor nearly 15 years ago. Circuit Cellar also featured another HD64180-based article, “Huge Arrays on the HD64180: Taking Advantage of Memory Management” (Issue 16, 1990). What was your fascination with the HD64180? Also, is either of these projects still current? Have you changed any of the design components?

JACK: Gee, I have no idea. I wrote those using Microsoft Works, but the file format has changed and Works can no longer open those articles. Alas, the HD64180 is quite obsolete. It was a grown-up version of the Z80 and very popular in its day.

In 1974, Intel introduced the 8080, which was the first really decent 8-bit microprocessor. But it needed two clocks and three power supplies. The folks at Zilog came out with the Z80 a year later. It could run 8080 code, but had one clock, a single 5-V supply, and it offered additional instructions that massively improved code density. Intel responded with the 8085, but it was really an 8080 in drag. The couple of new instructions added just couldn’t give the Z80 a run for its money. Eventually Zilog came out with the Z180, and Hitachi the 64180 clone, which included on-board peripherals and a memory management unit to address 1 MB using standard Z80 instructions. It was a great idea, but since there was no on-board memory, it couldn’t compete with microcontrollers such as the ancient, and still-going-strong, 8051.

NAN: In addition to writing, you lecture and teach at conferences and symposiums worldwide. Tell us about your one-day “Better Firmware Faster” seminar. How did it begin? What can attendees expect to gain from it?

JACK: I’m completely frustrated with the state of firmware. It’s inevitably late and buggy. While there’s no doubt that crafting firmware is extremely difficult—after all, software is the most complex engineered product ever invented—we can and must do better. It’s astonishing that so few groups keep even the simplest metrics, yet engineering is all about numbers.

The seminar is a fast-paced event that shows developers better ways to get their code to market. It covers process issues, as well as a lot of technology areas unique to embedded systems, such as managing memory and dealing with tough real-time problems.

What can attendees get from it? It varies from very little to a lot. Some groups refuse to change anything, so will always maintain the status quo. Others do better. Some report 40% improvements to the schedule and up to an order of magnitude of reduction in shipped bugs.

NAN: You started three high-tech companies prior to The Ganssle Group. Tell us about your work experience. Any highlights?

JACK: Well, there was one instrument that used infrared light to measure protein in cow poop. Though it was interesting technology, it’s hard to call that a highlight. The design I’m most proud of was my first emulator, which had only 17 ICs and used insanely complex code. Eventually we offered emulators that required hundreds of chips, but those cost $7,000, while the first one sold for $600.

Some of the government work I’ve done was very interesting and used extremely sophisticated electronics. But I can’t talk about those projects. A buddy and I did the White House security system during the Reagan administration. It was fun to work in the basement there, but the bureaucracy was stifling. We lost our White House passes the same day Oliver North did, but he got more press.

NAN: What do you consider to be the “next big thing” in the embedded design industry? Is there a particular technology that you’ve used or seen that will change the way engineers design in the coming months and years?

JACK: Everything is going to change for us over the next five to 10 years. We will have tools that automatically find lots of bugs. Everyone is familiar (and has a love/hate relationship) with lint. But static analyzers can today find lots of runtime bugs. These are currently expensive and frustrating, but they demonstrate that such products can, and will, exist. When the issues are resolved, I expect they’ll be as common as IDEs. Debugging manually is hugely expensive.

Another tool is slowly gaining acceptance: so-called virtualization products (e.g., from Wind River and others). These are not the hypervisors people think about when using the word “virtualization.” Rather, they are complete software models of a target system. You can run all—and I mean all—of your code on the model. The hardware is always late. These tools will permit debugging to start at the beginning of the project. The tools are also expensive and somewhat clumsy, but will get better over time.

A modern smartphone has more than 10 million lines of code. Automobiles often have more. One thing is certain: Firmware will continue to grow in size and complexity. The current techniques we use to develop code will change as well.

 

Raffi Tchoboian Wins the CC Code Challenge (Week 13)

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 Raffi Tchoboian of Vienne, Rhone-Alpes, France for winning the CC Weekly Code Challenge for Week 13! Raffi will receive a CC T-shirt and a hard copy of the CC25 Anniversary Issue.

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

Line 16 : the position of the last char in the String s is length-1 so the correct line 16 is : “swap(&s[i], &s[length-i-1]);”

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

CC278: Battery Basics

Front of a battery analyzer

The University of Washington recently announced its engineers have created a wireless communications system that enables everyday devices to power up and connect to the web without the use of batteries. Instead, such devices would tap the energy available in wireless signals.

According to an August article on the university’s website,  engineers have developed a communication system that takes advantage of what they call  “ambient backscatter,”  the TV and cellular transmissions all around us. You can read more about the breakthrough by checking out the university article.

It will be some time before such an approach becomes commercially viable. In the meantime, we’ll still be relying heavily on batteries. With that in mind, you should check out columnist George Novacek’s article in Circuit Cellar’s September issue. Novacek goes “back to the basics” of batteries in this first installment of a two-part series.

“Battery usage has increased due to the proliferation of mobile and cordless devices,” Novacek says in Part 1. “This article describes battery types generally available in retail stores. I’ll discuss their features, operation, and usages. While many exotic batteries and custom packages are available, this article focuses on standard batteries, which are the type you are most likely to encounter.”

He opens his discussion by distinguishing between batteries vs. cells and describing common battery packages.

“Although we tend to use the words ‘battery’ and ‘cell’ interchangeably, there is a difference,” Novacek says. “Batteries comprise cells (e.g., the well-known 9-V battery contains six 1.5-V cells, while the omnipresent AA ‘battery’ and many others are just single cells). I will use the common terminology, even though it may be at times technically incorrect.

“Batteries store chemical energy. When activated, the chemical process occurring internally converts the chemical into electrical energy. Alessandro Volta, an Italian physicist, is credited with inventing the “voltaic pile” in the early 19th century, although archeological discoveries suggest that some form of an electrical battery was known in ancient Babylon. National Carbon Company, known today as Eveready, began marketing a precursor of the ubiquitous carbon-zinc battery in 1896…

“According to Wikipedia, the most common battery packages available today include AA, AAA, C, D, 9-V pack, and different types of “button cells”. There is also a plethora of custom-made battery packs for power tools, cordless telephones, and so forth. No matter what kind of packaging, the battery principles for the given type remain the same.

“There are two categories of batteries: primary (i.e., single use) and rechargeable. Carbon-zinc is the oldest—and at one point the most common—primary battery. They are available in standard packages and inexpensive. Consequently, carbon-zinc batteries are often included by original equipment manufacturers (OEM) with devices (e.g., TV remote controls, portable radios, etc.). Although they have been improved over the years, some significant shortcomings remain, so I avoid using them.”

Novacek goes on to examine the drawbacks and advantages of carbon-zinc, alkaline, lithium, mercuric-oxide, silver-oxide button cell, lead-acid, nickel-cadmium (NiCad), and nickel-metal hydride (NiMH) batteries.

To learn more about what may be powering your handheld or other device, check out the September issue.