MakerLab
ArduinoArduino 101 (Genuino 101)

Arduino 101 (Genuino 101): The Intel Curie Powered Maker Board

A beginner-friendly microcontroller board featuring Intel's Curie module, designed for IoT and wearable projects with built-in Bluetooth Low Energy.

Arduino 101 (Genuino 101)

The Arduino 101, also known as Genuino 101 outside North America, was a collaborative effort between Arduino and Intel, released in late 2015. It aimed to bring the power of Intel's Curie System-on-Chip (SoC) to the accessible Arduino platform, targeting makers interested in connected devices and wearables. This board democratized access to more advanced features like Bluetooth LE and a 32-bit architecture, making it a compelling option for those looking to step up from simpler Arduino boards.

At its heart is the Intel Curie module, a compact and powerful package containing a dual-core 32-bit Intel Quark x1000 application processor and a 32-bit Intel Real-Time Communications (RTC) Quark microcontroller. This combination provides significant processing power and low-power operation, ideal for battery-powered projects. The Curie module also integrates 2.4GHz wireless connectivity, specifically Bluetooth Low Energy (BLE), enabling seamless communication with smartphones and other BLE-enabled devices.

Positioned as an upgrade to boards like the Arduino Uno, the Arduino 101 offered a more capable microcontroller and integrated wireless communication without a drastic increase in complexity or cost. It was particularly well-suited for projects involving the Internet of Things (IoT), wearable technology, robotics, and interactive installations where wireless connectivity and a bit more processing grunt were beneficial. Its 3.3V logic level also made it more compatible with a wider range of modern sensors and modules.

The Arduino 101 was designed to be programmed using the familiar Arduino IDE, ensuring a smooth transition for existing Arduino users. Its release marked a significant step in the evolution of the Arduino ecosystem, bringing together the strengths of two major players in the tech industry. While no longer in active production, it remains a capable board for learning about microcontrollers, embedded programming, and wireless communication.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCIntel Curie Module (2x 32-bit Intel Quark SE processors)
Architecture32-bit x86 (Quark SE)
Clock speed32 MHz
Flash / Storage384 KB Flash (for program storage)
RAM / SRAM80 KB SRAM
Operating voltage3.3V
Digital I/O pins14
Analog / ADC6 (with 12-bit resolution)
PWM6 pins
ConnectivityBluetooth Low Energy (BLE)
USBMicro-USB connector (for programming and power)
Power input5V via Micro-USB or 7-12V via VIN pin (internal regulator)
Dimensions68.6mm x 53.3mm

Pinout & pin functions

PinFunction
GNDGround
3.3VPower output (regulated 3.3V)
VINPower input (7-12V recommended, regulated to 3.3V)
D0 (RX)Serial communication (UART RX)
D1 (TX)Serial communication (UART TX)
D2Digital I/O
D3Digital I/O, PWM
D4Digital I/O
D5Digital I/O, PWM
D6Digital I/O, PWM
D7Digital I/O
D8Digital I/O
D9Digital I/O, PWM
D10Digital I/O, SPI (MOSI)
D11Digital I/O, SPI (MISO)
D12Digital I/O, SPI (SCK)
D13Digital I/O, SPI (CS), LED BUILTIN
A0Analog Input (ADC), Digital I/O
A1Analog Input (ADC), Digital I/O
A2Analog Input (ADC), Digital I/O
A3Analog Input (ADC), Digital I/O
A4Analog Input (ADC), Digital I/O, I2C (SDA)
A5Analog Input (ADC), Digital I/O, I2C (SCL)
RESETSystem reset pin
IOREFInput voltage reference for I/O pins (3.3V)
3.3VPower output (regulated 3.3V)
GNDGround

Wiring & circuit basics

The Arduino 101 operates at 3.3V logic levels. This is crucial when connecting external components. Connecting 5V devices directly to its digital pins may cause damage, and conversely, 3.3V devices may not be reliably detected by 5V systems. Always check the voltage requirements of your sensors and modules. Powering the Arduino 101 can be done via the micro-USB port, which typically supplies 5V, or through the VIN pin, which accepts a wider range of voltages (7-12V recommended). An onboard voltage regulator will step this down to the 3.3V required by the Curie module and I/O pins. Ensure your power supply can provide sufficient current, especially if you are powering multiple components or motors.

When wiring an LED, always use a current-limiting resistor in series to protect both the LED and the Arduino 101. A common value for standard LEDs is around 220-330 ohms. Connect the resistor to either the anode (longer leg) or cathode (shorter leg) of the LED, and then connect the other end of the resistor to a digital pin (e.g., D13, which also has an onboard LED) and the remaining LED leg to GND. For example, to blink an LED connected to D13: connect the LED's anode to D13 via a 330-ohm resistor, and the LED's cathode to GND.

For I2C communication, the Arduino 101 uses pins A4 (SDA) and A5 (SCL). These pins are also analog inputs but function as digital pins for I2C. When connecting an I2C sensor, ensure it also operates at 3.3V or has a level shifter. Connect the sensor's SDA pin to A4, SCL pin to A5, VCC to 3.3V, and GND to GND. Many I2C sensors require pull-up resistors on the SDA and SCL lines; check the sensor's datasheet. The Arduino 101's onboard pull-up resistors are typically not sufficient for reliable communication, especially at higher speeds or with multiple devices.

Programming & getting started

The primary tool for programming the Arduino 101 is the Arduino IDE. Download and install the latest version from the official Arduino website. Once installed, you need to add support for the Arduino 101 board. Go to File > Preferences, and in the 'Additional Boards Manager URLs' field, add the following URL: https://downloads.arduino.cc/packages/package_intel_arduino_index.json. Then, go to Tools > Board > Boards Manager, search for 'Intel Curie Boards', and install it. After installation, select 'Arduino 101' from the Tools > Board menu.

To upload your first program (the classic 'Blink' sketch), connect the Arduino 101 to your computer via its micro-USB port. Select the correct COM port under Tools > Port. Open the 'Blink' example sketch (File > Examples > 01.Basics > Blink). Click the Upload button. The IDE will compile the sketch and upload it to the Arduino 101. The onboard LED (connected to D13) should start blinking. For more advanced programming, consider PlatformIO, which offers a more robust development environment and project management.

Project ideas

BLE Heart Rate MonitorBuild a wearable device that measures heart rate using a pulse sensor and transmits the data wirelessly to a smartphone app via Bluetooth Low Energy. This project utilizes the Arduino 101's BLE capabilities and analog input pins.
Smart Home Environmental SensorCreate a sensor node that monitors temperature, humidity, and air quality, sending readings to a central hub or cloud service using BLE. This project leverages the Arduino 101's wireless features and digital/analog pins for sensor integration.
Gesture Controlled Robot ArmDevelop a small robot arm controlled by hand gestures detected via an accelerometer and gyroscope integrated into the Intel Curie module. This project explores motion sensing and control using the board's built-in IMU (Inertial Measurement Unit).
Low Power Wireless Data LoggerDesign a device that logs sensor data (e.g., light levels, soil moisture) to an SD card over long periods, using BLE to periodically transmit the collected data. This project focuses on power management and data logging with the Arduino 101's low-power features.
Interactive Art InstallationCreate a dynamic art piece that reacts to its environment or user interaction using multiple LEDs, servos, and sensors, communicating wirelessly to coordinate its behavior. This project combines multiple peripherals and wireless communication for creative expression.
Bluetooth MIDI ControllerBuild a custom MIDI controller that sends musical notes and control messages wirelessly to a computer or tablet using BLE MIDI. This project involves understanding MIDI protocols and leveraging the Arduino 101's serial communication and BLE capabilities.

Buying tips & gotchas

When purchasing an Arduino 101, be aware that it is no longer manufactured by Arduino and Intel, so availability may be limited to the used market or remaining old stock. Look for genuine boards; clones are uncommon but could exist. Common pitfalls include overlooking the 3.3V logic level, which requires careful component selection or level shifting when interfacing with 5V modules. Ensure your power supply is adequate, especially when using BLE, as it can increase power consumption. Accessories like 3.3V-compatible sensors, breadboards, jumper wires, and a reliable micro-USB cable are essential for getting started.