Categories
Eclipse IoT

The Open IoT Challenge 5.0 is live!

Last week, we launched the fifth edition of our Open IoT Challenge. It is really exciting to be back, and I am really looking forward to seeing what people will be building! The Open IoT Challenge encourages IoT enthusiasts and developers to build innovative applications for the Internet of Things using open standards and open source technology.

Every year, I try to share with aspiring applicants some ideas that I think would be worth exploring in the context of the challenge.

Here’s my list for this year:

  • I am always interested in seeing people explore Industrial IoT use cases. We have plenty of Eclipse IoT projects that are relevant in that space, from implementations of industrial protocols like Sparkplug (Eclipse Tahu project) or PPMP (Eclipse Unide) to edge-gateway solutions like Eclipse Kura or Eclipse 4diac.
  • Blockchain/distributed ledger and IoT anyone? From IoT data monetization to security I think that, beyond all the hype, it is worth exploring how blockchain and DLT can play a role in IoT. Last year, the team from Trusting IoT took the second place in the Open IoT Challenge. They have published an incredible amount of blog posts that are a great read for anyone interested in exploring that space.
  • The line between edge devices (sensors and gateways) and the cloud is becoming increasingly blurry, and people are looking at fog computing (sometimes referred to as edge computing) as a way to help orchestrate highly distributed IoT architectures. I would really like to see some teams use Eclipse ioFog or Eclipse fog05 in their projects.

Like in previous years, if you are not sure whether your idea is “Open IoT Challenge worthy”, just ping me. I will be happy to give you some feedback before you actually submit your proposal!

As a reminder, the 10 best proposals will be awarded gift certificates that they can use to buy some of the hardware needed for building their project! I am looking forward to reviewing your proposals and seeing all the cool projects you will be building over the next few months.

Categories
Eclipse IoT

Eclipse IoT Day Singapore Videos are Available!

Last month, we held our very first Eclipse IoT Day in Asia—Singapore more specifically, and it was a blast!

Ian Craggs, one of our speakers, did a really great job of writing up his summary of the event and I don’t feel like I have much to add! It was great to see that for this first event in the area, we ended up not only with an impressive line-up of speakers from all around the world but also a room literally packed with attendees.

In case you couldn’t attend, you will certainly be happy to hear that all the sessions were recorded, and are now available on our YouTube Channel. Check them out! You can also find a copy of the presentations here.

Categories
Eclipse IoT

Eclipse Kura on Steroids with UPM and Eclipse OpenJ9

So it’s been a while since the last time I blogged about a cool IoT demo… Sorry about that! On the bright side, this post covers a couple projects that are really, really, neat so hopefully, this will help you forgive me for the wait! 🙃

UP Squared Grove IoT Development Kit

At the end of last year, a new high-performance IoT developer kit was announced. Built on top of the UP Squared board, it features an Intel Apollo lake x86-64 processor, plenty of GPIOs, two Ethernet interfaces, USB 3.0 ports, an Altera MAX 10 FPGA, and more. You can get the kit from Seeed Studio for USD 249.

The UP Squared Grove IoT Development Kit

Of course, it wouldn’t be a Grove kit without the Grove shield that can be attached on top of the board to simplify the connection to a wide variety of sensors and actuators (and there’s actually a few of them in the kit).

Running Eclipse Kura on the UP Squared board

Enough with the hardware! With all this horsepower, it is of course very tempting to run Eclipse Kura on this. The UP Squared being based on an Intel x86-64 processor, it is incredibly easy to start by replacing the default OpenJDK JVM by Eclipse OpenJ9. Here’s your two-step tutorial to get Eclipse OpenJ9 and Eclipse Kura running on your board:

In case you are wondering how much faster OpenJ9 is compared to OpenJDK or Oracle’s JVMs, here’s a quick comparison of the startup time of Eclipse Kura on the UP Squared:

Eclipse Kura start-up time on Intel UP Squared Grove kit

UPM

UPM logo

UPM is a set of libraries for interacting with sensors and actuators in a cross-platform, cross-OS, language-agnostic, way.

There are over 400 sensors & actuators supported in UPM. Virtually all the “DIY” sensors you can get from SeeedStudio, Adafruit, etc. are supported, but beyond that, UPM also provides support for a wide variety of industrial sensors.

Thanks to Eclipse Kura Wires and the underlying concept of “Drivers” and “Assets”, Kura provides a way to access physical assets in a generic way.

In the next section, we will see a proof-of-concept of UPM libraries being wrapped as Kura “drivers” in order to make it really simple to interact with the 400+ kind of sensors/actuators supported by UPM.

Integrating UPM in Kura Wires

UPM drivers are small native C/C++ libraries that expose bindings in several programming languages, including Java, and therefore calling UPM drivers from Kura is pretty simple.

The only thing you need is a few JARs for UPM itself (and for MRAA, the framework that is supporting it), the JARs for the driver(s) of the particular sensor(s) you want to use, and the associated native libraries (.so files) for the above. As you may know, OSGi makes it pretty easy to package native libraries that may go alongside Java/JNI libraries, so there is really no difficulty there.

In order for the UPM drivers to be accessible from Kura Wires, and to expose “channels” corresponding to the methods available on them, they need to be bundled as Kura Drivers. This is also a pretty straightforward task, and while I created the driver for only a few sensor types out of the 400+ supported in UPM, I am pretty confident that Kura drivers can be automatically generated from UPM drivers.

You can find the final result on my Github: https://github.com/kartben/org.intellabs.upm.

See it in action!

So what do we end up getting, and why should you care? Just check out the video below and see for yourself!