© Copyright Electronic Leaf Consultants Ltd 2015

Design Process

Some thoughts on product development

1. Initial Ideas All projects start with some sort of of idea of what you would like to design and produce. The motivation or justification is that you’re going to make a profit in the end! Hence it’s a good idea to try to encapsulate your ideas into a document to make it easy to share with others and get some valuable feedback. It will also help to clarify your own thoughts. If a client doesn’t have such a document or has a collection of information  written and verbal,  we usually encourage them to create such a document. We have a pro-former that helps guide a client through this process. 2. Planning and Estimating As soon as you’ve got your ideas together for a product, it won’t be long until someone says “so how long will it take, how much will it cost to develop, how much will it cost to manufacture, how much can we sell it for and how much profit……..etc”. Planning and estimating is a difficult task and not an exact science. We like to think of it as a guide rather than a plan set in concrete; things always change, are more difficult than anticipated hence can take longer…….sometimes things even take less time! It’s certainly better to have a plan and estimates rather than none at all as it gives a starting point to base decisions on. We have used the traditional planning tools from Microsoft and we have also tried this technique with a client. Buy a set of index cards, write the individual task on each card together with the estimated duration, you can add a contingency to the task depending on how confident you are with your estimates. These cards can then be laid out on a table. The order of things can then be established and moved around if necessary, then the various Durations and Milestones calculated. Critical paths can also be visualised. The good thing about doing planning this way is it’s an interactive team event. Make sure you have plenty of chocolate biscuits and your favourite beverage to keep things going! Don’t forget to take a picture of your final plan on the table! 3. Prototyping and initial schematics 3a. Prototyping For simple projects you can go to schematic and then PCB. Sometimes you might not know how to interface to a particular piece of hardware or chip. Recently we’ve been using the popular Arduino platform to prototype various parts of a design to get a better handle of what’s involved. It’s quite fast to set-up and get going. There are many pre-built add-on circuits that can be bought inexpensively  on the internet. As a benefit software drivers can be lifted from the prototype and used as a basis for the final product. 3b. Debug Right from the start of any design using a micro-controller ( MCU) you should think about how you’re going to debug it. The simplest debug device is an LED. In fact when bringing up a system for the first time and to prove your tool chain is working correctly you can flash the LED with a simple piece of code. We usually try and put 2 LEDs on a PCB if there’s enough I/O on the processor. To get more comprehensive debug data you can add a serial port. Most modern MCU’s have at least one serial port. The minimum we usually bring out is the TX and 0V to a 0.1” header, we can then get debug messages from the target system 3c. The first Prototype Once you’ve done some initial prototyping and are fairly confident how everything will interface together, you can then go to a first schematic and create an initial Bills of Material (BOM) for the product. Once the BOM is created a rough costing of the product can then be calculated to see if you’re meeting your cost target. You may then want to go to an initial prototype that’s almost like the final product, but with some extra test points used for development. The PCB is laid out. We’ve sometimes used a quick turnaround service to get a PCB made without any silk screen layer or solder resist. The PCB arrives back in a day or so and hence you can construct your prototype quite quickly. 4. Writing some firmware to bring the PCB up  Most of our designs use a Micro-controller (MCU). Once you’ve built your prototype you’ll want to start to get the various pieces of hardware interacting with the MCU. We like to write our drivers for the various pieces of hardware in an Object Oriented way. So were every possible we encapsulate the data within the Object. Here are the C functions that you might have with a polled keyboard driver. This was a driver for just 3 buttons with only 1 button pressed at once and the option of a long button press:- void push_button_init( void ) // Initialises the ports and sets up the variables to scan the buttons void pushbutton_scan( void ) // Scans the buttons uint8_t  button_state( void) // Returns 0 if no button pressed or 1,2 or 3 depending on button pressed uint8_t long_button_state( void ) // Returns 0 if no button pressed or 1,2 or 3 depending on button pressed More on firmware to come……. 5. Moving to Pre-Production prototype Once the prototype has been largely been debugging and is working the final PCB can be modified / re-laid out. At this point it’s good to consider how the product will be tested in production. This is an opportunity to add test pads and pads to program the MCU. We generally use 2mm diameter pads as test points if no component legs are available. These act as connection points for spring probes from a production test jig. This pre-production PCB can then be manufactured  and the BOM checked for correct component specification and position on the PCB.  The next stage would be to get a small quantity ie  10 off, built by the company or department who will do the final manufacturing. This is then an opportunity to cross check all of the documentation and BOM  for manufacture are correct. 6. To be continued…..
Electronic Leaf Consultants
© Copyright ELC Ltd 2015

Design

Process

Some thoughts on product

development

1. Initial Ideas All projects start with some sort of of idea of what you would like to design and produce. The motivation or justification is that you’re going to make a profit in the end! Hence it’s a good idea to try to encapsulate your ideas into a document to make it easy to share with others and get some valuable feedback. It will also help to clarify your own thoughts. If a client doesn’t have such a document or has a collection of information  written and verbal,  we usually encourage them to create such a document. We have a pro-former that helps guide a client through this process. 2. Planning and Estimating As soon as you’ve got your ideas together for a product, it won’t be long until someone says “so how long will it take, how much will it cost to develop, how much will it cost to manufacture, how much can we sell it for and how much profit……..etc”. Planning and estimating is a difficult task and not an exact science. We like to think of it as a guide rather than a plan set in concrete; things always change, are more difficult than anticipated hence can take longer…….sometimes things even take less time! It’s certainly better to have a plan and estimates rather than none at all as it gives a starting point to base decisions on. We have used the traditional planning tools from Microsoft and we have also tried this technique with a client. Buy a set of index cards, write the individual task on each card together with the estimated duration, you can add a contingency to the task depending on how confident you are with your estimates. These cards can then be laid out on a table. The order of things can then be established and moved around if necessary, then the various Durations and Milestones calculated. Critical paths can also be visualised. The good thing about doing planning this way is it’s an interactive team event. Make sure you have plenty of chocolate biscuits and your favourite beverage to keep things going! Don’t forget to take a picture of your final plan on the table! 3. Prototyping and initial schematics 3a. Prototyping For simple projects you can go to schematic and then PCB. Sometimes you might not know how to interface to a particular piece of hardware or chip. Recently we’ve been using the popular Arduino platform to prototype various parts of a design to get a better handle of what’s involved. It’s quite fast to set-up and get going. There are many pre-built add-on circuits that can be bought inexpensively  on the internet. As a benefit software drivers can be lifted from the prototype and used as a basis for the final product. 3b. Debug Right from the start of any design using a micro-controller ( MCU) you should think about how you’re going to debug it. The simplest debug device is an LED. In fact when bringing up a system for the first time and to prove your tool chain is working correctly you can flash the LED with a simple piece of code. We usually try and put 2 LEDs on a PCB if there’s enough I/O on the processor. To get more comprehensive debug data you can add a serial port. Most modern MCU’s have at least one serial port. The minimum we usually bring out is the TX and 0V to a 0.1” header, we can then get debug messages from the target system 3c. The first Prototype Once you’ve done some initial prototyping and are fairly confident how everything will interface together, you can then go to a first schematic and create an initial Bills of Material (BOM) for the product. Once the BOM is created a rough costing of the product can then be calculated to see if you’re meeting your cost target. You may then want to go to an initial prototype that’s almost like the final product, but with some extra test points used for development. The PCB is laid out. We’ve sometimes used a quick turnaround service to get a PCB made without any silk screen layer or solder resist. The PCB arrives back in a day or so and hence you can construct your prototype quite quickly. 4. Writing some firmware to bring the PCB up  Most of our designs use a Micro-controller (MCU). Once you’ve built your prototype you’ll want to start to get the various pieces of hardware interacting with the MCU. We like to write our drivers for the various pieces of hardware in an Object Oriented way. So were every possible we encapsulate the data within the Object. Here are the C functions that you might have with a polled keyboard driver. This was a driver for just 3 buttons with only 1 button pressed at once and the option of a long button press:- void push_button_init( void ) // Initialises the ports and sets up the variables to scan the buttons void pushbutton_scan( void ) // Scans the buttons uint8_t  button_state( void) // Returns 0 if no button pressed or 1,2 or 3 depending on button pressed uint8_t long_button_state( void ) // Returns 0 if no button pressed or 1,2 or 3 depending on button pressed More on firmware to come……. 5. Moving to Pre-Production prototype Once the prototype has been largely been debugging and is working the final PCB can be modified / re- laid out. At this point it’s good to consider how the product will be tested in production. This is an opportunity to add test pads and pads to program the MCU. We generally use 2mm diameter pads as test points if no component legs are available. These act as connection points for spring probes from a production test jig. This pre-production PCB can then be manufactured  and the BOM checked for correct component specification and position on the PCB.  The next stage would be to get a small quantity ie  10 off, built by the company or department who will do the final manufacturing. This is then an opportunity to cross check all of the documentation and BOM  for manufacture are correct. 6. To be continued…..
Electronic Leaf Consultants