Posts Tagged ‘eclipse’

The Eclipse Foundation Releases Open Source Smart Home & IoT Gateway Frameworks, MQTT & oneM2M Implementations

June 17th, 2016 3 comments

The Eclipse Internet of Things (IoT) Working Group has released – or soon will be releasing – four open source projects for the Internet of Things with Eclipse SmartHome 0.8 framework, Eclipse Kura 2.0 IoT gateway framework, Eclipse Paho 1.2 MQTT & MQTT-SN clients, and Eclipse OM2M 1.0 implementation of oneM2M standard.

Eclipse_IoTEclipse SmartHome 0.8

Eclipse SmartHome is a framework for smart home solutions that runs on embedded devices, including Raspberry Pi, BeagleBone Black or Intel Edison development boards.

The latest SmartHome 0.8 release includes a new REST API and corresponding “Paper UI” administration interface, support for new devices including Sonos speakers, LIFX bulbs, Belkin WeMo devices, digitalSTROM systems, EnOcean devices (via a new OSGi EnOcean Base Driver) and others, as well as a new rule engine supporting templates for beginners, JavaScript for automation rules and graphical rule editors.

You can find more details on Eclipse SmartHome page, and/or download SmartHome 0.8, and optionally SmartHome Designer for Linux, Mac OS X, or Windows.

Eclipse Kura 2.0

Eclipse Kura is a framework for building IoT gateways with the latest Kura 2.0 release to bring a new responsive user interface (UI), support for multiple cloud connections to Eurotech Everyware Cloud, Amazon AWS IoT, Microsoft Azure IoT and IBM IoT Foundation, new tools and code samples to ease the creation of Kura applications, and tighter integration with Apache Camel.

Eclipse Kura 2.0 will be available later in June. You can find more details, including instructions to use it on BeagleBone Black and Raspberry Pi boards on Eclipse Kura page. Kura is also found on commercial M2M and IoT gateways such Eurotech ReliaGATE 15-10.

Eclipse Paho 1.2

Paho MQTT Clients Features Comparison (Click to Enlarge)

Paho MQTT Clients Features Comparison (Click to Enlarge)

Paho provides an open-source client implementations of the MQTT and MQTT-SN messaging protocols in Java, Python, JavaScript, C, .Net, Android and Embedded C/C++ client libraries. Paho 1.2 release adds automatic reconnect & offline buffering functionality for the C, Java and Android Clients, webSocket support for the Java and Python Clients, and a new Go Client for Windows, Mac OS X, Linux and FreeBSD.

Visit Eclipse Paho page for more details about the implementations and to download the latest 1.2 version.

Eclipse OM2M 1.0

Eclipse OM2M is an open source implementation of the oneM2M standard, and the version 1.0 includes the following features:

  • Modular platform architecture, based on OSGi making it highly extensible
  • Lightweight REST API exposed through multiple communication bindings including HTTP and CoAP protocols and supporting various content formats such as XML and JSON.
  • Flexible data storage based on an abstract persistence layer supporting embedded & server databases, in-memory mode, SQL & NoSQL models.
  • Implementation of  Dedicated Common Service Entity (CSE) for Infrastructure node (IN), Middle Node (MN), and Application Service Node (ASN), and Common Service Function (CSF) including: Registration, Application and Service Management, Discovery, Data Management and Repository, Subscription and Notification, Group Management, Security, etc.
oneM2M Functional Architecture with AE (Application Entity), CSE and NSE

oneM2M Functional Architecture with AE (Application Entity), CSE and NSE

Version 1.0 release will be available later this month, you can find out more on Eclipse OM2M page.

The foundation has also issued a proposal for Eclipse Kapua open source project aimed to create a modular integration platform for IoT devices and smart sensors.

You can also check out other open source IoT projects on Eclipse IoT microsite.

STMicro Releases Linux based STM32 MCU Development Tools

February 10th, 2016 6 comments

Until a few years ago, most development tools for micro-controllers were only available for Windows, but as Linux gained popularity among developers and engineers, community of developers designed development tools running in Linux, but only a few companies are providing tools that run on Linux operating systems. The good news is that STMicro has just announced the release of STM32CubeMX configurator and System Workbench for STM32, for both Linux and Windows, with Mac OS supporting coming on Q2 2016.

Click to Enlarge

Click to Enlarge

Developped by Ac6 embedded systems company, System Workbench for STM32 relies on Eclipse IDE, supports the ST-LINK/V2 debugging tool under Linux through an adapted version of the OpenOCD project, and can be used with various STMicro STM32 boards including Nucleo boards, Discovery kits, and other Evaluation boards.

You can give it a try by visiting OpenSTM32 Community, but for some reasons they ask you to register before accessing the installation instructions. If you already have a recent Eclipse installed, and you easily , and otherwise the best way is to use the installer ( that will install all required components.STM32_System_Workbench_Installation

You can then launch Eclipse that you should be installed in ~/Ac6/SystemWorkbench/eclipse.

Free Electrons Publishes Yocto & OpenEmbedded Training Materials

November 2nd, 2014 1 comment

Free Electrons is a small (9 people) engineering company focusing on embedded Linux / Android, and open source software, which also happens to have ported several ARM SoC to the mainline kernel. From time to time, they also offer training sessions, and release course materials publicly. Their latest training is a 3-day course dealing with the Yocto Project and OpenEmbedded, using BeagbleBone Black development board for lab sessions, and all materials have been released under a Creative Commons license.

Yocto_Project_Training_MaterialsThe training consists in:

  • Understanding the Yocto Project
  • Using it to build a root filesystem and run it on your target
  • Writing and extending recipes
  • Creating layers
  • Integrating your board in a BSP
  • Creating custom images
  • Application development with an Eclipse SDK

Three files are released:

  • yocto-slides.pdf – Yocto Project and OpenEmbedded Training presentation slides (245 pages) give an overview of various build systems, before getting more details about the Yocto Project, and Poky distributions.
  • yocto-labs.pdf – Practical sessions with BeagleBone Black board and a Nunchuk (Wii Remote).
  • yocto-labs.tar.xz – Lab data consisting of a script, and a few patches

If you are interested in attending an actual training session, the company organizes a course in Toulouse, France on November 18-20, which costs 1690 Euros per attendee.

CoAction Hero – Low Cost ARM Cortex-M3 Board Running Open Source CoActionOS RTOS

April 29th, 2013 6 comments

CoAction Hero is a tiny board based on an ARM Cortex-M3 micro-controller (NXP LPC1759), that makes use of  CoActionOS ecosystem that includes the hardware, but also an open source RTOS allowing multiple app to run concurrently, and a graphical interface to communicate with the board.


First, let’s have a look at the hardware specs:

  • Micro-controller – NXP LPC1759 ARM Cortex-M3 processor @ 120MHz with 64kB RAM and 512kB  Flash ROM.
  • Storage – 1MB serial flash chip (pre-loaded with CoActionOS)
  • Expansion port
  • micro USB connector.
  • 40 I/O pins are available on both sides of the board, and the board can be inserted in a breadboard.

You can currently connect 2 modules to the board: Bluetooth and LCD device boards.

CoActionOS RTOS will come pre-loaded on the board, and if you don’t want to, you don’t even need to know it’s there, and it’s use will be transparent. But let’s have a quick look at this real-time OS, which allows multitasking on Cortex M3 MCU, supports an unnamed filesystem, and they also provide a C/C++ library to help with hardware peripherals (GPIO, ADC, SPI, UART,…) programming.


Documentation, source code, and tutorials are available on CoActionOS website.

The desktop development environment, based on Qt 4.8 and GCC, currently runs on Windows and MacOS, with Android and iOS support coming once Qt 5.x is available for those mobile OS. Linux may also be supported at a later stage. The board connects to your computer via its micro USB port, and CoActionOS Link software allows you to browse the board’s filesystem, provides terminal access, install programs, re-flash the kernel, and monitor running processes. They recommend using Eclipse for compiling programs.


Several example projects are showcased on their kickstarter page such as driving a 1.8″ LCD, a DC Motor with PWM and PID, and an LED strip.

You can pledge as low as $29 to get the CoAction Hero board with a USB cable, and with a $99 pledge, you can add the Bluetooth and LCD expansion boards. Devkits should ship to backers in July 2013.

Using ARM Development Studio 5 (DS-5) Streamline with MK802II mini PC

April 24th, 2013 1 comment

MK802-II is an Android 4.0 mini PC powered by AllWinner A10 (ARM Cortex A8) with 1GB RAM and 4GB flash. Instructions are also available to run Ubuntu, or other Linux distributions. ARM Development Studio 5 (ARM DS-5) is software development tool suite for ARM processors that can be used for both Linux and Android debugging, and available in 2 versions: professional edition and community edition, the latter being free of charge. I’m writing about both today, because Bob Peng, Technical Marking Engineer for ARM China, recently wrote a blog post in Chinese [Update: An English version is now available] showing how to use MK802-II, preloaded with the required drivers and daemon, with DS-5 Streamline Performance Analyzer with is part of both versions. The community edition may be missing some features of Streamline however.

Streamline Performance Analyzer allows you to:

  • Find out which modules or functions to take up most of the CPU, in order for you to optimize the affected code to speed up code execution speed.
  • Monitor power, current and voltage in real-time, so that you can optimize the CPU tasks to achieve the best performance at the lowest power consumption.
  • Analyze and optimize ARM Mali GPU in real-time, monitor CPU & GPU cache usage, and system memory usage.

Before using DS-5 Streamline Performance Analyzer, you normally need to setup your hardware development environment, and manually compile DS-5 gator driver for Streamline daemon. If you’re just an application developer, it can be a pain because you don’t usually care about low level stuff like compiling the kernel and modules, and your application is (mostly) hardware independent. That’s why, the ARM team in China, as chosen MK802-II as as low cost (about $35) development platform, and pre-built all you need to get going with DS-5 Streamline.

The trick seems you need to buy Rikomagic MK802II mini PC from a specific Aliexpress shop, and ask them to install DS-5 gator driver during the purchase, and you’ll also find ARM DS5 Streamline starting guide and USB driver in /home/ARM-DS-5 directory according to the shop. Sorry, I could not find a link to download the binaries and USB driver ( if you already have such device… Let me know if it’s available somewhere. I assume they decided to proceed this way to avoid having to handle different firmware versions, and if you want to use an existing device you should be able to build this yourself.

The instructions to configure the TV Dongle and your computer (Windows, Linux or Mac), install ARM DS-5 (PE or CE) are explained in details in the post, but I’ll skip that, and write directly about the things you can do with Streamline and MK802-II.

Once all is configured properly, you can start ARM DS-5 to analyze your application:

  1. Timeline view – CPU performance analysis
    DS-5_AllWinner_Dongle_CPU_TimelineThe part you want for the CPU usage analysis in the screenshot above is the linux Scheduler, branch, and clock section, but this view also include GPU vertex and fragment and Disk IO, and other GPU parts shown in the figure below.
  2. Timeline View – Mali GPU Performance Analysis
    Scrolling down the Timeline View, you’ll find more details about GPU usage such as geometry statistics and GPU vertex processor activity, but you’ll also get information about memory usage, interrupts and more.
  3. Call Paths View
    DS-5_AllWinner_Dongle_Call_PathsThe call paths view is supposed to show how functions are called, but since they just used the Android Browser for testing it mainly shows the libraries which have been called and the CPU usage.
  4. Functions view
    DS-5_AllWinner_Dongle_FunctionsAgain, the example above is not optimal because they used a release binary, but it still shows you which libraries takes the most CPU usage.

ARM MCU Development in Linux with Energy Micro’s Simplicity Studio, Eclipse, and CodeSourcery Toolchain

January 31st, 2013 7 comments

Quite a few months ago, I received an Energy Micro EFM32 Tiny Gecko Starter Kit, but I haven’t done much with it. But recently I saw a tweet from EnergyMicro about Simplicity Studio supports for Ubuntu, and I know it can be problematic to find proper tools for ARM MCU development in Linux, so I decided to give it a try. The first part is about Simplicity Studio, and energyAwareTools which are specific to Energy Micro, but the second part deals with setting up Eclipse and CodeSourcery ARM toolchain for MCU development which should be reusable for other MCUs from vendors such as Texas Instruments, NXP and STMicro. I’ve used a PC running Ubuntu 12.04 64-bit with the instructions below.

Installing Simplicity Studio and energyAwareTools in Ubuntu

Simplicity Studio is part of the 4 steps of the getting started guide with EFM32 MCUs. It has been available for Linux for a few months, here’s how to install it in a terminal window:

  • Create a directory where you want to install the tools, e.g.:
  • Download and extract Symplicity Studio for Linux (This will create energymicro directory automatically):
  • Run Simplicity Studio:

That’s it. It’s very easy and it worked “out of the box” for me.

Simplicity Studio Ubuntu

Then click on Add/Remove to install the required documentation,  firmware and samples. I went the “brutal” way and just installed everything. It just took 15 minutes.

Energy Micro tools are not integrated (yet) with Simplicity Studio for Linux, but you can download the latest version on Energy Micro download page.

I first used the current stable version of the tools (eACommander, eAProfiler and eADesigner), and then installed the latest beta (2.72) for energyAwareCommander:

Since the binaries are build for Linux 32-bit, you may have to install a few i386 packages such as:

Don’t try to install “libicu48:i386” even if you see a warning, this will mess up your system. First I did not pay attention, blindly answered “Y”, and it removed 991MB from my installation include libreoffice, gimp and unity support…).

To be able to access the USB device as a standard user, you need to add a file for udev, and change some permissions:

Restart your system. And you can try energyAware Commander:

energyAware Commander in Ubuntu

It can connect via J-Link, and detect the board but trying to update the firmware resulted in the error “Failed when asking kit to reset”. I’ve also tried to run the demos without success. Anyhow, let’s move to the next step that is building our own app in Linux, and run them on the target.

Installation Eclipse in Ubuntu for Energy Micro Gecko Starter Kits

I knew I wanted to use an IDE in Linux to build and debugging the code, but among the list of third party tools listed on Energy Micro website, I was not too sure where to go. Luckily, somebody asked for the “Recommended IDE on Ubuntu” on Energy Micro forums, and the answer seems to be Eclipse + CodeSourcery ARM EABI toolchain. There’s also an application note to do just that for Windows, and I’ll use that to write  instructions for Ubuntu or other Linux distributions.

First download and install Sourcery CodeBench Lite for ARM EABI and eclipse:

tar xjvf arm-2012.09-63-arm-none-eabi-i686-pc-linux-gnu.tar.bz2 -C ~/bin
sudo apt-get install eclipse

Now start eclipse, and install some plugins by going to “Help->Install New Software”, and add to “Work With field”. Then browse to “Mobile and Device Development”, and select “C/C++ GDB Hardware Debugging”. Press the Next > button, and follow the instructions.

Eclipse GDB Hardware Debugging

Repeat the same instructions with to install Embsys Regview (Optional, and I haven’t tried it yet).

We can now start a new project using some sample code. I’ve tested it with blink and lightsense samples, and write the steps with blink sample below.

First go to File->New->Project-C/C++->C Project, and click Browser to navigate to blink sample project we’ve downloaded with Simplicity Studio (the path is energymicro/kits/EFM32TG_STK3300/examples/blink for my starter kit). Select Empty Project and “Linux GCC”, and click Finish.
Then click on Project->Properties, and do the following modifications:

  • C/C++ Build: Modify build directory to ${workspace_loc:/blink/codesourcery}.
  • C/C++ Build->Discovery Options: Uncheck the Automatic discovery of paths and symbols checkbox.
  • C/C++ Build->Settings: Check the GNU Elf Parser checkbox.

Click the OK button. In blink/codesourcery, copy Makefile.bli

nk to Makefile, and change LINUXCS to the path you’ve installed CodeSourcery toolchain, e.g.:

We can now build the code. Select Project->Build Project, and within a few second you should see the build is successful in the Console tab.

Let’s configure the debugger. First run J-Link gdb server in a terminal window:

In Eclipse, click on Run->Debug Configuration, Highlight GDB Hardware Debugging, right-click to select New, and do the following modifications:

  • Main tab: Click the Select other… link on the bottom where it says Using GDB (DSF) Hardware Debugging Launcher and select the Standard GDB Hardware Debugging Launcher instead, and apply by clicking the OK button.EnergyMicro_Eclipse_Debug_Configuration
  • Debugger tab: Enter the full path to arm-none-eabi-gdb in the GDB command field. (e.g. /home/jaufranc/bin/arm-2012.09/bin/arm-none-eabi-gdb)
  • Debugger tab: Make sure  Use remote target is checked, with Generic TCP/IP JTAG Device and localhost as Host name, and set 2331 as Port number.
  • Startup tab: In the Initialization Commands text box, enter:
    set tdesc filename target-m3.xml
    mon speed 4000
    mon endian little
    mon flash download = 1
    mon flash device = EFM32TG840F32
    mon reset 1
  • Startup tab: Check the Set breakpoint at: checkbox in the Runtime Options frame, and write main in the textbox.
  • Common tab: Check Debug checkbox in the Display in favorites menu frame.

Now click on Debug in the same Debug Configuration Window to start the program, the Eclipse display should change to Debug mode as shown below.

Eclipe Ubuntu Energy Micro Blink Debug

Eclipse Debug Window In Ubuntu with “Blink” Sample Running in Energy Micro Starter Kit (Click to Enlarge)

Now click on Resume (or press F8) to run the program (the USER LED should blink on the board), or add breakpoints, monitor variables as needed.

Yocto Project Overview and Update – ELCE 2012

January 17th, 2013 No comments

Last post about ELCE 2012 videos

David Stewart, manager of the Yocto Project team within the Open Source Technology Center at Intel, gives an introduction to the Yocto Project, as well as a status update at ELCE 2012.


Yocto Project LogoThe Yocto Project is a joint project to unify the world’s efforts around embedded Linux and to make Linux the best choice for embedded designs. The Yocto Project is an open source starting point for embedded Linux development which contains tools, templates, methods and actual working code to get started with an embedded device project. In addition, the Yocto Project includes Eclipse plug-ins to assist the developer. This talk gives a walk-through of the key parts of the Yocto Project for developing embedded Linux projects. In addition, features will be described from the latest release of the Yocto Project, v1.3. The talk will include demos of some of the key new features such as the Build Appliance and Hob.

At the end of the talk, developers should be able to start their own embedded project using the Yocto Project and use it for developing the next great embedded device.

The slides do not appear to be available, but those should be very similar to the slides used for the Yocto Project Overview and Update presentation at the Embedded Linux Conference 2012 (US).

Canonical Announces Ubuntu for Phones

January 3rd, 2013 4 comments

Canonical has just announced the Ubuntu for Phones platform that will allows users to have similar experience on desktops (Ubuntu Desktop),  TVs (Ubuntu TV) and smartphones, avoiding the need to learn 2 different platform for the desktop and mobile devices.

Ubuntu for PhonesThe user interface replaces the “Lock screen” with the “Welcome screen”  (As shown in the middle of the picture above), which shows notifications and user data as you turn on your device. The user interface mostly eliminate buttons, and you can access features by swiping the edge of the phone. A swipe on the left edge will show the dash bar, giving access to most used apps and dash search, a swipe on the right edge will cycle through your opened apps, a swipe at the top will give access to notifications and allow changing settings right from there, and a swipe at a button will allow you to customize controls. Global search is also part of the OS, as a single search will bring local and network search results.

The best way to experience the OS is to watch the virtual keynote by Mark Shuttleworth. In the first 5 minutes or so, he discusses they key milestones reached by Ubuntu on 2012, but the real discussion about Ubuntu for Phones takes place between 5:10 and 13:40.

I found this mobile OS pretty neat. From 13:40 onwards, some industry testimonies are shown, and some information is provided for developers. Ubuntu for Phone will support both Web/HTML5 apps and native apps written using QML/Javascript/C++ in Eclipse giving access to OpenGLES runtime. He explains that porting Web apps running in Android or iOS to Ubuntu should be straight forward. For native apps, you’ll need to install Qt 5 and Ubuntu QML toolkit preview. Developers can get further information on Ubuntu for Phones developers page.

Marc Shuttleworth said the platform would be truly open with the development following the processes used for Ubuntu desktop. There are 2 key markets for this new phone OS:

  • Enterprise. As companies may want to streamline their operations by using a single device to be used as a phone, thin client and desktop. Management should also be easier.
  • Consumer. For those who want a different user experience.

One last very interesting point brought by Marc Shuttleworth is that Ubuntu for Phones can work with Android kernel and drivers, which means if your phone can run Android, it can also run Ubuntu for Phones.

Arstechnica reports that although no carriers and handset makers were announced, Canonical is aiming for a phone to be released in Q4 2013/Q1 2014. If you have a Galaxy Nexus (based on TI OMAP 4460), you’ll be able to test Ubuntu for Phones on your device within a few weeks. Ubuntu 14.04 will be one image that works across phones, tablets, and desktops.

There will be several other Linux based mobile platforms (Tizen, Sailfish OS and Firefox OS) coming out this year, so we’ll have to see how this will pan out, but it should be pretty interesting.

Via: Liliputing