Let us take you on a tour of your Circuit Playground Bluefruit, which we'll shorten to CPB.
Micro B USB connector
This is at the top of the board. We went with the tried and true micro-B USB connector for power and/or USB communication (bootloader, serial, HID, etc). Use with any computer with a standard data/sync cable.
JST Battery Input
This is at the bottom of the board. You can take your CPB anywhere and power it from an external battery. This pin can take up 6V DC input, and has reverse-polarity, over-current and thermal protections. The circuitry inside will use either the battery input power or USB power, safely switching from one to the other. If both are connected, it will use whichever has the higher voltage. Works great with a Lithium Polymer battery or our 3xAAA battery packs with a JST connector on the end. There is no built in battery charging (so that you can use Alkaline or Lithium batteries safely)
To make it super-easy to connect to the microcontroller, we have 14 connection pads. You can solder to them, use alligator/croc clips, sew with conductive thread, even use small metal screws!
Of the 14 pads, you get a wide range of power pins, I2C, UART, Analog In, Digital In/Out, PWM, and Analog Out.
Some of them can even sense the touch of your finger!
See the next pinouts page for more details!
The brains of the operation is the nRF52840 Cortex M4 processor with Bluetooth Low Energy support. It sits at the top center and is what allows you to run CircuitPython or Arduino!
The Bluetooth antenna for the nRF52840 Bluetooth functionality is located in the center of the board. If you run into issues with Bluetooth range, make sure there's nothing near the antenna that might interfere, such as metallic surfaces!
We have added a storage chip, called SPI Flash. This is a very, very small disk drive, only 2 MB large. You can use this in Arduino or CircuitPython to store files. In CircuitPython this is where all your code lives, and what you see when you use the CIRCUITPY drive on your computer.
Green ON LED
To the left of the USB connector. This LED lets you know that the CPB is powered on. If it's lit, power is good! If it's dim, flickering or off, there's a power problem and you will have problems. You can't disable this light, but you can cover it with electrical tape if you want to make it black.
Red #13 LED
To the right of the USB connector. This LED does double duty. Its connected with a series resistor to the digital #13 GPIO pin. It pulses nicely when the CPB is in bootloader mode, and its also handy for when you want an indicator LED. Many first projects blink this LED to prove that programming worked.
10 x Color NeoPixel LED
The ten LEDs surrounding the outer edge of the boards are all full color, RGB LEDs, each one can be set to any color in the rainbow. Great for beautiful lighting effects! The NeoPixels will also help you know when the bootloader is running (they will turn green) or if it failed to initialize USB when connected to a computer (they will turn red).
The CPB includes a speaker. It's not going to compete with your HiFi stereo, but it can play simple songs and tones.
The speaker is the squarish gray chunk on the bottom left of the board. There is a small class D amplifier connected to the speaker so it can get quite loud! Note: it won't sound good if too loud, so some experimentation may be necessary
The amplifier is connected to the PWM output AUDIO pin -- this pin is also available on one of the connection pads in the lower right.
If you do not want the internal speaker to make noise, you can turn it off using the shutdown control on pin #11
The Circuit Playground Bluefruit has a large number of sensor inputs that let you add all sorts of interactivity to your project.
There is an analog light sensor, part number ALS-PT19, in the top left part of the board. This can be used to detect ambient light, with similar spectral response to the human eye.
This sensor is connect to analog pin A8. With Arduino, it will read between 0 and 1023 with higher values corresponding to higher light levels. A reading of about 300 is common for most indoor light levels. In CircuitPython, the returned range is scaled differently and is 0 to 65535.
With some clever code, you can use this as a color sensor or even a pulse sensor!
There is an NTC thermistor (Murata NCP15XH103F03RC) that we use for temperature sensing. While it isn't an all-in-one temperature sensor, with linear output, it's easy to calculate the temperature based on the analog voltage on analog pin A9. There's a 10K resistor connected to it as a pull down.
Microphone Audio Sensor
A MEMS microphone can be used to detect audio levels and even perform basic FFT functions. Instead of an analog microphone, that requires an external op-amp and level management, we've decided to go with a PDM microphone. This is a digital mic, and is a lot smaller and less expensive! You will have to use the CircuitPython/Arduino support libraries to read the audio volume, you cannot read it like an analog voltage
We can sense motion with an accelerometer. This sensor detects acceleration which means it can be used to detect when its being moved around, as well as gravitational pull in order to detect orientation.
The LIS3DH 3-axis XYZ accelerometer can be used to detect tilt, gravity, motion, as well as 'tap' and 'double tap' strikes on the board. The LIS3DH is connected to an internal I2C pinset (not the same as the ones on the pads) and has an optional interrupt output on digital pin D24.
The CPB has capacitive touch capabilities. This is a great way to sense human touch without additional components. Even animals will work if it's directly touching their skin!
On the Bluefruit you get seven capacitive touch pads: A1 - A6 and TX. Capacitive touch is supported in both CircuitPython and Arduino!
There are two large A and B buttons, connected to digital D4 (Left) and D5 (Right) each. These are unconnected when not pressed, and connected to 3.3V when pressed, so they read HIGH. Set the pins D4 (BUTTON_A in CircuitPython) and D5 (BUTTON_B in CircuitPython) to use an internal pull-down resistor when reading these pins so they will read LOW when not pressed.
This small button in the center of the board is for Resetting the board. You can use this button to restart or reset the CPB.
If using Arduino or CircuitPython, press this button once to reset, double-click to enter the bootloader manually.
There is a single slide switch near the center bottom of the Circuit Playground Bluefruit. It is connected to digital D7. The switch is unconnected when slid to the left and connected to ground when slid to the right. We set pin D7 to use an internal pull-up resistor so that the switch will read HIGH when slid to the left and LOW when slid to the right.
This is not an on-off switch, but you can use code to have this switch control how you want your project to behave
Note that you need to use an internal pull-up for the slide switch, but an internal pull-down for the push-buttons.