Category: Internet of Things

  • April 20, 2018 - Phil Coval

    IoT.js landed in Raspbian

    Following previous efforts to deploy iotjs on Raspberry Pi 0, I am happy to announce that IoT.js 1.0 landed in Debian, and was sync’d to Raspbian for ArmHF and Ubuntu as well. While the package is targeting the next distro release, it can be easily installed on current versions by adding a couple of config files for “APT pinning”. If you haven’t set up Raspbian 9, just dump the current Raspbian image to SDcard (for the record I used version 2018-03-13-raspbian-stretch-lite) Boot your Pi.  To keep track of changes in /etc/, let’s install etckeeper:

    Upgrade current packages:

    Declare the current release as default source:

    Then add a repo file for the next release:

    Unless you want to test the upcoming release, it maybe be safer to avoid upgrading all packages yet.  In other words, we prefer that only iotjs should be available from this “not yet supported” […]

    Read More
  • Many web developers I meet are interested in working with embedded systems and IoT, but they always seem to have reservations on just how to make the whole system (i.e. a server, a ‘thing,’ and a client) work! The amount of information online is extensive, but it’s often hard to know where to start! This blog post will provide a very simple example of how to get a basic LED light to work in a local network, with a web client that provides a way to identify the light with no prior knowledge from the user and no required installation on the client device. To do this we are going to use a very popular Python Django web framework and the  Samsungs IoT.JS framework. This post will provide an overview, basic code snippets, and links to more information on the GitHub repo. I’ll also provide exact links to the hardware […]

    Read More
  • March 15, 2018 - Ziran Sun

    An Introduction to IoT.js Architecture

    IoT.js is a lightweight JavaScript platform for the Internet of Things. The platform keeps interoperable services at the forefront, and is designed to bring the success of Node.js to IoT devices like micro-controllers and other devices that are constrained to limited storage and only a few kilobytes of RAM. IoT.js is built on top of JerryScript: a lightweight JavaScript interpreter, and libtuv: an event driven (non-blocking I/O model) library. The project is open source under the Apache 2.0 license. This article will introduce you to the architecture of IoT.js and the fundamentals of writing applications for it. IoT.js Architecture JerryScript – ECMAScript binding JerryScript is the kernel for IoT.js on an ECMAScript binding, it’s an ultra lightweight JavaScript engine that was written from scratch at Samsung. The name “Jerry” comes from the popular character in Tom and Jerry, who’s small, smart, and fast! Since the engine is an interpreter only, it might be more […]

    Read More
  • March 13, 2018 - Phil Coval

    How to Run IoT.js on the Raspberry PI 0

    IoT.js is a lightweight JavaScript platform for building Internet of Things devices; this article will show you how to run it on a few dollars worth of hardware. The First version of it was released last year for various platforms including Linux, Tizen, and NuttX (the base of Tizen:RT). The Raspberry Pi 2 is one of the reference targets, but for demo purposes we also tried to build for the Raspberry Pi Zero, which is the most limited and cheapest device of the family. The main difference is the CPU architecture, which is ARMv6 (like the Pi 1), while the Pi 2 is ARMv7, and the Pi 3 is ARMv8 (aka ARM64). IoT.js upstream uses a python helper script to crossbuild for supported devices, but instead of adding support to new device I tried to build on the device using native tools with cmake and the default compiler options; it […]

    Read More
  • IoTivity 1.3.1 has been released, and with it comes some important new changes. First, you can rebuild packages from sources, with or without my hotfixes patches, as explained recently in this blog post. For ARM users (of ARTIK7), the fastest option is to download precompiled packages as .RPM for fedora-24 from my personal repository, or check ongoing works for other OS. Copy and paste this snippet to install latest IoTivity from my personal repo:

    I also want to thank JFrog for proposing bintray service to free and open source software developers. Standalone Apps In a previous blog post, I explained how to run examples that are shipped with the release candidate. You can also try with other existing examples (rpm -ql iotivity-test), but some don’t work properly. In those cases, try the 1.3-rel branch, and if you’re still having problems please report a bug. At this point, you should know […]

    Read More
  • November 29, 2017 - Phil Coval

    Building IoTivity for ARM on ARTIK Devices

    There are several options to build IoTivity for ARM targets or any non x86 hardware, but first you have to decide which operating system you want to use. In this article, I won’t compare OS or devices; instead, I’ll give a couple of hints that apply to ARTIK 5, 7, and 10 devices (not the ARTIK 0 family, which run TizenRT). These steps can also be applied to other single board computers like the Raspberry PI. Build for Tizen with GBS The first and easiest way to build IoTivity is for Tizen, using GBS. This process was explained in a previous article on this blog: An Introduction to Tizen Development on ARTIK For your knowledge, GBS was inspired by Debian’s git-build-package and uses an ARM toolchain that runs in a chrooted ARM environment using QEMU. Both ARTIK boards and the Raspberry Pi are used as Tizen reference platforms. Build for […]

    Read More
  • April 7, 2017 - Phil Coval and Sanjeev BA

    How OCF is Creating the Connected Car

    The Connected Car & Fragmentation Traditional car manufacturers have begun including early iterations of touchscreen technology with access to media and apps that can also provide basic HVAC (Heating, Ventilation and A/C) controls for the vehicle. These features can often be accessed through mobile devices with tailor-made apps from each car maker. However, this has led to OEMs building their own ecosystem silos, similar to the trends observed in the smartphone industry. The lack of an open, standardized framework has resulted in a fragmented market, where experiences from one OEM won’t work with another in any streamlined way; consequently, developers aren’t thinking about how to provide a rich user experience that allows cars and drivers to work in unison; this is a huge missed opportunity. Samsung OSG, OCF, and IoTivity The Open Connectivity Foundation (OCF) is creating a specification and sponsoring the IoTivity open source project to deliver an open and secure connectivity and […]

    Read More
  • A curious mind recently asked me to share materials about the OCF SmartHome demo, or perhaps I should call it the “Minimalist Smart Switch” instead. The demo was displayed at the Embedded Linux Conference in Berlin, and featured IoTivity running on an ARTIK10 SoC that connected to a Tizen Gear S2 Smartwatch; both run Tizen OS. You will find more technical details in the following slide deck. IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux from Samsung Open Source Group Install Tizen and IoTivity If you want to run it this demo, you can download the system image and uncompress the archive directly to the SD card using QEMU tools.

    Once this is completed, insert the SD card into the ARTIK10 and turn it on; it will boot Tizen and launch the IoTivity server. For more information about this, check out the previous blog posts about booting tizen on ARTIK and […]

    Read More
  • You probably saw the announcement on October 10, 2016 that the Open Connectivity Foundation and the AllSeen Alliance will merge and create a ‘best of both’ IoT framework. To recap briefly, the Board of Directors from both organizations have agreed to consolidate operations under the Open Connectivity Foundation (OCF), while the open source projects will continue to be hosted at the Linux Foundation. I’ve noticed some confusion about what exactly happened, so I thought I would clarify some things in this article. To start, OCF and the AllSeen Alliance are each non-profit entities that are responsible for the business operations of each project. In addition, OCF hosts development of the specification. Each organization has their own bylaws, membership agreement, IPR policy, and charter. By law they must be governed by a board of directors, which consists of representatives from member organizations. One of the major differences between the two is that […]

    Read More
  • June 13, 2016 - Phil Coval and Mats Wichmann

    How to Run IoTivity on ARTIK with Yocto

    Samsung ARTIK is described by its developers as an end-to-end, integrated IoT platform that transforms the process of building, launching, and managing IoT products. I first saw one a year ago at the Samsung VIPEvent 2015 in Paris, but now there is an ARTIK10 on my desk and I would like to share some of my experiences of it with you. In this post, I will show how to build a whole GNU/Linux system using Yocto, a project that provides great flexibility in mixing and matching components and customizing an environment to support new hardware or interesting software like IoTivity. If you’re looking for Tizen support, it’s already here (check at bottom of this article), but this post will focus on a generic Linux build. Many of the board’s features I will be covering in this article are briefly introduced in the following video: There are 3 ARTIK models […]

    Read More