Setting Kinoma Create Date & Time from a GPS Signal

Brian Friedkin
  

Brian Friedkin

April 16, 2015

Greetings fellow creators!

Many of our Wi-Fi connected devices synchronize their date and time using a network-based timeserver or source. Kinoma Create periodically synchronizes the device date and time from our own network server. But what happens if there is no network available? Fellow creator and hang glider enthusiast Ken Howells came up with an innovative solution.

Ken’s Kinoma Create is mounted on his hang glider! Temperature and barometric pressure sensors on the wing tips and a GPS module mounted on the Kinoma Create supply real-time data, which is displayed on the touch screen in flight and logged for subsequent analysis. Hang gliders can remain aloft by circling in thermals – columns or bubbles of warm air rising from the surface.  Having the temperature displayed in flight can help to detect thermals and hence keep the glider in the air longer.

Hang Glider 1

Unfortunately, Ken noticed that without a Wi-Fi connection, the time stamps in the log files reset back to the Epoch, so it appeared that he was flying just after midnight in 1970. When there is no network there is no time source available. Fortunately the Adafruit Ultimate GPS Breakout sensor Ken flies with delivers the UTC time and date with each position fix.

Hang Glider 2

The serial-MTK3339 sample app shows how to integrate the GPS module with Kinoma Create. The app uses a BLL to periodically read the GPS position fix from the serial interface and displays the location on a map requested from the Google Static Maps API. A Hardware Pins simulator version of the GPS BLL is provided for testing with two feet on the ground.

Hang Glider 3

The GPS data sheet (PDF) describes the navigation data format, which includes UTC Time and Date fields. Each position fix reading is delivered as a comma separated ASCII string. The BLL parses the individual fields:

$GPRMC,064951.000,A,2307.1256,N,12016.4438,E,0.03,165.48,260406,3.05,W,A*2C

Hang Glider 4

The JavaScript Date.UTC static method returns the number of milliseconds between the UTC date/time provided by the GPS and the Epoch:

var milliseconds = Date.UTC(year, month - 1, day, hours, minutes,  seconds);

Kinoma Create provides a global K4 object (K4 is the internal name for Kinoma Create) that can be used to set the system clock from JavaScript:

K4.date = secondsFromEpoch;

To set the Kinoma Create system clock, pass the UTC seconds from the Date object:

K4.date = milliseconds / 1000;

That will set the date/time, but we also need to set the timezone, since otherwise the displayed local time will be incorrect.  The K4.timezone function can be used to set the timezone from a POSIX GMT/UTC timezone string:

K4.timezone = "PDT+07:00";

Using the K4.date and K4.timezone functions, Ken was able to set the Kinoma Create system clock while in the field without a Wi-Fi network and use the on-board Logs app to log sensor data while in flight.

Screen Shot 2015-04-15 at 7.23.59 PM

Here’s a photo of Ken in-flight using Kinoma Create for a data recording session.

Hang Glider 5

Many thanks to Ken Howells for sharing his Kinoma Create prototype with us!

Ken Howells’ first computer was an Apple 2, purchased new in 1979. He’s employed in the sport that means more to him than anything else: hang gliding. Ken assembles and test flies hang gliders. Ken first flew a hang glider in 1985 and started working for the manufacturer in 1995. Ken brought Wills Wing to the Internet in 1996 and learned a lot about server-side and client-side scripting and database interaction along the way. Ken has run a web-connected weather station and webcams since 1999. Ken likes the LAMP stack and used to know the Hayes command set pretty well. Ken reads a lot, tries to keep informed, jokes around a little too much, and never talks about himself in the third person. You can find him on Facebook

Brian Friedkin has been designing and engineering software for over thirty years. As a Principal Engineer at Apple, Brian was a member of the small engineering team that brought QuickTime to Windows. Brian is a co-founder of Kinoma, which was acquired by Marvell in 2010. At Marvell, Brian works in the Kinoma platform team on a variety of projects and supports the developer forum as BrianKinoma. Brian has created consumer-level multi-platform applications, and embedded real-time software, for key industry players including Palm, SONY, Seiko Instruments and HP. 


SXSW 2015: “Start Making” rallying cry in Austin

Rachel Bennett
  

Rachel Bennett

March 26, 2015

SXSW 2015 logo

Few events come close to the pure energy of SXSW, and this year was no exception. Innovators of all stripes descended on Austin, TX for round-the-clock opportunities to network, promote ideas, and access the latest and greatest in technology, media, science, and education.

The Kinoma team took to the SXSW trade show with a huge booth that invited all attendees to “Start Making.” Kinoma Create, the JavaScript-powered IoT construction kit, was front and center of our efforts. It was enthusiastically received!

Start Making booth

Selling a lot of Kinoma Create devices was just icing on the cake

Everyone who came through understood that Kinoma Create is an ideal platform for making cool projects, learning advanced connected electronics, and prototyping IoT products. Students, makers, JavaScript programmers, and professional product designers all saw the potential Kinoma Create presents to them.

The tradeshow was also an opportunity to connect in person with the early adopters who supported our Indiegogo campaign (kicked off at last year’s SXSW). They were reinvigorated by all the demos, and our recent news of open sourcing the KinomaJS application framework.

Crowdfundings visiting booth

Internet of Things more of a ‘thing’ this year

We’ve positioned Kinoma Create as the IoT construction kit from the very beginning, including at last year’s SXSW. An overwhelming impression from this year’s event is that the IoT is vastly more recognized now as a concept, and an opportunity to make our world smarter and more efficient.

JavaScript as the language of IoT has been our passionate position from the start. The importance of this, too, was clearly more understood year-over-year. We were able to connect with a great many JavaScript programmers who want to get into connected hardware making, and need a friendly platform for making the leap. We can’t wait to see what they do with Kinoma Create.

Demos galore

The Kinoma Create demos were the focus of our booth, and they illustrated the various ways connected devices could be programmed, built and managed. Everything from NFC, CoAP, beacons, sensors, and ZigBee were used to connect and control robots, security systems, home automation, games, and more.

Demo PicFrame

The call of the classroom

More than expected, Kinoma Create attracted educators, computer club organizers, and parents who are looking for new ways to help new-comers advance their skills with connected electronics programming, and making. This year’s SXSW was further proof that Kinoma Create has a place in the classroom.

Hardware & IoT Meetup

SXSW is so much about the evening activities. A standout for us this year was Tech Breakfast’s Hardware & IoT Meetup. A couple of us dashed over to the brand-spanking-new JW Marriott for this product show & tell. Kinoma Create clearly connected with the room full of startups. Peter was interviewed by the Technology Editor of Mashable immediately after his presentation.

Meetup PicFrame

Visits by luminaries of tech

We were delighted to give a tour of Kinoma Create to Megan Smith, United States Chief Technology Officer and Assistant to the President. She’s having a great influence on Pennsylvania Avenue, as evidenced by a Maker Faire being held on the White House lawn, and President Obama participating in a national Hour of Code. She really took to Kinoma Create as a means to get more people making.

Writer, speaker, futurist, design instructor, and SXSW regular Bruce Sterling stopped by our booth, taking in all the demos. It was a great chance to catch him up on all things Kinoma Create, especially since the crowdfunding campaign caught his attention last year.

Megan Smith and Bruce Sterling PicFrame

Message amplified on social media

Though it seemed at times everyone was at SXSW, that was not the case. So it was fantastic to track all the activity on social media that got the word out on our presence beyond Austin. Here are some favorites:

 

(more…)


IoT Silicon Valley meetup: Hardware Prototyping for Software Developers

Rachel Bennett
  

Rachel Bennett

March 8, 2015

Dr. Andy Carle, Kinoma’s User Experience Architect, was invited to speak at the IoT Silicon Valley meetup, which is held in the Hacker Dojo space in Mountain View. This particular group is very active and well attended, so we were delighted to be asked to share some thoughts on what the IoT industry should be thinking about.

Andy at podium

Andy delivered a talk title, “Hardware Prototyping for Software Developers,” sharing an approach to designing IoT products that improves your ability to rapidly prototype, user test early, and to create final products with manufacturability and profitability in mind.

 

To see more on this meetup, along with full description of talk, check out IoT Silicon Valley’s website.

We were encouraged by how many questions Andy received after the talk, covering a wide range of topics: graphical languages, memory compression, open source, the BOM, and running devices off a solar cell. The audience was very engaged in the topic of prototyping IoT devices, especially with Kinoma Create.

 

IoT Silicon Valley is a group of very driven, creative, and intelligent people. We’re looking forward to their next event, and hope to see you there!


Kinoma Create @ MakeMIT

Brian Friedkin
  

Brian Friedkin

March 7, 2015

MakeMIT

Greetings fellow Creators! This past weekend I had the opportunity to attend MakeMIT, a 15+ hour hardware hackathon and prototyping competition hosted by MIT. The annual competition is open to undergraduate students with participating teams chosen by lottery. Prizes worth $5,000 are awarded to the top three teams and the top 10 teams are invited back the following weekend to refine their designs. Kinoma was an event sponsor, providing Kinoma Create hardware and mentoring during the hackathon.

Hacker check in cropped

After everyone was checked in, event sponsors were each given a few minutes to present. Peter Hoddie, VP of Kinoma at Marvell, provided an introduction to Kinoma Create and KinomaJS, the JavaScript app framework for Kinoma Create. Peter also shared photos from other maker and hackathon events we’ve participated in, including the ACM UIST Student Innovation Contest, AT&T Hackathon for Car & Home, IoT World Hackathon and Maker Faire Tokyo. We enjoy working with student developers and makers.

Intro to Kinoma cropped

The hackathon then officially began! Students were encouraged to visit the sponsor booths, and to attend workshops to learn more about the various products before selecting their project hardware and sensors. In addition to Kinoma Create, students had access to other development platforms including Arduino, Intel Edison and Raspberry Pi. Sensor development kits included Kinect V2, Oculus Rift and Myo Armband, to name a few. The students were provided an amazing array of materials and tools to work with.

PicFrame for blog post 1

Over the course of the day, the intensity, energy and noise level in the space rose as students bustled about working through their projects, submitting 3D printer jobs, and using acrylic laser cutters and various power tools to build out their designs.

PicFrame for blog post 2

I had the privilege to work and engage with many talented students from MIT, Harvard, Carnegie Mellon, Tufts, and other universities. It was a truly fulfilling experience. We worked together to build a number of prototypes combining Kinoma Create with sensors and hardware to implement their designs.

picframe blog post 4

Several teams built cool devices despite being introduced to Kinoma Create the day of the event. A little mentoring, together with our sample code and sensor libraries, helped.

One team built a Bonsai tree care system that combines Kinoma Create, Arduino and sensors/motors to monitor the moisture level, adjust feeding and light levels. Louvers at the top are motor controlled to filter the light. Kinoma Create provides the ability to play media/sound using the built-in speaker and display an interactive interface on the LCD. The team leveraged these features to display an animated face that channels the Bonsai tree’s health by “speaking” to the owner, e.g. “I was getting quite thirsty so thank you for watering!”

PicFrame for blog post 5

Another team developed a theft avoidance and tracking system for safe stowing of purses and bags in public places. The hack combines a Kinoma Create with an accelerometer, GPS, audible alarm, and companion mobile app to provide for robust security and tracking. The accelerometer detects the bag being moved unexpectedly and triggers an alarm. The GPS coordinates are then published using a PubNub channel that is monitored by an iPhone app. The iPhone app, developed in Kinoma Studio, displays the bag location using Google Maps. The team developed the entire app using Kinoma Studio for Linux and the built-in Kinoma Create and sensor simulators.

PicFrame for blog post 6

 

Map in simupator

The hacking competition was declared over at 12:30 AM and we enjoyed an exposition of the various hacks as the judges made their decisions. At the end of the event, the hacking space was reconfigured for the awards ceremony and we were treated to short demonstrations by the winning teams.

IMAG0671

I thoroughly enjoyed participating at MakeMIT and very much look forward to returning next year. I encourage you to check out the MakeMIT Twitter feed for photos of the winning teams/hacks as well as this BetaBoston article on the event.

 

Brian Friedkin has been designing and engineering software for over thirty years. As a Principal Engineer at Apple, Brian was a member of the small engineering team that brought QuickTime to Windows. Brian is a co-founder of Kinoma, which was acquired by Marvell in 2010. At Marvell, Brian works in the Kinoma platform team on a variety of projects and supports the developer forum as BrianKinoma. Brian has created consumer-level multi-platform applications, and embedded real-time software, for key industry players including Palm, SONY, Seiko Instruments and HP.


KinomaJS Open Source

Peter Hoddie
  

Peter Hoddie

March 2, 2015

This morning, we announced that KinomaJS is now available as open source. We’re using the Apache license and hosting our repository on GitHub. Our press release describes the benefits to the customers of Marvell Semiconductor and the Internet of Things industry as a whole.

In this blog post, I talk about what it means to developers using KinomaJS, especially our Kinoma Create customers, and share some background on our open source effort.

KinomaJS-logo-final-white

KinomaJS for embedded and IoT

There’s a new JavaScript framework announced every day. At least it feels like that. So why should you care about KinomaJS? First, this isn’t one of those frameworks. Those frameworks are pure JavaScript code running in a web browser or in the node.js runtime. KinomaJS is unique native runtime, designed for building embedded devices (Internet of Things products). These products have a very different set of priorities:

  • Memory is much more limited, which impacts the size of both scripts and runtime code
  • Flash storage space is also limited, so much less code overall can be deployed
  • The CPU is usually much less powerful than mobile, desktop, or server
  • Code portability is a bigger challenge because many of these devices still use an RTOS with limited runtime capabilities
  • Much longer term stability is a requirement because devices run for months without a restart

KinomaJS is a deep stack. It has its own portability layer, so it can run on an RTOS. It has its own JavaScript virtual machine, XS, which is fast and small while still adhering to the JavaScript 5th Edition standard. It has its own graphics library, network protocol implementations, and visual containment hierarchy. On top that, there is an application framework, with unified asynchronous messaging designed to mirror HTTP, to cleanly integrate with the JavaScript language which prefers non-blocking APIs because of its single threaded nature.

Second, this code is mature. We didn’t come up with the idea for KinomaJS last month, or even last year. The ideas and code have been evolving for over a decade, refined and honed by building real products for our customers and ourselves. We know commercial grade consumer electronics can be built with this technology because we’ve done just that. Over and over.

That said, KinomaJS is constantly evolving. We add new functionality regularly. We rewrite code that has become stale because of industry advances, or because of an idea for how to make it work better.

Finally, KinomaJS is backed by Marvell Semiconductor, a leading fabless semiconductor company that provides silicon for the biggest names in the technology business. The Kinoma Team is part of Marvell, and Marvell is fully behind our efforts, so much so that our President and co-founder Weili Dai will be giving a keynote at Mobile World Congress on March 3 to personally explain why this is so important to our company. And KinomaJS isn’t a side-project or spin-off effort of the Kinoma Team. It is at the center of all the work we do.

Why are we open sourcing it now?

We’ve wanted to do this for a while. The stars aligned to do it now. So we are. There’s never a perfect time for that. There are parts of the code that we know could be better. As engineers we’re pleased to have a reason to improve those. Now that our source code is open source, it becomes one of our products, not just an internal tool for building other products. We’re excited to work on improving our source code, with input from developers like you, just as we regularly make improvements to our more traditional products in response to our feedback from our users.

What does that mean to Kinoma Create developers?

If you are building projects for Kinoma Create, you have the option to read through our code to see what powers the KinomaJS apps you write. That can give you insights on how to use KinomaJS more effectively. If you ever wanted to add a native function to your KinomaJS app to speed up an operation, now you can.

It also means that as you move from prototyping to production, you have all the source code you need to customize KinomaJS for your product. You can trim unused modules, and add additional pieces needed in your project.

We hope it also means that KinomaJS will improve more rapidly, as more developers become familiar with the code, how to use it effectively, and contribute their ideas and expertise to improving it. A good place to start learning about the codebase is my Tech Note “Introducing the KinomaJS Open Source Implementation.”

What is in there?

This open source release of KinomaJS contains everything we consider the core, plus the extensions and modules that we have found to be most commonly needed when building products.

This open source release doesn’t contain the products we have built on top of KinomaJS. So, for example, you won’t find the source code to our mobile Kinoma Connect app for iOS and Android, or to the shell and apps built into Kinoma Create. But, you can use this KinomaJS release to build your own stand-alone apps for Kinoma Create, iOS, and Android.

Today is just our first open source release for KinomaJS. We are open to including additional extensions and modules in the future. Exactly what those will be is going to depend on how KinomaJS grows, and part of that depends on you—your input, your contributions, and the projects you build with KinomaJS.