Tag Archives: koneki

Complete EclipseCon 2013 M2M tutorial and take home some Open Hardware!

EclipseCon is in about a month, and we are so excited about what’s cooking for M2M this year!
Today, we contributed Mihini source code, after an initial review that took longer than what we initally planned, and EclipseCon in Boston will be the first opportunity for you to get a real deep dive into the Eclipse Koneki and Mihini projects.

Over the last few months, we have been working on putting together a nice setup showcasing the software components we are developing for doing M2M at Eclipse, and if you join our tutorial, you will have a chance to recreate something very similar by yourself (minus the actual greenhouse…)!

What is even cooler, is that you’ll get to leave the session with the very same hardware you’ll have hacked with during three hours! That is:

  • a fully functional Raspberry Pi, with its SD card and a Wi-Fi dongle,
  • an Arduino Uno, with different kind of sensors (light sensor, push buttons, potentiometers) and actuators (LEDs, ), …

Raspberry PiArduino kit

Why is it cool?

Well, first, you willl leave the tutorial with a fully functional code allowing you to interact with physical sensors, making their values available on the Internet for you to just use it.
Then, all this hardware you’ll get, is highly repurposable. The Raspberry Pi, for example, is a pretty powerful Linux board that can act as a media-center, a VoIP server, a web server, etc. The Arduino is a prototyping platform that can be extended in many ways, and the kit you’ll have can be the initial seed for your next DIY project!

What do I have to do?

If you are already registered for EclipseCon, you will soon receive an e-mail for changing your reservation and paying the extra amount of money for getting the hardware. If you are not, then make sure to indicate whether or not you want to pay for the hardware when you register to the conference and tutorial. Please make sure to place your order before March 13!
Note that buying a kit is absolutely not a prerequisite, and we will lend you one for the duration of the tutorial if you didn’t want or didn’t have time to order one for yourself.

Finally, if you are already in Boston on Sunday, 24th, we will welcome you at the Code Sprint session if you feel like you want to hack with us and have a sneak peek at the tutorial!

Photo Credit: Digital Sextant via Compfight cc

M2M at EclipseCon Europe

Last year, EclipseCon Europe was the moment when the Eclipse Foundation, together with Eurotech, IBM and Sierra Wireless announced the creation of the M2M Industry Working Group.

Over the last 12 months, a great deal of stuff has happened: there are now three projects living under the umbrella of the Working Group: Koneki delivers tools for simplifying M2M development, Paho provides several client libraries and tools for the MQTT protocol, and Mihini plans on doing the first contribution for an embedded development framework in the upcoming months.
Recent news also include the creation of an M2M portal at m2m.eclipse.org that aims at being a window on all the M2M technologies being developed at Eclipse.

Therefore it is no surprise that there will be several interesting talks about M2M into the program of EclipseCon Europe, starting in just 2 weeks:

  • M2M is a fairly new domain, and it can be complex to understand the scenarios it addresses. Bosch Software Innovations will give an overview of these scenarios, and how OSGi can be leveraged for simplifying M2M development ;
  • The MQTT everywhere talk will not only be a deep dive into the MQTT protocol and show you how easy it is to use, but will also showcase different targets, from Java to PHP to tiny microcontrollers such as Arduino ;
  • I am a huge fan of Open Source Hardware, and I am really looking forward to Simon Maple’s talk illustrating how the Raspberry Pi and Tinker Forge components can be used for creating MQTT-based solutions ;
  • If you want to learn more about the 3 projects coordinated by the M2MIWG, and especially why Lua is a language of choice for developing M2M applications, you should definitely join Using Eclipse and Lua for the Internet of Things with projects Koneki, Mihini and Paho.

Ha, and of course I am very excited by the Flight Club (hat tip to Wayne :-)) contest, which showcase what may be one of the coolest M2M use cases: remote control of a freakin’ drone! 





Support for Lua interpreters in Koneki LDT 0.9M1

Koneki released its 0.8 version with Juno, and we plan on graduating with a 1.0 version for Kepler.
In order to stabilize our API and improve the overall quality of the product, we thought it would be better if we released a 0.9 in-between.
This 0.9 version is scheduled for the end of this year, and we just released the first milestone!

We’ve resolved over 30 (!) bugs, and the most notable feature that we added is the support for Lua interpreters in Lua Development Tools.
In 0.8, when one wanted to launch a script, it had to be done either from the command line or using an “External Tools” launch configuration.

But as of 0.9M1, it is possible to declare in the IDE the Lua interpreter(s) that are installed in your machine, and then use them for launching your Lua applications directly from Eclipse, using good ol’ Launch configurations.

Launch Lua script

More importantly, you might remember how cumbersome it was in 0.8 to debug a script. You add to first open a debugging server in the IDE, and then launch your script by appending a few lines at its beginning so as to instrument it with a debug client. It was a frustrating and error-prone process where you could forget to launch the debug server prior to launching the script, or struggle to get the debug client setup right…

Well guess what, we now also provide Debug Configurations! All the steps needed to get the debugger working are now automagically taken care of for you, making debug literally a one-click operation (F11 FTW!). Note that you still need to have luasocket installed.

Debug Lua script

Please also note that if you are on OSX, there is a slight bug that you will need to workaround until M2 is available. For obscure reasons, the environment variables available from Eclipse do not reflect the environment variables available from a regular shell.
In particular, the debugger relies on the PWD variable, that you will have to set manually to ${project_loc} in the “Environment” tab of the Debug Configuration dialog.

Have a look at the complete New & Noteworthy and use the following update site http://download.eclipse.org/koneki/releases/milestones if you want to give this milestone a whirl!


Introducing Mihini

About a month ago, Sierra Wireless proposed a new project under the umbrella of the M2M Industry Working Group that aims at delivering a crucial missing piece to the global architecture of the open source M2M stack this Group is trying to establish.

Mihini is a runtime technology that hides the complexity of the underlying hardware platform to a developer whose primary goal usually is pretty simple: connecting objects (power-meters, cars, digital photoframes, …) from the physical world to the Internet, therefore making their data available for consumption by web, mobile, or enterprise applications. Of course, sending data is not the only aspect of an M2M solution, and things such as being able to react to commands send from a server to the device, being able to remotely update an application, … are also important to the developer.

Mihini will allow to develop M2M applications by using the Lua programming language. We want the initial contribution to be something useful for the hackers and hobbyists community right from the beginning, by enabling M2M application development on prototyping platforms such as the BeagleBone and the RaspberryPi.

But in parallel of seeding Mihini with an initial set of features (interactions with physical ports of the system, communication using a GPRS/3G connection, …) that we think will increase the number of crazy DIY M2M solutions with Open Hardware platforms, we want to work on cleaning and establishing a solid API that addresses the recurrent pain points of M2M development. In particular, besides just enabling easy interaction with the physical inputs and outputs of a system, it is important to provide functionalities such as:

  • data management API, that allows to process data in a way that is independent from how it is being acquired from the physical devices, and from how it will eventually be transmitted on the wire. In an ideal world, reacting to the changes of a given input, consolidating its different states/values over a period of time, etc. should be more of a configuration process than writing what will very likely be boilerplate code.
  • application management API, that allows to remotely install, update and manage (stop, start, get the overall “health” by dumping some internal variables, …) applications on the field.
  • application settings management API, that allows a developer to code an application for which some parameters can be managed remotely.
  • etc.

Another kind of API that is very important when it comes to embedded/M2M frameworks is the one that third-party software can use to communicate with a running instance of the framework.
For that purpose, Mihini will expose a REST API for external applications such as (but not limited to) the Eclipse IDE to allow them to get some control on the framework in a simple manner (vs. using lower-level techniques such as e.g. RPC): what are the applications installed? how many of them are running? etc.
Besides allowing better IDE support, such an API enables the creation of administration GUIs (e.g. embedded web application run directly on the embedded device), batch provisioning tools, etc.

This diagram illustrates the high-level architecture of Mihini, and how it fits with Paho and Koneki.

If you are familiar with these two projects already, you’ll know that they both have a strong interest in Lua. Koneki is delivering an IDE for Lua, and Paho will soon provide an MQTT client written in Lua (currently available on Github) contributed by Andy Gelme.
Therefore it should be no surprise to you that Mihini applications will be developed using a Lua API: not only will it allow to leverage Koneki tooling and Paho communication libraries, but first and foremost we think that Lua is the best choice for developing M2M applications. It is easy to learn, easy to embed on constrained targets, and can interoperate with legacy C software very well (you might be interested in reading this excellent article from my Lua guru co-worker and future committer on Mihini, Fabien Fleutot). And there is also a pretty large community of Lua developers, with tons of available open source libraries ready to be reused! :)

More and more M2M at Eclipse!

You definitely should stay tuned, there is a lot to come regarding M2M in the next few weeks!
In particular, we will hold 4 webinars in September and October, we will deploy an M2M web portal on m2m.eclipse.org, … and of course we will create the Mihini project very soon, and start working on the initial contribution.



Lua Development Tools now available as a standalone product

The IDE for the Lua programming language that is being developed within the Koneki project is getting more and more adoption these days. There are two main segments where Lua is intensively used: embedded platforms (the Lua VM has a very small footprint and is written in pure ANSI C, making it easy to embed), and video game industry (Lua is easy to learn, making it a language of choice for game scripting).

In order to facilitate the installation of Koneki Lua Development Tools for people not very familiar with the Eclipse SDK (nobody’s perfect, eh?), we are delivering an all-in-one package, that is ready to use.
It is already configured to download updates from the Koneki update site, so you should always benefit from latest features and bug fixes.

If you are interested in Lua development, go check it out now (and enjoy the nice splash screen)! :)