You are currently browsing the tag archive for the ‘embedded’ tag.

Info header kurz ENG

As in last years, Oracle will again have a big presence at Embedded World in Nuremberg, Germany

Find us in hall 5, booth 271. At the booth, you can see several demos focusing on Oracle’s Internet of Things strategy and the benefits of Java for embedded software solutions, including showcase applications by partners such as Gemalto, Freescale, Eurotech, and Hitachi.

I will be doing some sessions as well (download the full conference program here):

  • Thu, Feb 27, 9:30: A hands-on tutorial on “Desktop to Internet of Things in 12 Seconds with Java ME Embedded”
  • Thu, Feb 27, 15:30: “Trust Me, I am an M2M Device”

Java cup

So, pick up some Java while you’re at Embedded World, and not just the technology kind, but also the hot, coffee kind ;-) 

See you at Embedded World!

Cheers,

— Terrence

Newsflash 757208

Announcing Java ME 8 Early Access #2

This blog has been quiet lately, but not for lack of activity … quite the opposite.

We’ve been extremely busy with Java ME 8 – getting the specs (JSR 360: CLDC 8 & JSR 361: MEEP 8) ready for final ballot and working hard on updating the first Java ME 8 Early Access at JavaOne 2013 (learn moreby adding the latest features as well as new platforms.

So today, we’re announcing new update releases:

  • Oracle Java ME Embedded 8 Early Access #2
  • Oracle Java ME SDK 8 Early Access #2

These releases are designed to continue to drive Java ME 8 momentum in the industry by giving the community access to the latest Java ME 8 functionality and to demonstrate Oracle’s commitment to delivering Java ME 8 as a modern and purpose-built embedded software platform that addresses the rising demands of the embedded software industry and the Internet of Things.

 

Key features of the Java ME 8 and Java ME SDK 8 Early Access #2 releases: 

  • Improved support for the JSR 360 (CLDC 8 and GCF 8) draft
  • Improved support for the JSR 361 (MEEP 8) draft
  • Improved tooling support (Developer Agent, On-device Debugging, Memory Monitor, Network Monitor, CPU Profiler, Logging)
  • Improved networking and connectivity, including wireless support (3GPP, CDMA, WiFi)
  • Improved access to peripheral devices through Device Access API
  • New APIs for RESTful programming (JSON, OAuth2, HTTP client) 
  • Updated Java ME SDK 8 EA #2, improving support for new ME 8 functionality, platforms, peripheral devices, tooling, and integration with NetBeans 8 Beta
  • Ongoing support for APIs such as
    • File Connection
    • Wireless Messaging
    • Web Services
    • Security and Trust Services
    • Location
    • XML
  • Bug fixes, usability, performance, and footprint improvements

Supported Platforms: 

  • New support for Qualcomm IoE platform on Brew MP
  • Improved support for Raspberry Pi Model B on Debian Linux
  • Improved support for Windows 7 

Call To Action/Where to find more:

Go ahead and try Java ME 8. Give us feedback on the Java ME Embedded OTN forum or via java-me-embedded-feedback_ww_grp@oracle.com

Cheers,

— Terrence

Android lock in

Google is moving quickly to further lock down the Android ecosystem (as already reported in part 1 and part 2). 

Yesterday, cyanogenmod was forced by Google to remove the CyanogenMod Installer from the Google Play Store, citing that it ‘encourages users to void their warranty’.  However, if you know that cyanogenmod is working with hardware manufacturers to preinstall CyanogenMod to create alternate Android devices then Googles demand appears in a very different light.

I expect the next step for Google is to start locking down side-loading as well (installing apps through alternate channels) to further tighten control.

The air for embedded Android is getting thinner.

Cheers,

– Terrence

 

Android lock in

A few weeks ago I blogged about an ars technica article which looked at Google’s increasing control over the Android ecosystem (“Android “open for embedded”? Must-read Ars Technica article”).

Yesterday, Vision Mobile published a related post “The Naked Android” which keenly describes the role of Google Play Services and how Google is driving towards its Android endgame of “flatten, expand, mine”. 

More food for thought if you’re considering Android for embedded.

Cheers,

– Terrence

Android lock in

Update (Nov 20): See also part 2 of this post.

A few days ago ars technica published an article “Google’s iron grip on Android: Controlling open source by any means necessary”.

If you are considering Android for embedded this article is a must-read to understand the severe ramifications of Google’s tight (and tightening) control on the Android technology and ecosystem.

Some quotes from the ars technica article:

  • “Android is open – except for all the good parts
  • “Android actually falls into two categories: the open parts from the Android Open Source Project (AOSP) … and the closed source parts, which are all the Google-branded apps”
  • “Android open source apps … turn into abandonware by moving all continuing development to a closed source model.”
  • “Joining the OHA requires a company to sign its life away and promise to not build a device that runs a competing Android fork.”
  • “Google Play Services is a closed source app owned by Google … to turn the “Android App Ecosystem” into the “Google Play Ecosystem”
  • “You’re allowed to contribute to Android and allowed to use it for little hobbies, but in nearly every area, the deck is stacked against anyone trying to use Android without Google’s blessing

Compare this with a recent Wired article “Oracle Makes Java More Relevant Than Ever”:

“Oracle has actually opened up Java even more — getting rid of some of the closed-door machinations that used to be part of the Java standards-making process. Java has been raked over the coals for security problems over the past few years, but Oracle has kept regular updates coming. And it’s working on a major upgrade to Java, due early next year.”

Cheers,

– Terrence

 

ME 8 webcast screenshot

Update (9/25): Some users may be experiencing problems when installing the Java ME SDK 8 EA plugins into NetBeans. Please see the updated Java ME SDK 8 EA Release Notes for a workaround.

As I blogged recently, the Java ME 8 specifications are moving full steam ahead. And today, Oracle is announcing the immediate availability of Java ME 8 Early Access.

Java ME 8 in a Nutshell:

Java ME 8 is a significant update of the Java ME platform and provides a modern, flexible, and feature-rich embedded software platform that is aligned with Java SE 8 and allows more efficient development, deployment, and management of embedded software solutions:

Java ME 8 Early Access scales down to very small target devices – the single-chip solution used on the STM32F4DISCOVERY board has 192 KB of RAM and 1 MB Flash, and costs around US $5 in volume, yet can host a complete solution of Java ME 8 EA runtime, networking and device access functionality, and Java application.

With this update, Java ME 8 is positioned to be the platform of choice for intelligent devices and the Internet of Things.

To learn more about Java ME 8:

Getting started with Java ME 8 Early Access:

Java ME 8 Early Access is available now for the following developer boards:

  • Raspberry Pi Model B (ARM11/Linux)
  • ST Microelectronics STM32F4DISCOVERY (ARM Cortex-M4)

Software development is supported by the Java ME SDK 8 Early Access, which includes a Java ME 8 runtime emulation on Windows as well (so you can get started even without a developer board).

  • Learn more and download Java ME 8 Early Access binaries and Java ME SDK 8 Early Access tools
  • Access Release Notes and step-by-step Getting Started Guides

Cheers,

– Terrence

 

JavaOne

Embedded @ JavaOne is really coming into its own this year. Lots of cool and relevant topics, content, and activities related to Java and embedded. A quick sampler:

Keynotes:

Be sure to watch the JavaOne keynotes for embedded announcements and some cool demos …

Sessions:

  • Java Embedded Extreme Mashups: Building Self-Powering Sensor Nets for the Internet of Things TUT3676]
  • Home Automation for Geeks [CON9177] 
  • Trust Me, I’m an M2M Device [CON7872] 
  • Is It a Car? Is It a Computer? No, It’s a Raspberry Pi JavaFX Informatics System [CON3243]
  • JavaRCX: A Java Embedded Lego Mindstorm RCX Emulator [BOF7901] 
  • Beyond Beauty: JavaFX, Parallax, Touch, Raspberry Pi, Gyroscopes, and Much More [CON2540]
  • Industrial Product Development: Modular Design in Multiple Dimensions with Java [CON2027]
  • Performance Tuning and Optimization of Apache Hadoop with Java Embedded on ARM [BOF7216]
  • Creating Multidevice Interactive Entertainment for the Living Room with Java [CON9176]
  • Controlling NAO Robot with Java [CON11839] 
  • Java ME 8 Overview: A New Platform for Embedded Development for Small Devices [CON2267]
  • and much more … for a full list of sessions, see the Content Catalog.

Internet of Things with Partners:

A summary of various demos, sessions, and activities by Oracle, Eurotech, and Hitachi related to the Internet of Things.

DEMOGrounds:

  • A number of demos around embedded use cases, technologies, and solutions by partners across the ecosystem, including the “Device Showcase”

Duke’s Choie Awards:

  • Be sure to watch for innovative embedded solutions with Java

Java Embedded Challenge for Raspberry Pi:

  • Fun and creative hacking with Raspberry Pi, sensors, and more – equipment and expertise provided.

OTN Lounge and Java Codegarten:

  • Hang out with the experts, including specialists in Java Embedded.

For more information on the above, check out the JavaOne Experiences page.

See you in a few days at the show!

Cheers,

– Terrence

I2c emulOne of the core requirements for embedded Java applications is the ability to access I/O devices, such as sensors, switches, converters, actuators, LEDs, and so on to enable the embedded system to interact with the world around it.

Java ME Embedded includes the Device Access API (DAAPI), which is a comprehensive API that provides access to a range of common I/O devices directly from your Java application in an easy and platform-independent manner. No native code, recompilation, or other “traditional embedded trickery” required.

That works great if you have your target platform already available and up-and-running. But what if you want to start software development before your target platform hardware is available? Or you want to develop most of the code on a Desktop PC for convenience and speed purposes? The Java ME SDK has you covered.

The Java ME SDK offers a set of tools as well as plugins for NetBeans and Eclipse which allow you to develop Java ME Embedded applications efficiently and leveraging your existing Java expertise. Another great feature is that it includes a full emulation runtime which emulates a Java ME Embedded target platform on the PC. Furthermore, the Java ME SDK also includes a tool called the “Custom Device Editor”, which allows you to customize the emulation runtime to your needs (for example, by adding the specific I/O devices of your actual target hardware) and even allows you to implement simulated device behavior (in Java, of course).

To get started with custom I/O devices in the Java ME SDK, check out an excellent blog post Tom McGinn from the Oracle Education Team, explaining how to add and simulate an I2C temperature sensor.

Cheers,

– Terrence

10 billion

There is an interesting discussion happening on the LinkedIn “Internet of Things” group right now, in response to the InfoWorld article a few days ago titled “Oracle hitches Java to ‘Internet of things’“. 

The discussion touches on some interesting details on why Java may or may not be a good choice for embedded. Besides the fact that Java is already proven to be one of the most widely deployed embedded technologies (“10 billion and Counting …”) I think the discussion misses a key point: The coming disruptive shift in the embedded industry.

Change Driven by Smart Devices

The embedded industry as a whole, and the embedded software industry in particular, are on the cusp of a disruptive shift in the way products and services are built and delivered, and how they interact with the rest of the world. This is driven by the explosion of smart, connected devices and the resulting need for security, interoperability, scalability, and faster time-to-market - requirements that are core to the value of the Internet of Things (IoT) space.

To understand why Java is a key technology for the embedded space, it is instructive to look at the mobile phone industry of about 10 years ago. The mobile industry was defined mostly by proprietary technologies, specialized hard- and software, lack of interoperability, and any number of other complexities. Bringing products and services to market in this fragmented environment was costly, time consuming, and didn’t scale – stifling the entire ecosystem and limiting participation to a few companies with deep enough pockets to take the risk.

Embedded Devices == Smart Phones?

Enter the first smart phones. These phones were much more than just devices. They provided a (relatively) open software platform with a consistent set of functionality across a range of devices, simple development, deployment, and monetization models, and ready-made integration with back-end services.

With this new model, the ecosystem equation changed completely. Now, instead of wasting time reinventing the wheel to enter a particular technology island, companies and developers were free to innovate on top of these platforms with a low barrier of entry but large scale opportunities. Almost immediately, we saw an explosion of new and innovative features, software, services, and even entirely new business models, benefiting an entire new ecosystem of those willing to make the shift.

Embedded Needs a New Software Paradigm

The similarities to todays embedded ecosystem are striking. Of course, the embedded markets are more varied and specialized in their needs compared to mobile. But fundamentally, the embedded industry has many of the same problems the mobile industry had 10 years ago. Embedded must move beyond the current fragmented and complex approach of building basic product functionality and towards a platform model that enables a shift upstack, to increase value in application software, business logic, services, and data. This is a key prerequisite to scale up and deliver new products and services for smart, connected devices

The embedded software running on these devices will become much more challenging: It needs to be more flexible, robust, and secure than in the past while meeting ever tighter budget and time-to-market constraints. Successfully implementing such software requires the industry to embrace modern software paradigms, including productive, robust, and standardized programming languages, APIs, and tools, cross-platform execution environments, security design, high levels of pre-tested integration, software reuse and scalability, standards compliance, interoperability, and out-of-the-box integration with back-end services.

What about other languages and systems beyond C/C++, like Wiring, Lua, or JavaScript, or particular protocols like MQTT? There are certainly a number of technologies available in the embedded space that may have benefits for a particular problem domain. But they tend to provide isolated improvements to a small, specific part of the problem while leaving other critical aspects unaddressed. This highlights the issue the embedded industry is facing: Despite incremental progress, the embedded software model is a hodgepodge of disparate technologies that does not scale to meet the coming needs.

Top Technical Reasons for Java in Embedded

By design, Java already meets many of the above requirements. Over the years Java technology has been continuously optimized for embedded, and is being used across industries from smart cards, to industrial control units, robotics, eHealth devices, smart meters, consumer electronics, gateways, networking equipment, imaging systems, and much more. 

Why you should consider Java for embedded solutions:

  • Addresses key challenges of traditional embedded development by decoupling software logic from underlying platform (board/device, chipset, peripherals, OS, native code, libraries)
  • Virtual Machine concept enables feature-rich, scalable, and robust cross-platform/multi-architecture application platform and promotes software reuse
  • Simple and productive software development and deployment model (language, APIs, tools, reuse) reduces cost and time-to-market
  • Single end-to-end development paradigm from client devices to back-end systems (where Java already is the de-facto standard)
  • Enables flexibility and product extensibility through software services and in-field software delivery, updates, and management
  • Highly-functional, deployment-ready runtimes reduce integration, testing, and support costs of final solution
  • Open, standards-based technology, interoperable with many industry standards
  • Enables leveraging large Java ecosystem of expertise, innovations, products, tools, code, and partners

An example of a successful embedded Java product is Oracle Java ME Embedded, which provides an optimized, robust, and complete Java runtime for resource-constrained devices as small as 130 KB RAM and 350 KB ROM/Flash – and which has already been adopted by the four top chipset and wireless module manufacturers.

In the End, The Value is in the Data

Increasingly, a successful embedded solution doesn’t end with the device. The real value of embedded is in the data, and more importantly, in the business information that can be extracted from that data. A client software platform is only as good as the integration into the enterprise it enables. That is why Oracle is not only driving Java Embedded software into devices, but also puts strategic focus on the Oracle Internet of Things Platform in order to enable customers and partners to build enterprise-class end-to-end solutions that deliver business value for IoT deployments.

For more information on why you should consider Java in embedded, please see the webinars, white papers, research reports, and more available throughout my blog.

Cheers,

– Terrence

Jai 3 3 video

Update 7/23/13: A good article/interview is on eWeek: “Oracle Aims Java ME Embedded at the Internet of Things”

On the heels of the recently refreshed Java ME Embedded 3.3 Early Access (EA) bits, Oracle is announcing today:

  • Oracle Java ME Embedded 3.3 GA (General Availability)
  • Oracle Java ME SDK 3.3 GA
  • The Oracle Java Platform Integrator Program

Here are the details:

Oracle Java ME Embedded 3.3

Oracle Java ME Embedded is an optimized, feature-rich Java runtime for resource-constrained devices, covering a wide range of platforms from small micro-controller devices up to mid-range embedded systems, including “Internet of Things” (IoT) and “Machine-to-Machine (M2M) devices. 

The 3.3 release comes with a range of new features and enhancements, such as additional peripheral support, developer productivity features (network monitor, memory status monitor), API enhancements, and other improvements. Ready-to-run binaries are available through Oracle Technology Network (OTN) for the following platforms:

Further, the Java ME SDK features an integrated Java ME Embedded emulation environment, which enabled developers to develop and test Java ME applications directly on PCs without the need for a physical hardware platform.

Oracle Java ME SDK 3.3

Along with the update of Oracle Java ME Embedded, the Oracle Java ME SDK toolchain has been updated to support the new Java ME Embedded features and platforms as well as improved device emulation, integrated memory and network monitor, usability enhancements, full Windows 7 support, and more. The NetBeans and Eclipse plugins have been updated as well.

Oracle Java Platform Integrator Program

The Oracle Java Platform Integrator Program enables companies developing embedded products on devices to leverage the technologies Oracle is providing across their choice of hardware and operating systems, allowing them to increase their differentiation and value-add,  improve application and service portability across a consistent platform, and reduce engineering efforts and time to market for their solutions through the pre-integrated and optimized Java Embedded stack.

Why is this important?

With this announcement, Oracle continues its push into the embedded space, with an enhanced and robust Java ME Embedded runtime, increased platform coverage, improved toolchain, and partner program that address a wide range of embedded use cases and opportunities in the IoT and M2M spaces.

Ok – Where can I find out more?

  • See the press release and watch the new video “Oracle Grows Java Capabilities in the Internet of Things”
  • Review the supporting resources (bottom of the press release page), including webcasts, “Getting Started” videos, and more
  • Check out the updated product home page, with Data Sheets, FAQs, and White Papers
  • Refer to a number of posts on my blog for more information (here, here, here, and here)

Exciting times. Stay tuned for more to come.

Cheers,

– Terrence

* Note: While the MCBSTM32F200 is the officially supported board, the release also works on the MCBSTM32F400 (which is the Cortex-M4 version)

Enter your email address to subscribe to this blog

Join 138 other followers

Twitter Updates

October 2014
S M T W T F S
« Sep    
 1234
567891011
12131415161718
19202122232425
262728293031  

Blog Stats

  • 234,615 hits
Follow

Get every new post delivered to your Inbox.

Join 138 other followers