Wednesday, 24 October 2018

Adafruit Boards

 

Overview

 

arduino_Feather_banner.jpg

Wouldn't it be great if, instead of collecting shields, HATs, PMODs, Clicks, Booster Packs, Props... you could have a cross-compatible platform? Something that doesn't force you into one chipset? and allows you to mix-and-match the microcontroller, wireless protocol, and functional extensions?
Yeah, me too! That's why I created Feather. Feather is a flexible and powerful family of microcontroller main-boards (Feathers) and daughter-boards (Wings) with a wide range of capabilities.


Feathers!

Since we aren't tied to one chip manufacturer, we feature the best-of-the-market chipsets, including:
  • Atmel ATmega32u4 - 8 bit AVR
  • Atmel ATSAMD21 - 32 bit ARM Cortex M0+
  • Broadcom/Cypress WICED - STM32 with WiFi
  • Espressif ESP8266 and ESP32 - Tensilica with WiFi/BT
  • Freescale MK20 - ARM Cortex M4, as the Teensy 3.2 Feather Adapter
  • Nordic nRF51 and nRF52 - ARM Cortex & Bluetooth LE
  • Packet radio modules featuring SemTech SX1231
  • LoRa radio modules featuring SemTech SX127x
arduino_Feather_Family_Instagram_ORIG.jpg


Basic Feathers

Basic feathers are..basic. But they're not to be ignored! Their simplicity makes them a great base for Feather projects, when you don't need a wireless network, or built-in datalogging.
These were the First Feathers, as it were. They form the basis of later Feathers, so if you start here you can upgrade!
There's three chipsets available:
  • Atmel (now Microchip) ATmega32u4
  • Atmel (now Microchip) ATSAMD21
  • Freescale MK20DX256 - A.K.A Teensy 3.2, via an adapter

AVR ATmega32u4

 Adafruit Feather 32u4 Basic ProtoATmega32u4 is a well known 8-bit AVR processor, and may be more familiar to people who use the similar Arduino '328s. It's tried-and-true. The Arduino core for it was first developed in 2012 and so it's quite stable and well-known. Many low-level ATmega328 examples will work out of the box on the 32u4 (but not all!). It has 32KB of Flash and 2.5KB of RAM. It runs at 8 MHz and has native USB support.

ARM ATSAMD21

 Adafruit Feather M0 Basic Proto - ATSAMD21 Cortex M0

 

The ATSAMD21 M0 is a 32-bit Cortex M0, with a ton more flash and RAM: 256KB and 32KB. It is also supported in Arduino but is a little newer (circa ~2015) and so does not have as many years of projects and example code already. It's also a completely different chipset than the AVR, so low level code will not work and must be re-written. That said, its about the same price and you get a ton more speed (48 MHz and 32-bit processing), and peripherals. For example you can easily create multiple hardware UARTs or I2C ports, which is impossible on the AVR. Other stuff like I2S audio, 12-bit analog input, and true analog output (DAC) is only available on this chip. Especially if you're running low on Flash, RAM, or analog inputs, this is a nice upgrade.


WiFi Feathers


About WiFi

WiFi is just about everywhere but there's a few things to watch out for:
  • Compared to Bluetooth, WiFi uses a ton of power, you can easily end up using 250mA during transmit and receive/listening. Try to use low power modes to reduce that if possible
  • Compared to ZigBee, BTLE or LoRa/Packet radio, WiFi can transfer a lot more data a lot faster! You can easily stream compressed audio over WiFi.
  • Compared to Ethernet, you may have connectivity problems, just like you do when your laptop has poor reception
  • Compared to Cellular, WiFi tends to need a base-station nearby, so you can't use it in the middle of nowhere unless you have a WiFi hotspot
  • Compared to just about any other wireless protocol, WiFi is strongly supported by every computer/tablet/phone, has strong encryption built-in, and can reach anywhere around the world!
  • Like LoRa & packetized radio, you cancreate a WiFi ad-hoc network but this usually requires a little extra effort
All of our current WiFi Feather options support WPA PSK passcoding and SSL encryption. The full capabilities of SSL may vary, and you may have to do a little extra work for adding the SSL certificate to the module for true SSL checking.

WiFi Feather Options

Adafruit Feather HUZZAH with ESP8266

Adafruit Feather HUZZAH with ESP8266p

 

The Feather Huzzah ESP8266 is a perennial favorite. It features an FCC/CE certified ESP-12 module that contains an ESP8266 chip, 4 MB of SPI flash and antenna.
Pros:
  • The ESP8266 is super popular, has tons of projects, tutorials, guides
  • Arduino support is very good, with a community/Espressif supported build that has been updated and maintained
  • Can also be used with MicroPython or Lua
  • Fast and reliable WiFi connectivity with SSL support
  • Speedy chip at 80 MHz
  • Very affordable, lower cost than other WiFi chipsets
Cons:
  • High power draw, no easy-to-use sleep modes
  • Single core design has a real time component that is not documented but required cycle time, so Arduino code needs to constantly yield() or the RTOS component will reset/crash
  • Not a lot of GPIO pins, many have special functions so you can't use them for any purpose
  • Only one analog input pin, 1.0V max
  • No real datasheet or in-depth documentation. Most information is community-sourced or 'word-of-mouth'. Tech support is minimal.
For the most part, the low cost of the ESP8266 has been enough incentive for people to overlook the drawbacks of the chip and figure out how to create projects with what they've got.


Adafruit Feather M0 WiFi - ATSAMD21 + ATWINC1500

Adafruit Feather M0 WiFi - ATSAMD21 + ATWINC1500


The Feather M0 + ATWINC1500 is a pairing of chips: there's a main processor (the Feather M0 part) and the wifi processor module (the ATWINC1500 part). As such, these Feathers are more expensive than all-in-one WiFi solutions. But, as a positive, they have a really powerful and well-documented main processor that runs separately from WiFi which can give you more control.
Pros:
  • Main chip is ATSAMD21G18, which has solid official Arduino support
  • Tons of GPIO and peripherals: analog inputs, I2S audio, DMA and even analog output support
  • Proper sleep modes, can shut down WiFi module completely
  • ATWINC1500 has some low-power mode support
  • Fast and reliable WiFi
  • Good SSL support, including SSL certificate uploading for fingerprinting
  • Main processor is well-known and documented Cortex M0+ chip. WINC1500 has official support from Atmel/Microchip.
  • Can use external antenna with the uFL version
Cons:
  • More expensive than single-chip solutions
  • Firmware on the module is opaque, no way to really debug or analyze beyond the firmware provided
  • Not as popular as ESP8266 so fewer projects published
  • No current MicroPython support for the ATWINC1500

Adafruit HUZZAH32 – ESP32 Feather Board

Adafruit HUZZAH32 – ESP32 Feather Board


The ESP32 is the 'big sister' the the ESP8266. It has two cores, so that one can take care of the wireless management and data while the other one does processing
Pros:
  • High speed dual chipset has tons of processing capabilites
  • Lots of GPIO, analog inputs, two analog outputs, peripherals a-plenty!
  • WiFi, Bluetooth LE and Bluetooth Classic all in one chipset, so you can do a wide range of IoT
  • Plenty of example code support from Espressif, and they've hired skilled community members to write code, libraries, Arduino core support, and projects
  • Low power sleep support
  • MicroPython support
Cons:
  • Slow roll-out means not as many projects for this chipset yet, but it's gaining popularity
  • No detailed documentation about peripherals. Support is offered as example code.
  • As of mid-2017, core WiFi and BTLE functionality is supported but some capabilities like classic BT or dual-wireless projects are still in-the-works.

Adafruit WICED WiFi Feather - STM32F205 with Cypress WICED WiFi

Adafruit WICED WiFi Feather - STM32F205 with Cypress WICED WiFi 

The WICED Feather builds on a Broadcom (now Cypress) module, the same used in the Particle Photon. This chip combines an STM32 and BCM radio. Thanks to Thach's amazing software stack, we've taken a very complex and powerful chipset pair and made it trivially easy to get working within Arduino.
Pros:
  • Powerful ARM Cortex M3 MCU (STM32F205) running at 120MHz
  • Works directly from the Arduino IDE, generating native ARM code that runs directly on the target MCU.
  • Plenty of GPIO and powerful peripherals, including native USB support with a custom USB DFU bootloader for programming from the Arduino IDE or from the command line.
  • Fast throughput due to the efficient WiFi stack and fast multi-lane connection between the MCU and the Broadcom radio.
  • Advanced features for various encryption modes, including TLS 1.2 (required for Amazon Web Services, etc.).
Cons:
  • The WiFi stack and security libs are black box closed source solutions, meaning we have little influence over bug fixes and getting changes into the code. We're largely at the mercy of Broadcom (now Cypress) for any bug issues, and like any very complex stack there are known bugs in the security and wireless layers.
  • No access to the low level source code since it is under very strict NDA, and we had to bend over backward to implement a layer that sits on top of the NDA code so that we have something we can expose.

Bluetooth Feathers

About Bluetooth

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.

Feather nRF52

arduino_nrf52.jpg

 

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.
Pros:
  • 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 ANCSpossible 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.
Cons:
  • 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 lotbut 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 

Feather Bluefruit M0 and 32u4

 Adafruit Feather 32u4 Bluefruit LE

Adafruit Feather M0 Bluefruit LE 

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 doBluetooth 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
Pros:
  • 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
Cons:
  • 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.

Cellular Feathers

Adafruit Feather 32u4 FONA

 This section is fairly short because there's only one cellular-capable Feather at this time, the 32u4 FONA

Pros:
  • Can use (just about) anywhere in the world!
  • Surprisingly low cost of entry
  • Gain access to SMS network, phone calls, and Internet through GPRS
  • Basic geo-location capability built-in via cell-tower triangulation (not as good as GPS but good to within ~1 mile)
  • No need for a base-station or hotspot
  • ATmega32u4 is well supported chip, with native USB and full Arduino core.
Cons:
  • You'll pay per message, call, text or megabyte. A SIM card and plan is required
  • GSM is only supported by T-Mobile in the USA, and GSM will be supported until at least 2020 but after that, you'll want to upgrade to LTE
  • High power requirements, a large battery is required to handle the 2 Amp power spikes when transmitting/connecting to the network
  • Cellular connectivity can be spotty, especially when roaming. Code needs to be able to manage re-connection.
  • AT commands can be a little clunky, require care and parsing.
  • Extra large Feather to make space for the module
  • Antenna placement often trips people up: if it's too close to the main processor it can reset the Feather, so you can't make it too compact.
  • Cellular module runs directly off of LiPo battery so you cannot use only USB power

LoRa & Radio Feathers

WiFi, Bluetooth, ZigBee and Cellular are everyday wireless protocols you use every day - at home, at work, with friends. Sometimes, though, you need to leave the well-known and venture to the more exotic! The RFM69 and LoRa Feathers let you create a more flexible wireless network.
Instead of depending on a WiFi router, Bluetooth Central, ZigBee Master or Cellphone tower, LoRa and RFM69 work well in point-to-point or meshing configurations, with eye-popping ranges. They also don't need complex pairing or connection overhead, turn on the radio and transmit when you like, then turn it back off. They are the "rugged individuals" of wireless!
The trade-off is that you'll have to do a bit more work in the software to manage your packets, and re-transmission.
Pros:
  • No need for master or central router, you can use two radios or hundreds of radios, all talking to each other
  • Long range: RFM69 can go 500 meters with a basic antenna, 5Km with directional antennas and care. LoRa can go 2Km with a basic antenna, 20Km with directional antennas. (Contrast with ZigBee & WiFi's ~100m max range, and BT ~10m range)
  • Great for short burst packets, with ~10Kbps rate
  • Best for outdoor usage
  • RFM69 have low cost, LoRa are more expensive (but with longer range)
  • Adjustable transmission power
  • No link overhead, send packets without needing setup/teardown of connection
  • RFM69 has built-in encryption capability
Cons:
  • Neither RFM69 nor LoRa are standardized, or built into laptops, so you need at least two of the radios to connect to a computer
  • LoRa Feathers do not have LoRaWAN built in, must be added in software (which isn't hard)
  • Link management and re-transmission is up to the user, so there's a little more work to do!
  • LoRa radio does not have built-in encryption, must be added by hand by the user.
  • Not good for audio/photo or video bandwidths, best for small data packets.
  • Tweaking and tuning of antenna setup required to get the longest ranges.

Which One???

There's a lot of options for these radio feathers, because each chipset (32u4 and M0) has two radio types (RFM69 and LoRa) and then two frequencies (433MHz and 900MHz). That's 8 total options.
The easiest decision is what frequency you need to use. If you are in ITU "Americas" you should go with the 900MHz radio. If you are in ITU "Europe" you should go with 433MHz radio. (If you are a HAM radio licensed operator you may be able to use either, check your countries' available frequency bands, and restrictions)
If you are in a country that allows unlicensed usage of 868 MHz, pick the 900 MHz radio. Both RFM69 and LoRa are 'software tuned' - so just make sure you set the Arduino library code to 868 MHz when you upload it.
You can tell what frequency your radio is by the dot on top. Red dot means ~400 MHz, Green dot means ~900 MHz.
Then pick your radio type. The lower cost RFM69 doesn't go as far but has a lot of functionality and can do the job for most projects. LoRa has much better range, and can be used with LoRaWAN, but has additional cost. You cannot mix and match radios: RFM69 cannot 'speak' LoRa.
Both radio modules are identical shape and pinout, so we re-use the same Feather layout for both.
Finally, pick your chipset. ATmega32u4 is a well known 8-bit AVR processor, and may be more familiar to people who use the similar Arduino '328s. The ATSAMD21 M0 is a 32-bit Cortex M0, with a ton more flash and RAM, and is also supported in Arduino but is a little newer and so does not have as many years of projects and example code already. If you want to use LoRaWAN firmware, we suggest M0 Feathers since you will need to store all that extra software

 

LoRa Radio Feathers

 

Adafruit Feather 32u4 RFM96 LoRa Radio - 433MHz

Adafruit Feather 32u4 RFM96 LoRa Radio - 433MHz 

 

Adafruit Feather M0 RFM96 LoRa Radio - 433MHz

Adafruit Feather M0 RFM96 LoRa Radio - 433MHz 

 

Adafruit Feather M0 with RFM95 LoRa Radio - 900MHz

Adafruit Feather M0 with RFM95 LoRa Radio - 900MHz

 

 

Adafruit Feather 32u4 RFM69HCW Packet Radio - 868 or 915 MHz 

No comments:

Post a Comment