There's a lot going on in this board so lets do a high-level overview of major components, then dig into the individual pinouts

Major Parts

There's a few major components you need to know about.

Starting from the left, there's the Micro USB connector. This is how you power and program the Bluefruit Micro. If you added on the LiPoly backpack you can also recharge the battery this way.

To the right is a small tactile switch. This is the reset button for the ATmega32u4. You can use this to reset the microcontroller and/or push it into bootloader mode if the bootloader gets 'stuck' during programming

This is the main microcontroller, an ATmega32u4 chip. This chip has 32KB of flash (4KB taken by bootloader, 28K available for user code), 2.5KB of RAM, and lots of GPIO. It runs at 8MHz and 3.3V logic. It is the same chip used as in the Adafruit Flora or Arduino Leonardo so if you have used those, then this chip will be very familiar. You can use the Arduino IDE to program this chip once you add the board with the Board Manager and many (although not 100%) of Arduino libraries will work out-of-the-box.

Finally there's the BLE module. This is the radio-handling part. It is an FCC/CE-certified emittermodule with a ceramic antenna. The ATmega32u4 talks to this module over SPI using our Arduino library to transmit and receive data. It is based on the nRF51822 chipset from Nordic Semiconductor.

Power Pins

These are the pins you'll be connecting to for power input and output.

  • BAT is a battery input port. If you are using the LiPoly backpack, this connects to the lithium ion/polymer batter. You can also inject any other kind of battery in here, from 3-16VDC. It has a Schottkey diode for polarity protection
  • G & GND - There are 3 ground pins available
  • USB is the 'raw' 5V power from the USB port when power is coming in via USB. You can use this if you need up to 500mA current @ 5V but its only live when USB is connected
  • 3V This is the output from the onboard regulator, 3.3V output at 150mA


There are four indicators for telling you what is up with your Bluefruit Micro

The two LEDs on the left next to the MicroUSB jack are

  • Red #13 LED which is connected to digital #13 / PC7 of the ATmega32u4. You can use it to signal or blink. It will also 'pulse' on and off when the bootloader is active
  • Green ON LED this LED is always on when the board is powered.

The two LEDs on the right next to the BLE module are

  • Red BLE status LED This LED will blink 3 times every few seconds to let you know that the BLE module is alive and running/waiting for connection. It's also used when doing a DFU update on the module.
  • Blue BLE connection LED lights up when a device is connected via BLE.

BLE Use Pins

These pins are used to talk to the module. You can use the MOSI/MISO/SCK pins for other SPI devices (we use SPI transactions to avoid data collisions) but keep the 3 other pins unused for anything else.

  • Digital 4 - connected to the Bluefruit Reset pin, resets the BLE module when set to low.
  • Digital 7 - the IRQ from the Bluefruit to the microcontroller. Used for the Bluefruit to tell the microcontroller when new data arrived/is ready to read
  • Digital 8 - the Bluefruit CS pin, used to select the module for data transfer.
  • MOSI/MISO/SCK - SPI pins used to send/receive data and commands between the microcontroller and BLE

Available GPIO

There's a ton of pins available!

All of these pins are digital input/output pins, with 3.3V logic.Some have extra capabilities

  • #0 - Hardware UART RX pin
  • #1 - Hardware UART TX pin
  • #2 - I2C SDA (data) pin
  • #3 - I2C SCL (clock) pin
  • #5 - PWM (analogWrite) output
  • #9 - PWM (analogWrite) output
  • #10 - PWM (analogWrite) output
  • #11 - PWM (analogWrite) output
  • #12 - GPIO
  • #13 - Connected to a red LED next to the micro USB jack
  • A0 thru A5 - Analog inputs.

You can also use the SCK/MOSI/MISO pins with an SPI device as long as it is on a Chip Select line and you disable it when you talk to the BLE module.

Other Pins

  • ARef - This is the analog reference input for the ATmega32u4, you can use this to change the analog reference for analogRead() however do not set higher than 3.3V (which is the default, also)
  • DFU - This is used when updating the firmware on the BLE module itself. Don't use unless you need/want to update the BLE device runcode. It will not reprogram the ATmega32u4

This guide was first published on Aug 07, 2015. It was last updated on Mar 08, 2024.

This page (Pinouts) was last updated on Aug 07, 2015.

Text editor powered by tinymce.