Archive

Posts Tagged ‘IoT’

Arduino Cinque Combines SiFive RISC-V Freedom E310 MCU with ESP32 WiFi & Bluetooth SoC

May 22nd, 2017 5 comments

SiFive introduced the first Arduino compatible board based on RISC-V processor late last year with HiFive1 development board powered by Freedom E310 MCU, but  the company has been working with Arduino directly on Arduino Cinque board equipped with SiFive Freedom E310 processor, ESP32 for WiFi and Bluetooth, and an STM32 ARM MCU to handle programming.

Click to Enlarge

Few other technical details have been provided for the new board, but since it looks so similar to HiFive1, I’ve come with up with preliminary/tentative Arduino Cinque specifications:

  • MCU – SiFive Freedom E310 (FE310) 32-bit RV32IMAC processor @ up to 320+ MHz (1.61 DMIPS/MHz)
  • WiSoC – Espressif ESP32 for WiFi and Bluetooth 4.2 LE
  • Storage – 32-Mbit SPI flash
  • I/Os
    • 19x Digital I/O Pins
    • 19x external interrupt pins
    • 1x external wakeup pin
    • 9x PWM pins
    • 1/3 SPI Controllers/HW CS Pins
    • I/O Voltages –  3.3V or 5V supported
  • USB – 1x micro USB port for power, programming and debugging
  • Misc – 6-pin ICSP header, 2x buttons
  • Power Supply – 5 V via USB or 7 to 12V via DC Jack; Operating Voltage: 3.3 V and 1.8 V
  • Dimensions – 68 mm x 51 mm

Image Source: Olof Johansson

The board will obviously be programmable with the Arduino IDE, something that’s already possible on HiFive5 possibly with limitations since the platform is still new. Freedom E310 SoC RTL source code is also available via the Freedom SDK.

There’s no availability nor price information, but considering HiFive1 board is now sold for $59, and Arduino Cinque may cost about the same or a little more once it is launched since it comes with an extra ESP32 chip, but a smaller SPI flash. Hopefully, it will take less time than the one year gap experienced between the announcement and the release of Arduino Due.

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.

Samsung Unveils Tizen 4.0 with .NET Framework, Low End IoT Devices Support

May 17th, 2017 No comments

We’ve already seen the announcement of Samsung ARTIK 053 WiFi module with Tizen RT this morning, but it appears that Tizen RT (Real Time) is part of a Tizen 4.0 that will add support to IoT devices, as well as introduce changes from the developers’ perspective.

Samsung Electronics talked a bit more about Tizen Next (Tizen 4.0) at the Tizen Developer Conference (TDC) 2017 taking in place on May 16-17 in San Francisco. Few details are provided in the press released, but we could learn that “the Tizen 4.0 platform has been extended to Tizen RT (Real-Time) to involve high-end products such as TVs and mobile devices as well as low-end products such as thermostats, scales, bulbs, and more”. Tizen RT page explains that the real-time operating system is designed to run on Cortex M/R MCU with less than 2 MB RAM, less than 16 MB flash, and consists of a lightweight RTOS called TinyAra (based on NuttX), IoT protocols (IoTivity and LWM2M), and JerryScript/IoT.js.

Tizen 4.0 will also make it easy for developers used to Microsoft Visual studio and C# language, since the Microsoft .NET framework and Xamarin UI framework has been introduced into Tizen. The video animation below explains some of the benefits of Tizen 4.0 for developers and manufacturers.

Samsung also demonstrated the latest Samsung Z4 smartphone (still based on Tizen 3.0), and launched the Tizen Mobile Incentive Program for global application developers to offer a one million dollar prize every month when the app is sold and placed in the Top 100 on the Tizen Store from February to October 2017.

According to Tizen Roadmap, Tizen 4.0 M1 (Milestone 1) will be released next month with support for .NET framework 2.0 and Xamarin 2.5 with x86 emulation, but you’ll need to wait for Tizen M2 release in October to get support for ARM32 native .NET support, and other features getting out of preview such as the package manager, CLI, and the profiler. However, there have been three preview releases before that, you can play with Tizen .NET developer preview 3.

Categories: Linux, Tizen, Video Tags: dotnet, IoT, rtos, tizen, xamarin

Samsung ARTIK 053 WiFi IoT Module Runs Tizen RT on an ARM Cortex R4 MCU

May 17th, 2017 2 comments

Samsung has just introduced the latest member of its Artik family at IoT World 2017. ARTIK 053 is a WiFi module powered by an ARM Cortex R4 wireless micro-controller @ 320 MHz with hardware based security, GPIO, SPI, and I2C ports, and running Tizen RT real-time operating system.

Artik 053 module specifications:

  • MCU – 32-bit ARM Cortex R4 @ 320MHz with 1280 KB RAM for general use, 128 KB RAM for global IPC data (likely Samsung Exynos i T200, or a variant without an ARM Cortex M0+ core)
  • Storage – 8 MB flash
  • Connectivity – 802.11 b/g/n WiFi @ 2.4 GHz
  • Expansion – 29 dedicated GPIO ports, 2x SPI, 4x UART (2-pin), 4x ADC, 1x JTAG, 2x I2C
  • Security – AES/DES/TDES, SHA-1/SHA-2, PKA (Public Key Accelerator), PRNG/DTRNG (Random Number Generators), Secure key storage, Physical Unclonable Function (PUF)
  • Power Supply – 5 to 12VDC input voltage
  • Dimensions – 40 x 15 x 3 mm
  • Certifications – FCC (U.S), IC (Canada), CE (EU), KC (Korea), SRRC (China)

The module runs Tizen RT operating system with WiFi and network middleware, support for LWM2M (Lightweight Machine to Machine) for device management, IoTivity, and JerryScript/IoT.js.

Tizen RT Block Diagram

You can develop on ARTIK 053 using ARTIK IDE, as well as open source tools like Eclipse Classic Desktop (CDT), gcc, and OpenOCD. A “Developer Reference Mobile App” working with Samsung ARTIK Cloud is also provided, and Samsung collaborated with VMWare to support Little IoT Agent (Liota) open source software development kit (SDK) developed by VMware on ARTIK 053.

ARTIK 053 starter kit – pictured below – will help you evaluation the module, and get started as soon as possible.

Artik 053 Module on Development Board

The ARTIK starter board includes Arduino-form factor interface headers, expanded GPIO headers with exposed SPI and UARTs, on-board reset and Arduino reset buttons, 2x test buttons and 2x LEDs, a micro USB connector for power and programming, a JTAG header (1.27mm pitch), and a power barrel.

ARTIK 053 sells for as low as $6.65 for 300 unit orders on Digikey, while the starter kit goes for $35 on either Mouser or Digikey. You’ll more more details, including software and hardware documentation, on Artik.io website.

The Future of Cellular IoT Explained – LTE M1, LTE NB-IoT, eSIM, and Battery Life Hype

May 17th, 2017 4 comments

Telecom companies also want their share of the IoT business, but with 2G to 4G cellular technology often being too power hungry and/or expensive for this market, 2G on-going – or upcoming – sunset depending on your location, LTE Cat M1 and LTE Cat NB1 (aka NB-IoT) standards have been developed, and used in products like Pycom FiPy board, and SARA-R4 and SARA-M2 modules. If you want to have an overview learn about the new LTE IoT standards and the future of cellular IoT, Particle has published a useful presentation – embedded below – dealing with both, as well as eSIM (Embedded SIM), 2G sunset, and battery life expectations.

The main takeaways from my reading of the presentation:

  • LTE NB1 is better suited for low power stationary sensors transmitting a small amount of data a few times a day. Requires new hardware and software
  • LTE M1 can be used for actuators and sensors that needs frequent updates. Requires software update to existing base stations.
  • eSIM are becoming more and more common, and a “blank eSIM” can be activated anywhere in the world by a local mobile network operator. The many LTE bands across operators and countries however complicates things.
  • Consider LTE modules with 3G fallback in markets where LTE is just starting
  • The proclaimed 10 to 15 year battery life is mostly hype with a very large battery and one daily update, with real use cases likely to last 12 to 18 months on a battery charge.

If you are interested in the subject, you may want to read through Particle’s 39-page presentation.

Categories: Hardware Tags: cellular, IoT, lpwan, lte, particle, sensor

u-blox SARA-S200 RPMA Module Supports the Machine Network

May 16th, 2017 3 comments

RPMA is one of the many LPWAN IoT communication standards, but it does not get as much press coverage as SigFox or LoRa because it targets larger scale deployments, and is not really accessible to individuals. It’s still used by companies in many countries, and u-blox has just released SARA-S200 RPMA module that will also work with the Machine Network, also relying on RPMA and managed by Ingenu.

u-blox SARA-S200 module specifications:

  • Connectivity
    • Wireless Frequency –  2.4 GHz ISM
    • Radio Spectrum – 80 MHz
    • Occupied Bandwidth – 1 MHz
    • Modulation – Dynamic – Direct Sequence Spread Spectrum (D-DSSS)
    • Multiple Access Scheme – Random Phase Multiple Access (RPMA)
    • Transmit Power – +22 dBm
    • Receive Sensitivity – -133 dBm
    • Data Throughput – 100 kB per day
    • Link budget – 176 dB (FCC/IC)
  • Host Interface – 7-wire SPI that includes handshaking for deep sleep modes
  • Power Supply – 3.2 V to 3.4 V (typ. 3.3 V); VCC BAT: 2.2V to 5.5 V
  • Power Consumption – Off: 0.1 μA (typ.); deep sleep mode: 19 μA (typ.); idle mode: 22 mA (typ.); RX: 107 mA (typ.); TX: 370 mA (typ.)
  • Dimensions – 26.0x 16.0 x 2.4 mm
  • Weight – 3 grams
  • Package – 96-pin LGA (Land Grid Array)
  • Operating temperature range – -40 to +85 °C
  • Certifications – FCC, ISED (formerly known as IC), RED (formerly known as R&TTE), and additional countries as deployed (pending)

The module is an update to the first RPMA module (NANO-S100), with cost and size optimization (65% smaller) that makes it suitable for application in the Smart Meter, Smart Building, Gas & Oil, Asset/Personnel Tracking and Agricultural industries. The module supports FOTA (FW updated over the air) with the ability to also update the application firmware. A development kit for SARA-S200 is also available, but I could not find any public information about it.

Pricing and availability have not been disclosed. For more information, you may visit u-blox SARA-S200 product page, or go to nternet of Things World at the Santa Clara Convention Center, CA (May 16‑18 2017), where u‑blox and Ingenu will showcase the SARA‑S200 module.

Categories: Hardware Tags: devkit, IoT, lpwan, m2m, rpma, ublox

MCUBoot is an Open Source Secure Bootloader for IoT / MCUs

May 15th, 2017 5 comments

Bootloaders takes care of the initial boot sequence on the hardware before the operating system takes over. For example, U-boot is often used in embedded systems as the bootloader before starting the main operating systems such as Linux or FreeBSD. MCUBoot is also a bootloader, but it targets the IoT, here referring to MCU based systems with limited memory and storage capacity, and is born out of work on Apache Mynewt OS, when developers decided to develop the bootloader separately from the operating system.

MCUBoot is designed to run on small & low cost systems running on MCU with ~512 KB flash, ~256 KB RAM, and currently supports Zephyr OS and Mynewt, with support for other RTOS also considered. Due to constraint the bootloader uses minimal features with a flash driver, a single thread, and crypto services. The project also aims at solving security and field firmware updates. To address the latter, the flash is partitioned in four sections, one for the bootloader, one “slot” with the primary image, a second slot for the firmware upgrade, and a Scratch partition to swap slots when an upgrade is needed. An image trailer at the end of each slot indicates the state of the slot.

You’ll find the source code in MCUBoot repository in Github, and you may want to watch the presentation at Linaro Connect Budapest 2017 for more details.