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.
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 / SoC | Intel Curie Module (2x 32-bit Intel Quark SE processors) |
| Architecture | 32-bit x86 (Quark SE) |
| Clock speed | 32 MHz |
| Flash / Storage | 384 KB Flash (for program storage) |
| RAM / SRAM | 80 KB SRAM |
| Operating voltage | 3.3V |
| Digital I/O pins | 14 |
| Analog / ADC | 6 (with 12-bit resolution) |
| PWM | 6 pins |
| Connectivity | Bluetooth Low Energy (BLE) |
| USB | Micro-USB connector (for programming and power) |
| Power input | 5V via Micro-USB or 7-12V via VIN pin (internal regulator) |
| Dimensions | 68.6mm x 53.3mm |
Pinout & pin functions
| Pin | Function |
|---|---|
| GND | Ground |
| 3.3V | Power output (regulated 3.3V) |
| VIN | Power input (7-12V recommended, regulated to 3.3V) |
| D0 (RX) | Serial communication (UART RX) |
| D1 (TX) | Serial communication (UART TX) |
| D2 | Digital I/O |
| D3 | Digital I/O, PWM |
| D4 | Digital I/O |
| D5 | Digital I/O, PWM |
| D6 | Digital I/O, PWM |
| D7 | Digital I/O |
| D8 | Digital I/O |
| D9 | Digital I/O, PWM |
| D10 | Digital I/O, SPI (MOSI) |
| D11 | Digital I/O, SPI (MISO) |
| D12 | Digital I/O, SPI (SCK) |
| D13 | Digital I/O, SPI (CS), LED BUILTIN |
| A0 | Analog Input (ADC), Digital I/O |
| A1 | Analog Input (ADC), Digital I/O |
| A2 | Analog Input (ADC), Digital I/O |
| A3 | Analog Input (ADC), Digital I/O |
| A4 | Analog Input (ADC), Digital I/O, I2C (SDA) |
| A5 | Analog Input (ADC), Digital I/O, I2C (SCL) |
| RESET | System reset pin |
| IOREF | Input voltage reference for I/O pins (3.3V) |
| 3.3V | Power output (regulated 3.3V) |
| GND | Ground |
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.