Not so long ago, I met this CEO of a hardware startup that was building beacons for parking lots. They wanted to know if a parking spot was vacant, and have the ability to provide smart parking using BLE enabled network of sensors and analytics.
They initially underestimated sensor inaccuracy, which lead to issues in hardware development and high costs. This was further complicated by lack of QA done in the target environments with variable conditions.
At the end, they had to abandon the project.
This was unfortunate, but happens commonly with IoT hardware startups.
Takeaways from this story:
- Always make the comprehensive prototype with scalability in mind with 3D printing to test in real life environment.
- Keep the checklist for QA to avoid drunk testing.
- Test some sample devices before going for mass production to avoid cost overrun.
Hardware startups usually don’t get a second chance. And, with this comprehensive guide, I plan to walk you through how to develop an IoT product starting from your idea all the way to production.
What you can expect to learn here:
- How to make an IoT or hardware prototype
- How to generate a highly optimised BOM for your hardware specifications
- How to work with manufacturers to generate first level builds for testing and product quality validation
- How to scale the entire process to reach mass produced hardware stage – safely and securely
Just to give an even better overview, here’s what the entire IoT Idea to production process looks like:
Let’s get started.
All you have is an idea
Initially, all you have is an idea. Be it for an industrial or a consumer context. Your initial focus has to be on breaking your idea into meaningful interactions and insights that can delight users or improve processes.
A really good place to shape your IoT idea into an actionable product plan is using GCM technique.
What’s a GCM?
The first step towards an actionable hardware product development plan would be to write your idea down to the most actionable bit you can.
Once you are done with that, the next thing you should do is to ask yourself the following questions
- What features my target customer care about the most?
- What unexpected value items I design into my device will they simply dismiss?
- What will they demand that isn’t my product yet?
- What will be the most costly and difficult part of the design?
To proceed further into prototyping and better ideation. We are going to follow Goal-Constraints-Module technique.
The diagram below shows how raw ideas transforms to powerful actionable plans using GCM flow.
When it comes to the ideation phase, we will only take a look at the Goals part for the sake of simplicity. Ideally, we drive ideation and prototyping in parallel. We do that because we have a huge experience in hardware product development that focuses on remaining lean right from the start. But as someone who’s doing this for the first time, I wouldn’t advise you to mix them together.
We will take one step at a time.
In the Goals module, you would define all possible things that you expect this IoT hardware and other connected systems to perform. Once you have this list, we will then slip into constraints identification and prototyping.
You don’t know how to prototype this idea
If you are building an IoT product, be it as simple as a temperature sensing device. Your devices don’t have unlimited battery, sensors occasionally send faulty readings, wireless connectivity often is unreliable, surrounding environment impacts performance, etc.
No IoT product development is without constraint.
“You have a huge problem in your IoT product development process, if you can’t find any engineering problem with it”
This quote goes without saying, if you don’t find engineering problems in your IoT product during ideation, you will endup finding them after building the final product. And that’s why we prototype.
To get you started with finding constraints that your IoT product might have to face in real life deployment, I am sharing a list of generic constraints with you below:
As we went through the next layer of GCM, you should have been able to come up with constraints that your hardware should be able to match.
We can now move to the part where you can decide what type of hardware modules would be involved in the IoT product development.
Generalized categories would be:
- Communication modules that define how the device communicates to the internet
- Power modules that are responsible for powering up your IoT device
- Modules that provide processing power to your hardware
- I/O modules that define how the user/device would physically interact
- Sensory modules that define how you can read and sense your environment
- Action modules that can invoke an action
Now, you are fully prepared to move into the prototyping phase. I will cover the overview here, but if you wish to read everything around IoT prototyping in depths, read my previous blog post on how to make an IoT prototype.
Based on the constraints, you would ideally end up with the following:
- A dev board that has sufficient process power and input output capabilities
- Sensors that work well in your constraint-defined range
- Power supply that is precise to validate your idea
- Wireless connectivity module that is well suited for your environment
Hire a developer or do it yourself, but building an IoT prototype is now easy for you.
Test your prototype extensively with actual target audience and environments to validate your engineering side of the product.
The specifications from the most successful and optimized prototype would be used to create final specifications for the product.
We will use these specifications to generate what we call as “Bill of Materials” or BOM. The next section specifically focuses on understanding BOM, generating it and optimizing for cost effective hardware product.
Bill of Materials for IoT product development
The idea that outsourcing hardware product development blindly after prototyping is the only thing left to check off is a disaster.
Outsourcing hardware product development is not s as easy as Schematic + Cash = Product !
Whether you work with an assembly shop down the street or outsource it to China, a clear Bill Of Material (BOM) is the first step to outsource production.
BOM is the formula, recipe, or ingredients list.
Every single assumption you make about your IoT hardware product, down to the colour of your soldermask has to be spelled out unambiguously for the third party to faithfully reproduce your design.
Missing or incomplete documentation is the leading cause of production delays, defects and cost overrun for hardware startups.
“When you start mass production every cent in your BOM counts, speccing the processing power of an RPI might bury your costs before you start.”
Simple BOM for Bicycle Safety Light
I will walk you through this section on BOM with an example of an LED based product that flashes LED when provided with an input by a user(uses a 555 timer to flash array of LEDs). This is basically a bicycle safety light product.
After specs from prototyping phase a generated, we can generate BOM by using tools like Altium. Here’s what a BOM generated by Altium for our LED prototype looks like:
One thing you might notice about this BOM is that it still closely resembles our prototype, but lacks any quality to qualify for a production grade IoT product.
We expect the following additionally in a complete BOM spec:
- Plastic case
The BOM specifications can be further improved by including:
- Approved manufacturer for each component
- Tolerance, material composition, form factor
- Voltage specification for passive components
- Extended part numbers specific to each manufacturer
Let’s walk through how these enhance BOM specifications.
A proper factory will require you to mention Approved Vendor List(AVL) specifying a manufacturer for component of the PCB. A manufacturer is not the distributor, but the company that actually builds the part. Take capacitor as an example, which is a PCB component manufactured by Murata, Taiyo, AVX and others.
It was surprising for me that many BOM’s I reviewed, lists Digikey, Avnet or some other distributors as manufacturers.
Though it may seem like a lot of work to list down each and every manufacturer for a part, but often quality product development requires you to know good manufacturers for certain parts.
I wrote about Capacitor manufacturers earlier. So, it actually happened with me, when even with a pre-specified capacitor, the manufacturer switched to another capacitor with a similar rating of voltage and capacitance. This led to an unstable hardware performance and the test board ended up getting short circuited.
Imagine how common would this be in those cases where BOM doesn’t specifies component manufacturers?
If you feel that some components can remain abstract from the manufacturer, you can mark a tag of “open/any”. When a hardware production factory sees this, this tells them that they can select any supplier that they are in good terms with.
Tolerance, Composition, and Voltage Specification
In case you have specified “open/any” for a component in your BOM, that strictly means “any manufacturer” not the any capacitor or inductor.
Each component have their own rating which should be mentioned in the BOM specification. In order to include this information with your BOM, follow the sample illustrations below that walks you through doing it with a Capacitor and a Resistor.
While adding this information to BOM specs, we will be as much specific as we can. We will use datasheets to guide us here.
- Capacitor (can be of multiple types – ceramic capacitor, Electrolytic capacitor, Tantalum capacitor, etc)
The following minimum specs should be provided: tolerance, voltage rating, and dielectric type. For special purpose applications also mention ripple current tolerance or ESR. A 10 μF, electrolytic, 10 percent tolerance capacitor rated for 50V has vastly different performance at high frequencies compared to a 10 μF, ceramic, 20 percent tolerance capacitor rated for 16V.
- Resistor(Carbon Composition Resistors, Wire wound Resistors, Thin Film Resistors etc.)
Specify at minimum the tolerance and wattage. A 1 kΩ, 1 percent tolerance, 1/4 W carbon resistor is a very different beast from a 1 kΩ, 5 percent tolerance, 1 W wire-wound resistor!
In case of inductor, they are sufficiently specialised that I won’t recommend even labelling “open/any”. For power inductors, the basic parameters to specify are DC resistance, saturation, temperature rise, core composition and current, but unlike resistors and capacitors, inductors have no standard for casing.
Component Form Factor
When we look into dimension, power supply type, location of mounting, etc. of the IoT product have to be considered before confirmation of mass production.
Often component form factor is ignored that leads to hardware components being placed too close and eventually leading to an assembly error.
Power resistor produces a lot of heat that can affect the nearby inductor or capacitor, if not kept at minimum distance or mounted improperly. This can even affect the working of other components placed nearby.
What we usually do to handle these issues is by using codes that we get from Electronic Industries Alliance (EIA) or JEDEC Solid State Technology Association package code (that is, 0402, 0805, TSSOP, and so on). We include these codes in BOM for standardization and streamlined quality production.
Apart from these you can also consider:
- Surface mount packages: The height of a component can vary, particularly for packages larger than 1206 or for inductors. Pay attention to whether the board is slotting into a tight case.
- Through-hole packages: Always specify lead pitch and component height.
Extended Part Number
Even the tiniest of the errors can lead to huge problems and delays in production. Not having extended part numbers is one of these.
For example, let’s say if you are building an Industrial controller where you manufacturer mistakes and substitutes VHC in VHCT logic family. That could change your inverter threshold from TTL to CMOS logic compatibility. Even though this is a small thing, but it leads to huge problems. Even rework post first batch is common to see when your manufacturer fails to be communicate properly with BOM specs.
Hardware product designers often add abbreviated part numbers to the components. A classic example of this is 7404. It is a hex inverter and has been in service for decades. All a designer has to do while specifying BOM specs is to use 7404 for an inverter.
But, you can’t only specify BOM specs with generic terms for components. The extended part number has to be rich in information that highlights: Package type, manufacturer and logic family.
So, considering these parameters, I would mention 74VHCT04AMTC for the hex inverter. When a manufacturing shop looks at these specs, they understand:
- Inverter was made by Fairchild On Semiconductor
- It is from VHCT services
- TSSOP packages
- This will be shipped in tubes
If you plan to build 1000 pieces, then a single character mistake could lead to to purchase of 2000 extra components. And yes, you are on the hook to pay for it, since you have mentioned it in the BOM. There are many valid reasons for purchasing in excess, so factory rarely question a decision like this.
Moreover, parts ordered in lot of 1000 are bit more expensive per unit than parts ordered in a lot of 3000.
Bottom line, every character and digit counts and lack of attention can cost you real capital while building your IoT Product.
Based on what we have learned, let’s revise the BOM specs. Here’s what it looks for the bicycle LED Flashlight hardware product:
From the BOM above, note MOQ (Minimum Order Quantity) and Lead time. If you are building low volume prototype, the MOQ would be irrelevant to you as you would be purchasing from distributor with less MOQ restrictions.
Purchasing with high MOQ restrictions can increase inventory cost for affecting your project in the long run.
If the lead time of a part is very long, you may want to consider redesigning for a part with a shorter lead time. Using parts with shorter lead times not only saves time but also improves cash flow: no one wants to tie up cash on long-lead components four months in advance of sales revenue.
Design For Manufacturing (DFM) and Production
So now we have designed the prototype, specified the component, and finally prepared the BOM. But now we will have to think more from a business perspective as our goal with Design for Manufacturing(or DFM) is to improve the Yield.
That’s the main deciding factor here as number of units engineered on the paper isn’t always equal to the number of defect free manufactured units.
On an average if your company works on gross margin of 40-50% (which is the actual Industrial case) then you are bound to reduce the non performing component produced. Rework on defective units and parts change incur extra labour cost, eroding profits.
This is more so important in design sensitive components, which require extensive testing.
While moving from engineering to mass production, the process of redesigning to improve robustness in the face of normal manufacturing tolerance, is called as Design for Manufacturing.
Is My Safety Light design ready for Mass Production?
To make you understand the DFM better and to avoid not using it, I would consider the safety light example which we have already discussed.
Consider the below bell shaped curve.
X- axis is the brightness of the light and Y- axis indicates number of units that reach the given brightness. The position of the bell curve relative to the pass/fail criteria determines the net production yield.
On the right hand curve most of the LED’s are shippable. While the left one have only 40 percent LED’s above acceptance criteria. These must be discarded. Considering 30 to 50 percent margin, scrapping the defective components will mean end of the business.
In such situation either you have to rework the manufacturing or go along with the low quality levels to get the company going at least. Both doesn’t seems the good option.
Consider the Tolerances
The goal of the DFM is to ensure that your product always passes the muster and you are never faced with choice of reducing margins, lowering quality standards, or going out of business.
There are many factor to consider for, but here I would be discussing the most noteworthy and can’t miss factors which can even modify the output of your product.
Let’s take the case of resistor. If It’s resistance vary from +/-5 %, you have design the circuit which can withstand the edge values without much variation in output.
Resistor is the passive component, if we talk about active components such as transistor or capacitor, the parameters can vary widely.
In case of transistor, consider taking into account values such as current gain (hFE) for bipolar transistors, threshold voltage (Vt) for field effect transistors (FETs), and forward bias voltage (Vf) for LEDs.
The datasheet of all the component is the most important document in this case. Watch for parameters with great disparity between their min and max value (max- min spread, as mentioned in datasheets).
For example, Fairchild’s 2N3904. Its hFE ranges from 40 to 300.
Talking about capacitors, their maximum operating voltage plays important role here. I personally use double the rating of voltage as required, where possible. I use 10V capacitor for 10V rail and 6.6V capacitor for 3.3V rail.
Consider ceramic capacitor dielectrics, which have reduced capacitance with increasing voltage. In practice, operating near capacitors maximum voltage, its operating capacitance will be at negative end of its tolerance limit.
#1 Appropriate size
You have to build and test your IoT hardware not only for electronic, but also mechanical tolerance as well. Neither the PCB nor the cases will come out the exact size, so design your casing after taking this into consideration.
If this isn’t factored into the production process, ether your PCB or your casing would come out with a large or a small size. For us casing and assembly isn’t just about fitting the IoT hardware properly, but it is also one of the biggest factor that prevents mechanical damage to your IoT product.
#2 Cosmetic Damage prevention
Another factor to consider is the cosmetic damages, such as dust trapped in plastics, small scratches, sink marks, and abrasions.
It’s not the out of the box criteria which I am mentioning here. There are always some abrasion acceptance level which you have to work out with factory beforehand.
How will you do that ?
For example, most of the factory have their own predefined criteria or you might tell the factory that the product is considered ‘good’ if and only if it have no more than 2 dots blemish larger than 0.2mm, no scratch longer than 0.3mm, and so on.
You have to be that specific. But it’s not that tough to get on, right !
How I designed the Enclosure
Enclosure design is not the kind of topic in which I can let you know directly what should be done and what should not to be. Here, I would be taking you to my own team experience of building the enclosure design of the our product.
In 2015, I designed the Boardroom Bacon.
In office, its common to start a conversation which lead to ad hoc meeting in one of the board room. We thought it would be useful to immediately know 1) Which boardroom is available by just glancing around the room, 2) if the boardroom does have people in it, is it booked in the Google calendar? Our solution was the “Boardroom Beacon”.
Once the schematic was done, we soldered the product to the PCB board and everything was together.
We decided to go with wooden enclosure. After some iteration we realised it was not the right material for the job.
We did some research and came out with some handy technique 3D print. We used Sketchup for 3D modeling and lulzbot 3D printer for print. When designing enclosure, form factor and material are key considerations.
What I would recommend is to mock up your design on paper and iterate with cardboard cutouts before going through the lengthy printing process.
Measure twice, cut once !
As it’s difficult to get a smooth, finished surface for public facing parts using 3D print, I followed some steps to get one which 100% met my requirements.
- Using knife I spread the bondo putty all over the surface of the print, filling step line gap.
- After it get cured, sand with 220 grit sand paper to get rid of the bumpy surface.
- Then sand with 600 grit to polish the surface.
- Apply 3 coats of acrylic primer and let it dry.
- Assemble the parts with their screw and make sure that sanding and priming haven’t changed the form factor much.
- Finally apply 3 coats of acrylic paint and 1 coat of acrylic varnish.
And this is what I got !!
Pretty cool right !!
So, from the above story you must have got the brief about how to build the enclosure and finish them to make it market ready. Based on it I am listing down the standard steps you should take to achieve the desired result.
- The first step to have companies design engineer sketch out several different concept of how product could look like. It is often done by hand but designer also use software. We usually go with 4 to 5 sketch, but if customer is still in MVP phase we can go along with rough first sketch and improve thereupon.
- After the sketch is finalised the CAD engineer will create a model for prototype using. software such as SolidWorks, AutoCAD Inventor, Pro Engineer or Catia. This step will include specifying tolerance, fitting assemblies, DFM, etc.
The final deliverables of this design phase will consist of 3D CAD file and 2D drawing for manufacturing.
Prototyping is the heart of the hardware development process. Once it is done you can move on to build the real product smoothly using identified tools. For the heart you would require a driver, Bill of material will act as one. Arriving at the correct BOM will make hardware selection from the vendor quick. Trust me using these exact process you are going to make a real product in least cost and time.