Archive

Posts Tagged ‘cloud’

Top Programming Languages & Operating Systems for the Internet of Things

May 19th, 2017 3 comments

The Eclipse foundation has recently done its IoT Developer Survey answered by 713 developers, where they asked  IoT programming languages, cloud platforms, IoT operating systems, messaging protocols (MQTT, HTTP), IoT hardware architectures and more.  The results have now been published. So let’s have a look at some of the slides, especially with regards to programming languages and operating systems bearing in mind that IoT is a general terms that may apply to sensors, gateways and the cloud, so the survey correctly separated languages for different segments of the IoT ecosystem.

Click to Enlarge

C and C++ are still the preferred languages for constrained devices, and developers are normally using more than one language as the total is well over 100%.

Click to Enlarge

IoT gateways are more powerful and resourceful (memory/storage) hardware, so it’s no surprise higher level languages like Java and Python join C and C++, with Java being the most used language with 40.8% of respondents.

Click to Enlarge

When it comes to the cloud with virtually unlimited resources, and no need to interface with hardware in most cases, higher level languages like Java, JavaScript, Node.js, and Python take the lead.

Click to Enlarge

When it comes to operating systems in constrained IoT devices, Linux takes the lead with 44.1%, in front of bare metal (27.6%) and FreeRTOS (15.0 %). Windows is also there in fourth place probably with a mix of Windows IoT core, Windows Embedded, and WinCE.

Click to Enlarge

Linux is the king of IoT gateways with 66.9% of respondent using it far ahead of Windows in second place with 20.5%. They have no chart for the cloud, probably because users just don’t run their own Cloud servers, but relies on providers. They did ask specifically about the Linux distributions used for IoT projects, and the results are a bit surprising with Raspbian taking the lead with 45.5%, with Ubuntu Core following closely at 44.4%.

Click to Enlarge

Maybe Raspbian has been used during the prototyping phase or for evaluation, as most developers (84%) have been using cheap development boards like Arduino, BeagleBone or Raspberry Pi. 20% also claim to have deployed such boards in IoT solutions.

Click to Enlarge

That’s only a few slides of the survey results, and you’ll find more details about Intel/ARM hardware share, messaging & industrial protocols, cloud solutions, wireless connectivity, and more in the slides below.

Via Ubuntu Insights

Banana Pi BPI-M64 Board Gets Allwinner R18 Processor with Google Cloud IoT Core Support

May 18th, 2017 28 comments

Banana Pi BPI-M64 board was launched with Allwinner A64 processor, but a few days ago, I noticed the board got an option for Allwinner R18. Both processors are likely very similar since they are pin-to-pin compatible, and Pine64 was first seen with Allwinner R18, so I did not really feel it was newsworthy. But today, Google announced Google Cloud IoT Core cloud service working with a few app partners such as Helium and Losant, as well as several device partners including ARM, Marvell, Microchip, Mongoose OS, NXP… and Allwinner, having just announced the release of an Allwinner R18 SDK with libraries supporting Google Cloud IoT Core.

Let’s go through the board specifications first which are exactly the same as for the original BPI-M64 board, except for the processor:

  • SoC – Allwinner R18 quad core ARM Cortex A53 processor with Mali-400MP2 GPU
  • System Memory – 2GB DDR3
  • Storage – 8GB eMMC flash (16, 32 and 64GB options), micro SD slot up to 256 GB
  • Video Output / Display interface – HDMI 1.4 up to 4K resolution @ 30 Hz, MIPI DSI interface
  • Audio – HDMI, 3.5 mm headphone jack, built-in microphone
  • Connectivity – Gigabit Ethernet + 802.11 b/g/n WiFi & Bluetooth 4.0 (AP6212)
  • USB – 2x USB 2.0 host ports, 1x micro USB OTG port
  • Camera – MIPI CSI interface (which I guess you support parallel cameras via some kind of bridge)
  • Security – Hardware security enables ARM TrustZone, Digital Rights Management (DRM), information encryption/decryption, secure boot, secure JTAG and secure efuse
  • Expansion – 40-pin Raspberry Pi 2 somewhat-compatible header
  • Debugging – 3-pin UART header
  • Misc – IR receiver; U-boot, reset and power buttons;
  • Power – 5V via power barrel; 3.7V Lithium battery header; AXP803 PMIC

So from hardware perspective, there’s no advantage of getting the board with the new R18 processor. But the SDKs are somehow different, and based on Allwinner’s press release, only R18 processor gets Google Cloud IoT Core support.

Cloud IoT Core Overview

Some of the key benefits of Cloud IoT Core include:

  • End-to-end security – Enable end-to-end security using certificate-based authentication and TLS; devices running Android Things or ones supporting the Cloud IoT Core security requirements can deliver full stack security.
  • Out-of-box data Insights – Use downstream analytic systems by integrating with Google Big Data Analytics and ML services.
  • Serverless infrastructure: Scale instantly without limits using horizontal scaling on Google’s serverless platform.
  • Role-level data control – Apply IAM roles to devices to control access to devices and data.
  • Automatic device deployment – Use REST APIs to automatically manage the registration, deployment and operation of devices at scale.

Both Foxconn/SinoVoIP and Pine64 can offer Allwinner R18 platforms compatible with Google Cloud IoT Core via their Banana Pi BPI-M64 and Pine A64+ boards respectively.

ESP8266, Mongoose OS & Grove Sensors – An Alternative Solution for Hackathons

April 12th, 2017 5 comments

CNXSoft: This is a guest post by Cesanta

If you walked into any Hardware hackathon over the last year, you would see they are about innovation and bringing new ideas to this world and most of them are centered around the connected devices nowadays. However, just walk the floor, talk to the teams and you can quickly see an elephant in the room. The Hackathons are about connected devices, but with the ‘recommended’ and frequently sponsored hardware distributed to the teams such as Intel Galileo, Raspberry Pi, etc…. developers may struggle for a long time to even connect it to the cloud!

Not to mention the innovation is usually hindered by a tedious environment setup which takes hours, things to learn about the specific hardware and how it can be programmed using low level languages. So many teams spent most of the time fighting with those issues and oftentimes still do not have their prototype ready and connected by the end of hackathon.

This situation can be improved by using ESP8266 boards with Mongoose OS and SeeedStudio Grove Sensors. The solution brings the following benefits:

  1. Low price:
    • ESP8266 development board is $4-15 depending on the board;
    • Seeed Studio Sensors are priced  $3 to $15 each, but you can also save by purchase them as a part of Grove Starter Kit for $39.
  2. The solution is solderless & plug and play – so anyone can actually use it fast.
  3. With Mongoose OS the firmware logic can be coded within few minutes using JavaScript code
  4. The data can be pushed to any cloud or public MQTT server such as Mosquitto, HiveMQ, AWS IoT, etc…

Let’s jump into the action and get ESP8266 & Seeed Light Sensor up and running with Mongoose OS in a few minutes. This example below shows how to get the hardware (sensor) data and send it to the cloud.

  1. Get your ESP8266 (e.g. NodeMCU) and Seeedstudio Light Sensor and Button ready.
  2. Download and install mOS tool for Mongoose OS. This works in Linux, Mac OS X, or Windows operating systems
  3. Connect the hardware
    • Power the Grove base shield: connect GND and VCC pins to the NodeMCU GND and VCC pins
    • Connect light sensor to slot 7 on the Grove base shield
    • Connect slot 7 to the ADC pin on the NodeMCU board
    • Connect NodeMCU board to your computer
  4. Program the board to retrieve the light sensor data and send it to the cloud (HiveMQ in this example)
    • Start mos tool, switch to the prototyping mode, edit init.js file
    • Click ‘Save and reboot device”
  5. Go to http://www.hivemq.com/demos/websocket-client/, connect and subscribe to the topic “my/topic”
  6. Press a button and see how light sensor reading is sent to the MQTT server

Light Sensor Data Shown on HiveMQ Dashboard – Click to Enlarge

Now you can see how easy it was! Want to play with other Seedstudio sensors from Grove Kits? Check video tutorials for button, motion sensor, moisture sensor, UV sensor, relay, buzzer, etc… including the one below with the light sensor.

Canonical Refocuses Ubuntu Development Efforts on Cloud and IoT, Drops Convergence and Mobile

April 6th, 2017 15 comments

Mark Shuttleworth has published a new blog post in Ubuntu Insights, and this is not all good news, as the title “Growing Ubuntu for Cloud and IoT, rather than Phone and convergence” implies. Canonical has decided to drop Unity8, and replace it with Gnome in Ubuntu 18.04, and by extension stop any investment in Ubuntu phone and convergence.

The main reasons given for the drop were that few commercial partners were interested in the project, preferring to stick with the most popular mobile operating systems like Android, and the community did not see the work as innovation, but instead fragmentation, probably referring to the Mir vs Wayland saga.

On the better news, Canonical is still committed to work on Ubuntu desktop, and will focus on the Cloud and IoT applications such as automotive, robotics, networking, and machine learning, for which the company has gone well so far with multiple commercial partners.

The video below shows the work done so far on Unity8. Sadly it will never be used in a meaningful way.

Texas Instruments CC3200 WiFi SensorTag is Now Available for $40

March 15th, 2017 No comments

Texas Instruments launched SensorTag in 2013, and at the time there was just a Bluetooth 4.0 LE version with 6 different sensors. I bought one for $25 at the time, and tried it with a Raspberry Pi board and a BLE USB dongle. Since then, the company has launched a new multi standard model (CC2650STK) supporting Buetooth low energy, 6LoWPAN, and ZigBee, and has just started to take orders for CC3200 WiFi SensorTag for $39.99, which seems expensive in a world of $2 ESP8266 modules.

But let’s see what the kit has to offer:

  • Wireless MCU – Texas Instruments CC3200 SimpleLink ARM Cortex-M4 MCU @ up to 80 MHz, with up to 256KB RAM, Hardware Crypto Engine, DMA engine
  • Storage – 1 MB serial flash memory
  • Connectivity – 802.11 b/g/n WiFi with on-board inverted-F antenna with RF connector for conducted testing
  • Sensors – Gyroscope, accelerometer, compass, light sensor (OPT3001), humidity sensor (HDC1000), IR temperature sensor (TMP007), and pressure sensor (BMP280)
  • Expansion – 20-pin DevPack SKIN connector
  • Debugging – Debug and JTAG interface for flash programing
  • Misc – 2x buttons, 2x LEDs, reed relay MK24, digital microphone, and a buzzer for user interaction
  • Power – 2x AAA batteries good for up to 3 months (with 1 minute update interval)

So it has plenty of sensors to play with, and rather long battery life for a WiFi evaluation platform. The kit ships with one CC3200 WiFi SensorTag, two AAA batteries, and a getting started guide.

WiFi SensorTag Mobile App – Click to Enlarge

Resources includes hardware design files (schematics, PCB layout, BoM, etc..), iOS and Android apps and source code, IoT Device Monitor for Windows, Code Composer Studio, and cloud-based development tools. Note that there’s no embedded software for the Wi-Fi SensorTag, it is only a a demo platform, while you can modify cloud-based applications, you can’t modify the firmware. If you want an embedded development platform, you’d have to go with CC3200 LaunchPad board. You can still have some fun SensorTag using Android or iOS app, or connecting it to IBM Watson IoT Platform.

Visit SensorTag page for further information.

Socionext SC2A11 Low Power Server Processor Comes with 24 Cortex-A53 Cores, Scales up to 1536 Cores via PCIe

March 15th, 2017 7 comments

Socionext SC2A11 is an 24-core (tetracosa) ARM Cortex-A53 processor designed for low-power server system suitable for edge computing, web server & indexing, cloud computing, and any applications that do not require high single thread peak performance. The company also designed SC2A20 switch SoC that allows up to 64 SC2A11 processors (1536 cores) to communicate over PCI Express using Socionext DDT (Direct Data Transaction).

SC2A11 SoC specifications:

  • Processor – 24x ARM Cortex-A53 MPCore cores @ up to 1GHz, with 32KB/32KB I/D L1 cache, 256 KB L2 cache, and 4MB L3 cache
  • Memory I/F – DDR4-2133Mbps 64-bit + ECC
  • Flash I/F – HSSPI, eMMC
  • PCIe – PCI Express Gen2, Root/Endpoint select, 4 lanes (2 systems/ for SoC IF)
  • LAN – 2x 1Gbps with IPSec Network Offload Engine (wire-speed)
  • Serial I/F – UART, I2C, GPIO

The company did not provide any info about software, but it’s safe to assume it’s running Linux. There’s some code on the Linux mailing list for other Socionext processor,  but nothing for SC2A11. Another interesting use case is to connect several processor element card (PEC) based on SC2A11 using SC2A20 switch SoC, and a few Socionext MB86M30 ASSP via PCIe to encoding raw videos to 4K HEVC / H.265 videos @ 60 fps.

Media Transcoder Server

Socionext was at Linaro Connect Budapest 2017 demonstrating some of those PECs, and Charbax checked them out at the demo event, where they showcase the boards, and explained a little about them, and their relation with Linaro (as a member).

You won’t find than many details on Socionext SC2A11 product page, but at least you can inquire the company if you need more information.

Secure IoT Connectivity with NodeMCU ESP8266 Board, ATECC508A Crypto Chip, Mongoose OS, and AWS IoT

March 7th, 2017 16 comments

There are many examples of Internet of Things projects, but more often than not the implementation is not secure, either because the device is exposed to the Internet with minimum or no security (worst case), or a gateway (hopefully) provides secure connection to the Internet, but the communication between sensor nodes and the gateway in the local network is not secure, due to memory limitation of the nodes, for example it might be challenging to implement security on ESP8266. Mongoose OS is an open source operating system for the Internet of Things developed by Cesanta working on ESP32, ESP8266, STM32, and TI CC3200, and the developers have demonstrated a secure solution with Mongoose OS running on ESP8266 connecting over a TLS connection to AWS IoT (Amazon Web Service IoT) and using TLS credentials stored in Microchip ATECC508A CryptoAuthentication Device.

NodeMCU with ATCRYPTOAUTH-XPRO (Left) or barebone ATECC508A (Right)

The addition of ATECC508 chip either using “XplainedPro extension board for crypto products” (ATCRYPTOAUTH-XPRO) or ATECC508A chip itself, is to avoid storing private TLS credentials in NodeMCU’s flash memory, as anybody with physical access to the device could steal private keys and get access to the cloud. ATECC508A is connected via the I2C interface of the target board.

So I guess the crypto chip truly makes sense if you have sensor nodes on the field with information important enough that third parties may be interested in getting access to your sensor to try read your private key from ESP8266’s flash. It costs less than $1, so you may consider it anyway, although you can still get a secure TLS connection between NodeMCU and AWS IoT without it, but it adds another level of security.

Once you are done with the hardware connections, you’ll need to install Mongoose OS on the board, and follow the MQTT + AWS IoT tutorial to get started. Nothing complicated need to be done to leverage the crypto chip, as the command mgos aws-iot-setup should automatically detect ATECC508A chip and use it.

Netgem SoundBox is a Speaker with Built-in Set-Top Box Features

February 25th, 2017 1 comment

Netgem, a company specializing in Connected TV & Home, has sent a press release about profit growth, and two new “innovations int its smart home roadmap” with voice control with Amazon, and SoundBox, a connected speaker which embeds set-top box technology.


Netgem does not sell directly to consumers, but instead sell its products and solutions to service providers, and they have not provided a great deal of technical details. But we still know the company has improved Netgem Home Platform, a cloud service allowing the deployment and management of multi-screen features, content discoverability, with support for multi-room, multi-source music service through technology from Voxtok.

SoundBox will then offer both video and audio service, and be controlled by voice using Amazon Alexa. The SoundBox will be customized for each Telco to adapt to the needs of local markets.

A few more details may eventually surfaced on Netgem’s SoundBox product’s page. They’ll also demonstrate their solutions at Mobile World Congress 2017.