Brainstorming is a good way to get ideas. It’s usefull at the specification stage as well as when the design gets stuck and you can’t figure something out. It’s best to just throw out ideas without judging their usefullness. Although some Ideas may be impossible/impractical, they may lead to other ideas that are a perfect fit for the design.

Design Features:(Brainstorming)

Support all TI, Microchip, Atmel, AMD, Intel, and Cypress programming algorithms. Other manufacturers are possibilities.

Support logic levels from 1.8 v to 12 v Plus +12 v for RS232.

Support programming voltage range from 1.8 v to 24 v

Control logic timing accurate to 0.1 µs

Self contained with rechargable LiPo cell

Micro USB recharging

USB bootloader firmware update

Bluetooth serial as main interface, USB as alternate interface

Standalone mode

Two status LEDs and one tactile pushbutton switch

Open Hardware/Hackable

On board proto area, extra pins for expanding design



The process of design requires research. This can be as simple as internet searches or as complex as taking a college class. Research can be as general as looking for or at similar designs or as specific as what wiring pinouts are needed for the design. The completeness of the research needs to be weighed against the time and effort necessary to reach that level of completeness.
Running simulations and building prototypes are often a good level of completeness as long as the design has built in margins around specified results.

A programmer that supports most of devices should have JTAG capability.  From research, I found that JTAG was designed for testing, most systems that have JTAG implement a programming interface as part of the JTAG connections.  I am not expecting to support JTAG testing or debugging, but it might be a possibility.

The Specifcation

The project needs it’s requirements specified.  This is the process of deciding on which features are required, which are important and which are nice to have.  It is usually best to start at the general form and features, then move progressively to the specific details.  Generally cost or market price are considered at this step.

For the design of this universal programmer, I feel that a market target price should be around $50 US.  This is not a hard requirement.  If the price reaches $100 US, I feel too many hobbyists will not be able to justify the cost of purchase.  A common industry standard for cost pricing is market price should be 2.5 times bill of materials (BOM) cost for direct to customer sales and 3.5 times BOM cost if through a reseller.  This means my target BOM cost will be around $20 US.

BOM cost is the cost for all the components that make up a product.  Some businesses include labor cost and some don’t.  For this project I will not include labor cost.

Intellectual Property (IP) licensing also has to be considered.  For most businesses this is decided in policy.  Open source licensing makes sense for this programmer design.  To be universal, it’s going to need to be tested on thousands of different chips.  I am directly familiar with three families of chips.  It is helpful for the programming algorithm developer to already be familiar with the chip. I will be researching and picking a specific hardware and software open source licenses for all IP of this design.  I want this design to be build-able by most of my readers at least in the breadboard stages.

BOM Cost $20 US

Open Source IP for hardware and Software

Research licenses


The Project

The first step in any design project is the Idea.  This can be in the form of seeing a need and asking how it can be solved.  It may come in the form of seeing something that you would like to try to do.  It may come in the form of a fusion of emerging technologies.
As an embedded engineer I have percieved a need for a low cost universal programmer for all kinds of embedded processors and memories.  Since just about everyone carries a pretty powerfull computer in their pocket, the physical interface can be very simple.