Home
Seminars
Free Newsletter
Back Issues
Jack's Books
Jack's Articles
Contact Us

 
Along with his monthly column in Embedded Systems Programming, Jack's articles have been published in magazines worldwide including EDN, Circuit Cellar Inc., EE Times, The Washington Post, Australian Electronic Engineering, Ocean Navigator and Business Monthly to name a few. 

Search alphabetically by Title or by Category

Title

 

  • Bailing Frantically - In panic mode? You'll never exit it till you take time to stop bailing and plug the leaks. 
  • Banking Basics - Ideas to help you expand your system's address space.
  • Beginner's Corner - In-Circuit-Emulators - A beginner's guide to the best debugging tool of all, the in-circuit emulator. 
  • Beginner's Corner - Reentrancy - A beginner's guide to reentrancy issues.
  • Big Systems - Another piece on using x86 Protected Mode.
  • Bit Banging - You don't need a UART to send and receive serial data. Software alone suffices. Here's the code.
  • Boolean Algebra - Do you get the boolean blues? Those hardware weenies keep chatting about DeMorgan, truth and evil... and you're feeling left out? Read on.
  • Boss Management - Bosses need to be managed too.
  • Built-in Debuggers - More and more processors have built-in debugging resources. Here's a look at what features they offer.
  • Built-In Diagnostics - No system is useful unless it can be built in production. Add simple diagnostics.
  • Bus Cycles - Software folks need to understand how a microprocessor handles data on its busses. Here's the short intro.
  • Business 101 - You can't be an effective engineer unless you understand how your engineering role impacts the business as a whole. Step back, get a new zeitgeist, and expand your horizons a bit.

 

 

  • Data Compression - Transmission bandwidth is always limited (hey... if you're reading this over a 28.8kb link, you get the picture!). Data compression can help a lot.
  • Dear Abbey - Abbey talks to developers about building embedded systems. 
  • Debuggable designs - Tips for improving hardware designs
  • Debugging ISRs - Part 1 - This is part 1 of a two part series on debugging interrupt service routines.
  • Debugging ISRs - Part 2 - This is part 2 of a two part series on debugging interrupt service routines.
  • Deconstructing XP - eXtreme Programming has some fabulous ideas. And some really dumb ones. This is a review of two XP books. 
  • Depot Repair - Thoughts on our throwaway economy, and our role in it.
  • Design For Performance - Make the system as fast as it needs to be!
  • Digital Engineering is More Fun - Core memory was all we had years ago. It's interesting stuff. 
  • Disaster - A description of some embedded disasters, and what we can learn from them.
  • DMA - Too many of us don't really understand DMA. Read on...
  • Do You Need A Degree - Is a degree needed? Useful? 
  • Drawing Systems - Most small companies never organize their drawings in a logical fashion, and instead all-too-often rely on memory when building production units. Here's an easy system that will get your drawings in order.
  • DSP - An introduction to Digital Signal Processing.

 

  • Electromagnetics for Firmware People - Maxwell's Laws really are important for firmware development. Here is an introduction.
  • Embedded Lingos - How do you pick a language? Here's some thoughts about C++
  • Embedded Trig - Here's some algorithms to make it easier to compute complex trig functions.
  • Emulators - The basics of the In-Circuit Emulator
  • Encoders - Want to learn more about measuring position? Read this article.
  • Engineering Ethics - We enginers build systems that profoundly impact people's lives. Strong ethics are the most important tool we have to keep our customers safe from misbehaving products. 
  • Extreme Embedded - A look at eXtreme Programming. 

 

 
  • Green Motor Control - As a designer, you can make decisions that greatly impact the environment. Here's how to save energy.
  • Guardian Angels - Every project needs a guardian angel, someone who watches over the code.

 

  • Habits - The 7 Habits of Highly Dysfunctional Developers
  • Hardware for Better Firmware - A few changes to the system's hardware design can greatly improve the code. 
  • How Microsoft Saved The World - The Big Bad Beast or a a force of good? Jack's inviting flames by claiming that without Microsoft we would still be computing on our fingers and toes. 
  • Huge Data on the Z180 - The Z180's banking scheme is great for handling code; data is a bit more complex. Here's example code.

 

 

  • Jack's Rules of Thumb - Engineers use rules of thumb to quickly estimate rather than do detailed calculations. Firmware can benefit from the same idea. Here's a sampling of such rules. 
  • Jake Busts Out - Jake busts out of jail to help the VCs get a product to market. 
  • Java - Ready for Prime Time? - Is Java really the next silver bullet for embedded programming?

 

  • Keep it Small - Get the product out faster by better partitioning
  • Kids - In praise of kids these days
  • Kids These Days - Back in my day, we had to build our own equipment

 

 

  • Magic - an article about our society's inability to embrace the new technologies we techies create.
  • Measuring Bugs - If you don't measure bug rates you'll never improve your coding. Besides, the right measures will accelerate the schedule. 
  • Memo To My Boss - Jake Schmidt quits and fires off a memo to his ex-boss. It's flaming, but full of useful lessons. 
  • Memorial Day - Years in the future a wealthy man looks back on how the embedded world collapsed. 
  • Memory as a Device - Clever use of memory devices can really enhance your products.
  • Metastability and Firmware -  A very subtle reentrancy-like situation develops when software needs two or more reads of hardware to input a value. 
  • Minimizing Analog Noise - Analog noise is a tough problem. Here are a few ways to minimize it.
  • Momisms - Things your mom should have taught you

 

 

  • On Management - Thoughts on managing development
  • On Measurements - Managers chant "If you can't measure it, you can't manage it." What should we measure in firmware development?  
  • Open Source? - Opening the open source debate
  • Oscilloscope Upate - The wise embedded engineer will be a master of many tools. The scope is one of the most important.

 

  • Passion and the Developer - Use reason, not emotions.
  • Perform or Perish - How do you deal with software performance problems?
  • Picking a CPU - How do you decide what CPU to use? Here's some factors to consider.
  • Pipelines and Prefetchers - All modern processors use pipelines and/or prefetchers to increase performance. Here's how they work.
  • Position Encoders - Encoders transmit position or frequency info to the computer. Here's a few ways to make life with them easier.
  • Proactive Debugging - Seed your code with simple tricks to find bugs
  • Programming Style - Programming style is just as important as any other parameter that goes into a coding task. Here are a few ideas, rants, and raves.
  • Promise Management - We make lots of promises to our boss, our employees, spouse and children. Promises are a sort of social currency. Manage them properly or they'll lose their value. 
  • Prototyping - Prototyping is a critical skill - in hardware and software. This is part 1 of a two part series on the skill.
  • Prototyping - Prototyping is a critical skill - in hardware and software. This is part 2 of a two part series on the skill.
  • Prototyping with SMT - One person's experience with using SMT devices on prototypes.

 

  • Radio Days - Radios and noise reduction
  • Read That Datasheet - Never assume a part has certain electrical or timing parameters. Often little surprises lurk. Did you know that virtually all microprocessors do not accept TTL levels for clock and reset?
  • Real Time - The basics of real-time programming
  • Reentrancy - Most real time systems require a certain amount of reentrant code, yet too many programmers have no idea what this entails
  • Refreshing Software - Refresh is yet one more thing that software can, in some situation, replace.
  • Religious Wars - Choosing a programming language is a place where people often get really dysfunctional.
  • Relocatable Code - Some embedded code must run at more than on address.
  • Resistors - Be careful how you design resistors and R-packs into your digital circuits. This article tells how.

 

  • Sailing stories, linked here by popular demand
  • Schedule Madness - Most schedules are dysfunctional
  • Scheduling - It is possible to create accurate schedules, here's how.
  • Self Calibrating Systems - Here's an algorithm to make an instrument read correct values without ever manually setting gain and offset coefficients.
  • Sell Yourself - Guidelines for writing a resume. 
  • Serial Data Transmission - Here's a primer to using UARTs in embedded systems.
  • Shared Perceptions - On a stop in Bermuda, Jack meets a wizened ex-developer. Over too many drinks several interesting lessons emerge. 
  • Small is Beautiful - Small Processors dominate this industry. This is why.
  • Smoothing Digital Inputs - There's a lot of way ways to debounce digital inputs. A few are listed in this article.
  • Speed Kills - Data comm over cheap serial links might be more cost effective than other, faster, options.
  • Survival of the Fittest - Do you work hard? How about smart? This article might make you mad, but hopefully it's start some ideas flowing. Feel free to send flames to us via email!

 

  • Taming Analog Noise - Here's a few ways to use smart software to reduce the amount of noise in your system.
  • Testing RAM - How to test system RAM.
  • Thanks for the Memories - Here's some advice about testing RAM and ROMs in your embedded system.
  • The C Blues - C is still a long way from what we embedded folks need in a language. Here's some ideas and complaints.
  • The Case of the Crashing 68000 - a fun detective story about embedded systems
  • The Future of Embedded Programming - Here's a set of prognostications about programming in the future. Read 'em and weep.
  • The Good Guys - Here are a few great products for managing spam, backups, network security, and even a cool CAD package. 
  • The ICE Blues - Using an emulator? Here are some gotchas to watch out for.
  • The Olden Days - Before CAD we pushed our pencils in the snow, uphill both ways.
  • The Organized Bench - Lab pigs beware! This is your 12 step plan to recovery.
  • The Perils of NMI - NMI is a critical resource, yet all too often it's misused.
  • The Secret of My Success - Our hero takes on another project... heh heh
  • The Tao of Diagnostics - part 2 of a two part series on embedded diagnostics
  • The Vote - This article, written in 2002, discusses how Bubba "the can man" won the 2004 presidential election. 
  • The Zen of Diagnostics - part 1 of a two part series on embedded diagnostics
  • The Z80 Lives! - The Z80 and its derivatives continues to be tremendously successful. Here's the current state of the art.
  • Toastal Lessons - Our hero designs a mechanical toaster, that morphs into a net-connecte 32 bit monster
  • Tool Quest - Decent tools have less than zero cost... if you make more than a dollar an hour.
  • Tools For Clean Code - There are a lot of tools around that will automatically check our code. Efficient developers automate everything they can. Experts know that firmware is so expensive that any code-auditing tool is a great thing. 
  • Tricks of the Trade - Troubleshooting hints and kinks.
  • Troubleshooting - Troubleshooting is a mental exercise requiring a firm grasp of the technical concepts involved, along with the right philosophy.
  • Troubleshooting 101 - Troubleshooting is more art than science. Here's some ideas.

 

 

 

 

The Ganssle Group 
PO Box 38346, Baltimore, MD 21231 
Tel: 410-504-6660, Fax: 647-439-1454
Email info@ganssle.com 
© 2008 The Ganssle Group