Posts Tagged ‘cloud’

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

February 25th, 2017 No comments

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.

Amazon EC2 F1 Instances Put Xilinx Virtex Ultrascale+ FPGA Boards into the Cloud

February 22nd, 2017 4 comments

We’ve covered several board and modules based on Xilinx Zynq Ultrascale+ MPSoC such as the AXIOM Board and Trenz TE0808 SoM, both featuring ZU9EG MPSoC, with systems selling for several thousands dollars. But I’ve been informed you may not need to purchase a board to use Virtex UltraScale+ FPGAs, which are different from Zynq UltraScale+ since they lack the ARM CPU & GPU and normally feature a more capable FPGA, as last November, Amazon launched a developer preview of F1 instances giving access to this type of hardware from their cloud.

That’s the FPGA hardware you’ll be able to access from one F1 instance:

  • Xilinx UltraScale+ VU9P manufactured using a 16 nm process.
  • 64 GB of ECC-protected memory on a 288-bit wide bus (four DDR4 channels).
  • Dedicated PCIe x16 interface to the CPU.
  • Approximately 2.5 million logic elements.
  • Approximately 6,800 Digital Signal Processing (DSP) engines.
  • Virtual JTAG interface for debugging.

I understand those FPGA boards are PCIe card plugged into servers with an Intel Broadwell E5 2686 v4 processor, up to 976 GB of memory, and up to 4 TB of NVMe SSD storage. This is obviously only usable if the FPGA do not need extra hardware connected to the board.

You can choose from two instance types as described in the table below.

Instance Type FPGA Cards vCPUs Instance Memory (GiB) SSD Storage (GB) Enhanced Networking EBS Optimized
f1.2xlarge 1 8 122 480 Yes Yes
f1.16xlarge 8 64 976 4 x 960 Yes Yes

Amazon provides an hardware development kit or FPGA Developer AMI (Amazon Instance), where developers write and debug FPGA code on their own hardware/instance, before creating an “Amazon FPGA image” (AFI), and attaching it to an F1 instance as describe in the first diagram of this post. If you’re a customer who needs a specific “acceleration routine”, you don’t even need the FPGA development kit, as you can purchase the AFI on the market place, and deploy it on F1 instances.

If you are interested in Amazon solution and want to know more and get started, Amazon organized a one hour webinar last December.

Hardware-accelerated computing leveraging FPGAs is especially used for genomics research, financial analytics, real time video processing, big data search and analytics, and security applications.

AFAIK, Amazon has still not officially launched F1 instances commercially, at which point you’ll be able to pay by the hour for the use of the instance, but you can still sign up for the F1 preview.

Thanks to Jon for the tip.

SigFox Launches Spot’it Low Cost GPS-Free IoT Geolocation Service

February 17th, 2017 2 comments

Asset tracking was traditionally done using a combination of cellular and GPS technology, and LPWAN standards like LoRa & Sigfox promised to lower the cost of communication and hardware while still relying on GPS technology, but Sigfox has just announced Spot’it geolocation service, which will get rid of GPS all together, and instead use radio signal strength analysis and deep learning techniques in order to provide location information both outdoors and indoors.

Key benefits listed by the company include:

  • Lowest-cost IoT location service – Spot’it does not require any additional hardware or software upgrades, and the device does not have to transmit more messages, meaning there is no impact on the solution operating cost for customers.
  • Low energy – Spot’it does not rely on energy intensive GPS technology, nor require additional processing or any more energy than what Sigfox-enabled devices already consume.
  • Enabled through a planetary network – Spot’it is embedded in Sigfox’s global network footprint and represents the first global IoT geolocation offer. This allows the simplification of global supply chain management: once a device is registered into the Sigfox Cloud, the geolocation service is available in all territories where the network is present.
  • Unlike traditional GPS-tracking, Sigfox Spot’it works both indoors and outdoors.

For this to work, you’ll need to be covered by Sigfox’s network in one of the 31 countries currently covered, so coverage is not exactly “global” yet. The service does not need any new hardware, and you can use existing Sigfox modules, which you can get for as low as $2 (in quantities), and track them at low cost. Sigfox has not provided that much details on how they are doing it, but they still explained Spot’it was the first big data based Sigfox server, which relies on their Cloud service analyzing signal strength to determine the location.

So there are still unanswered questions, such as accuracy of the system, and how much the company charges for the geolocation service on top of the network access fee.

Categories: Uncategorized Tags: cloud, gps, IoT, lpwan, sigfox

Android Things OS for the Internet of Things Supports Raspberry Pi 3, Intel Edison, and NXP Pico Boards

December 14th, 2016 6 comments

Google introduced Project Brillo a little over a year ago, an operating system based on Android, but with a smaller footprint optimized for Internet of Things applications. Brillo has now just become Android Things OS, with Google releasing a developer preview of Android Things working on Raspberry Pi 3, Intel Edison, and NXP Pico boards.


Android Things Software Architecture

The company has also updated the Weave platform to simplify connection of all types of devices to the cloud, and interaction with services like the Google Assistant. The Weave Device SDK currently supports schemas for light bulbs, smart plugs, switches, and thermostats, with more type of device supported in the future, as well as a mobile app API for both Android and iOS.

Using an Android based OS instead of a pure Linux OS should make it easier for Android app developers to create smart devices thanks to the use of familiar Android APIs and Google Services. The workflow is pretty similar to creating mobile apps, with development being done within Android Studio and you’d connect to the target board through adb. One difference is the the Things Support library that provides a peripheral I/O API for interfaces such as GPIOs, PWM, I2C, SPI and UART as well as a user driver API  used to allow apps to inject hardware events in to the Android framework.


NXP Pico Board with TechNexion PICO-i.MX6UL SoM

If you’d like to get started, get one of the three supported boards, and get the Android Things developer preview. You may also been interested in Weave and Google Cloud platform sites to respectively control capable device such as Philips Hue and Samsung SmartThings, and get your data into the cloud. Some sample code is also available on AndroidThings’ github account, and you may want to subscribe to  Google’s IoT Developers Community on Google+ for support and discussions. NXP also has a higher end Android IoT platform equipped with more I/Os and ports called VVDN Technologies Argon i.MX6UL development board.

How to Use Sonoff POW ESP8266 WiFi Power Switch with MQTT and ThingSpeak

December 11th, 2016 11 comments

ITEAD Studio’s Sonoff is a family of cheap home automation products based on ESP8266 WiSoC, and I’ve already tested Sonoff TH16 wireless switch with a humidity and temperature sensor using the stock firmware and eWelink app for Android or iOS. It works, but up to recently it required a registration to a cloud service (the company will now allow use from the local network), and the source code is closed. So for the second device under review, namely Sonoff POW wireless switch with a power consumption monitor, I decided to install ESPurna firmware working on ESP8266 Sonoff devices and NodeMCU, as it’s open source, supports Sonoff POW natively, includes a web interface to control the device from the LAN, and includes an MQTT client.

MQTT (Message Queuing Telemetry Transport) is a lightweight publish/subscribe messaging protocol used to control IoT sensors and devices, and it’s a popular method to gather data from client to a MQTT broker to push the data to the cloud or a local database.


So typically, you’d have a bunch of sensor nodes (like Sonoff devices) communicating over MQTT to an MQTT Broker in your local network, which could be an OpenWrt router or a Linux development board like a Raspberry Pi, which in turns gets the data the the cloud to services like AWS IoT, Xively, or ThingSpeak. It’s also possible to use Cloud services to control MQTT devices remotely through the MQTT broker.

I eventually plan to use NanoPi NEO board to run both MQTT and ThingSpeak locally (not connected to the cloud) in order to monitor the power consumption of my small office, but since I’m all new to this, I’ve started experimenting by connecting a 30W light to Sonoff POW, and use a desktop computer running Ubuntu 16.04 for MQTT and ThingSpeak.


Click to Enlarge

Click to Enlarge

Since I’ve already installed ESPurna firmware to the device, I disconnected the USB to serial board (important since Sonoff POW board has a hot ground), and connected it to the mains (220V in my location). That means we already have an MQTT client which first I had to configure.

Click to Enlarge

Click to Enlarge

Since it was the first time I connected a load to the device, I went to ESPurna’s status menu to check power usage was reported, and my 30 Watts light bulb was drawing 27 Watts. Close enough. I changed the hostname to sonoff-office, and setup two SSID in order to connect Sonoff POW to my local network in client mode, instead of using it in Access Point mode by default. You’ll need to tap on Update each time you modify the settings. Since the SSID must be entered manually, please note that SSID are case sensitive, e.g. CNX-SOFTWARE is different from cnx-software.

Click to Enlarge

Click to Enlarge

I wanted to calibrate the power using the 30W light bulb, so I entered 30W in AC RMS Active Power field, and tapped on Update, but the web interface reported “no changes”. I’m not sure how to use that part. Finally the most important part for this tutorial is to set the MQTT settings with MQTT IP address, and leaving other fields unchanged. However, you can change MQTT Topic field for example replacing /test/switch/{identifier} by /myiotstuff/{identifier}.

Now that our MQTT client is configured, I need to install mosquitto MQTT broker in Ubuntu:

mosquitto-clients is not really needed, but I’ll use it to test the MQTT broker a little later. Once you installed it, the MQTT Broker should already run automatically.

The last line of the log above shows a client connection from Sonoff POW. Now, we need to check the topic, and since ESPurna documentation is still work in progress, you could either check out the source code, or IMHO more fun, capture MQTT packet with tcpdump or Wireshark as I’ve done below.

Wireshark MQTT Capture - Click to Enlarge

Wireshark MQTT Capture – Click to Enlarge

Here we can see that Sonoff POW will send a Publich Message with the power level using the topic “/test/switch/sonoff-office/power29”.  “/test/switch” is the string we’ve defined in the web interface, “sonoff-office” the hostname we’ve given to Sonoff Pow, and “power29” indicates 29 Watts of power is currently used.

We can also start a client in Ubuntu 16.04 terminal window to check more MQTT topics with # wildcard for sonoff-office host:

We can use MQTT to get the IP address, firmware and file system version, hearbeat message, power use, and relay status (on or off).

It’s all good, but now we need to do something to draw the data, and possibly analyze it. I selected ThingSpeak for this purpose since it can be installed in the local network, or through their service in the cloud. By the end of my testing, I’ve noticed ThingSpeak has a new MQTT API, meaning it should be possible to connect your MQTT broker directly to it, but for this guide I use mqspeak instead as a bridge between MQTT and ThingSpeak. It may still be useful, as the open source version of ThingSpeak is not updated anymore, and lacks the MQTT API.

You’ll need Python 3 and pip3 to install mqspeak:

Once it’s done, we’ll need to create a config files as explained on mqspeak’s github repo, and I created /etc/mqspeak.conf with the following content:

Brokers are used to configure MQTT broker IP address and port, as well as the topic(s) to subscribe to, while Channels take care of ThingSpeak configuration with the channel’s Id and write API key, update rate in seconds (15s minimum), update type (see github for details), and fields defined in your ThingSpeak’s channel(s), which will create later on. I wrote one broker for the power consumption topic, and other for the relay status. However, I eventually ignored the relay status, as it’s not updated often enough and cause ThingSpeak’s channel to only be updated when the relay changes status, even if there are power updates in the meantime. A workaround is to use two different channels for ThingSpeak.

mqspeak connects directly to, so if you are using ThingSpeak cloud services, the next step is to register an account and setup one or more channels.

Extra Instructions for a local installation of ThingSpeak

However, if you’ve installed ThingSpeak in Ubuntu 16.04 or other Linux operating systems locally or on your own server, you’ll need to change the server in the source code, and reinstall mqspeak.

  1. Get the source code:
  2. Modify mqspeak/ to replace using HTTPS with localhost (or other IP address/URL where you’ve installed ThingSpeak) with HTTP:
  3. Install mqspeak

An improvement would be to install a signed SSL certificate, like the one offered by LetsEncrypt and configure the rails server to use https instead. I have not setup ThingSpeak server to start automatically yet, so I have to start it manually for now:

End of instructions specific to local installation.

The instructions specific for the local installation of ThingSpeak are now done, and all instructions below are valid for both the local installation and cloud service. Now open a web browser, go ThingSpeak (cloud or local), and click on “Get Started Now” in order to register an account.

Click to Enlarge

Click to Enlarge

Once it is done, login and click on “New Channel”.

Click to Enlarge

Click to Enlarge

Give it a name, a description, create fields as needed, for example power-consumption and power-status, and click on Save Channel.  Update /etc/mqspeak.conf accordingly with the fields’ name, and channel Id.

thingspeak-api-keyNow select API Keys tab to copy and paste the write API key into mqspeak.conf.

Now we can start mqspeak:

ESPurna firmware will send a power update every 60 seconds (this can be changed in code/src/pow.ino), so you’ll see a new message pop-up every 60 seconds with your channels Id and write API key. I’ve let it run for about one hour, and got the follow chart in ThingSpeak after turning on and off the lights from time to time.
thingspeak-power-consumptionThat’s pretty cool, so it only shows the current power in watt, and we’d probably want to get power consumption in kW/h per day, week and month at some time, and I have yet to study how to do that, Exporting the data to excel would be a workaround if this can not be handled in ThingSpeak. (but not the open source version) offers some Matlab processing of the data, so that’d be another options.

The next steps would be to install MQTT and ThingSpeak in NanoPi NEO board, enable HTTPS in ThingSpeak, autostart rails server and mqspeak at boot time, make ESPurna firmware publish the “Power” topic more often than every 6 second, and find some way to generate useful kW/h consumption charts from the data stored in ThingSpeak within ThingSpeak, or but exporting the data.

Siemens SIMATIC IOT2000 UL Approved Educational & Industrial IoT Gateways are Powered by Intel Quark Processor

November 15th, 2016 2 comments

Siemens has recently released SIMATIC IOT2000 series IoT gateways based on Intel Quark X1000/X1020 processor also used in Intel Galileo Gen 2 board with both IOT2020 educational version, and IOT2040 industrial version featuring UL-approval, Arduino headers, and a mini PCIe expansion socket.

simatic-iot2000-industrial-iot-gatewaySIMATIC IOT2040 specifications:

  • SoC – Intel Quark X1020 32-bit processor @ up to 400 MHz with 16KB cache (2.2W TDP)
  • System Memory – 1 GB RAM
  • Storage – micro SD slot
  • Connectivity – 2x Ethernet ports
  • Serial – 2x RS232/485 interfaces
  • USB – 1x USB 2.0 port, 1x micro USB device port
  • Expansion – Arduino UNO compatible headers, mini PCIe socket
  • Misc – Battery-backed RTC
  • Power Supply – 9 to 36V DC wide-range power supply
  • Dimensions – 144x90x54 mm
  • Weight – About 200 grams
  • Temperature Range – 0 °C to up to +50 °C
  • Certificates – CE, UL, FCC, KCC, RCM

The device support wall-mount and DIN rail mounting. The company has not exactly made it easy to find specifications, but SIMATIC IOT2020 is said to feature Quark X1000 processor with 512MB RAM and a single Ethernet port. The gateway runs Linux built with Yocto, and supports both Intel System Studio IoT Edition and Arduino IDE tools, and MindSphere Siemens Cloud infrastructure can also be used. Some people got hold of early sample, and showcased how to use the Arduino IDE with the hardware.

The forums may be a good place to start to get more information, and you’ll find a bunch of documents on that page.

Siemens IOT2020 gateways are sold through RS Components website, and in the US this redirects to Allied Elec where IoT2020 educational gateway is sold for $120, and IoT2040 industrial gateway for $280. You may also find a few more details on Siemens IOT2000 series product page.

Thanks to Jake for the tip.

Exilong RF & WiFi Irrigation System Automatically Takes Care of Your Garden Watering (Crowdfunding)

October 11th, 2016 No comments

I find it fun to spend time watering the flowers and grass in my garden, but if you’d rather do it automatically then Tevatronic Exilong might be for you as the irrigation system controls up to 4 valves, triggers watering based on RF water sensing sensors via a gateway connected to the cloud through your wireless router.

exilong-irrigation-gatewayThe kit gateway takes care of RF communication with sensors, WiFi connectivity to the cloud server, and turn on and off up to four 24V DC water valve part of your existing installation. It can be configured by iOS or Android mobile app, or your web browser.

The other part of the kit are the water pressure sensors that you need to insert into the soil of your garden in order to monitor trees, bushes, and/or flowers. The sensors are using RF (433/915 MHz) communication, send data back to the gateway every minute, and are powered by two AAA batteries that are supposed to last about 3 years.

exilong-water-pressure-sensingConfiguration involves scanning the QR core on the kit package, configuring plant type (tree/bush/flower), water quantity (low, medium, high), and optionally time period when irrigation is allowed, for each of the configured sensors. If everything goes well, it should be a one time setup, and you’d never have to change the settings, unless maybe you grow different type of plants later on, or want to monitor the status of the valves and/or sensors in the app.

The way the sensor work is quite interesting. I had see cheap soil sensor often used with Arduino projects that you simply insert in the soil and connect to your board, but Tevatronic first product was for the professional agriculture business, and they adapted those sensors to the home market. They include a water container and ceramic tip that will only let water gets out when some pressure is applied. The plant roots are attracted to the moisture and grow around the ceramic tip, and the cloud based algorithm uses the resulting pressure data from the sensors among other parameters to determine whether to irrigate the plants. I’m not sure how it works with plants with short roots, or when you’ve just planted seeds or young plants in the garden. Anyway, the whole concept and how to use the kit is explained with both home (Exiling) and agricultural version of the sensor and gateways in the embedded video.

The way sensor work also mean that if you live in a place where the temperature drops below 0 C, you’d have to remove the sensors before freezing, and only place then back after winter once temperature goes back above 0 C. Beside saving your time, Exilong promises to save on water usage and improve yield, just like what they achieved in for bigger farms with up to 75% less water (and fertilizers) used, and up to 20% yield improvement.

Tevatronic launched their irrigation system for the home on Kickstarter a few days ago, and they’ve already raised over half of their $50,000 funding target. Pledges start at $249 for “Exilong Starter house backyard Kit” with the gateway and 2 sensors, and if you have a very large garden, goes up to $2,400 for “Exilong Castle Kit”  with 4 Exilong gateways and 24 sensors. You’d obviously still need to source the pipes, 24V DC water valves, and sprinkler systems separately. Shipping is included in the price, and delivery is scheduled for March 2017.

Silicon Labs Introduces $29 Thunderboard React Bluetooth 4.2 LE IoT Board and $69 Derby Car Kit

October 3rd, 2016 No comments

Earlier this summer, Silicon labs launched ThunderBoard React, a Bluetooth 4.2 LE compliant board with sensors and expansion headers for IoT applications based on the company’s BGM111 Bluetooth Smart Module, and to make it much more fun to work with the company has released a Derby Car kit controlled by the board.

thunderboard-reactThunderBoard React specifications:

  • Bluetooth Module – BGM111 Bluetooth 4.2 compliant module with integrated Tx and Rx antenna, and Cortex M4 MCU @ 38.4 MHz with 32 kB RAM and 256 kB Flash
  • Extra Storage – Footprint for 8Mb external flash storage
  • Sensors – Si7021 relative humidity and temperature, Si1133 UV index and ambient light sensor, Invensense MPU-6500 6-axis gyro/accelerometer, Si7201 hall effect position sensor
  • Expansion – 12 breakout pina to connect to BGM111 GPIOs
  • Debugging – 10-pin mini Simplicity debug connector
  • Misc – 2x momentary buttons, 2x LEDs, power selection switch
  • Power Supply – CR2032 coin cell battery slot or external power (Vext)
  • Dimensions – 44 x 25 mm
Click to Enlarge

Thunderboard React Block Diagram – Click to Enlarge

The firmware for the board can be found in Silicon Labs Bluetooth Smart SDK as a sample application, and developed using Simplicity Studio v3 and IAR Embedded Workbench for ARM v7.30. The company also provides Thunderboard Android and iOS apps with source code in order to control the board and monitor the sensors’ data. Data can optionally be synchronized to Thundercloud platform based on Firebase by Google, again with source code available on Github.

thunderboard-appBeside just getting the board to play with BLE, sensors, apps, and the cloud platform,  you could also buy the Derby Car kit. The wheels are not driven by any motors, so the car can mostly be seen as a case for the board, and used for motion sensing while the car is moving.

You’ll find more details on Thunderboard React product page, as well as the Quick Start Guide where you’ll find link to buy the board for $29, and the complete car kit (including the board) for $59.