Return to Blog Home

Crossing the Chasm: From Prototyping to Production

Professional IoT developers as well as makers aspiring to release commercial product face a dilemma presented by the market today: the vast majority of development hardware is so far away from being put in users’ hands that it requires a full manufacturing turn before it is customer ready.

If you guessed that we ran into the same problem when evaluating hardware platforms to build on, you’re absolutely correct. At Helium we’ve worked with quite a few development boards. We’ve used Arduinos, Raspberry Pis, BeagleBones and a slew of evaluation boards for various ARM CPUs. We often then design our own hardware around these components, but sometimes we’ve tried to jump the gap from prototype to production using a pre-made board, and this is where it gets tricky.

So You Wanna Be An IoT Developer…

Most development boards are targeted at people who want to explore the hardware and they often come with a bunch of onboard peripherals to play with. They are also typically quite large and unsuitable to deploy in the field. Just to be clear, “in the field” for us could quite literally be in a field. Since we are an IoT development platform with a wide range of potential applications, we encourage our own employees as well as users to get out of the box and find new things to sense, in order to a) confirm the robustness of the platform, including wireless performance and b) create novel sensing solutions for use cases that provide value to customers.

To that end, we took a number of the existing development boards out for a run (and have actually used many of them to prototype capes, sensor boards and access points containing Helium modules), but found ourselves underwhelmed with the offerings. Each technology had its strengths and weaknesses; those are inherent to the platforms. But the gap between testing and getting things into users’ hands was so wide that we felt like it had to be addressed for our own development – and therefore felt like we couldn’t be the only ones with this problem.

Helium’s Atom Development Board is different. We’ve tried to make our development board as close to what we think people would want in the field as possible, while still retaining the extensibility of a development board.

Let’s look at the ways Helium’s dev board enables you to take your idea from prototype to internal deployment or a limited production run:

Form Factor

Having stated before that IoT is all about interfacing with the physical world and making sense of disparate data sources, we realized this places some very stringent size constraints on end devices. After all, part of the reason these data sources (physical objects) are not online is because they’re hard to get to. With this in mind, we kept the board as small as possible. We’ve used Ball Gate Array (BGA) chips instead of the larger Quad Flat Package (QFE). We’ve also included some breakaway tabs on the sides with mounting holes, so you can either screw the board down into a case or break the tabs off to reduce the size. We’ve also included a pin header for the extension bus. You can either stack a daughter card like the Analog Extension Board on the dev board or use a ribbon cable to place your daughter card elsewhere in your device’s form factor.

Hardware Features, Included Peripherals

At Helium, we’ve tried to anticipate features users would like to have during development that may also be helpful (or at least not harmful) in production. We include a battery charging circuit on the Atom Development Board, so you can power/charge your devices over USB. We also include a battery “fuel gauge” (actually a coulomb counter) so that you can understand how your application logic and peripherals are affecting your battery life. An ambient temperature/pressure sensor is included on the dev board, which is a great way for people to get started talking to sensors if they’re not familiar with them.

alt text

Application “Semi-hosting”

One really cool feature our Atom Development Board has is to develop the application logic on your computer and have that process talk over USB to the Helium firmware on the board. The application runs on your computer, but sends I2C signals generated by the program to the Atom Wireless Application Module on the development board.

This means no slow compile/upload/reboot cycles for getting your prototype off the ground; you can just edit/run your embedded application locally, like more traditional software development. Of course, once you’re ready for deployment you can run your code on the development board.

Shortening the feedback loop in this way speeds up development time significantly and allows for the insertion of debugging tools for better programmer productivity.

Power Consumption

With the Atom Development Board, and the onboard execution environment, you get access to all the work we’ve put in to make Helium devices as power-efficient as possible. We don’t ship with any power-hogging devices on board, so as long as you’re careful with your scripting and peripheral selection, you should be able to achieve years of battery life in the field with minimal effort using the same board.

Security & Connectivity

A lot of IoT dev boards include a radio (or a socket to add a radio) but don’t address security at all. Helium’s dev board comes with per-device hardware keys out of the box and will connect to Helium’s network with 0 configuration. Armed with this feature, you can focus on developing the application logic for the sensors you need and on building out whatever application will use that data, the whole transport/encryption/authentication/storage/query part of development is taken care of so you can spend more time on what makes your application unique: what data you’re collecting and what you’re doing with it. This is a key reason we feel that developing on top of Helium is so fast, and the prototyping is so close to production: security is included in your development effort with no time impact.

Remote inspection

If you’ve ever dealt with embedded development, you know that a lot of dev boards have you recompile large parts of the software environment on the device when you change something. The application logic you put on the device can run out of memory, get stuck in an infinite loop or get the hardware into an inconsistent state. Often this happens at the worst times and understanding what happened can be very difficult. The Helium firmware on our Atom Development Board gives you a safe execution sandbox for your application code; if something goes wrong or you get an unexpected input, your device won’t fall off the network. Instead, you will get an error message in the device’s timeseries data. Additionally, if you are chasing an intermittent problem, you can have your application logic send log messages as timeseries data, so you can avoid leaving a serial port connected while you try to track down what is going wrong.

Conclusion

We believe the Atom Development Board is production-grade so strongly that we are shipping it inside the Helium 4-20mA Smart Sensor Adapter, a device that allows users to turn regular 4-20mA sensors into cloud-connected smart sensors reporting data over Helium.

Of course, once you want to produce significant volume, Helium has the production Atom Wireless Application Module that collects all the core pieces of the Atom Development Board into a single component you can lay down on your own printed circuit board however you want. All of your software development will be completely reusable and portable to your new hardware, no lengthy board bringup or integration time needed. In effect, the Atom Wireless Application Module will behave in the field exactly the same as the Helium Atom Development Board did on your desk, allowing you to quickly get your IoT application in the hands of customers and add value.

Want to Learn More About Helium? Talk to us!

  • If you’re interested in finding out more about Helium, visit www.helium.com for an overview of our products.

  • Development kits and all necessary hardware to start building connected products can be purchased at store.helium.com.

  • Join our Slack community at chat.helium.com and speak directly to the Helium team as well as other Helium developers.

  • If you’d like to discuss an upcoming project with us, let us know and we’ll get in touch soon.