Blog  /  RFduino: A Compact BLE ARM Cortex Cortex M0 Development Board

RFduino: A Compact BLE ARM Cortex Cortex M0 Development Board

Most projects today require wireless connectivity for remote control, and several options are available for this function. However, the RFduino board stands out because it is tiny and features Bluetooth Low Energy (BLE), which is highly energy efficient. We will look at this board in detail below to explain its specifications and how to use it to send/receive data. Let's get started!

What Is the RFduino?

RF is a combination of two terms: RF and duino. RF stands for radio frequency, while duino is short for Arduino. So the RFduino is an Arduino-compatible development kit with Bluetooth 4.0 Low Energy that provides wireless communication via radio frequencies. The compact, finger-tip-sized board operates at 3V and runs an ARM Cortex M0 CPU with 8kb RAM and 128kb flash memory.


A Bluetooth sensor

A Bluetooth sensor


Most RFduino boards come with a USB shield to power the module and transfer your source code from the Arduino IDE in your computer to the board via the USB port. This USB shield is usually a 3.3V regulator. You can get these additional shields for the board.

  • Button/RGB LED shield
  • Servo shield
  • Relay shield
  • MicroSD shield
  • Prototyping shield
  • Battery shield (for using external power)


A development board with an expansion shield for connecting a radio transmitter, stepper motor, and servo motor

A development board with an expansion shield for connecting a radio transmitter, stepper motor, and servo motor

RFduino Specifications

  • CPU: ARM Cortex-M0 32-bit 16MHz
  • RAM: 8kb
  • Flash Memory: 128kb
  • GPIO Pins: 7 (You can use them for SPI, I2C, UART, analog ports, etc.)
  • Bluetooth: 4.0 (2.4 GHz)
  • Operating Voltage: 3V
  • Max Operating Voltage: 3.6V
  • Minimum Operating Voltage: 1.9V
  • Transmit/Receive Current: 18mA (4uA ULP)
  • Transmit Power: 4dbm
  • Dimensions: 15 x 15 x 3.5 mm

How To Send and Receive Data via the RFduino BLE Device

The RFduino board can communicate with any Bluetooth 4.0 LE smartphone or tablet. Initially, Android devices were incompatible with the Bluetooth module because they lagged in wireless network interaction nature. And because they are the majority, few devices could connect to the Bluetooth module. Only the iPhone 4 and 5 were compatible with the device when launched. But this low-energy Bluetooth is now available on Android devices, and we'll use an Android app for this project.

What You Need

  • RFduino BLE module
  • RFduino USB shield
  • BLE enabled phone
  • Android BLE serial app


A micro-module for building electronic projects

A micro-module for building electronic projects


Hardware Connection

Mount the Arduino-compatible board on the USB shield accessory board, then mount the joined pieces to your computer's USB port.


Download the RFduino library, then transfer the file to the board's hardware storage directory. After that, download and install the FTDI USB driver, then start the Arduino IDE. Select "RFduino board" from the tools menu to set up the board for uploading and running the code.

Receiving Data

Paste this code to the IDE

The advertisement data property should not exceed ten characters. And the device name (RFduino BLE) is the discoverable name that will show up when other BLE-enabled devices search for the device.

So use this name to connect the BLE-enabled phone to the BLE module.

The RFduinoBLE_onReceive function should show the first received byte of the incoming data in the Arduino serial monitor. For instance, if you send the number 100 using the serial app on the phone, the Arduino serial monitor will display one on your computer.

Sending Data

Paste the following code into your IDE.

The advertisement data and device name properties are similar to the ones in the code for receiving data. But this code utilizes the loop function to infinitely send the number ten after five seconds. Since the code sends the data, you will get the number on the phone serial app every five seconds.

RFduino Applications

  • Reading analog sensors and displaying results on the phone.


Sound, ultrasonic, and IR sensors

Sound, ultrasonic, and IR sensors


  • Gets gyroscope or accelerometer readings from your smartphone and transfers them to the computer via the USB shield
  • Used in making temperature sensor applications to read the temperature on your iPhone (reads data using a TMP36 sensor via the GPIO pins)
  • Building LED apps (with wireless control of the 16 x 16 LED shield interface with the board)
  • Wireless smartphone control of all four standard servos interfaced using a servo shield.


A servo shield with stepper motors and a black controller with a radio transmitter

A servo shield with stepper motors and a black controller with a radio transmitter


  • Displaying images on the Adafruit ST7735 1.8" TFT display using GPIO pins (from the ST7735 library)
  • Wireless flying device (quadcopter) control and sending data back to the smartphone during flight
  • Sending posts automatically into a Twitter account but within a short range
  • Smartphone wireless control of door locking sensors


A man using a smartphone to disarm a door’s security system

A man using a smartphone to disarm a door’s security system


Wrap Up

To conclude, the RFduino is a compact and easy-to-integrate Arduino-compatible board for any project. So you should consider using the device for your project if you need wireless smartphone control via Bluetooth Low Energy. Most smartphones today are BLE compatible, so you only need a BLE serial app for communication. Also, sending data between the two requires minimal coding, meaning it is not such a challenging task. So get in touch if you need more information about your project. That's it for now. Thank you.