Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use Adafruit Bluefruit LE SPI Friend: Examples, Pinouts, and Specs

Image of Adafruit Bluefruit LE SPI Friend
Cirkit Designer LogoDesign with Adafruit Bluefruit LE SPI Friend in Cirkit Designer

Introduction

The Adafruit Bluefruit LE SPI Friend is a versatile Bluetooth Low Energy (BLE) module that provides wireless communication capabilities to your projects. It is designed to interface with microcontrollers via the Serial Peripheral Interface (SPI) and is capable of acting as either a peripheral or a central BLE device. This module is ideal for adding Bluetooth connectivity to a wide range of applications, such as wearable technology, wireless sensor networks, and IoT devices.

Explore Projects Built with Adafruit Bluefruit LE SPI Friend

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Adafruit Circuit Playground Bluefruit and Crickit-Based Smart RGB LED and Temperature Monitoring System
Image of Example: A project utilizing Adafruit Bluefruit LE SPI Friend in a practical application
This circuit integrates an Adafruit Circuit Playground Bluefruit with an Adafruit Crickit for Circuit Playground Express to control a temperature sensor, a loudspeaker, and a series of WS2812 RGB LED strips. The Crickit board reads temperature data, drives the loudspeaker, and controls the LED strips to create visual effects based on the sensor input.
Cirkit Designer LogoOpen Project in Cirkit Designer
Touch-Sensitive Interface with Adafruit MPR121 and Feather 32u4 Bluefruit
Image of MPR121: A project utilizing Adafruit Bluefruit LE SPI Friend in a practical application
This circuit integrates an Adafruit MPR121 capacitive touch sensor with an Adafruit Feather 32u4 Bluefruit microcontroller. The MPR121 is powered by the Feather and communicates via I2C (SCL and SDA) to detect touch inputs, which can be processed or transmitted wirelessly by the Feather.
Cirkit Designer LogoOpen Project in Cirkit Designer
Battery-Powered Sensor Hub with Adafruit QT Py RP2040 and OLED Display
Image of 512: A project utilizing Adafruit Bluefruit LE SPI Friend in a practical application
This circuit features an Adafruit QT Py RP2040 microcontroller interfacing with an MPU-6050 accelerometer, an Adafruit APDS-9960 sensor, and a 0.96" OLED display via I2C communication. It is powered by a 3.7V LiPo battery and includes a green LED with a current-limiting resistor connected to an analog pin of the microcontroller.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP32 and ADXL343-Based Battery-Powered Accelerometer with SPI Communication
Image of vibration module: A project utilizing Adafruit Bluefruit LE SPI Friend in a practical application
This circuit features an ESP32 microcontroller interfaced with an ADXL343 accelerometer via SPI communication, powered by a 12V battery regulated down to 5V and 8V using 7805 and 7808 voltage regulators. The ESP32 reads accelerometer data and outputs it via serial communication, with additional components including a pushbutton and a rocker switch for user input.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with Adafruit Bluefruit LE SPI Friend

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 Example: A project utilizing Adafruit Bluefruit LE SPI Friend in a practical application
Adafruit Circuit Playground Bluefruit and Crickit-Based Smart RGB LED and Temperature Monitoring System
This circuit integrates an Adafruit Circuit Playground Bluefruit with an Adafruit Crickit for Circuit Playground Express to control a temperature sensor, a loudspeaker, and a series of WS2812 RGB LED strips. The Crickit board reads temperature data, drives the loudspeaker, and controls the LED strips to create visual effects based on the sensor input.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of MPR121: A project utilizing Adafruit Bluefruit LE SPI Friend in a practical application
Touch-Sensitive Interface with Adafruit MPR121 and Feather 32u4 Bluefruit
This circuit integrates an Adafruit MPR121 capacitive touch sensor with an Adafruit Feather 32u4 Bluefruit microcontroller. The MPR121 is powered by the Feather and communicates via I2C (SCL and SDA) to detect touch inputs, which can be processed or transmitted wirelessly by the Feather.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of 512: A project utilizing Adafruit Bluefruit LE SPI Friend in a practical application
Battery-Powered Sensor Hub with Adafruit QT Py RP2040 and OLED Display
This circuit features an Adafruit QT Py RP2040 microcontroller interfacing with an MPU-6050 accelerometer, an Adafruit APDS-9960 sensor, and a 0.96" OLED display via I2C communication. It is powered by a 3.7V LiPo battery and includes a green LED with a current-limiting resistor connected to an analog pin of the microcontroller.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of vibration module: A project utilizing Adafruit Bluefruit LE SPI Friend in a practical application
ESP32 and ADXL343-Based Battery-Powered Accelerometer with SPI Communication
This circuit features an ESP32 microcontroller interfaced with an ADXL343 accelerometer via SPI communication, powered by a 12V battery regulated down to 5V and 8V using 7805 and 7808 voltage regulators. The ESP32 reads accelerometer data and outputs it via serial communication, with additional components including a pushbutton and a rocker switch for user input.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Wearable devices and fitness trackers
  • Wireless sensor networks
  • Home automation systems
  • IoT devices and smart gadgets
  • Remote control for robots and drones
  • Data logging and transmission

Technical Specifications

Key Technical Details

  • Bluetooth Specification: Bluetooth 4.0 (BLE)
  • Frequency: 2.4 GHz ISM band
  • Voltage Supply: 3.3V to 5V (with onboard voltage regulator)
  • Current Consumption: 10mA (average), 30mA (peak during transmission)
  • Communication Interface: SPI
  • Maximum Data Rate: 1 Mbps
  • Output Power: +4 dBm
  • Sensitivity: -93 dBm
  • Antenna: Integrated PCB antenna
  • Security: AES-128 encryption

Pin Configuration and Descriptions

Pin Number Name Description
1 VIN Power supply (3.3V to 5V)
2 GND Ground connection
3 SCK SPI Clock
4 MISO Master In Slave Out (SPI Data from Bluefruit to MCU)
5 MOSI Master Out Slave In (SPI Data from MCU to Bluefruit)
6 CS Chip Select (Active Low)
7 IRQ Interrupt Request (Active Low)
8 RST Reset (Active Low)

Usage Instructions

How to Use the Component in a Circuit

  1. Power Connections: Connect the VIN pin to a 3.3V to 5V power supply and the GND pin to the ground.
  2. SPI Connections: Connect the SCK, MISO, and MOSI pins to the corresponding SPI pins on your microcontroller.
  3. Control Pins: Connect the CS, IRQ, and RST pins to available digital I/O pins on your microcontroller.
  4. Antenna: Ensure the integrated PCB antenna is not obstructed for optimal wireless performance.

Important Considerations and Best Practices

  • Use a level shifter if your microcontroller operates at a voltage higher than 3.3V.
  • Keep the SPI bus as short as possible to minimize noise and ensure reliable communication.
  • Avoid placing the module near metal objects or surfaces that could interfere with the antenna.
  • Implement proper decoupling with a capacitor close to the VIN pin to stabilize the power supply.

Example Code for Arduino UNO

#include <SPI.h>
#include "Adafruit_BLE_UART.h"

// Create the bluefruit object, using SPI interface
Adafruit_BLE_UART ble(SPI_CS, SPI_IRQ, SPI_RST);

void setup() {
  Serial.begin(9600);
  ble.begin();

  // Set BLE callbacks
  ble.setRxCallback(rxCallback);
  ble.setDisconnectCallback(disconnectCallback);

  // Start advertising for connections
  ble.startAdvertising();
}

void loop() {
  // Poll the module to process incoming data
  ble.poll();
}

// Callback for when data is received
void rxCallback(uint8_t *buffer, uint8_t len) {
  Serial.print(F("Received: "));
  for (uint8_t i = 0; i < len; i++) {
    Serial.print((char)buffer[i]);
  }
  Serial.println();
}

// Callback for when a connection is dropped
void disconnectCallback(void) {
  Serial.println(F("Disconnected!"));
  ble.startAdvertising();
}

Note: Replace SPI_CS, SPI_IRQ, and SPI_RST with the actual pin numbers used for Chip Select, Interrupt Request, and Reset pins, respectively.

Troubleshooting and FAQs

Common Issues Users Might Face

  • Connection Issues: Ensure that the module is powered correctly and that the SPI connections are secure.
  • Data Transmission Errors: Check for proper grounding and stable power supply to the module.
  • Intermittent Operation: Verify that the antenna is not obstructed and that the module is not placed near metal objects.

Solutions and Tips for Troubleshooting

  • Power Supply: Use a multimeter to check that the VIN pin is receiving the correct voltage.
  • SPI Communication: Use an oscilloscope to verify that the SPI signals are clean and free from noise.
  • Antenna Placement: Reposition the module to ensure the antenna has a clear line of sight to the paired device.

FAQs

Q: Can the Bluefruit LE SPI Friend be used with a 5V microcontroller? A: Yes, but ensure that the logic levels for SPI communication are shifted down to 3.3V to avoid damaging the module.

Q: How many devices can the Bluefruit LE SPI Friend connect to at once? A: The module can maintain a single connection as a peripheral device. As a central device, it can theoretically manage multiple connections, but this is limited by memory and processing constraints.

Q: What is the range of the Bluefruit LE SPI Friend? A: The range is typically up to 30 meters (100 feet) in open space, but this can be reduced by obstacles and interference.

Q: How do I update the firmware on the Bluefruit LE SPI Friend? A: Firmware updates can be performed using the Bluefruit LE Connect app available for iOS and Android devices. Instructions are provided in the Adafruit Learning System guides.