Electronic Design
Hands-On Eval Of Eurotech's Helios Edge Controller

Hands-On Eval Of Eurotech's Helios Edge Controller

I recently had a chance to check out Eurotech's Helios Edge Controller (Fig. 1) to see how their OSGi-based Everyware framework operates. Everyware is the more significant of the two as it runs on a number of Eurotech's hardware platforms. The Java-based framework provides a portable platform for delivering distributed applications. More on Everyware later. First a quick look at the hardware. 

Helios Edge Controller

The specs for the Helios speak for themselves. A quick look at the figures (Fig. 2) reveal its compact nature and its interesting expansion options. It's cover lifts (Fig. 3) to reveal three USB ports. These can be used for any kind of device from a USB flash drive to a wireless adapter or GPS. There are three holes for antenna or cable outlets. Opening the case to access the ports does not provide access to the processor. Then entire system needs to be taken apart for that type of access. Opening the cover only requires removal of a pair of screws. Mounting holes are provided for permanent attachment to a frame.
 

Eurotech's Helios 

Description

Processor

1.6 GHz Intel Atom Z5xx with Intel System Controller Hub (SCH)

Graphics/video/audio

Intel SCH

Memory

512 Mbytes DDR2

Storage

2 Gbyte Compact Flash card
PATA flash (optional)
internal SATA drive (optional)
USB flash (via 3 internal USB sockets)

Peripherals

8 status LEDs
Pushbutton
Battery backed up real time clock 

Communications

3 external antenna connections
USB bay with 3 USB 2.0 sockets
2 USB 2.0 ports 
Gigabit Ethernet
Serial port
GPS with external antenna (optional)

Power

12 VDC
up to 36 VDC (optional) 

Operating Systems

Linux
Windows Embedded Standard
Windows CE 6.0 

Software Frameworks

Eurotech's Everyware 

Physical

25.9cm by 12.1cm by 4.5cm
Removable side plates
-40C to +85C, 0C to 70C optional 

 

The hardware arrived with Linux and Everyware installed. The Windows versions come the same way. All I had to do was plug in a monitor, USB keyboard and mouse and turn on the power. The system is powerful enough to do some development work but this is really a delivery vehicle. Cross development on this system was trivial given the range of tools available. For testing and development I normally have an NFS share with all the applications.

And now a look at Everyware.

 

Everyware

Now for a look at the Everyware framework (Fig. 4). I won't be getting into a detailed review of Everyware or OSGi. Both can get very complex depending upon the OSGi bundles employed by an application. A good place to get more information is Eurotech's Everware whitepaper. Also check out the OSGi Alliance's website

In a nutshell, the OSGi framework is written in Java. It provides a way to load OSGi bundles that contain Java class definitions. A loaded bundle can be utilized by an application that can be another OSGi bundle. Everyware starts with a stock OSGi framework and bundles. It adds Eurotech bundles. Some provide generic services for system management. Others provide access to device specific hardware. For example, there are a set of bundles for the Helios that provides access to the Ethernet network support, storage, etc. The interfaces for these are generic so the same network access can be utilized by an application even if it is running on another Eurotech device. 

Bundles can be dynamically loaded and unloaded. They can be downloaded via a network connection. OSGi and Everyware can run on a wide range of hardware from embedded devices like Helios to servers. The Eclipse IDE (integrated development environment) is also based on OSGi. By the way, the latest incarnation of Eclipse is called Helios. As you might have guessed, OSGi can be used to develop desktop and server applications as well. In fact, Eclipse is based on he Rich Client Platform (RCP) that can be used by developers as well (see Eclipse: An Application Framework?).

I used Eclipse as the development platform to check out Everyware although any Java-based development system is likely to support OSGi development. Likewise, Everyware is designed to support OSGi bundles but it and OSGi have access to native drivers and applications using the Java JNI support. 

Eurotech goes a good job of providing documentation, support and training. I didn't check out their training classes but I have had a chance to interview their tech staff and the documentation was more than sufficient to get an Eclipse user with Java experience (me) up and running in an afternoon. Part 2 of the documentation covers getting Eclipse up and running including downloading of the RCP support. 

The easiest thing to do was to start with an RCP application to run on the PC and then develop a matching application to run on the Helios. The two could communicate using the network. The RCP application is straight forward because Eclipse has the support for OSGi built-in. The initial test for the Helios was the supplied Hello World logging program that followed the same process. The next application for the Helios blinked the LEDs. The Eurotech documentation walked me through all but the latter. Finally delving into more of the specific bundles provided by Eurotech took a little more time simply because of the details. 

Eurotech even includes a Best Practices guide. OSGi is designed to be portable and provide portability to applications. The guide highlights issues like naming conventions, error handling and logging. 

One piece I didn't have was the latest Internet-based management support that Eurotech has released. This addresses the management of distributed systems on a much wider scale than I tested. If you have hundreds of systems then this support is worth investigating. It is all built on OSGi so the local bundles essentially communicate with a server. The services include logging, data management and update support. 

The one thing that I found that I think is key to the success of Everyware is that most of the facilities were ones I took advantage of. I did not have to write them from scratch. This is very similar to using other large frameworks like Microsoft's .NET. A developer only needs to include needed modules, or in Everyware's case bundles, and the framework takes care of the details.  

Updating a bundle on the remote system was already a feature available to me. As noted, it can even be done dynamically. I would have had plenty of time to work on application-specific details had I a more interesting application to run on the Helios.

So how does Everyware fit with respect to embedded developers? Well, there is a range of issues from real time support to programming in Java. I won't get into a lengthy discussion here but check out my coverage of Atego's PERC for a discussion of real time Java issues. I also did a Q&A with Atego about this topic as well. I know that the bulk of embedded developers are still using C but Java is not that hard to learn. The benefits are significant especially when you realize the amount of support that you can take advantage of with Everyware. It is also significantly more portable than C or C++. 

So, in closing, I would rate Eurotech's Helios and Everyware very high. If you plan on deploy large numbers of devices then this approach can get you there without having major programming issues. You also wind up with a more portable solution that makes migration in almost any direction much easier. By the way, Helios is a rather hefty OSGi platform. OSGi can run on very compact, single chip micros as well. Ok, not 8-bit Microchip PICs but it will work on may 32-bit microcontrollers. 

More Information

Video interview with Eurotech about Everyware

Hide comments

Comments

  • Allowed HTML tags: <em> <strong> <blockquote> <br> <p>

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
Publish