The Arduino 101 is a microcontroller board based on the Intel Curie module. It is designed for Internet of Things (IoT) applications and wearable devices, offering advanced features such as built-in Bluetooth Low Energy (BLE) capabilities and a 6-axis accelerometer/gyroscope. The board is ideal for projects requiring wireless communication, motion sensing, or real-time data processing.
Common applications of the Arduino 101 include:
The Arduino 101 combines the ease of use of the Arduino platform with the power of the Intel Curie module. Below are the key technical details:
Specification | Details |
---|---|
Microcontroller | Intel Curie module (32-bit Intel Quark SE SoC) |
Operating Voltage | 3.3V |
Input Voltage (recommended) | 7-12V |
Input Voltage (limit) | 7-20V |
Digital I/O Pins | 14 (of which 4 provide PWM output) |
PWM Digital I/O Pins | 4 |
Analog Input Pins | 6 |
DC Current per I/O Pin | 20 mA |
Flash Memory | 196 KB (for user applications) |
SRAM | 24 KB |
EEPROM | None |
Clock Speed | 32 MHz |
Bluetooth | Bluetooth Low Energy (BLE) |
Sensors | 6-axis accelerometer/gyroscope |
USB Connector | Micro USB |
Dimensions | 68.6 mm x 53.4 mm |
The Arduino 101 has a standard Arduino Uno form factor, making it compatible with most Arduino shields. Below is the pin configuration:
Pin | Description |
---|---|
Digital Pins | Pins 0-13: General-purpose digital I/O pins. Pins 3, 5, 6, and 9 support PWM. |
Analog Pins | Pins A0-A5: Analog input pins with a 10-bit resolution. |
Power Pins | 3.3V, 5V, GND, and Vin: Power supply pins. |
I2C Pins | A4 (SDA) and A5 (SCL): Used for I2C communication. |
SPI Pins | 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK): Used for SPI communication. |
UART Pins | 0 (RX) and 1 (TX): Used for serial communication. |
Reset Pin | Resets the microcontroller. |
The Arduino 101 is programmed using the Arduino IDE, which supports the board natively. Follow these steps to use the Arduino 101 in a circuit:
Install the Arduino IDE:
Tools > Board > Boards Manager
. Search for "Intel Curie Boards" and install the package.Connect the Arduino 101:
Arduino/Genuino 101
) and port from the Tools
menu.Write and Upload Code:
#include <CurieBLE.h> // Include the BLE library for Arduino 101
BLEPeripheral blePeripheral; // Create a BLE Peripheral object
BLEService customService("19B10000-E8F2-537E-4F6C-D104768A1214");
// Define a custom BLE service
BLECharacteristic customCharacteristic("19B10001-E8F2-537E-4F6C-D104768A1214",
BLERead | BLEWrite, 20);
// Define a BLE characteristic with read and write permissions
void setup() {
Serial.begin(9600); // Start serial communication
blePeripheral.setLocalName("Arduino101"); // Set the BLE device name
blePeripheral.setAdvertisedServiceUuid(customService.uuid());
// Advertise the custom service
blePeripheral.addAttribute(customService); // Add the service
blePeripheral.addAttribute(customCharacteristic); // Add the characteristic
blePeripheral.begin(); // Start BLE
Serial.println("BLE device is now active!");
}
void loop() {
BLEDevice central = blePeripheral.central();
// Check if a central device is connected
if (central) {
Serial.print("Connected to central: ");
Serial.println(central.address());
while (central.connected()) {
// Send data to the central device
customCharacteristic.setValue("Hello from Arduino 101!");
delay(1000); // Wait for 1 second
}
Serial.println("Disconnected from central.");
}
}
The board is not detected by the Arduino IDE:
Arduino/Genuino 101
) and port are selected in the Tools
menu.BLE is not working:
CurieBLE.h
) is included in your code.Code upload fails:
Q: Can I use Arduino shields with the Arduino 101?
A: Yes, the Arduino 101 has the same form factor as the Arduino Uno, making it compatible with most Arduino shields.
Q: Does the Arduino 101 support Wi-Fi?
A: No, the Arduino 101 does not have built-in Wi-Fi. However, you can use an external Wi-Fi module for wireless connectivity.
Q: How do I calibrate the accelerometer/gyroscope?
A: Use the appropriate libraries (e.g., CurieIMU.h
) to calibrate the sensors. Refer to the library documentation for detailed instructions.
This concludes the documentation for the Arduino 101. For further assistance, visit the Arduino Forum.