April 7-10, 2008 - Public
seminar in four cities in
Seminars also now scheduled in
Chicago, Denver and
here for dates
80% of all embedded systems are delivered late, often hopelessly bug-ridden.
Is this the best we can do?
My name is Jack Ganssle (bio) and
I'm on a mission to help embedded developers
produce better products faster. My monthly column in Embedded
Systems Programming Magazine, weekly rant on embedded.com,
seminars and web publications are all to help
you find better ways to build embedded systems... while maximizing the
fun of creating new products!
This site is your source for hundreds of practical
articles, tips, papers and resources about developing embedded
Free e-newsletter about embedded systems.
Check out the back issues.
Latest issue No.155, dated February 12,
2008 - A Salary Survey, more war stories and Tools and Tips Click here for information about
advertising in the newsletter.
double your team's productivity?
Reduce bugs? Meet deadlines? Take Jack's one day Better Firmware Faster
seminar. Over 5000 of your colleagues are now better developers as a
result of this course. You’ll learn how to estimate a schedule
accurately, thwart schedule-killing bugs, manage reuse, build
predictable real-time code, better ways to deal with uniquely
embedded problems like reentrancy, heaps, stacks and hardware drivers,
and much, much more.
We currently have public
seminars scheduled in Chicago and Denver and for the first time Jack
will be presenting his seminar in London, England. Check out
Seminars for more details.
Does your outfit have a dozen or more
engineers who can benefit from this training? Bring Jack into your
facility to get personalized training that will optimize your
development efforts. There’s more info
Here are my reviews
of many books on embedded systems.
I've written a few myself: here's a description
of my four embedded books.
My video "Develop Firmware
in Half the Time" is a three hour summary of my thoughts on
optimizing firmware development. There's more information
What can I say - I love this
field. Somehow over the years I've cranked out hundreds of
articles about the unique and fascinating subject of embedded systems.
Check 'em out here.
Various people have
contributed their takes on tools that work well for them. Check them out
here. Submit your own thoughts to
- Here's a 2006 salary survey
of embedded developers. How does
your pay match these numbers?
Becoming a Consultant
- Want to become an embedded systems consultant?
It's a lot tougher than one might think since we engineers must
become (gasp!) salespeople.
Here are Jack's thoughts.
Write-Only Memory - Not really a Special Report, but here's Signetic's
1972 Write Only Memory datasheet. "The 25120
is easily cooled by employment of a six-foot fan, 1/2" from the
package. If the device fails, you have exceeded the ratings. In such
cases, more air is recommended.". The datasheet is a
A Boss's Guide to
Process Improvement - Does your boss understand what's needed to produce
great code? Many have no formal software engineering background and
just need some hard data. This Boss's Guide to Software
Process Improvement is a short paper that will give your boss
Debouncing - There's a lot of smoke and mirrors in typical debounce code. Magic numbers,
tuned software that breaks whenever anything changes. This is the definitive guide to
switches and contacts. It includes plenty of empirical data
taken from a wide variety of switches.
Firmware Standards Manual
- By it's very nature computer code is cryptic. Wise developers
employ standards to enhance readability. Note that all safety
critical code must conform to a standard... so why don't all of us
who wish to create great software do the same? Here's a
standard designed for firmware.
Watchdog Timers -
I've examined hundreds of watchdog timers over the years. Few - very
few - are completely robust. A watchdog is the last line of defense
before the systems dies. It has to be awesomely designed. Check
out Great Watchdogs for some ideas.
Commenting - Ah,
comments. We all write them (usually). We all read them (and never
believe a word we read). Comments are as important as the code
itself, yet usually they're a poorly-written afterthought. In my
opinion they should be a fore-thought, written before we start
typing in curly braces. Here's a Guide
to Commenting with suggestions.
Testing RAM - Did
you know that a RAM test on DRAM whose refresh circuitry has fried
will pass? Or that impedance issues mean good RAM tests cleverly
drive the address & data busses in a way to create the worst-case
electromagnetic effects? Nearly all the RAM tests I run into are lousy. Here's what you need to know about
RAM in Embedded Systems.
Becoming an Embedded Developer
- I get a lot of email asking how one can become a
firmware fiend. I learned the same way I learned about the birds and
the bees - talked with my friends, ran a few experiments, and
iterated. But that's not efficient. Check out How
to Become an Embedded Geek.
Code Inspections -
There is a silver bullet that greatly reduces defects while
saving development time. Though we've known about it since 1976 few
developers routinely employ it. A
Guide to Code Inspections gives the facts and the techniques.
Floating Point Approximations
- Need to do a trig function but don't have a trig library? Is the
trig library too big? See how simple polynomials produce all of the trig
functions in Floating Point Approximations.
Better Resumes -
Most technical resumes are awful. They're peppered with acronyms the
reader probably doesn't know, sentence structure is non-existent,
and the document doesn't fulfill its primary mission: sell the
candidate. Check out Better
Cheap Scopes and Logic
Analyzers - A review of
some very cool yet low-cost
USB-connected oscilloscopes and logic analyzers.
The Ganssle Group
PO Box 38346, Baltimore, MD
Tel: 410-504-6660, Fax: 647-439-1454
© 2008 The Ganssle Group
February 19, 2008