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.

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.

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.

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.

Drivers

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.

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.

ELECFREAKS is a globally competitive micro:bit peripheral product manufacturer, working closely with the micro:bit Foundation and its partners. We focus on the development, production and sales of micro:bit extension modules and accessories. In addition to that, the tutorials, blogs, and videos we create are our contribution to building a comprehensive knowledge base for the micro:bit community. Our belief is that programming is more interesting when it is tangible, and we aim to make coding more popular. We promise to provide excellent products and services to our customers.more