Intel® Curie™ Open Developer Kit (ODK)

The Intel® Curie™ ODK includes the software, tools and documentation for developers to build boards based on the Intel® Curie™ module and turn them into products.

The aim of the Intel® Curie™ ODK is to help users develop their own boards starting with Arduino 101* (branded Genuino 101* in some countries) or tinyTILE* boards, and later on using the open source schematics and board files, and via command line access the open source product firmware, the C++ class libraries, the entire hardware in the Intel® Curie™ module and other open sourced third-party code.

Open Software Developer Kit

The open software developer kit includes all the tools needed to develop the software for Curie-based devices: Arduino* core class libraries from the Arduino 101* (branded Genuino 101* in some countries) product, optimized compilers for ARC* and IA32 (Intel® Quark™ SE microcontroller), debug GDB with JTAG OpenOCD, Developer Flashpack, and bin utilities.

The open software developer kit targets experienced developers familiar with embedded systems and C++ programming. Three firmware source trees are available for developers, with their respective compilers and debuggers:

  • The A Tree provides access to Arduino 101* firmware and Arduino core libraries and tools. The A tree is available at https://github.com/01org/CODK-A
  • The M tree is a mix of the A and Z trees. The firmware based on Zephyr* runs on the Intel® Quark™ processor core, and the user code with Arduino* class libraries runs on the ARC* EM core. The M tree is available at https://github.com/01org/CODK-M
  • The Z tree is the version of Zephyr* firmware that targets Arduino 101* as host core. The Z tree is available at https://github.com/01org/CODK-Z

The A tree is the simplest to use. If you are familiar with the Arduino* ecosystem, the A tree is an ideal working environment. You can import sketches, use the sketch converter to convert the sketches in .ino file format to C++ application code, rework the code, compile the code file and flash the binary image to the board, and run the application to validate it on the board. We recommend that you start with the A tree.

The M tree includes the firmware based on Zephyr* that runs on Intel® Quark™ processor core, and the software with Arduino* class libraries that runs on the ARC* core. The M tree software is similar to the A tree software, with modifications so it is compatible with the Zephyr-based firmware.  Compared to the Z tree firmware, the M tree uses Zephyr APIs and also Arduino-style APIs for the Intel® Quark™ processor core as these are simpler to use.

The Z tree includes the Zephyr* libraries and drivers. In addition to running the system initialization firmware, you can run your software applications on both the Intel® Quark™ processor and the ARC* cores. You will use the driver APIs that are built with Zephyr* to apply changes to both cores.

Hardware

The Intel® Curie™ module is ideal for "always-on" applications. It includes the 32 MHz Intel® Quark™ SE C1000 microcontroller, on-chip Flash/RAM (384 kB, 80 kB), Bluetooth® low energy, 6-axis motion sensors (accelerometer and gyroscope), a sensor hub processor, and a pattern matching engine.

The Intel® Quark™ SE C1000 microcontroller inside the Intel® Curie™ module, also available as stand-alone processor, includes two processor cores: the Intel® Quark™ processor core that hosts the USB and other system level duties, and the ARC* core that runs the user sketches (built-in examples in Arduino* software).

The pattern matching engine inside the Intel® Quark™ SE C1000 microcontroller allows to identify different motions and activities. It takes signals from the on-board gyroscope and accelerometer.

Arduino 101* (branded Genuino 101* in some countries) and tinyTILE* are great starting points to build your own Intel® Curie™-based products.

  • Arduino 101* (branded Genuino 101* in some countries) is the first retail product based on the Intel® Curie™ module. It is compatible with Arduino* shields and software. The schematics, board layout files and software are open source. There is also a rich library of code to build on as well as existing third-party open source code and hardware. The Arduino 101* targets the maker and education audience.
  • tinyTILE* from element14 is also powered with the Intel® Curie™ module. The software is compatible with Arduino 101* in a small form factor. tinyTILE* is designed for developers and product makers. The schematics and board layout files are open source. The software is open source (mostly L-GPL 2.1 with permissive licence). Compared to Arduino 101*, tinyTILE* exposes more of the Intel® Curie™ module pins.

Tools

The open developer kit for Intel® Curie™ module includes a set of development, manufacturing and certification tools to help you with getting into production, pass the regulatory certification tests and get on the market faster.

The tools include provisioning scripts to program the OTP pages, scripts for FCC and CE certification, and the flashing process for starting with a blank Intel® Curie™ module.

Documentation

The documentation covers the software (getting started and user guides for open-source licensing and non-open parts), support for hardware (tinyTILE* and Arduino 101*) and the tools (testing, debugging, manufacturing, certification).

Intel, the Intel logo and Curie are trademarks of Intel Corporation or its subsidiaries in the U.S. and/or other countries.

For more complete information about compiler optimizations, see our Optimization Notice.