Bluetooth is a 2.4GHz wireless protocol that is popular for short range - about 10 meters max. It's very low power and simpler than WiFi. That low power and simplicity has made it the most popular point-to-point wireless transport - you now get a Bluetooth transceiver in every phone, tablet and laptop.
There are, annoyingly, two flavors of Bluetooth: BT Classic and BT Low Energy (introduced as part of the Bluetooth 4.0 standard). And, annoyingly, despite the similar names, they are completely different and not cross-compatible.
Bluetooth classic is used for unstructured serial data transfer (sometimes called SPP), keyboards and mice, and audio such as BT speakers or BT headsets
Bluetooth LE is used for structured data (organized by 'Services', which are made up of individual 'Characteristics'), beacons, keyboards and mice, MIDI, but not audio. It is also the only method exposed to the user in iOS.
Basically the thing to watch for is if you want to communicate with SPP devices or BT audio, you can't use LE. If you want to work with iOS, you can't use Classic. Keyboards/mice can be either.
The Feather nRF52 is a new direction compared to our 32u4 or M0 Bluefruit boards. This Feather has only one chip on it - and that chip is both the processor you program and also the Bluetooth Low Energy radio. What's nice about this is you can do more powerful stuff, and faster too, because you don't have to manage two chips. It's also lower price and lower power since there's only one processor, and easier to put into sleep modes.
- Code runs natively on the nRF52832 MCU, so it's fast, efficient and less expensive than the two MCU based nRF51 boards
- Powerful ARM Cortex M4F processor with 512KB flash and 64KB SRAM
- Better low power potential due to being a single chip solution
- Because everything runs natively, a lot of complexity can be hidden behind simple helper classes, making things like ANCS possible and manageable compared to the nRF51.
- Supports both Central and Peripheral mode, Central mode meaning it can behave like a phone and initiate connections to other peripherals, although Central SW support is in the very early stages at this point
- Much more room to grow due to the MCU capabilities and flash/SRAM size compared to the earlier nRF51832, and more advanced on board peripherals.
- A new chipset that is not an ATmega328 or ATmega32u4, so some older low-level Arduino libraries and techniques are not compatible. This doesn't happen a lot but if you're porting a project over, you'll have to watch for it!
- Can not be used as a 'client' with your favorite MCU at the moment (unlike the nRF51), since code all runs natively (making this both a pro or a con depending on your needs).
- Examples from the nRF51 and nRF52 are not compatible with each other since they have entirely different programming models.
- Cannot use Bluetooth Classic
- UART pins (RX/TX) are not available for connecting to sensors/wings, as they are used for programming and debug of the native chip.
Our original Bluefruit Feathers are the 32u4 and M0-based. These pairs are very similar looking, and have the same basic idea behind them: there is a main processor which is an ATmega32u4 or ATSAMD21 and a co-processor module which is the red and silver rectangle, containing an nRF51 which can do Bluetooth Low Energy only.
The nRF51 is programmed with our Bluefruit firmware, and can be controlled with AT commands over SPI connection. When the main processor (32u4 or M0) wants to send or receive BLE data, it sends commands to the co-processor module. We decided to go this way because the nRF51 did not have as-good a programming setup as the nRF52, and we thought people would have a better experience if the main chip was not also doing the radio work.
That said, if you already have code for the 32u4 or M0 chips, this is an easy upgrade, you get all the peripherals you know and love. This may be easier for beginners who are not quite ready to work with the native nRF52
- Familiar 32u4 and M0 chipsets
- No need to worry about the Nordic 'softdevice' radio thread interrupting timing-specific code since the radio is completely separate.
- Lots of existing code and projects
- Can only act as Peripheral, not Central
- More expensive as it is a 2-chip solution
- Higher power draw
- Can't take advantage of new nRF52 capabilites as the firmware is updated and released by Nordic
- Cannot use Bluetooth Classic
Even though this is primarily considered a WiFi Feather, the ESP32 does contain a BT LE and BT Classic radio! That's right this is the only Feather that can do BT classic. It's also the only one that can do WiFi and BT (altho, as of this writing, it cannot do both at once)
Sounds great, right? Well, there's some caveats. As of this writing, May 2017, the ESP32 Bluetooth core is still under development and there's only one basic beacon example for use with the Arduino IDE core. So we put this one at the bottom of the list. You can check the ESP32 Arduino core and what has been added here, if there's an example for what you want to do, then you're in luck!
Once there's more working examples, we can fill out the pros and cons more. Right now we think it should only be used by bleeding-edge developers who are cool with running weekly regression tests on their project.
- All-in-one Feather can do anything and everything (except make you a sandwich)
- Fast dual-core processor
- Low cost
- Still waiting on integration and support for BT and BTLE radio