For the last decade or so I've been making projects with Arduinos and compatibles. And, an Arduino is a great way to start a project, but after many years I started seeing the same 'issues' crop up:
- Arduinos are big - sure they're smaller than a computer but they're still chunky enough to make them not-so-wearable or hand-held
- To do stuff, you can add shields, but stacking shields get really tall to get any significant technology stacked on
- There's no wireless technology built in: now that WiFi, BTLE and cellular is ubiquitous, just about any project can take advantage of a wireless connection!
- Making an Arduino portable is hard - you need a 7-12VDC power supply, not a common rechargeable Lithium Polymer battery, and no built-in recharging
There are a few boards that tried to address these issues, but none of them really seemed to 'scratch that itch'
- Multi-stack compatibles like Tinyduino are small, and extensible, but you have to stack 4 boards just to get the 'basics' going
- Small Arduino-compatibles like the Pro Mini are inexpensive and small, but don't have USB built in so you need a separate cable to program them
- The Fio has wireless add-on ability, and battery charging, but a non-standard pinout and requires expensive XBee modules.
- Click boards are close but don't have an Arduino compatible baseboard.
It was about when KTOWN had finished designing the SPI Bluefruit Friend when we kept seeing crowdfunding campaigns that had an Arduino-compatible chip and a Bluetooth LE interface. We thought "it would be really cool and useful to have something that was breadboard friendly, with an Atmega32u4 so it has built in USB, and a Bluefruit module. We've already got the library code, it'll be an all-in-one!"
So we designed the Bluefruit Micro
We designed it so you could use our little LiPoly backpack, soldered on top, to add LiPo power and recharging:
The Bluefruit Micro was incredibly popular. So much so that I realized we should probably do something better. So I shrank the chip from a QFP to a QFN and stuck the battery connector off the side:
as you can see, not much in the design really changed, just some parts got squished down and pushed to the right to make room for the LiPoly charge and connector.
I settled on a pinout configuration that exposed all the power pins, analog inputs, GPIO, I2C, SPI and UART. Once that was done I tried making a few different 'flavors' such as with a micro SD card holder to make a datalogger:
Or just a prototyping area:
A new chip in the market at the time was the ATSAMD21, used in the Arduino Zero. This chip is about the same price as the ATmega32u4 but has 8x as much FLASH, 8x as much RAM, is a full 32 bit ARM Cortex M0+, runs 6 times faster and has a bazillion more peripherals including a DAC! Feather turned out to be a great way to make a board using this nice new chip. So I designed versions of Adalogger, Basic and Bluefruit to match!
Things were looking pretty good, I had a favorable view of the size, pinouts, and capabilities. So I started thinking about 'add ons' - little shields that could add capability. For example, I knew I'd need something to add GPS capability. So I designed a board that connected to the UART pins and would fit in the same shape as the feather. That managed to fit, and even had room for a battery backup:
Then, I took the most popular Arduino shield we have, the motor shield, and squeezed it down to a Wing. That fit fine too!
I tried designing a couple more FeatherWings, using I2C, SPI, GPIO etc. Like this OLED wing:
By this time I had maybe a dozen or so Feathers and Wings. So far I'd only been using the ATmega32u4 and ATSAMD21. These chipsets are powerful and have plenty of capability. But to make the ecosystem really work I needed to make the most 'difficult' and 'minimal' Feather, to verify all my Wing designs would still work
Once I had a prototype of this design I sort of realized that the basic idea could be extended to other modules, not just the nRF51 Bluefruit module. For example, at the time, the ESP8266 was gaining in popularity, and there was a module that had the chip, flash memory and antenna. We already had a breakout board but it didn't have a USB interface, or battery charger. Adding a USB to serial converter and a lipoly charger would make the board a little bigger, and with some arrangement, I fit everything in the same 0.9" by 2.0"
Since the ESP8266 was so constrained: only one 1.0V ADC, few pins, odd pullups and pulldowns, it was a perfect test bed for all the Wings I could create. I started cross-testing all the Wings with this chip. If I could get them working with this Feather and the 32u4 and the SAMD21 that covered 3 different architectures (Tensilica, 8-bit AVR, 32-bit ARM) for good functional coverage.
From then on, it was easy going. I just designed a Feather or Wing every single week for a full year. I always knew what I'd work on next because it was just a Feather or accessory. Each new Wing or Feather gets tested against all the other accessories to make sure they all work. It's a little tedious but that's the great thing about Feather, is the full cross-compatibility. Now, every time a new chip comes out, I don't have to "start all over from scratch". For example, designing the ESP32 Feather was a little constraining to make it all fit but once it fit, I knew that I didn't have to make an OLED add-on, terminal block add-on, LED matrix add-on, etc.
As of this writing, May 2017, there are 52 Wings and 26 main boards. Other companies and customers are also designing their own compatibles.
I fully expect to have 100 Wings and 50 main boards in the next year or two - Feather has been a great success!