

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, wearable devices, robotics, and educational projects.








| Specification | Value |
|---|---|
| Microcontroller | Intel Curie module |
| Operating Voltage | 3.3V |
| Input Voltage (recommended) | 7-12V |
| Input Voltage (limit) | 6-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/Name | Type | Description |
|---|---|---|
| 0-13 | Digital I/O | General-purpose digital input/output pins. |
| A0-A5 | Analog Input | Analog input pins for reading sensor data. |
| GND | Power | Ground pin. |
| 3.3V | Power | 3.3V output for powering external devices. |
| 5V | Power | 5V output for powering external devices. |
| VIN | Power | Input voltage to the board when using an |
| external power source (7-12V recommended). | ||
| TX (Pin 1) | UART | Transmit pin for serial communication. |
| RX (Pin 0) | UART | Receive pin for serial communication. |
| PWM Pins | Digital I/O | Pins 3, 5, 6, 9 (support PWM output). |
| I2C (A4, A5) | Communication | I2C communication pins (SDA, SCL). |
| SPI (10, 11, 12, 13) | Communication | SPI communication pins. |
Powering the Board:
Programming the Board:
Using Bluetooth:
Using the Accelerometer/Gyroscope:
#include <CurieIMU.h> // Include the CurieIMU library
void setup() {
Serial.begin(9600); // Initialize serial communication
while (!Serial); // Wait for the serial port to open
// Initialize the IMU
if (!CurieIMU.begin()) {
Serial.println("Failed to initialize IMU!");
while (1); // Halt the program if initialization fails
}
Serial.println("IMU initialized successfully!");
// Set accelerometer range to ±2g
CurieIMU.setAccelerometerRange(2);
}
void loop() {
int ax, ay, az;
// Read accelerometer data
CurieIMU.readAccelerometer(ax, ay, az);
// Print the accelerometer values
Serial.print("Accelerometer: ");
Serial.print("X = "); Serial.print(ax);
Serial.print(", Y = "); Serial.print(ay);
Serial.print(", Z = "); Serial.println(az);
delay(500); // Wait 500ms before the next reading
}
Problem: The board is not recognized by the Arduino IDE.
Solution:
Problem: BLE connection is unstable or not working.
Solution:
Problem: The accelerometer/gyroscope is not providing data.
Solution:
Problem: The board overheats during operation.
Solution:
Can I use the Arduino 101 with a 5V sensor?
Yes, but you will need a level shifter to convert the 5V signals to 3.3V.
Is the Arduino 101 compatible with standard Arduino shields?
Yes, as long as the shields are compatible with 3.3V logic levels.
Can I use the Arduino 101 for battery-powered projects?
Yes, you can power the board using a battery connected to the VIN pin or the DC power jack.
What is the maximum BLE range of the Arduino 101?
The BLE range is typically around 10-30 meters, depending on environmental conditions.
This concludes the documentation for the Arduino 101. Happy building!