Getting Started with the Arduino/Genuino 101

Getting Started with the Arduino/Genuino 101

The Intel Curie module, as core of the Arduino/Genuino 101, features a NeuroMem network of 128 neurons, ready to learn and recognize what you teach them. The Arduino/Genuino 101 is a learning and development board which contains the Intel® Curie™ Module, designed to integrate the core's low power-consumption and high performance with the Arduino's ease-of-use. The 101 adds Bluetooth Low Energy capabilities and has an on-board 6-axis accelerometer/gyroscope, providing exciting opportunities for building creative projects in the connected world. More information about the technical specifications and documentation can be found on the Arduino/Genuino 101 main page.


Quick Start

To program the 101 you'll need the Arduino IDE, you can follow the instructions here, and to install the Intel® Curie Boards core using the Arduino Boards Manager. This is found in the Tools menu under Boards -> Boards Manager, where you can search 'Intel Curie Boards'. For more information, see the guide on installing additional Arduino cores. Connect the 101 board to your computer using a standard (A plug to B plug) USB cable. The board’s green power LED (labeled ON) should light. To upload a sketch, choose “Arduino/Genuino 101” from the Tools > Board menu in the Arduino Software (IDE), and select the correct serial port from the Tools > Serial Port menu.

Please take note the following when using the 101:

  • You must download Arduino IDE 1.6.7 or later to program the Arduino/Genuino 101.
  • After a sketch is uploaded to the board, there's a delay of a few seconds before it starts to execute. For more information, see 'Upload Procedure' Section of this page.


Differences between 101 and Uno

Although the 101 shares the same peripherals and connectors as the Arduino Uno, the Uno's ATmega328 has been replaced by Intel® Curie™, meaning that the board now has two cores, an x86 (Quark) and an ARC (Argonaut RISC Core). This enables high performance, low power-consumption (the 101 runs on 3.3V instead of 5V), and adds on-board Bluetooth Low Energy and 6-axis accelerometer/gyroscope capabilities.

Bluetooth, Accelerometer + Gyroscope, and Real-Time Clock Libraries

All 101’s embedded peripherals have dedicated libraries, namely:

CureBLE (to control Bluetooth Low Energy module) CurieIMU(to control the 6-axis accelerometer + gyro) Curie Timer One (to control Timer functions) All of these libraries contain example sketches and tutorials have been written to get you started with using and understanding the functionalities of the modules (see Tutorials at the bottom of this page). All these libraries are automatically installed with the Intel Curie core.

Operating Voltage

The microcontroller on the 101 runs at 3.3V but all I/O pins are protected against 5V overvoltage. This means that the output signals will be in the range 0 - 3.3V but you can apply up to 5V on a pin without damaging the board. Applying more than 5V on any pin will damage the board.

Serial ports on the 101

The 101 has a number of facilities for communicating with a computer or other microcontrollers. The USB connector exposes as a virtual serial port that can be controlled by writing and reading to the Serial object. Pins 0/1, instead, expose a Hardware serial port mapped to Serial1 object. Opening and closing the USB Serial port at a baud rate other than 1200bps will not reset the 101. To use the serial monitor, and see what your sketch does from the beginning, you'll need to add few lines of code inside the setup(). This will ensure the Curie module will wait for the serial port to open before executing the sketch: while (!Serial) ; Pressing the Reset button on the 101 causes the microcontroller to reset as well as resetting the USB communication. This interruption means that if the serial monitor is open, it's necessary to close and reopen it to restart the communication. The SoftwareSerial library allows serial communication on any of the 101's digital pins up to 57600 bps.

Upload Procedure

After a sketch is uploaded to the board, there's a delay of a few seconds before it starts to execute. This happens at powered up and when RESET M button gets pressed. The serial monitor can't be opened during this time, so the user must wait for around 10 seconds before serial communication can start. In order not to miss any serial information that is sent before you open serial monitor, you can write the same line of code as aforementioned inside setup(), which will wait until you open the monitor to start the program: while (!Serial) ; Linux only: some distributions need to be configured to perform the upload. After installing the core, executesudo ~/.arduino15/packages/Intel/tools/arduino101load/1.6.4+1.18/scripts/create_dfu_udev_rule inside a shell to gain upload permissions.


On Windows, drivers are needed to allow the board communication. These drivers will be installed automatically whenadding the core. On MacOSX and Linux no driver is needed.

For more details on the Arduino/Genuino 101, see the product page.


Here a list of tutorials that will help you in making very cool things!

CurieIMU Orientation Visualiser CurieIMU Step Count CurieIMU Raw data example CurieIMU tap detection CurieIMU Shock detection CurieBLE Smartphone Led interaction CurieBLE Heart Rate Monitor

more examples on the respective library pages

Note: to ensure optimal performance and protect the board during use, use a third-party plastic enclosure. Use a screw head not greater than 0.25 inch (6.35mm) in diameter to mount the board in the enclosure. If testing the board on an ungrounded metal surface, a minimum 10mm (0.393 inch) separation should be kept between the metal surface and the board to maintain antenna performance.

The text of the Arduino getting started guide is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the guide are released into the public domain.