

The RFduino SMD is a compact, low-power microcontroller with integrated Bluetooth Low Energy (BLE) capabilities. Manufactured by RFduino, this module is specifically designed for Internet of Things (IoT) applications, wearable devices, and other projects requiring wireless communication in a small form factor. Its ease of use, low energy consumption, and robust BLE functionality make it a popular choice for developers and hobbyists alike.








The RFduino SMD is built around the Nordic Semiconductor nRF51822 SoC, which combines a 32-bit ARM Cortex-M0 processor with BLE functionality. Below are the key technical details:
| Specification | Details |
|---|---|
| Microcontroller | Nordic nRF51822 (ARM Cortex-M0, 32-bit) |
| Operating Voltage | 1.9V to 3.6V |
| Clock Speed | 16 MHz |
| Flash Memory | 256 KB |
| RAM | 32 KB |
| Bluetooth Version | Bluetooth 4.0 Low Energy (BLE) |
| GPIO Pins | 7 configurable GPIO pins |
| Communication Interfaces | UART, SPI, I2C |
| Power Consumption | ~10 µA in sleep mode, ~8.5 mA during BLE transmission |
| Dimensions | 13.5 mm x 26.5 mm |
| Operating Temperature | -40°C to +85°C |
The RFduino SMD has a total of 11 pins, including power, ground, and GPIO pins. Below is the pinout description:
| Pin | Name | Description |
|---|---|---|
| 1 | GND | Ground connection |
| 2 | VCC | Power supply input (1.9V to 3.6V) |
| 3 | GPIO0 | General-purpose I/O pin 0 (can also be used as an analog input) |
| 4 | GPIO1 | General-purpose I/O pin 1 (can also be used as an analog input) |
| 5 | GPIO2 | General-purpose I/O pin 2 |
| 6 | GPIO3 | General-purpose I/O pin 3 |
| 7 | GPIO4 | General-purpose I/O pin 4 |
| 8 | GPIO5 | General-purpose I/O pin 5 |
| 9 | GPIO6 | General-purpose I/O pin 6 |
| 10 | RX | UART receive pin |
| 11 | TX | UART transmit pin |
Below is an example of how to use the RFduino SMD to send BLE data to a smartphone:
// Include the RFduinoBLE library
#include <RFduinoBLE.h>
// Define the BLE advertisement name
const char* deviceName = "RFduino_Sensor";
// Function to handle BLE data received from a smartphone
void RFduinoBLE_onReceive(char* data, int len) {
// Print the received data to the serial monitor
Serial.print("Received: ");
for (int i = 0; i < len; i++) {
Serial.print(data[i]);
}
Serial.println();
}
void setup() {
// Initialize the serial communication
Serial.begin(9600);
// Set the BLE advertisement name
RFduinoBLE.advertisementData = deviceName;
// Begin BLE advertising
RFduinoBLE.begin();
Serial.println("RFduino BLE started. Waiting for connections...");
}
void loop() {
// Main loop does nothing; BLE events are handled in the background
}
Problem: The RFduino SMD is not detected by the Arduino IDE.
Problem: BLE connection is unstable or has a short range.
Problem: The module does not respond to BLE commands.
Q: Can the RFduino SMD be powered by a coin cell battery?
A: Yes, the RFduino SMD's low power consumption makes it suitable for coin cell batteries, provided the voltage is within the 1.9V to 3.6V range.
Q: Is the RFduino SMD compatible with other microcontrollers?
A: Yes, the RFduino SMD can communicate with other microcontrollers via UART, SPI, or I2C.
Q: How do I update the firmware on the RFduino SMD?
A: Firmware updates can be performed using the Arduino IDE and a compatible USB-to-serial adapter.
This concludes the RFduino SMD documentation. For further assistance, refer to the official RFduino resources or community forums.