Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

How to Use Arduino 101: Examples, Pinouts, and Specs

Image of Arduino 101Design with Arduino 101 in Cirkit Designer

Introduction

The Arduino 101 is a microcontroller board based on the Intel Curie module. It combines the simplicity of the Arduino platform with advanced features such as built-in Bluetooth Low Energy (BLE) capabilities and a 6-axis accelerometer/gyroscope. This makes it an excellent choice for projects involving wireless communication, motion sensing, and IoT applications. The board is compatible with the Arduino IDE, making it accessible to both beginners and experienced developers.

Explore Projects Built with Arduino 101

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of Arduino 101 Based Touch-Controlled LED Matrix with DHT22 Sensor Integration: A project utilizing Arduino 101 in a practical application
Arduino 101 Based Touch-Controlled LED Matrix with DHT22 Sensor Integration

This circuit features an Arduino 101 microcontroller connected to a touch sensor, an 8x8 LED matrix, and a DHT22 temperature and humidity sensor. The Arduino provides power to all components and interfaces with the touch sensor via a digital I/O pin and the DHT22 sensor via another digital I/O pin. It controls the 8x8 LED matrix using SPI communication, with dedicated pins for data, clock, and chip select.

Open Project in Cirkit Designer
Image of Arduino 101-Based Interactive Voice-Controlled System with Load Sensing and LCD Feedback: A project utilizing Arduino 101 in a practical application
Arduino 101-Based Interactive Voice-Controlled System with Load Sensing and LCD Feedback

This circuit features an Arduino 101 microcontroller as the central processing unit, interfaced with a variety of peripherals. It includes an LCM1602 IIC LCD for display, a membrane matrix keypad for user input, a SparkFun Load Cell Amplifier (HX711) for weight measurement, and a voice recognition module for audio-based commands. The circuit is powered by a 9V battery connected through a 2.1mm barrel jack, with power distribution to the Arduino and other components.

Open Project in Cirkit Designer
Image of Arduino 101 and ESP32 CAM Motion-Activated Servo Control System: A project utilizing Arduino 101 in a practical application
Arduino 101 and ESP32 CAM Motion-Activated Servo Control System

This circuit features an Arduino 101 microcontroller interfaced with various components for sensing and actuation. A touch sensor and a PIR motion sensor provide input signals, which the Arduino can use to drive a micro servo, a passive buzzer, and communicate with an ESP32 CAM module for potential image capture or video streaming. The circuit also includes a red LED with a current-limiting resistor, and all components share a common power supply from the Arduino's 5V output.

Open Project in Cirkit Designer

Common Applications and Use Cases

Technical Specifications

Key Technical Details

Pin Configuration and Descriptions

The Arduino 101 features a variety of pins for interfacing with external components. Below is a detailed description of the pin layout:

Pin Type Description
Digital 0-13 Digital I/O General-purpose digital input/output pins. Pins 3, 5, 6, and 9 support PWM.
Analog 0-5 Analog Input Used for reading analog signals (0-1023 range).
GND Ground Ground connection for the circuit.
3.3V Power Output Provides 3.3V regulated power.
5V Power Output Provides 5V regulated power.
VIN Power Input Input voltage to the board when using an external power source (7-12V).
AREF Analog Reference Reference voltage for analog inputs.
I2C (A4, A5) Communication SDA (A4) and SCL (A5) pins for I2C communication.
UART (0, 1) Communication TX (0) and RX (1) pins for serial communication.
BLE Wireless Built-in Bluetooth Low Energy for wireless communication.
IMU Sensor Built-in 6-axis accelerometer/gyroscope for motion sensing.

Usage Instructions

How to Use the Arduino 101 in a Circuit

  1. Powering the Board:

    • Connect the Arduino 101 to your computer via the Micro-USB cable for programming and power.
    • Alternatively, use an external power supply (7-12V) connected to the VIN pin or the DC power jack.
  2. Programming the Board:

    • Install the Arduino IDE on your computer.
    • Add the Intel Curie Boards package via the Arduino Boards Manager.
    • Select "Arduino/Genuino 101" from the Tools > Board menu.
    • Write your code and upload it to the board using the USB connection.
  3. Using BLE:

    • The Arduino 101 includes built-in BLE capabilities. Use the CurieBLE library to create BLE peripherals or central devices.
    • Pair the board with a BLE-compatible device (e.g., smartphone) for wireless communication.
  4. Using the IMU:

    • The 6-axis accelerometer/gyroscope can be accessed using the CurieIMU library.
    • Use it for motion tracking, gesture recognition, or orientation sensing.

Example: Reading Accelerometer Data

Here is an example of how to read accelerometer data using the CurieIMU library:

#include <CurieIMU.h>

void setup() {
  Serial.begin(9600); // Initialize serial communication
  while (!Serial);    // Wait for the serial port to open

  CurieIMU.begin();   // Initialize the IMU
  Serial.println("IMU initialized!");

  // Set accelerometer range to ±4g
  CurieIMU.setAccelerometerRange(4);
}

void loop() {
  int ax, ay, az;

  // Read accelerometer values
  CurieIMU.readAccelerometer(ax, ay, az);

  // Print the values to the Serial Monitor
  Serial.print("Accelerometer: ");
  Serial.print("X = "); Serial.print(ax);
  Serial.print(", Y = "); Serial.print(ay);
  Serial.print(", Z = "); Serial.println(az);

  delay(500); // Wait for 500ms before the next reading
}

Important Considerations and Best Practices

Troubleshooting and FAQs

Common Issues and Solutions

  1. Problem: The board is not recognized by the Arduino IDE.
    Solution:

    • Ensure the correct drivers are installed.
    • Check that the Intel Curie Boards package is installed in the Boards Manager.
    • Verify that the correct COM port is selected in the Tools > Port menu.
  2. Problem: BLE connection is unstable or not working.
    Solution:

    • Ensure the BLE device is within range (10-15 meters).
    • Check that the CurieBLE library is correctly implemented in your code.
    • Restart both the Arduino 101 and the BLE device to reset the connection.
  3. Problem: IMU readings are inconsistent or incorrect.
    Solution:

    • Calibrate the IMU using the CurieIMU library's calibration functions.
    • Ensure the board is placed on a stable surface during initialization.
  4. Problem: The board does not power on.
    Solution:

    • Check the power source and connections.
    • Ensure the input voltage is within the recommended range (7-12V).
    • Try using a different USB cable or power adapter.

FAQs