Hardware Prototyping with Arduino

Hipo
Hipo
Published in
7 min readDec 4, 2014

A brief intro to building physical products from a software developer’s perspective.

This post was originally published on the Hipo blog.

I gave a talk about hardware prototyping and why I think it’s important at Full Stack Conference in Toronto last weekend (slides here). While it’s fresh in my mind, I wanted to share my thoughts on the subject and why I think getting into hardware is really important for software developers who want to help build the future of technology.

Makers in human hamster wheels at Detroit Maker Faire

Makers & Backers

Until 2 years ago, I had no knowledge of how electronics worked. Even though I have been developing software for more than 15 years, it never occurred to me to get into hardware. I was never one of those kids who would take apart toys, instead I tried to build adventure games. It also didn’t help that I never identified with the Maker culture. Even though it’s cool in a nerdy way, building a human hamster wheel was never appealing to me. And let’s face it, Maker culture was no more than hobby projects until a decade ago.

Then came the Arduino in 2005, a cheap and easy way to build hardware projects meant for artists, hobbyists and students. Before Arduino, building a small robot was a niche hobby that required expertise in electronics and hardware. Today, 10 year olds are building robots with Arduino boards in thousands of schools across the world. It’s awesome.

Next was Kickstarter in 2009, bringing crowdfunding to the mainstream with unbelievable speed. Within a year, hobbyists went from building working Dalek replicas to launching products like the Smart Herb Garden, Sense alarm clock and Blink home monitoring system.

This is where we are today: Small teams are able to prototype and manufacture new physical products and bring them to market thanks to crowdfunding. I am not saying it’s easy, but it’s definitely possible for the first time in history. So, why should you care as a software developer?

Smart home concept

Future?

A lot of people are saying that the future will consist of intelligent homes, cars and devices that will collect and analyze data constantly, providing us with complex interfaces through which we will able to monitor and control everything.

I don’t think this will be the case.

Future will be full of sensors, but we will have less interfaces. I would like to live in a future where I don’t have to control or monitor things. They should be able to just figure it out and only get in touch with me if human intervention is required.

This is a future that will be built with software. To be able to build this intelligence, we need to understand hardware and its constraints. The world of physical devices is very different from our cloud servers with unlimited processing power: Everything from network constraints to power limitations can affect how your software runs. It’s a good idea to understand this world so you can build things in it.

Where to start?

There is a lot of confusion about where to start when getting into hardware. There are lots of options: Micro computers like Raspberry Pi and Beagle Board are very popular, there are intro boards like Tessel or Arduino Yun and finally there is Arduino Uno and its kin.

First of all, it’s very important to distinguish between these boards. Even though they look similar from outside, they are actually very different in nature. Micro computers like Raspberry Pi and Beagle Board are actual computers (hence the name). They are very powerful, run Linux and they are great options if you want to use your language of choice and build hardware devices that don’t have any battery limitations. In my experience, they are amazing for hobby projects but don’t work so well if you want to get some actual hardware prototyping experience. If you take a prototype built with a Raspberry Pi to a hardware engineer, he will curtly inform you that you will have to redo everything from scratch.

This is why I recommend getting an Arduino Uno to anyone interested in building physical products. The reason behind this is the constraints that come with a simple board. Using an Uno, you have power, memory and processing power constraints. In order to build a device that can run 24/7 with little human intervention, you will have to devise some very clever software tricks when working with an Arduino. This is a very valuable experience to have if your aim is to build hardware. As a bonus, an engineer can turn it into a miniaturized board with ease.

Convinced? Good. Here is a basic shopping list if you want to follow this route:

  • Arduino Uno
  • Breadboard
  • Lots of wires
  • Wire cutter
  • Sensors

Note how I don’t mention a soldering kit. I know it’s a bit scary. It’s actually easy, but you don’t have to get into it until you are ready.

A lot of the intro tutorials for Arduino feature LEDs and the classic “blinking LED” example. I recommend avoiding this completely. LEDs are actually quite complex and they require the right kind of resistor to work properly. They also come with lots of warning about “frying your board”. Just don’t use LEDs, they are not even that interesting! Sensors are much more fun, just as cheap, and easy to attach. As a bonus, they give you data that you can play with. A software developer’s dream, if you ask me.

Here are a few awesome places where you can get your supplies:

Among these, Adafruit deserves a special mention. They have amazing tutorials and exactly the kind of products you will want to get as a novice hardware prototyper.

Home Monitor prototype

Demo time

As part of my talk at Full Stack Conference, I demoed a Home Monitor prototype that is able to log temperature, humidity, noise, luminance and UV levels to a cloud server through a WiFi connection. Arduino software is built in a very defensive manner to protect against power and network outages so it’s able to log data 24/7 as long as it’s able to. Server components were built to scale on AWS Elastic Beanstalk and DynamoDB so they can receive hundreds of thousands of requests every minute from these imaginary devices in the wild.

The complete Home Monitor stack is available on GitHub, check it out and feel free to improve upon it:

I used the awesome little Grove sensors for this project with an Adafruit CC3000 WiFi board, but you could use other sensor options as well.

I also built another, more portable version of Home Monitor called Home Monitor Mini. This is a battery powered device that uses Bluetooth LE so you can connect to it with your iPhone and view readings in real time. This is also available on GitHub:

Home Monitor Mini uses my beloved Red Bear Labs Bluetooth Mini board. It’s an awesome little board that can be used for BLE communication or as an iBeacon. I wrote about them earlier, they are great.

One final advice: It’s a good idea to get as much experience with fitting your prototypes into enclosures as possible. It will give you new skills and a special kind of appreciation for devices you use daily. Get a Dremel and drill some holes into a project box. See if you can fit your messy prototype into it!

Future

What’s next?

Once you have a robust functional prototype, it’s time to work with hardware engineers and industrial designers. This is where things get expensive and it’s a good idea to start looking for investment. A good hardware engineer who knows how to source the right parts can turn your Arduino prototype into a tiny device that fits in your palm. And a good industrial designer can fit that into a beautiful package.

As software developers, we will be playing a huge role in building the kind of contextual intelligence future technologies will require. It’s a good idea to start understanding their limitations and building around those constraints so we can get there sooner.

And if you are interested in working with Hipo to make your product idea come to life, we are all ears, give us a shout!

From the desk of Taylan

Follow us on Twitter or subscribe to the Hipo newsletter to keep up with our updates.

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Published in Hipo

We help disruptive startups and small businesses create meaningful products and services. http://hipolabs.com

Written by Hipo

We help disruptive startups and small businesses create meaningful products and services. http://hipolabs.com

No responses yet

Write a response