Give your ItsyBitsy project a lift with the Adafruit AirLift Bitsy Add-On - a daughterboard that lets you use the powerful ESP32 as a WiFi co-processor. You probably have your favorite ItsyBitsy (like the Itsy' M4) that comes with its own set of awesome peripherals and lots of libraries. But it doesn't have WiFi built in! So lets give that chip a best friend, the ESP32. This chip can handle all the heavy lifting of connecting to a WiFi network and transferring data from a site, even if its using the latest TLS/SSL encryption (it has root certificates pre-burned in).
Having WiFi managed by a separate chip means your code is simpler, you don't have to cache socket data, or compile in & debug an SSL library. Send basic but powerful socket-based commands over 8MHz SPI for high speed data transfer.
You can use any ItsyBitsy with 3V logic (that means the ItsyBitsy 32u4 5V is not going to work), although the '32u4 Itsy will not be able to do very complex tasks or buffer a lot of data. It also works great with CircuitPython, a SAMD51/Cortex M4 minimum required since we need a bunch of RAM. All you need is an SPI bus and 2 control pins plus a 3V power supply that can provide up to 250mA during WiFi usage.
We placed an ESP32 module on a Bitsy board with a tri-state chip for MISO so you can share the SPI bus with other devices. Comes fully assembled and tested, pre-programmed with ESP32 SPI WiFi co-processor firmware that you can use in CircuitPython to use this into WiFi co-processsor over SPI + 2 pins. We also toss in some headers so you can solder it in on top of the Itsy for a compact sandwich, but you can also pick up a set of stacking headers to stack above/below your ItsyBitsy (use the Feather stacking headers and cut them down to size).
We've tested this with all our ItsyBitsy and it should work just fine with them except the ItsyBitsy 32u4 5V (because the voltage is not right). For use in Arduino, the ItsyBitsy '32u4 3V can do basic connectivity and data transfer but they do not have a lot of RAM so we don't recommend them - use the M0, M4 or similar, for best results! For CircuitPython use, an ItsyBitsy M4 is required - the M0 series does not have enough RAM in CircuitPython.