3 hardware platforms of choice to get started with Eclipse IoT

When you prototype IoT solutions, it becomes necessary very early in your development phase to use an actual embedded platform to run your software, and to test it in an environment that is as close as possible of what you expect your production environment to be.

As I’m sure you know, there are lots of hardware prototyping platforms out there. In this article you will learn about three very popular options (from the cheapest/tiniest to the most capable) that can help you get started with Eclipse IoT projects in no time, and get pointers to useful docs and tutorials to make the initial setup as simple as possible!

Arduino

Arduino_Uno_-_R3

With only 2KB of RAM and 32KB of Flash, the Arduino UNO really is what you would call a constrained device! And yet, the ATmega328P micro-controller powering the Arduino UNO is able to run a full-blown MQTT client, in the form of the Eclipse Paho embedded C Client.

Check out the Paho website for more information and get the pre-build, ready-to-use, Arduino ZIP library from the project’s download page

ARM mbed

nxp 1768

There is a vast ecosystem of micro-controllers compatible with the mbed environment. mbed devices are based on the Cortex-M architecture, and typically have more RAM and Flash than an Arduino UNO. For example, the NXP LPC1768 has 32K of RAM and 512KB of Flash.

An interesting thing to get started with the mbed platform would be for you to run a LWM2M stack, using the Eclipse Wakaama project. I actually blogged about it last month, so check it out!

Of course, it’s also possible to run a Paho MQTT client, and you can easily get started using the HelloMQTT code sample available from the online compiler.

Raspberry Pi

Raspberry Pi

Ah! The famous credit-card sized computer which more that 3 million units have been sold! With its 900MHz quad-core CPU and 1GB of RAM, the Raspberry Pi 2 is the kind of horse that could power a real-life IoT gateway, bridging sensors and actuators to a backend server.

Eclipse Kura is an open-source framework for building smart IoT gateways that can host and manage Java applications. It is very easy to get started with Kura on a Raspberry Pi as the project team provides a Debian package that can be installed by typing literally just two command lines!

If you’re interested in getting your hands dirty with home automation, Eclipse SmartHome is another project you may want to look at. The integrated distribution of SmartHome, OpenHAB, has a wiki page with all the important things you need to know to optimize the performance of your system.

… and many more!

Of course these are just 3 platforms among many, and as many of our projects are backed by companies whose business is indeed to make sure that the software – be it a protocol stack or a full-blown application framework – can run on heterogeneous hardware platforms, you can usually easily port them to your own platform. Actually, if you have experience with Eclipse IoT projects on other platforms, I’d love to hear from you!

Growing an open community:
3 interesting facts about Eclipse IoT

About 9 months ago, I published a blog post showing up some interesting metrics about the Eclipse IoT open-source community.

I have recently crunched the numbers again and here are 3 interesting facts about Eclipse IoT and its developer community:

A very diverse community of contributors

iot facts-01

It is one thing to develop open source IoT technology (and Eclipse is definitely not the only organization working on it) but it’s quite another thing to do this in a transparent and open manner.

At Eclipse IoT, over the last year, 125 different developers have been writing code and fixing bugs. What’s more, they come from 20+ different organizations, demonstrating that open collaboration is not only possible, it is key to ensure technology adoption and long-term support.
Leading the charge in terms of numbers of developers are: Eurotech, IBM, Sierra Wireless, LAAS-CNRS and Deutsche Telekom. Other companies involved include: Intel, IBH Systems, Cisco, itemis, innoQ, …

A solid and growing code base

iot facts-02

The Eclipse IoT portfolio is very rich (from protocols implementations, to frameworks for building IoT gateways, to tools and libraries for industrial automation), so it is no surprise that we now have a very solid code base, with over 1.8 million lines of code (yes, you read that right!).

It is also interesting to see the progression over the years, demonstrating that a majority of the projects are under actual development.

eclipse-iot-code-progression

A wide range of supported languages and platforms

iot facts-03

Not very surprisingly, as many of our projects target smart IoT gateways at the edge of the network, we have a predominance of Java in our code repositories (~70%), but our 1.8 million lines of code also contains lots of C/C++ (10%) as several of our projects target constrained embedded environments. You will also find Python, Javascript, Lua, or Go, as projects like e.g. Paho try to provide implementations across as many platforms/languages as possible.
So while we believe Java is important for IoT, in particular due to the very large ecosystem of developers familiar with it across the whole IT industry, we also recognize the importance of being language agnostic to make sure that IoT developers have access to good open source libraries for their platform of choice.

I would really like to hear your comments on these findings, and would be happy to discuss how this relates to your current experiences in the world of IoT. Feel free to use the comments below!


Note: most of the metrics related to Eclipse IoT are readily accessible from our dashboard. Some extra analysis of the source code repositories has been conducted to e.g. compute the lines of codes.

Learn from IoT experts with the Virtual IoT meetup group

About a year ago, we realized that although the IoT is on everyone’s lips, there is a huge lack of technical resources available for people interested in learning more and getting their hands dirty with the solutions available today.
Our Virtual IoT meetup group is an attempt, pretty successful so far, at bridging this gap.

The idea is simple: we are organizing regular hangouts where we invite IoT experts and thought leaders to share their experience in IoT, and you can join us to get a chance to learn more and directly ask to these experts any question you may have.
We try to answer some of the most commons questions like: “What protocols should I use?”, “How do wireless sensor networks really work?”, “Is there a programming language of choice for IoT?”, “How can I extract meaningful info from my IoT firehose?”, etc.

You should definitely check out (and subscribe to!) the YouTube playlist of our webinars to date.

Please also make sure to RSVP to our next meetup on July 23 with Günter Obiltschnig. We’re going to learn more on macchina.io, a toolkit for building embedded IoT applications that is written in C++ (for efficiency and embeddability) that also leverages the V8 JavaScript engine for making it even simpler to write applications.

Programming IoT Gateways in JavaScript with macchina.io

Thursday, Jul 23, 2015, 8:00 AM

No location yet.

69 IoT enthusiasts Attending

This is a virtual Meetup occurring at 8AM Pacific time. For help with your timezone calculation, refer to this.The meetup will be held on Google Hangouts and you can watch the live stream directly on YouTube.http://www.youtube.com/watch?v=aUkeAW91k4EIn this talk I will introduce macchina.io, a new open source platform for programming Linux-based…

Check out this Meetup →

Last but not least, if you are interested in sharing with our crowd your experience on an IoT-related topic, please contact me and we would certainly be happy to have you!