owned this note
owned this note
Published
Linked with GitHub
---
title: Open Hardware design and prototyping
description: In this lesson we introduce concepts, tools and techniques to design and develop open hardware projects.
authors: Jerry de Vos, Jose Urra, Santosh Ilhamparuthi
version: 1.0
---
# Open Hardware design and prototyping
[![License: CC BY 4.0](https://img.shields.io/badge/License-CC_BY_4.0-lightgrey.svg)](https://creativecommons.org/licenses/by/4.0/) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.7195666.svg)](https://doi.org/10.5281/zenodo.7195666)
**Date of release:** 29-08-2022
Prototyping (or **experimental thinking and building of functional products**) is perhaps the most relevant skill needed to design (open) hardware successfully. (Some might argue that is a fundamental skill for life :smile_cat: but we are not going that far). Prototypes help us to expand our knowledge base, build confidence in the relevance of a project, implement ideas, and approach projects iteratively through controlled failure and incremental success. **They are a means to the end of reaching a durable and long-lasting design in a lean and cost-efficient way**. This lesson is about helping you to incorporate prototyping into your toolbox.
:::info
**By the end of this lesson you will**
- Be able to generate experiment designs or prototyping tasks to validate and develop key ideas in your project
- Organize and plan the execution of these experiments
- Document these experiments and capture the learnings from executing them
**Considerations and prerequisites**
- Being familiar with our previous lesson: **[framing open hardware projects](https://hackmd.io/AHVevvT-SbOY2jq4FYdieg?both)** will help you get the most out of this lesson.
**Learning objectives**
- Incorporate an experimental approach to the development of your project ideas
- Apply prototyping as a core activity in the design and development of open hardware projects
:::
## Introduction
**15 years, 5127 prototypes** is what it took James Dyson to create the DC01, his first upright vacuum cleaner with the patented cyclone technology. This can give you an idea of how much prototyping was needed to change vacuum cleaning technologies and set a new standard. But an open hardware project may well be a series of prototypes or even just one prototype (these are often found in [hackaday.io](https://hackaday.io/discover))
![](https://i.imgur.com/mpG4GXI.png)
Early promotional photo of a DC01 against a competitor with a cloth bag.
image retrieved from: [link](https://dyson-h.assetsadobe2.com/is/image/content/dam/dyson/invention/06/Cullinan_Chapter06_Sidebyside.jpg?cropPathE=mobile&fit=stretch,1&fmt=pjpeg&wid=640)
### What is a prototype
Prototypes are models of a future solution or product that help better define the final design specifications of the product/service, as well as communicate how the final product will be. They are used to test partially or completely ideas and designs and they have essentially an experimenting and testing purpose.
**We prototype to learn fast and cheaply. To study and approach the solution iteratively, manage risks, and control failure.**
:::danger
**What is not a prototype**
Not all builds, made artifacts or hacks are by default prototypes. You can build something for fun, or as a hobby. A prototype can be easily confused with a build or a model, it is only a prototype when it has served the purpose of researching or testing aspects of a final solution in progress within a project.
:::
## Uses of prototypes
- **Product/project concept validation** Check that the product/project expectations and core hypothesis are objectively or empirically valid.
- **Product/project concept verification** Check and demonstrate the technical feasibility of the product.
- **Learning:**: answering questions about performance, feasibility, and desirability.
- **Communication**: Demonstration of product for feedback, 3D physical models of style or function.
- **Integration** Combination of sub-systems into system model, alpha or beta test models. These prototypes tend to be approximations that are closer to a final product.
- **Milestones** Sprint increment, the release of a new version of a product/project, first testable solution.
## Different types of prototypes
Prototypes come in many shapes and sizes, they can be as simple as a piece of cardboard, or as advanced as a ready-to-fly satellite. *A prototype is an approximation of the product*. The following diagram classifies different types of prototypes using a biodigester as an example. This diagram can help you think about how can you design experiments or prototypes to approach sub-problems or aspects of your solution. A backlog of experiments or tests can be composed of focused prototypes where you develop a critical module of your solution or a functional prototype where you go after a working principle or mechanism.
:::info
The goal of articulating your different prototyping intents or experiments has to do with the framing of your project, as well as the time and resources you can allocate to it.
:::
![](https://i.imgur.com/sENP08T.png)
### Prototyping for validation vs verification
In the context of hardware design, prototypes can be useful to:
1. **Validate** core project /product assumptions. (In the case of open hardware these can be core design specifications that satisfy certain needs or even the purpose of the project itself)
2. Explore technical options/solutions/ideas and **verify** that they implement correctly the desired design specifications.
:::info
Prototypes that **verify** are focused on technical feasibility, and performance. Prototypes to **validate** are focused on desirability, market, needs, etc. The first type aims to "Do the right thing" The second type aims to "Do things right".
:::
At a very high level then we can say that prototyping can be used to **validate** a value proposition (Is it a good value proposition?) or to **verify** a value proposition (Is it feasible?). In the first case, prototypes aim to test a project's theory, in the second case they are used to test the project's feasibility through experimentation and engineering.
> Validation is the process of checking whether the specification captures the customer's requirements, while verification is the process of checking that the software meets specifications. [Read more about it here](https://www.arbourgroup.com/blog/2015/verification-vs-validation-whats-the-difference/#:~:text=Validation%20is%20the%20process%20of,that%20the%20software%20meets%20specifications)
## Overview of the testing process
The testing process involves mostly planning your experiments and prototypes based on different criteria such as resources, relevance, component dependencies, deadlines, among many more criteria.
:::warning
:warning: The following testing process is inspired by scrum, lean, and the way is presented by the authors of value proposition design. Even though this process is presented as a process to validate the business ideas, it can also be applicable to design and development activities. **The only difference is that we have added verification experiments as part of the hardware development process.**
:::
![](https://i.imgur.com/wLCeMJX.png)
:::info
:point_up_2: Image retrieved from the book: "Value proposition design: How to create products and services that customers want"
:::
1. **Extract hypotheses from your project framing process** (ideas, concepts, sketches). It might be that a hypothesis requires multiple experiments, even a cycle of prototypes that aim to test this core hypothesis.
2. **Prioritize hypotheses**. Which are those hypothesis that underly the core framing of your project? Which are the riskier ones, or the ones that has more weight on the overall idea? These are questions that can help you decide how to prioritize them.
5. **Ideate and design experiments to help you validate these hypotheses.** Before building prototypes you can create a "test card", this is way of documentation including its purpose.
7. **Prioritize these experiments based on effectiveness, effort, time, completeness, and price.** This can end up being the planning of a sprint or a milestone in your project.
8. **Build your experiments and run your tests to answer your hypotheses.**
9. **Document and incorporate your learnings into your design.** This may well end up being also an upgrade of your design specifications, a new version release and a changelog explaining what has changed in your latest desgin version.
:::warning
You can apply this process very loosely or very systematically and detailed, depending on how important the project is. The complexity of the planning, documentation, and project mangement always follows the complexity of a project, its size, number of adopters, and how dependable it is.
:::
### Find a balance between quality, time, and budget when organizing and prioritizing your backlog of experiments using the criteria below :point_down:
---
![](https://i.imgur.com/LH56kho.png)
image retrieved from: [https://www.mistywest.com/posts/what-is-the-purpose-of-hardware-prototyping](https://www.mistywest.com/posts/what-is-the-purpose-of-hardware-prototyping)
## Getting started
Our set of tools to help you get started with this process are [**test cards**](https://www.strategyzer.com/blog/posts/2015/3/5/validate-your-ideas-with-the-test-card), [**learning cards**](https://www.strategyzer.com/blog/posts/2015/3/9/capture-customer-insights-and-actions-with-the-learning-card), and a [**progress board**](https://www.slideshare.net/Strategyzer/progress-board).
![](https://i.imgur.com/GKwhzXZ.png)
:::info
:point_up_2: Image retrieved from the book: "Value proposition design: How to create products and services that customers want"
:::
### Design and build your experiments/prototypes using a test card
At this point, you should have selected those ideas, hypotheses, and concepts that are a priority for your project currently. In this step, we will find out how testable these are. **At this point the goal is to design prototypes and capture them using the test card as a documentation template.**.
:::success
**Tips**
- **Go tangible and visual.** "Don’t waste time in long winding conversations (we like calling this blahblahbah). Sketches, simple cad models, paper, cardboard, or a 3D print.
- **Keep your models/prototypes simple.** "Deeply refining ideas that are likely to change drastically is expensive and wasteful – only capture the essence in your prototypes"
- **Don’t fall in love with your first idea.** "Explore and compare alternatives before you focus on one option." Say you have a hypothesis, perhaps you can design experiments with different technical options that can achieve roughly the same goal.
- **Seek criticism early!** "Present your models early on to spark conversations and use negative feedback to create improved prototypes."
:::
**Some examples of candidates to capture in a test card**:
- An architecture or several architecture designs that you want to present to a more senior engineer to get feedback.
- A translation of a schematic into different PCB variations that fit for example a casing you have already selected from a vendor.
- A simulation or several simulations
- It can even be a set of experiments that aim to validate a core hypothesis that combines simulations, cad modeling, 3D printing, etc.
### Test your prototypes and capture your learnings
At this point, you have run at least a test and you can reflect back on what have you observed, discovered, or learned through the prototype implementation and testing based on measurements. **The goal here is to capture this learning and translate this into new actions** (perhaps a next prototype or perhaps a document updating your new design version).
> The Learning Card forces you explicitly articulate:
>- Which hypotheses you choose to test
>- What you observed, discovered, or learned in the field
>- What did you deduct from those observations (i.e. the insights you gained from the experiment)
>- How you'll act upon this learning (e.g. to improve your business model and value proposition ideas)
## The progress board
This tool simply aims to structure your testing process by starting from left to right with your core ideas broken down into prioritized hypotheses (concepts, ideas, sub-problems, sub-solutions). Then we have a backlog of tests that can also be prioritized using the prototyping criteria we have shared in previous sections and ends up with learnings and knowledge that are captured in better design specifications and choices.
![](https://i.imgur.com/hynkVZL.png)
:::info
:point_up_2: Image retrieved from the book: "Value proposition design: How to create products and services that customers want"
:::
# Exercises
**Goal:** The goal of these exercises is to help you set up a simple testing framework with a free, simple and available tool that is widely used by open source communities in software and hardware development.
**Hopefully these exercises will help you work further in your project using an agile-like project management approach.**
## Exercise 1: Create a progress board
We are going to rely mostly on GitHub and markdown to do these exercises. Consider doing all the documentation using markdown in your own notes and then transfer them in github issues and the board so that you keep also those notes reusable.
:::warning
:hand: Before getting started you need to have a GitHub
:::
**Instructions:**
- Create a GitHub project if you haven't for your project (remember you can use github as one of the different distribution channels for your open hardware documentation)
- Use GitHub project boards to create a progress board. Make an example that people can copy
## Exercise 2: Pick up a hypothesis that is core to your project and design several experiments using the test cards
:::warning
:hammer_and_wrench: Here we provide a template that already combines a test card and a learning card. This
:::
**Instructions**
- Document your experiments in a local hackmd so that you can reuse it later using the template we are providing below.
- Open an issue and name it based on a test design.
[Read more about how to open an issue in GitHub](https://docs.github.com/en/issues/tracking-your-work-with-issues/creating-an-issue).
- Add the issue to your project board. [Read more about how to do this step](https://docs.github.com/en/issues/tracking-your-work-with-issues/creating-an-issue)
### Template
```
## Test name (this can be the name of the GitHub issue)
duration, deadline (these metadata can be added in GitHub issues)
Step 1: hypothesis
- We believe that .... <here goes your hypothesis>
- Hypothesis importance (score from 1 to 3)
Step 2: Test
- To verify that, we will.... <here goes your experiment design,
you can also use sketches and images>
- Test cost (from 1 to 3)
- Data reliability (score from 1 to 3)
Step3: Metric
- And measure..... <what is your core >
- Time required
Step 4: Criteria
We are right if...... <here goes the criteria that need to be
met for this test to be positive>
Learning documentation
Step 5: Observation
- We observed that .....
Step 6: Learning and insights
- From what we learned that ....
Step 7:
- Therefore, we will ... <what you will do after capturing this insight, perhaps new prototypes or different types of tests>
```
## Example: 3D printable hand-powered centrifuge
This exercise uses the [3D -Fuge: A New Hand Powered Centrifuge](https://www.labonthecheap.com/3d-fuge-a-new-hand-powered-centrifuge/) as an inspiration to demonstrate how you can design a test card and they haven't been tested, therefore the learning part is just an example for the purpose of this lesson.
:::spoiler ### Test 1 focused on target specifications hypotheses (verification)
**Step 1:** We believe that a portable hand-powered centrifuge of less than 20 EUR can be used to analyze diseases like meningitis and aids in extreme situations where there is no electricity.
(This hypotheses has an importance score of 3)
**Step 2:** To verify that we will build a 3D printable prototype with a rotational mechanism that delivers the force needed to achieve the target spec of 2000 CFR and build a test setup with a sensor to test the speed of the centrifuge.
:warning: Notice in this step that the prototype involves designing the testing setup, otherwise the target spec cannot be measured accurately.
**Step 3:** We will measure the Centrifugal Relative Force that separates the sample matter (2000 CFR)
**Step 4:** We are right we can deliver the CFR at a certain time (2 mins, and we can separate the samples, and it is doable by a person X times per hour. This is an example of a target spec that allows to translation of the hypothesis into a testable idea.
**Step 5** We observed that the centrifuge can rotate up to 30000 RPM.
**Step 6** We learned that is possible to build a centrifuge of this kind with recycled PLA for much less than 20 EUR of costs.
**Step 7** Therefore we will develop new experiments and prototypes focused on testing the robustness usability and lifecycle of such a centrifuge in actual usage environments.
:::
---
:::spoiler ### Test 2 focused on testing contributor and user channels (validation)
**Step 1:** We believe that many people around the world will be interested in testing and replicating this prototype and provide useful feedback on how relevant it is for the target usage context.
**Step 2:** In order to test this, we will generate clear building guides with the STL files to print and clear documentation of how to separate a sample with coffee. We will also provide a simple form with some questions and fields to provide feedback. The form will be a clear contribution request.
**Step 3:** We will measure likes in GitHub, we will measure
**Step 4:** We are right if someone doing a diagnosis of these diseases in these difficult contexts confirms that this is a useful
**Step 5**
- We observed that most enthusiasm came from teachers and educators in high schools and primary schools that have local maker spaces.
- There were a variety of hobbyists and enthusiasts
- Few but relevant responses from physicians doing service in rural areas.
**Step 6** The audience that is more interested in the project is not the one we expected.
**Step 7**
Therefore we will:
- Keep reaching our target audience and learn more from contexts in which this tool could be used.
- Think of a different low-cost design that is battery-powered or even solar-powered.
- Refine the design based on user feedback.
- Document an assignment for a mechanical engineer to optimize the design for 3D printing and injection molding.
:::
---
# References
[1] K. T. Ulrich and S. D. Eppinger, Product design and development, 3rd ed. Boston: McGraw-Hill/Irwin, 2004.
[2] “Adding issues and pull requests to a project board - GitHub Enterprise Server 3.4 Docs,” GitHub Docs. https://ghdocs-prod.azurewebsites.net/en/enterprise-server@3.4/issues/organizing-your-work-with-project-boards/tracking-work-with-project-boards/adding-issues-and-pull-requests-to-a-project-board (accessed Aug. 28, 2022).
[3] “Creating an issue,” GitHub Docs. https://ghdocs-prod.azurewebsites.net/en/issues/tracking-your-work-with-issues/creating-an-issue (accessed Aug. 28, 2022).
[4] “3D -Fuge: A New Hand Powered Centrifuge | Lab On The Cheap.” https://www.labonthecheap.com/3d-fuge-a-new-hand-powered-centrifuge/ (accessed Aug. 28, 2022).
[5] “Creating a project (classic),” GitHub Docs. https://ghdocs-prod.azurewebsites.net/en/issues/organizing-your-work-with-project-boards/managing-project-boards/creating-a-project-board (accessed Aug. 28, 2022).
[6] A. Osterwalder, Y. Pigneur, G. Bernarda, and A. Smith, Value proposition design: how to create products and services customers want. Hoboken: John Wiley & Sons, 2014.
[7] “What Is The Purpose Of Hardware Prototyping?” https://www.mistywest.com/posts/what-is-the-purpose-of-hardware-prototyping/ (accessed Aug. 26, 2022).
[8] T. Varma, Agile Product Development: How to Design Innovative Products That Create Customer Value. Berkeley, CA: Apress, 2015.
<!--
# Notes Jerry
make something for a reason, learn something along the way, understand the process, gain experience, show potential
> The purpose of hardware prototyping is **to answer questions, ranging from technical unknowns to getting a better understanding of your end-users and/or market.**
>
stages
- proof of concept
- alpha
- beta
- release
### considerations while hardware prototyping
it is always finding a balance between quality, time, and budget. but you can define this budget
![](https://i.imgur.com/LH56kho.png)
from: [https://www.mistywest.com/posts/what-is-the-purpose-of-hardware-prototyping](https://www.mistywest.com/posts/what-is-the-purpose-of-hardware-prototyping)
### example: spaceX
https://www.youtube.com/watch?v=bvim4rsNHkQ
[](https://www.youtube.com/watch?v=bvim4rsNHkQ)
### Example: Dyson
**15 years, 5127 prototypes**
is what it took James Dyson to create the DC01, his first upright vacuum cleaner with the patented cyclone technology. Dyson clearly understood the importance of creating and testing prototypes for the development of his new product.
[https://www.youtube.com/watch?v=OwtjQM49Ir0](https://www.youtube.com/watch?v=OwtjQM49Ir0)
:::danger
example materials for different stages of prototypes:
* simple: cardboard, lego,foam, paper, clay, breadboard
* basic: extruded aluminium, lasercut, 3D print, perfboard
* advanced: milling, injection moulding, pcb(a)
:::
### Useful Resources
[Digital Manufacturing Resource Center | Fictiv](https://www.fictiv.com/resources)
[3D Printing Guides, White Papers, Webinars, and More](https://formlabs.com/eu/resources/)
[](https://prototype.berkeley.edu/)
[Blog | Outdesign.Co](https://www.outdesign.co/blog)
https://www.youtube.com/c/HardwarePioneers/videos
-->
---
<ul class="pager"> <!--this is the style of the button-->
<li><a href="/AHVevvT-SbOY2jq4FYdieg">Previous Week</a></li> <!--This button takes me to the table of contents-->
<li><a href="/hZH1FWsNRSO0FJ1i-9tE4g">Next Week</a></li> <!--This button takes me to the previous page-->
</ul>