Welcome to the Gizmo For You Bolg. Any documentation, thoughts or articles related to any of the Gizmo For You projects can be found here.
From Scratch to Finish
We get allot of questions from our members and other forums about electronic design and the work-flow we follow when making a Gizmo come to life. One of these questions caught our attention for making this Blog entry. The question was: Hi, I am new to embedded development and your site has been of great help to me. I had a query regarding the way device are made from Scratch to Finish. I am going to take the example of Flow 1.0 or 1.5. I wanted to know, your initial designs and spec say that the phone will have XYZ features. After it is decided that you are going to use Gumstix for your project, what is the procedure after that? As far as I can understand after selecting all the features, you sit through the data sheets of each component used in the project and work out the schematic layout using KiCad or eagle CAD. I wanted to know after you have decided the interfaces like blue-tooth,WiFi ,sensors, how do you simulate your circuit? Is there any software or tool you use to determine the behavior or is it just trial and error system. It would be great if you could guide me through the process of the design, after the device specifications.
Before you begin designing anything you need to first think about what it is that the device you are building going to do. You always should think about WHAT you want to do and worry about the HOW later. In our case we wanted to make an embedded device which would be Open Source and have as many features as possible without overpricing it so that none could eventually purchase one. So we sat down and started thinking about the features that we would like the device to have. Now days most embedded device must at-least have one or more ways of communicating, have a nice LCD with a touchscreen and have media capabilities for listening to music. So after talking about features with the rest of the team we came out with the following features:
- 480 x 640 px LCD with a Resistive Touchscreen
- HDMI Out
- 3mp Camera
- ZigBit RF Module which runs on 2.4GHz
- UC864-G module for GSM, GPS and 3G
- Speaker for listening to music
- Stereo headphone Jack for your headphones
- Triple axis Accelerometer for interactivity
- Digital Compass
- Long lasting battery with 1500mA capacity
and other features...
After we have all the features figured out, we need to decide and select the components that we are going to use for each feature. Since we develop Open Source devices, we always search cor components that are easily available in the market and have a good documentation. Most embedded devices normally come with NDA (Non Disclosure Agreement) and can't be pretty hard to get since the manufacturers only sell them to large companies so finding the correct component or module is one of the hardest things to do. Also we always check the long term availability of each component since we need to make sure that it will at-least be around for 2 years minimum if we are thinking on producing devices with it.
Ok, you have your components selected and have your idea, what's next. Next comes the design process. Before starting any design you need to make sure that it is within the budget you have and that it can be easily manufactured. There are 2 basic sides in every design. These sides are described below.
Mechanics are the first thing we think of. This is important since every component and module must align perfectly when assembling the final product. Designing the device in 3D gives us the opportunity to make the final 3D files for enclosure manufacturing as well as the PCB dimensions and shape. We always try to design each component that is going to be located on the device in 3D and have a large database of these components which help us assemble the final product. Some are components which we already have and some are components that we design when needed.
There are many software packages for 3D design and the professional one can cost up to $7000 or more to a single license. We use affordable products such as Modo and Google Sketh for the designs but if you have the budget then we would suggest using something like Autodesk Inventor or Similar. The main thing to have in mind when selecting a software is that it has a good way of measuring the dimensions of your design as well as a way of exporting the final file to something readable by the manufacturer. In the case of an enclosure, most of the manufacturers will accept files like STEP or IGES but may also accept 3DS or others. It is a good idea always to ask before designing any component.
3D design also helps when you have a large amount of components and modules which need to align to the PCB and the enclosure. The 3D representation gives you the chance to move things around, select different components or even change the entire design without spending any money whatsoever for manufacturing.
If you are low on budget then you can always use already made enclosures from enclosure resellers and simply fit them to your needs, they always have a good documentation about an enclosure and will also give you 3D files of it if you ask them since 3D files is what they use to design the enclosure as well and will by 99% always have a 3D file foe any enclosure they manufacture.
Although you can design schematics and Mechanical design in parallel to each other, it is highly recommended that you first do your 3D representation or some other sort of sketch before making any schematic or PCB designs. This gets quite frustrating when you have designed a component for your schematic application and then realize that it simply doesn't fir into your device and have to redo the whole thing again.
Once again, there are many software packages for designing schematics and PCB's and it may be quite hard to select the correct one. The hardest thing in any software that you must have in mind are the Libraries, libraries of components that you shall be using. It may even be difficult to change the software to design schematics once you build up your component database since some packages will make it hard for you to convert anything and you will need to redesign everything once again.
We use KiCad, we use it because it has features that commercial and very expensive software packages have. Things such as Layered designs with Main schema will help you develop complicated devices as well as PCB tools which will save you time in placing tracks on a PCB design. There are many other software packages that can be affordable ,you may also look into Eagle and if you have the budget then (by our opinion) the best of them all is Altium Designer but getting a license even for 1 seat may be as expensive as buying a small sail boat or a good car.
Selecting a good manufacturer for PCB's or enclosures may also be difficult since you need to see the limitations of every one and decide if they can do what you need. For PCB's you can use your own home if it is something simple and doesn't need expensive materials. There are many tutorials online which explain how to manufacture PCB's at home. For enclosures you may always use something already made and adopt it to your own needs, especially if you are doing something for your self and not for commercial purposes although in some cases even a commercial application could use an already made enclosure.
Always ask for the limitations that any manufacturer has. They may be able to do allot of things but not what you need and you may find out about it the last minute and would either have to redo the design or find another manufacturer depending on our resources.
Another aspect you need to have in mind is the actual manufactured end result. For example let;s say you designed a perfect device, with everything aligning nicely and in theory should be perfect when manufactured. In most cases this will not be the case. Let's say you tell the manufacturer to paint the enclosure. You will have to take in account the actual paint thickness and add that to your design or it will not fit or will fir and not align correctly.
There are many other aspects that must be noted but as a general rule always make some samples before doing anything for larger quantities or even for a prototype.
Even when everything is over and you have your device in your hands you still need to do allot of tests before releasing ti into the world. We had to test and carry around FLOW devices for at-least 2 - 3 months before even mentioning anything to anyone publicly.
If you have Software running on your device you need to make sure that it doesn't crash, is responsive and can be easily used. For Mechanical aspects you need to make sure that the device is rigid and can easily be manipulated without being broken.
Always try to think of it from the perspective of the end user and think if this device is something you would like to have as well as sell to others since if you your self don't like it then most definitely nor shall anyone else.
We hope that this small description covered most of the questions that our member had as well as help others and maybe guide anyone who is thinking on doing a project into the correct direction.