Tweet Follow @jack_ganssle
Go here to sign up for The Embedded Muse.

Embedded Muse 210 Copyright 2011 TGG August 1, 2011

You may redistribute this newsletter for noncommercial purposes. For commercial use contact To subscribe or unsubscribe go to or drop Jack an email at

EDITOR: Jack Ganssle,


- Editor's Notes
- Quotes and Thoughts
- Books
- Tools and Tips
- The Dumbest Thing I Did
- Jobs!
- Joke for the Week
- About The Embedded Muse

Editor's Notes

Are you happy with your bug rates? If not, what are you doing about it? Are you asked to do more with less? Deliver faster, with more features? What action are you taking to achieve those goals?

In fact it IS possible to accurately schedule a project, meet the deadline, and drastically reduce bugs. Learn how at my Better Firmware Faster class, presented at your facility. See .

Flash Update! I'll be conducting public versions of this class in Chicago on October 21 and in London on October 28. More info here: .

Pete Upczak sent in a neat link to a 6502 archeology project:

Quotes and Thoughts

Thanks to Harold Kraus for sending this: 'Whereas Newton could say, "If I have seen a little farther than others, it is because I have stood on the shoulders of giants," I am forced to say, "Today we stand on each other's feet." Perhaps the central problem we face in all of computer science is how we are to get to the situation where we build on top of the work of others rather than redoing so much of it in a trivially different way.' (Richard Hamming, 1968 Turing Award lecture)


I've been getting a lot of email from people asking about various embedded books. I've reviewed about 50 here: .

I'm working on the following, and will have reviews in the not-too-distant future:

- Mission-Critical and Safety-Critical Systems Handbook, edited by Kim Fowler
- Bootstrap Yourself with Linux-USB Stack by Rajaram Regupathy
- Design Patters for Embedded Systems in C by Bruce Douglass
- The Software IP Detective's Handbook by Bob Zeidman
- Embedded Linux Primer, Second Edition by Christopher Hallinan
- Hardware/Firmware Interface Design, by Gary Stringham

Tools and Tips

The tool tips keep pouring in! Keep `em coming.

Except for this week!

The Dumbest Thing I Did

When interviewing I always ask candidates (those with experience) about their dumbest mistake and what they learned from it. Those with no mistakes are generally those with no experience - or are perhaps truthiness-challenged. Do you have any?

Ron Landman admitted to a mistake: "I was trying to hold off and not confess anything but here is one on many. Back in the 70s I worked at a company that made industrial equipment, sometimes controlled by electronic circuit boards instead of the usual double cabinets full of relay logic. They tested those boards with a homemade tester run by a minicomputer whose programs were loaded from punched paper tape.

"Trying to be proactive against the day that the paper tape wore out or tore I made the effort to copy all of the paper tape programs on to Mylar tape. Finally got all the tapes copied and started using the new Mylar ones. Trouble was that now I had to reload and reload the tapes over and over until I got the program loaded correctly. I even ordered new reader etc. Funny thing was, the paper tapes still read in just fine.

"Long story short, found out that the puncher that created the tape was either designed for paper tape only or had dull punchers. So the Mylar tapes ended up stretching ever so slightly when being punched so some of the bits no longer lined up across the optical reader correctly when reading back in. So much for being proactive."

Gary Crowell sent this: ""My first task at a new job was a respin of a large display processor board. The board had five large FPGAs that were in PGA packages. Due to my unfamiliarity with the layout tool, I managed to create the PGA footprints in a perfect mirror image, which only became apparent when the board was populated and in test. However, it was thru-hole *PGA* packages, and they *were* perfect mirror images... So we mounted the PGAs on the back of the board. And it worked perfectly. I dont think that many people bought my explanation that it was done that way to improve cooling."

Robert Johnson wrote: "In the early 90s I was developing embedded software on an Intel Series IV computer using their proprietary language PL/M. I bet the company I worked at bought the very last of these $17,000 computers as everyone else except myself realized that the world was switching over to PCs. The Series IV superseded the famous Intel Blue Box that were common at one point. This Series IV ran an operating system that Intel called InDX. I did not know much, but I learned by doing, and one of the things I did was found out that you could create a file with the name *.* - yes. Asterisk - dot - Asterisk. You can see where this ones going.

"I panicked when I realized my supervisor was in the hallway and about to come in and see that I was futzing around so I deleted it. I deleted the file named *.* and then watched as the name of files on that mammoth 10MB drive scrolled up the screen as InDX announced proudly that it had been successfully deleted. I tried hitting escape. I tried hitting escape harder. Nothing worked. I then did what any one else would do in a similar situation. I yanked out the power cord. It coasted to a stop and sat there. I plugged her back in. She purred back to life and I tried to rebuild my long overdue project. Everything was there except for one file, but I had a hard copy of it so I just hunt and pecked it back in."

Ajay Nagarkar confessed: "While designing an FPGA Based control system for a renowned Industrial Control System Equipment Manufacturer, we came across a "showstopping issue" after the populated board came back. The PCBA was a fairly complex controller using a Cyclone III FPGA from Altera. Due to some reason the layout engineer missed the fact that the FPGA has a slug underneath that has to be connected to ground. Well bygones remain bygones and here we were with the 144 pin TQFP FPGA soldered on the board giving us no chance to sneak underneath to get access to the ground plane.

"Just when we had almost concluded that another turn around was inevitable before we can actually "bring up" the board, one engineer who was looking at the layout came running down the stairs. "What if we drill our way till we get access to the slug ?" he asked. I looked at him with a look that basically said "What are you smoking this morning ??"

"But then some rounds of discussion and some time in front of the tool boxes and the PCBA, started giving me some confidence that maybe this is actually possible. (Looking back , maybe it was me who was smoking something). (Pressure can sometimes make you accept such dangerous suggestions , doesn't it?)

"Well so here we were in front of the layout measuring the exact area where we could get access to the slug and marking that area on the board. Some components on the bottom side were kind enough to give us way to this drilling operation. (So the layout guy did something right, didn't he? ... ouch )

"Now here was the plan. Slowly start the drilling operation by counting how many layers of the 6 layer board have we crossed (counting copper and substrate both of course) and finally stop when the right number arrives.

"It was not actually as hard as I thought it would be. Thanks to the Black and Decker toolkit that we have at MAPYN. After 45-60 minutes of careful drilling and brushing away the filings there was a point when I actually saw the silver color, and the drill bit felt as if it was hitting something harder than what we were drilling against for the past hour.

"Yeah !! This was it. We have hit gold... no sorry silver .. no sorry slug (It was actually a pleasure this time that I did not see gold .. because had I seen it that would have meant that I am staring at the bonding leads and that would not have been a pretty sight at all). So much for not being a gold digger !

"Anyways. There I was with the slug in front of me .. what next?

"Now the next step was to take some solder paste and carefully apply it to the exposed slug. That was a tricky part because the drilling exercise had exposed the internal planes and the fear was that the solder would short the internal layers and that would be the end of story.

"So carefully we applied the paste, took the rework station hot air gun and starting carefully blowing hot air (not literally...) on the newly created well.

"As soon as I saw the paste melt I quickly grabbed the small 30 AWG wire that I had in my other hand and inserted the stripped end in the well and removed the air blast.

"Success was not a one-shot thing here, but patience and persistence bore fruit and there we were with the other end of the wire being soldered to the ground connection on the board.

"Felt good to finally do real soldering (I will no more complain if I have to solder 0402 parts.. at least not after this task).

"Byteblaster connected and bingo ... the binary file was in the Flash and board was up. We almost danced as if the project was over .. only to realize after a couple of minutes that it had actually just ... started."

Timothy Watko wrote: "In the early 80s I was working at a company using Data General Nova 3s. I was working on a system with a pair of CDC 300 MB disk drives. Drive 0 started blinking its fault light. To get around this, I thought I'd just swap disk packs and re-cable the drives to swap which one was drive 0. After powering up, the new drive 0 started blinking the fault light. Now I actually looked at the disk pack (7 platters, I think). I was horrified to see a lot of bare metal. All the heads (and there were a lot) in both drives were ruined. We never used those drives again."


Let me know if you're hiring firmware or embedded designers. No recruiters please, and I reserve the right to edit ads to fit the format and intents of this newsletter. Please keep it to 100 words.

Experienced Embedded Systems Electrical Engineer, Sandia National Laboratories, Albuquerque, NM. Sandia National Laboratories is one of the country's largest research and engineering laboratories in the nation, employing over 8,000 people at major facilities in Albuquerque, NM and Livermore, CA. For both of these positions you must be able to obtain and maintain a DOE L Security Clearance. US Citizenship required:

- 6+ years desirable / 3+ years required.
- Electronics design with analog, digital, processors, peripherals, & sensors.
- PC & embedded programming desirable.
- MS EE or CE desirable, BS required.
- For full job details and to apply go to Reference #638694

Experienced Embedded Systems Software Engineer
- 6+ years desirable / 3+ years required.
- C/C++/C# apps & drivers on uC/uP/DSP and PC.
- System level software architecting.
- MS EE CE or CS desirable, BS required.
- For full job details and to apply go to Reference #638693.

Everyone knows what a job posting for a senior firmware developer looks like and what the minimum qualifications are, so how about I tell you a story about what it's like working at Logic PD instead?

We do over 100 projects a year, so you might be doing a Linux device driver for an SPI-attached A/D converter one week and a C++ GUI project building sliders to select equipment types another week. Your next project might be building up a development system for kids to learn how to program robots or it might be testing a PLC.

When you're ready to be the project manager on a project, just say so and soon there will be one available. Don't like PM? That's OK, keep working on development projects.

Miss being able to do some EE tasks? Take on an EE task. The SW team performs block diagram, schematic and even layout reviews alongside the EE team. Have you ever wished a programming header was placed somewhere else, or that RESET* wasn't tied right to VCC? This is the place for you.

How about culture? We've got so much culture we need to hose the place down with disinfectant at least once a month. We have annual fooseball tournaments, LEGO robot Sumo contests, egg-drop contests, Iron chef contests and monthly creativity seminars. Oh, get this: dogs are allowed in the office. Seriously, my dog comes to work and sleeps under my desk once a week at least.

Is it hot where you live? 105F or over? That's no problem here in MN. Beautiful summers with lakes, hiking, biking, winter skiing, jumping in the lake in January. (Maybe not for everyone.)

Where else can you send an e-mail message to the group asking "I'm trying to get my OMAP3730 to wake up after going into sleep mode (whatever) and it's not waking up on a GPIO transition." and have an answer in 10 minutes from someone who has done it before? Maybe at TI? Probably not. They ask US all the time since we build their dev-kits.

It's really a great place to work. If you want to know more without applying, hit me with an e-mail message or give me a call.

If you really want to read the HR-approved job posting (or if you want to apply!) it's located here:

A. O. Smith Water Products, in McBee, SC, has an immediate opening for an Embedded Electronics Engineer. This position is responsible for hardware design and embedded programming of controls for water heating appliances. Designs must meet agency and reliability standards.

The successful candidate will have a minimum of a BSEE, 5 years of embedded software design experience and knowledge of microprocessor based hardware design. Experience with C/C++ is required and knowledge of Java is a plus. Proficiency in OrCAD schematic capture is desirable.

Relocation to the greater McBee, SC, area is required.

Interested candidates should submit r?m?and cover letters to Carl McDow, Electronics Manager, at

Joke for the Week

Dejan Durdenic sent this: A few decades ago, a friend of mine had an opportunity to work with Cray X-MP and said that "It runs so fast that it can do and endless loop in less than 15 seconds..."

Note: These jokes archived at

About The Embedded Muse

The Embedded Muse is a newsletter sent via email by Jack Ganssle. Send complaints, comments, and contributions to me at

The Embedded Muse is supported by The Ganssle Group, whose mission is to help embedded folks get better products to market faster. We offer seminars at your site offering hard-hitting ideas - and action - you can take now to improve firmware quality and decrease development time. Contact us at for more information.