MENU

 

01-Sep-2016

How to Use Open Source Hardware in Product Development

By Doug Harriman (Chief Technology Officer)

There are many amazing open source hardware (OSHW) printed circuit assembly (PCA) projects available today. Arduino®, BeagleBone®, Rasperry Pi®, OpenPilot®, and RepRap® are a few of the bigger names, but there are many, many more. These projects have spurred a whole generation of makers, hackers and students to get involved with electronics and firmware.

With low cost hardware and large developer communities, many people have been exposed to one or more OSHW PCA’s. Given that experience, it makes sense to consider these boards when developing your own product. At Simplexity, we’ve used different flavors of Arduino, BeagleBone and RepRap in various product development activities. They’ve been great for cheap, rapid prototyping, but they’re not without their drawbacks. Before jumping in with OSHW, there are some points you should consider about when and how to use this technology:

Is cost the only driver for using OSHW? 

One of the great things about OSHW projects like Arduino is that they’ve driven down the cost of microcontroller PCA’s. In fact, these community driven projects have forced the major silicon vendors to respond with their own OSHW development boards. Before Arduino, development boards for microcontrollers started at several hundred dollars. Because of the competitive pressure from Arduino (and the project’s use of Atmel processors), there are now low cost development board lines from most major silicon vendors. While they may not be OSHW, Boards like the ST Discovery, NXP Freedom and TI LaunchPad start at under $10 (less than Arduino!). If you don’t like the processor the community based OSHW project, find the processor you do like, and get the low-cost dev board that goes with it. Another great thing about these boards? Their designs tend to be open source because the vendor is trying to get their chips into your design. If board price is the only thing driving your board selection criteria, be sure you consider the new low cost development boards.

Does the board have an assurance of supply (AOS)?

Anyone serious about manufacturing a product knows that component assurance of supply is a significant design consideration. One great thing about OSHW is that you have access to the design files and can get the boards built yourself. The catch? The community based OSHW tend to move fast. 

If you base a production design on a community OSHW board, you may find that your supply of cheap parts has disappeared in a year or two. The low board price for large projects like Arduino and BeagleBone depends on high production volume. When the community moves on to the latest and greatest, your supply of cheap board may dry up. Sure, you can produce your own boards with the OSHW designs, but at what price? Simplexity investigated the cost of producing a BeagleBoneBlack board in total volume of 500 units, and found the cost went up approximately 3X.

It’s reasonable to expect that vendor supplied boards will stay in production as long as the part on which they are based has not gone end-of-life. Your silicon vendor’s sales representative should be able to provide you with the production lifetime for a given part. Note however, that the vendor license may preclude you from shipping a development kit board in your product.

Another option is to use a commercially designed embedded controller board from a third party. Any reputable supplier of a PCA should be able to provide you a minimum production lifetime. For additional assurance, some third parties will escrow their designs so that you can get design files if the company ceases operation. This has the same cost risk as the community projects, but does make sure you have a product if your supplier goes out of business.

Does the board have all of the hardware you need on a single PCA?

To hit the lowest possible price point, designers remove all but the most critical functionality. For OSHW projects, most small use a system of daughter boards or “capes” to provide additional hardware. While capes can be great for prototyping, be careful about what you put into the field. BergStik headers are not as mechanically robust as a single PCA design. Intermittent connection issues between boards may lead to field issues that are very difficult to diagnose.

Along the same lines, your microcontroller should have all of the hardware peripherals that you need in your application. Simplexity specializes in mechatronic product development. As such, we build a lot of motion control systems. For our systems, it’s critical that our microcontrollers have hardware to handle quadrature encoder inputs. Polling or interrupting on encoder pins is simply not acceptable for a professionally developed product because missing encoder counts lead to serious motion system problems. Make sure the microcontroller on your board has the hardware resources for your design needs.

Does the board have regulatory certification?

In order to ship a product to consumers, your PCA is going to have to have regulatory agency certifications. It’s very rare for community based OSHW designs to be certified. It’s also rare for silicon vendor dev boards to offer certification. If you make changes to an OSHW design to get certified, you will likely lose the cost structure that made an OSHW design so attractive in the first place (see above). In addition, because you’ve leveraged an OSHW design, you are required to provide your changes back to the community.

If your goal is only to prototype or do basic concept validation, this may not be an issue. However, you should think about how far down the road you want to get before switching to custom hardware.

What is the IP situation?

As noted above, if you make changes to OSHW, you’re required by the open source licensing agreement to provide those changes back to the community. If you have valuable proprietary hardware designs, that may be an issue.

A more significant issue is the firmware that is used to run the board. OSHW typically comes with open source firmware, and that firmware typically requires any changes to be published. You don’t have to use the open source firmware, but it’s often the most expedient path to getting something working. If you intend to deliver a product that does not provide its source to the public, you should tread very carefully. Consider whether you should start with open source code, or start with clean IP by using commercially purchased or internally developed firmware. 

Given those points, how should today’s product development engineering community use open source hardware when developing a commercial product offering? At Simplexity Product Development, we do the following:

  • We use community based OSHW products for prototyping and early feasibility investigations when needed. When we do use OSHW, we do it “bare iron”. That is, we do not use open source community firmware on anything that might ship so that we avoid any IP encumbrances for our clients. We tend to use the silicon vendor hardware interface libraries, GCC and a some of our own internally developed firmware to run the hardware. Note that the silicon vendor libraries are typically usable in closed source projects as long as you run on the vendor’s chips.
     
  • We use silicon vendor development kit hardware when we have new parts, both for microcontrollers and other parts (sensors, memories, etc.). Again, utilizing silicon vendor libraries as appropriate.
     
  • By far the most common approach we use is to use our internally developed motion control board. As a product development company, Simplexity builds a lot of hardware for electro-mechanical products. We’ve developed our own mechatronics board that has a much larger set of hardware needed for motion control than the standard OSHW board. In addition, we have a flexible, fully featured set of internally developed firmware to run the board. This allows us to get hardware running quickly, without the introduction of IP issues. Many product companies can do something similar by leveraging modified hardware from previous products. 

The OSHW community has done great things for the product development community. For professional product development engineers, the OSHW offerings are best utilized for early prototyping. Even then, it’s best to use avoid open source firmware when designing closed source product. By building your own firmware toolkit, you can leverage the best of the OSHW world without introduction IP and licensing headaches into your design.


Subscribe For More

To receive more articles like the one above in your inbox, sign-up to our newsletter below.

Blog Posts


Better Firmware Faster

19-Nov-2018

Demystifying What it Takes to be a CEO

18-Oct-2018

Considerations for Code Refactoring

24-Sep-2018

American Association for Clinical Chemistry Annual Meeting

30-Aug-2018

Simplexity's Answer to Growing Pains

09-Aug-2018

Consumer Electronics Show 2018 | Part Three | So, What is a Robot?

29-Jan-2018

Consumer Electronics Show 2018 | Part Two | CES 2018 and IoT

22-Jan-2018

Consumer Electronics Show 2018 | Part One

15-Jan-2018

Why on earth are heavy weights being suspended from this printer?

22-Dec-2017

10 Best Places to Buy Parts for Product Development

29-Nov-2017

Robust Firmware Stack Sizing

08-Nov-2017

Senaptec Strobe: A Study in Simplification

19-Oct-2017

Treatment, Prevention, and Medical Engineering Solutions

04-Oct-2017

Options in Product Development Models: Internal, CDM, or Design Specialist

20-Sep-2017

Designing Thermal Control Systems

30-Aug-2017

Simplexity’s 7 Steps to Simplification©

15-Aug-2017

Battle of the Buttons: UCSD vs. PSU

02-Aug-2017

Considerations For Medical and Biotech Designs

13-Jul-2017

Risk Mitigation in Product Design: Part 2

11-Jul-2017

Risk Mitigation in Product Design: Part 1

28-Jun-2017

San Diego's Biotech Consortium

09-Jun-2017

Appropriate Models for 3D Motion Analysis: Part 3

25-Apr-2017

University of Oregon’s Product Design Program Is One of a Kind

19-Apr-2017

Appropriate Models for 3D Motion Analysis: Part 2

14-Apr-2017

From Engineer to Leader: How Do You Get There?

12-Apr-2017

Appropriate Models for 3D Motion Analysis: Part 1

06-Apr-2017

Why Engineering Still Matters in Product Development

29-Mar-2017

How Mechatronics Improve Drone Technology

16-Feb-2017

Why You Need a Gyro to Measure Position

20-Jan-2017

Why I, As The CEO, Get The Same Bonus As All My Other Employees

13-Dec-2016

Mechatronics Aids In Embedded System Design

07-Dec-2016

Top 10 Tips for Designing Injection Molded Plastic Parts

22-Nov-2016

British school kids and car hackers: the widespread appeal of open source

14-Nov-2016

When should you consider designing custom gears?

07-Nov-2016

Conference Report: Open Source Hardware Summit

31-Oct-2016

What is a Motion Control System?

20-Oct-2016

The Top 10 Questions to ask a Product Development Firm

05-Oct-2016

The Potential of the Apple AirPods To Disrupt A Whole Industry

12-Sep-2016

How to Use Open Source Hardware in Product Development

01-Sep-2016

What is the mech in mechatronics?

16-Aug-2016

3 Tips for IoT Product Success

02-Aug-2016

When Should I Start Designing For High-Volume Manufacturing?

19-Jul-2016

Designing a 3D Printer for the Home

29-Jun-2016

It Turns Out That EMC Is Not Black Magic

22-Jun-2016

Selecting the correct motor type and size

06-Jun-2016

When brainstorming fails, throw an imaginary cat

18-May-2016

Five Tips for Mechatronic System Integration

09-May-2016

Three Tips for Designing High Volume Mechatronic Products

28-Apr-2016

What Is Mechatronics?

18-Apr-2016

If I could only do 3 things to simplify a design, what should they be?

06-Apr-2016