Intel and Arduino LLC have updated the Zephyr RTOS core of its Curie/Quark driven, BLE-ready Arduino 101 board, featuring a faster compiler.
Last October, Intel and Arduino LLC announced their jointly developed Arduino 101, an Arduino Uno compatible board known as the Genuino 101 outside the U.S. Intel shipped it in January, and on April 21, released a fully open source version of the Zephyr-based RTOS that runs on the x86-compatible Intel Quark SE core inside the Intel Curie module, thereby making the Arduino 101 much more accessible. Now Intel and Arduino LLC have announced a faster new 1.0.6 version of the core’s firmware that improves communication between the Curie and the Arduino 101’s 32-bit RISC ARC core, which runs Arduino sketches.
Arduino 101 (aka Genuino 101)
With the 1.0.6 release, the Arduino 101 is “reaching its full potential, with not only better code generation but unlocking useful features to make your sketches even more interactive as well,” says the Arduino LLC blog announcement on the Arduino.cc website. The key new feature is a faster GCC compiler. In the words of Arduino LLC forum moderator “facchinm” the toolchain “is now completely targeted to Curie devices (and the specific Intel extensions to ARC core), bringing optimizations and SPEEEEEEED to all your sketches for free.”
Arduino 101’s v1.0.6 firmware update shown on Arduino IDE Board Manager
(click image to enlarge)
The update supports the Genuino 101, as well as the identical Arduino 101, both of which improved upon the Uno with a faster processor, Bluetooth Low Energy (BLE), and a 6-axis accelerometer/gyro IMU (see farther below). “You can easily upgrade the core using the Arduino IDE’s Board Manager, while Arduino Create users will be automatically updated,” says Arduino LLC.
According to Arduino LLC, major new features in the Arduino 101 1.0.6 release include:
- The GCC compiler has been updated to support hardware extensions to the ARC EM core in the Intel Curie module. This provides significant improvements in floating point operations, bit shifting, and other operations to enhance Sketch performance.
- The Arduino/Genuino 101 platform offers 2MB flash storage onboard, which is now enabled for user sketches. More specifically, according to facchinm, “the SPI library has been expanded to support the second SPI port routed to the onboard 2MB flash chip, so you can start using it for storage of flash-intensive sketches.”
- An experimental driver has been implemented to enable the I2S interface via the CurieI2S library. Connecting the I2S bus to an external DAC allows users to play high-quality music (HiFi).
- Other improvements and bug fixes, including:
- New motion sensor sample sketches, like MotionDetection, for exploiting the IMU
- New BLE examples for the BLE peripheral library
- Correct motion detection setting implemented for IMU
- Library CurieTimerOne APIs now compatible with the TimerOne library
The Arduino 101 and Genuino 101 were built by Intel primarily as development boards for its Intel Curie module and the Curie’s Quark SE chip.
A handful of Intel Curie modules
The Arduino 101 expands upon the Curie’s built-in BLE and 6-axis accelerometer and gyroscope with full Arduino IDE and shield compatibility. The Curie also ships with 80kB of SRAM, 24kB of which is available for Arduino sketches, and 384kB of flash, 196kB of which is available for sketches.
Two views of the Arduino 101 (aka Genuino 101)
(click images to enlarge)
The 68.6 x 53.4mm board shares the same footprint, pinout, and single USB Type B port as the Arduino Leonardo. The SBC ships with 14x digital I/O pins, four of which can be used as PWM outputs, as well as 6x analog inputs, an ICSP header with SPI signals, and I2C dedicated pins. The board includes a power jack with 7-12V input, and has 3.3V operating and I/O voltage, with all pins protected against 5V overvoltage.
Intel Arduino 101 block diagram
(click image to enlarge)
Intel has been collaborating with Arduino for several years, and since last year’s fork of the Arduino project, has been working with Arduino LLC. The chipmaker has offered various levels of Arduino compatibility to its Galileo Gen 2 and Intel Edison boards, for example. Schematics for the Arduino 101 are available for free download from Arduino’s website.
Neither Intel nor Arduino LLC have given a name for the embedded “RTOS” running on the Intel Quark SE inside the Intel Curie module. However, Intel’s product page says the Arduino 101 runs the new open source, IoT-oriented Zephyr RTOS hosted by the Linux Foundation.
Zephyr Project functions and components
(click images to enlarge)
Zephyr is based on Viper OS, a lightweight spin-down of the commercial VxWorks RTOS developed by Intel software subsidiary Wind River. Viper OS also formed the basis of the commercial Wind River Rocket, which adds extensions that support the Wind River Helix Cloud platform. Wind River Rocket is the RTOS sibling to the lightweight, similarly Helix-enabled, Wind River Pulsar Linux, based on Yocto Project code.
In February, when Intel announced the Quark D2000 chip and Quark SE, both of which added x86-compatibility compared to the Pentium compatibility of the earlier Quark X1000, Intel said the two chips would run both Wind River Rocket and Zephyr. It’s unclear why Arduino LLC is avoiding the Zephyr name, but perhaps it is due to Arduino extensions that differentiate it. (More discussion on Zephyr/Viper issue on Arduino.cc can be found in this April Arduino-cc forum thread.)
Intel is an important hardware partner for Arduino LLC, which despite having drawn the lion’s share of support from the Arduino maker community, is hampered by legal issues with Arduino Srl, which limits the use of the Arduino brand name only in Arduino LLC boards sold in the U.S. In April, Arduino LLC announced an IoT focused, WiFi-enabled MKR1000 board along with a new Arduino Create development environment. Yet Arduino Srl has announced many more boards this year, including the Arduino Star Otto, a joint development with STMicroelectronics, as well as a Linux-enabled Arduino Industrial 101, which has no relationship with Intel.
The recent 1.0.6 update to the Arduino 101 core firmware is available for free download under open source license. More information may be found in the Arduino LLC announcement and Github changelog. The Arduino 101 and Genuino 101 boards are widely available at prices of $30 and less, and the former is currently being offered for $20 at MicroCenter. More information may be found at Intel’s Arduino 101 product page