

The Arduino 101 is a microcontroller board based on the Intel Curie module. It combines the simplicity of Arduino with advanced features such as built-in Bluetooth Low Energy (BLE) capabilities and a 6-axis accelerometer/gyroscope. This board is ideal for projects requiring wireless communication, motion sensing, and real-time control. Its versatility makes it suitable for applications in IoT, robotics, wearable devices, and educational projects.
Common applications include:








The Arduino 101 offers a range of features and capabilities that make it a powerful tool for developers and hobbyists alike.
| Specification | Value |
|---|---|
| Microcontroller | Intel Curie module |
| Operating Voltage | 3.3V |
| Input Voltage (recommended) | 7-12V |
| Input Voltage (limit) | 7-20V |
| Digital I/O Pins | 14 (4 PWM outputs) |
| Analog Input Pins | 6 |
| DC Current per I/O Pin | 20 mA |
| Flash Memory | 196 KB (96 KB for user applications) |
| SRAM | 24 KB |
| Clock Speed | 32 MHz |
| Bluetooth | Bluetooth Low Energy (BLE) |
| Sensors | 6-axis accelerometer/gyroscope |
| USB Connector | Micro USB |
| Pin Number | Pin Name | Description |
|---|---|---|
| 0-13 | Digital I/O | General-purpose digital input/output pins |
| 3, 5, 6, 9 | PWM | Pulse Width Modulation capable pins |
| A0-A5 | Analog Input | Analog input pins (10-bit resolution) |
| VIN | VIN | Input voltage to the board (7-12V) |
| 3.3V | 3.3V Output | Regulated 3.3V output |
| 5V | 5V Output | Regulated 5V output |
| GND | Ground | Ground pins |
| IOREF | IOREF | Voltage reference for I/O pins |
| RESET | Reset | Resets the microcontroller |
The Arduino 101 is easy to use and program, making it accessible for both beginners and advanced users. Below are the steps and best practices for using the board effectively.
Powering the Board:
Programming the Board:
Using BLE:
CurieBLE library to create BLE peripherals or central devices. Using the Accelerometer/Gyroscope:
CurieIMU library. The following example demonstrates how to set up the Arduino 101 as a BLE peripheral that broadcasts a simple message.
#include <CurieBLE.h>
// Create a BLE peripheral object
BLEPeripheral blePeripheral;
// Create a BLE service and characteristic
BLEService customService("180C"); // Custom service UUID
BLECharacteristic customCharacteristic("2A56", BLERead | BLENotify, 20);
// Setup function
void setup() {
// Initialize serial communication for debugging
Serial.begin(9600);
while (!Serial);
// Set up BLE peripheral
blePeripheral.setLocalName("Arduino101");
blePeripheral.setAdvertisedService(customService);
// Add the service and characteristic
blePeripheral.addAttribute(customService);
blePeripheral.addAttribute(customCharacteristic);
// Start advertising
blePeripheral.begin();
Serial.println("BLE Peripheral started!");
}
// Loop function
void loop() {
// Poll for BLE events
BLEDevice central = blePeripheral.central();
// If a central device connects
if (central) {
Serial.print("Connected to central: ");
Serial.println(central.address());
// Send a message to the central device
customCharacteristic.setValue("Hello from Arduino 101!");
// Wait for the central to disconnect
while (central.connected()) {
delay(100);
}
Serial.println("Central disconnected.");
}
}
CurieBLE and CurieIMU.Problem: The board is not recognized by the Arduino IDE.
Solution:
Problem: BLE peripheral is not discoverable.
Solution:
blePeripheral.begin(). Problem: The accelerometer/gyroscope is not providing data.
Solution:
CurieIMU library is included and initialized. Q: Can the Arduino 101 be powered via USB alone?
A: Yes, the board can be powered and programmed via a Micro USB cable.
Q: Is the Arduino 101 compatible with standard Arduino shields?
A: Yes, the Arduino 101 has the same form factor as the Arduino UNO and is compatible with most shields.
Q: Can I use the Arduino 101 for real-time applications?
A: Yes, the Intel Curie module's dual-core architecture allows for real-time processing and BLE communication simultaneously.