Monday Aug 25, 2014

Geertjan describes Raspberry Pi, Java SE Embedded & NetBeans Remote Platform

I was having an offline discussion with Geertjan about using NetBeans remote platform development with Java SE 8 Embedded on the Raspberry Pi. Soon as I mentioned how you do that with just a few straight-forward steps using sudo apt-get install oracle-java8-jdk, he's got it in a Web article.

That's fast!


Geertjan describes RPi & Java

Here's a quote:

 Once you have set up a Raspberry Pi, 
 the next step is to install "JDK 8 
 for Arm" on it. Here is how, on the 
 command line of the Raspberry Pi:

  sudo apt-get update
  sudo apt-get upgrade
  sudo apt-get install oracle-java8-jdk

 Once you have done that, you need: 
 Putty, WinSCP, SSH, and other command 
 line tools, right? Wrong.
Nice! Geertjan is right. All you need is to install oracle-java8-jdk on your RPi and have the NetBeans IDE running over the network on a host system, and you're cookin'!

Thursday Aug 21, 2014

Java 8 for Tablets, Pis, and Legos at Silicon Valley JUG - 8/20/2014

A bunch of people attended the Silicon Valley Java Users Group meeting last night and saw Stephen Chin talk about "Java 8 for Tablets, Pis, and Legos". I was there and thought Stephen's presentation and demos were very cool as always.

Here are some photos (mostly taken by Arun) from last night.


Photos from SV JUG 8/20/2014

The most interesting combination of the topics from last night (to me at least) is to combine Lambdas from Java SE Embedded 8 with running on an embedded device like the Raspberry Pi, or even better on an i.MX6 target device with a quad-core processor. Lambdas and Embedded, now that's a cool combo...

Tuesday Aug 19, 2014

Java SE Embedded-Enabled Raspberry Pi Ice Bucket Challenge

Help fight ALS at:


Java SE Embedded-Enabled Raspberry Pi Ice Bucket Challenge

My Java SE Enabled Raspberry Pi accepts the nomination for the ALS Ice Bucket Challenge and I hereby nominate the Nest thermostat, the Fitbit fitness tracker, and Apple TV.

Take the Ice Bucket Challenge. Help find the cure for ALS:

Friday Aug 15, 2014

Why are embedded device apps still written in C/C++? Why not Java programming language?

At the recent Black Hat 2014 conference in Sin City, the Black Hatters were focusing on Embedded Devices and IoT. You know? Make your networked-toaster burn your bread 10,000 miles away, over the Web for grins and giggles.

Well, apparently the Black Hatters say it can be done pretty easily these days, which is scary.


Securing Embedded Devices & IoT

Here's a quote:

 All these devices are still written 
 in C and C++.

 The challenges associated with 
 developing securely in these languages 
 have been fought for nearly two decades.
 "You often hear people say, 'Well, why 
 don't we just get rid of the C and C++ 
 language if it's so problematic. Why 
 don't we just write everything in C# or 
 Java, or something that is a little 
 safer to develop in?'," DeMott says. 
Gah! Why are all these IoT devices still using C/C++? Of course they should be using Java SE Embedded technology! It's a natural fit to use for better security on embedded devices. Or, I guess, developers really don't mind if their networked-toasters do char their breakfast. If it can be burned, it will be... That's what I say. Unless they use Java. :-)

Wednesday Aug 13, 2014

Paul Krill states: "Oracle is strengthening Java" technology

The editor-at-large at InfoWorld, Paul Krill, says that "Oracle is strengthening Java" in his recent opinion piece, and gives his reasons why. Well, that's good to know, since a strong Java makes for a set of happy Java developers, especially Java SE Embedded developers, who need plenty of strength in a smaller package.


Paul Krill: Oracle strengthening Java

Here's a quote:

 Oracle followed up Java SE 7 with 
 Java SE 8, with capabilities for 
 functional programming offered via 
 Project Lambda. In fact, some have 
 even feared Oracle was moving Java 
 too far with Lambda expressions.

 Up next for the standard edition of
 Java is version 9, which is expected 
 in 2016 and is slated to provide 
 modularity capabilities deferred 
 from Java SE 8. 

That's right. Cool new Java features just keep chugging along into all these new versions (Java SE 7, 8, and coming next 9). That goes for Java SE Embedded also, which is fully compliant with Java SE 7, 8, and eventually 9 with all its modular goodness. So, make sure to ask that Google when they'll have all these great features in Android. ;-) Inquiring minds want to know...

Wednesday Aug 06, 2014

AMD and Oracle collaborating on OpenJDK for ARMv8 64-bit servers

Here's an article on Project Sumatra, the AMD/Oracle collaboration to put Java SE Embedded technology onto their new ARM 64-bit motherboard (which can also accept x86 chips).


AMD and Oracle Collaborate on ARM 64-bit

Here's a quote:

 The board ships with software including 
 the LAMP stack—Red Hat Fedora Linux, 
 Apache web server, MySQL database and 
 PHP tools. The board also supports Java 
 7 and 8, which don’t yet have native 
 support for parallel acceleration across 
 CPUs and graphics processors. The 
 acceleration can be added to Java 
 virtual machines only through extra 
 layers of code. AMD and Oracle are 
 collaborating on an OpenJDK project 
 called Project Sumatra, which will bring 
 native CPU-GPU parallel execution to ARM 
 servers with Java 9, which is due next 
If you're into Big Iron servers running Java SE Embedded software (best type of combo for power savings and embedded programming), then you'll want Java SE Embedded ARMv8 64-bit support which is on its way. Just get ready, since racks and racks of these ARM 64-bit servers running embedded Java apps will be the next phase of data center processing...

Tuesday Aug 05, 2014

Silicon Valley JUG Wed 8/20/2014 Java SE Embedded 8 on Lego, Raspberry Pi, & Tablets

For those in the Silicon Valley area who like Raspberry Pi, Lego Mindstorms and Java SE Embedded, Stephen Chin (Oracle Java Ambassador) will be giving a presentation about Java SE Embedded 8 for tablets, RPi, & Lego Mindstorms on Wed. 8/20/2014 @ 6pm-9pm, Pacific Time at Google, Building CL2, Crane Beach Conference Room:

Sign up here:

Silicon Valley JUG Wed 8/20/2014

Java 8 for Tablets, RPis, and Legos
    Wednesday, August 20, 2014
    6:00 PM to 9:00 PM
    Crane Beach room, Google Bldg CL2
    1200 Crittenden Lane, 
    Mountain View, CA

    6:00 - 7:00 Networking & light 
                dinner - Thanks Google 
    7:00 - 7:15 Announcements
    7:15 - 8:45 Steve Chin will talk 
                about Java 8 Lambdas 
                and Devices
    8:45 - 9:00 Q&A
Good topic, good food, so-so venue... 2 out of 3 ain't bad. What else can you ask for? ;-)

Monday Aug 04, 2014

James Gosling's article about using Java SE Embedded 7 on ARM

Here's a cool Slate Magazine article I saw Yael W. like on Facebook about how James Gosling uses Java SE Embedded 7 on ARM for his wave riding Liquid Robotics robots.


James Gosling's Article

James Gosling
August 2 at 10:10am

Java sailing in the arctic!! These are some of 
our new bots whose control system is running on 
top of the embedded ARM JVM (we're still on JDK 
7). We've got two other groups of them in the 
arctic this summer, including three very close 
to the north magnetic pole - had to write some 
very special navigation code. Crazy stuff

Now, that is cool stuff and an awesome use of the Java SE Embedded technology. Internet of Wave Riding Things (IoWRT).

Friday Aug 01, 2014

New Raspberry Pi Model B+ Runs Java SE Embedded Apps Just Like Model B

What's the difference between the new Raspberry Pi Model B+ and the old Model B? Well, it's more than just the plus sign (+) in the name. There are more USB ports, better sound, and lots and lots more GPIO Pins.

Now that's what I'm talking about! I like having more GPIO pins when connecting my Java SE Embedded apps to all types of tasty devices like sensors and actuators!

See Raspberry Pi video blogger, Carrie Anne Philbin's run-down of the list of new features of the new RPi Model B+ on YouTube:

Geek Gurl Reviews RPi Model B+

And to add to the Geek Gurl's video (above), you should know that of course, all your old Java SE apps will run on the new RPi Model B+ without any problem, because... duh... "Write Once, Run Anywhere" Ya know? Java? Hello? Good stuff!

Just remember to update your version of the Java SE Embedded platform to the latest release on your Raspbian operating system:

sudo apt-get install oracle-java8-jdk

That's it! You will now have the most recent Java SE Embedded platform, the most awesome embedded platform for your Raspberry Pi Model B, B+, and any other letter and arithmetic symbol you can think of. Port your Model B Java apps to the Model B+ by just copying over the JAR files. What's easier than that? :-)

Wednesday Jul 23, 2014

How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 8)

Now, your Parallax Single Relay Board from your Raspberry Pi is connected to your furnace, fan, and A/C control wires. Let's just stop right there and soak that in.

Your Raspberry Pi is now the hardware equivalent to a Nest Thermostat. Nice work so far! You just need intelligent software to run the Raspberry Pi to control your home heating and A/C. And, of course, you don't want to use just any programming language to do that. You want your Raspberry Pi to be a smart Internet of Things (IoT) device, not a dumb device. So, you're going to need Java SE Embedded Technology.

Here's the simple Java code that will drive your relays to turn on your furnace, fan, and A/C. It's a test app that cycles your heat on for 5 minutes, then your fan on for 5 minutes, then your A/C on for 5 minutes with a rest period of 2 minutes in between.

    static String[] GpioChannels =                                
    { "0", "1", "4" };
 /* ... */

     * @param args the command line arguments
    public static void main(String[] args) {
        FileWriter[] commandChannels;
        try {
            /*** Init GPIO port for output ***/
            // Open file handles to GPIO port unexport and export controls
            FileWriter unexportFile = 
                    new FileWriter("/sys/class/gpio/unexport");
            FileWriter exportFile = 
                    new FileWriter("/sys/class/gpio/export");

            for (String gpioChannel : GpioChannels) {
                // Reset the port
                File exportFileCheck = new File("/sys/class/gpio/gpio"+
                if (exportFileCheck.exists()) {
                // Set the port for use

                // Open file handle to port input/output control
                FileWriter directionFile =
                    new FileWriter("/sys/class/gpio/gpio" + gpioChannel + 
                // Set port for output
/* ... */

       // Set up a GPIO ports as a command channels  
       FileWriter heatChannel = new   
                FileWriter("/sys/class/gpio/gpio" +  
             GpioChannels[0] + "/value");  
       FileWriter fanChannel = new   
                FileWriter("/sys/class/gpio/gpio" +  
             GpioChannels[1] + "/value");  
       FileWriter acChannel = new   
                FileWriter("/sys/class/gpio/gpio" +  
             GpioChannels[2] + "/value");  

       // TEST Cycle all 5 min. on, 2 min. off
         // HIGH: Set GPIO port ON  
         // LOW: Set GPIO port OFF  

         // HIGH: Set GPIO port ON  
         // LOW: Set GPIO port OFF  

         // HIGH: Set GPIO port ON  
         // LOW: Set GPIO port OFF  
     } catch (Exception exception) {  

Pretty straight-forward stuff. It's easy when you use Java SE Embedded technology and a Raspberry Pi. Hey, someone should trademark that... ;-)

Full series of steps:
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 1)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 2)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 3)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 4)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 5)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 6)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 7)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 8)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 9)
<<< Previous  | Next >>>

Tuesday Jul 01, 2014

Jini IoT Edition: Connecting the Emerging Internet of Things Silos

For those who were around in the days of Sun Microsystems, Inc., you might remember Jini technology which was a cool network architecture for distributed systems, devices and services.

Hmmm... where have we recently heard that before? Does it sound similar to... the Internet of Things (IoT)???


Jini IoT Edition

Here's a quote:

 In fact, in the late 90s, Sun Microsystems 
 defined a Java-based standard called Jini - 
 which was a network architecture comprised 
 of distributed systems, devices and services. 
 Jini talked about connected devices, both in 
 the consumer space and the enterprise. In a 
 manner of speaking, Jini was a precursor of 
 the IOT, but none of the above mentioned 
 supporting technologies existed at that time 
 and due to this and few other reasons. Jini 
 never made it to mainstream.
Well, yes. Jini was the precursor to IoT. And, there's no reason why it can't come back now that today's available technology has finally caught up with the concept. A Jini IoT Edition could be the driver to connect all those disparate silos forming for the Internet of Things, everything from Google's Nest API's, to Apple's HomeKit, to AllJoyn, Belkin's WeMo, MQTT, Tesla cars, you name it! Jini IoT Edition has the chance to tie all those scattered silos together with Java API's.

It's nothing new. It's just been sitting in there on the back shelf in a bottle, waiting for the right time to come back out and show its inherent quality: bringing together devices, services, and distributed systems. It's time to let it back out of that bottle. This time, there's no going back...

Wednesday Jun 25, 2014

Java (SE Embedded Technology) Rises Again in IoT Developers Conference Summary

The Electronic Design site has a good summary of the Internet of Things Dev Conference where Java was reported being "at the center of many IoT and M2M platforms from the start". (Such as this Freescale i.MX6 Dual-based IoT Gateway which ships with Java SE Embedded directly on the device)

"Java at the center of IoT & M2M." So true. So, very true.


Java Rises Again

Here's a quote:

 Actually Java has been at the center 
 of many IoT and M2M platforms from 
 the start. The movement to 32-bit 
 microcontrollers for clients make 
 it an interesting choice because 
 it provides portability...
And, the portability that Java SE Embedded technology gives is the key to IoT. That is, if you want your Apple HomeKit to talk to your Google Nest API's to talk to your Fitbit to talk to your AllJoyn network to talk to your Tesla car... It's going to be Java (once again) Embedded technology that ties it all together with standard and secure API's and protocols. Don't trust anyone else to remain neutral in tying all IoT devices and networks together.

Friday Jun 20, 2014

How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 7)

So, you've got your Parallax Single Relay Board. Next you need to connect this to your furnace, fan, and A/C control wires... and, not burn down your house in the process. Got that? Good.

Refer back to your thermostat wires. We need to connect a Relay Board to each of the control wires for the Fan, Heat call, and Cool call. Here's a reminder which wire is which.

    Red - R - 24VAC
    Red - Rh - 24VAC (dedicated to heat call)
    Red - Rc - 24VAC (dedicated to cooling call)

    Green - G - Fan on
    White - W - Heat call
    Yellow - Y - Cool call
    Blue or Black - C - Common

You will need 3 Relay Boards connecting to the Raspberry Pi to control the 3 house thermostat control wires (Green for Fan, White for Heat, and Yellow for Cool). First, make sure on your Adafruit PiTFT has the 2x13 male header properly soldered on to it to daisy chain your RPi header pins (to allow your Relay Boards to connect down to the RPi). This way your Adafruit PiTFT can use the SPI pins (SCK, MOSI, MISO, CE0, CE1) plus GPIO #24 and #25 for its use, while we use GPIO #00, #01, and #04 for the Relay Boards. It's nice to share.

On each Relay Board, connect the + to the +5 VDC pin on your Adafruit PiTFT (male header pin #2). Make use of continuous jumper wires to share the one +5 VDC pin with all 3 of the Relay Boards. Then, connect the - to the GND pin (male header pin #6) using a continuous jumper wire to share this pin also. And, finally connect the S pin of one of your Relay Boards to GPIO #00 (pin #3), one S pin to GPIO #01 (pin #5), and the final S pin to GPIO #04 (pin #7).

Then connect all 3 Relay Boards Common screw down connector to the C - Common wire of your thermostat. Connect one Relay Board Normal Open (NO) screw down connector to the Green Fan wire, one NO screw down connector to the White Heat wire, and the final NO screw down connector to the Yellow Cool wire. Cool? Cool!

You are good to go for the next step!

See, not so bad still, right? ;-)

Full series of steps:
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 1)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 2)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 3)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 4)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 5)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 6)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 7)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 8)
How to Build Your Own $3.2bln Nest Startup Using Java SE Embedded Tech (Part 9)
<<< Previous  | Next >>>

Wednesday Jun 04, 2014

OpenJDK DIO Project Now Live! Java SE Embedded API Accessing Peripherals

The DIO project on OpenJDK is now live! For those who grew up in the 1970's and 1980's, you might remember Ronnie James Dio, lead singer of Black Sabbath after Ozzy was fired, and lead singer of his own band, Dio. Well, this DIO is not that Dio.

This DIO is the OpenJDK Device I/O project which provides a Java-level API for accessing generic device peripherals on embedded devices, like your Raspberry Pi running Java SE Embedded software.


OpenJDK DIO Project

Here's a quote:

  + General Purpose Input/Output 
  + Inter-Integrated Circuit Bus 
  + Universal Asynchronous 
    Receiver/Transmitter (UART)
  + Serial Peripheral Interface
If you're familiar with Pi4J, then you're going to like DIO. And, if you liked Ozzy, you probably liked Ronnie James Dio.

This will probably make Robert Savage happy too. The part about DIO being live now, not the part about Dio replacing Ozzy, because everyone likes Ozzy.

Friday May 30, 2014

Maker Faire Report - Teaching Kids Java SE Embedded for Internet of Things (IoT)

I had a great time at this year's Maker Faire 2014 in San Mateo, Calif. where Jake Kuramoto and the AppsLab crew including Noel Portugal, Anthony Lai, Raymond, and Tony set up a super demo at the DiY table. It was a simple way to learn how Java SE Embedded technology could be used to code the Internet of Things (IoT) devices on the table.

The best part of our set-up was seeing the kids sit down and do some coding without all the complexity of a Computer Science course. It was very encouraging to see how interested the kids were when walking them through the programming steps, then seeing their eyes light up when telling them, "You just coded a Java enabled Internet of Things device!" as the Raspberry Pi-connected devices turned on or started to move from their Java Embedded program.


The AppsLab at Maker Faire

It will be interesting to see how this next generation of kids grow up with all these Internet of Things devices around them and watch how they will program them. Hopefully, they will be using Java SE Embedded technology to do so. From the looks of it at this year's Maker Faire, we might have a bunch of motivated young Java SE Embedded coders coming up the ranks soon. Well, they have to get through middle school first, but they're on their way! ;-)


Hinkmond Wong's blog on making the Internet of Things (IoT) smarter with Java Technologies


« November 2015