Around 2012, low cost WiFi embedded modules started appearing to makers. At first they were $20 each but the introduction of the TI CC3000 broke the $10/ea barrier (in large qty) and so embedded boards with WiFi started coming on the market. Then in 2014, Espressif released a $2 WiFi-inclusive microcontroller called the ESP8266 and competition heated up. Now there's a lot of WiFi options available for makers to create IoT projects!
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 can create 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.
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.
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
The ESP32 is the 'big sister' to 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 capabilities
- 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
The ESP32 v2 is the successor to the original ESP32. It has all the power of the original ESP32 plus extras. It is available with either a built-in antenna or a w.FL connector for an external antenna.
Pros:
- Compared to the original Feather with 4 MB Flash and no PSRAM, the V2 has 8 MB Flash and 2 MB PSRAM
- Additional user button tactile switch on input pin 38
- Additional NeoPixel mini RGB LED with controllable power pin
- Additional STEMMA QT port for plug and play I2C connections
- USB Type C port instead of Micro B
- Designed for low power usage
- Upgraded the USB to serial converter from CP2102 to CH9102F which has no issues with uploading at 921600 bps for speedy firmware loading
Cons:
- The pin numbers for the I2C port (SDA, SCL), hardware UART (RX, TX), and SPI (SCK, MOSI, MISO) have changed. If your code has hardcoded use for those pins, you'll want to replace them either with the new numbers or change the code to use the 'pretty' names like SDA or SCK.
- The 'corner' pin next to TX has changed from pin 21 to 37. This pin is not used in any FeatherWings because it's considered an 'extra pin'. It's also changed from a GPIO to input-only.
In addition to WiFi, the ESP32-S2 includes native USB built in, which means it can run CircuitPython. There is an on-board STEMMA-QT connector and board options include a basic feather, one with the BME280 for temperature measurement, and one with a TFT display so you don't need a separate wing for that.
Pros:
- The ESP32-S2 now has native USB, so it can act like a keyboard/mouse, MIDI device, or disk drive
- It comes with 4 MByte of Flash and 2 MByte of PSRAM so you can have huge data buffers
- It includes both Reset and DFU (BOOT0) buttons to get into the ROM bootloader
- Serial debug output pins
- STEMMA QT connector for I2C devices, with switchable power, so you can go into low power mode.
- Low Power friendly! In deep sleep mode we can get down to 80~100uA of current draw from the Lipoly connection.
- Works with Arduino or CircuitPython
Cons:
- Feather ESP32-S2 has a single-core 240 MHz chip, so it won't be as fast as ESP32's with dual-core
- No Bluetooth support
The ESP32-S3 brings back the second core, that the ESP32-S2 was missing, so it's faster. Along with the second core, Bluetooth Low Energy support was added.
Pros:
- The ESP32-S3 has native USB, so it can act like a keyboard/mouse, MIDI device, or disk drive
- The ESP32-S3 adds back the Dual Cores like the ESP32 has, so the speed is comparable.
- It includes Bluetooth LE support.
- It comes with 8 MByte of flash, which is double that of the ESP32-S2
- It includes both Reset and DFU (BOOT0) buttons to get into the ROM bootloader
- Serial debug output pins
- STEMMA QT connector for I2C devices, with switchable power, so you can go into low power mode.
- Low Power friendly! In deep sleep mode we can get down to 80~100uA of current draw from the Lipoly connection.
- Works with Arduino or CircuitPython
Cons:
- No PSRAM, so it can't handle large buffers
- No Bluetooth Classic support, only Bluetooth LE.
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.
Text editor powered by tinymce.