An expansion board adding support for the Grove solderless connector system, a WiFi radio, and LiPo battery charging circuitry to Adafruit ItsyBitsy Development Boards.
Compatible with all ItsyBitsy boards, the Bitsy Expander is available in two distinct flavors. The silkscreens on each flavor are specifically tailored to either the ItsyBitsy M4 Express or the ItsyBitsy RP2040.
Jump ahead:
- 12 Grove Headers
- 5 Digital Headers with overlapping (shingled) pins: D2, D3, D4, D7, D13
- 1 Digital Header with exclusive pins: SERIAL1
- 3 Analog Headers with exclusive pins: A0, A2, A4
- 3 I²C Headers
- ESP32-WROOM Co-Processor for WiFi and BLE
- 1 JST SH 4-pin connector for Qwiic and STEMMA QT components (I²C)
- 1 JST PH 2-pin connector for 3.7V LiPo Batteries (chargeable via ItsyBitsy's USB port)
- 1 Logic-shifted output (allows driving components requiring 5V logic while powered via USB)
NOTE: In shingled pin headers, each header's second pin is shared with the first pin in the header above it. Therefore, using one disables the other. For instance, using pins D3 and D4 in the D3-labeled header disallows the use of D4 in the D4-labeled header.
Additional resources and pinout diagrams are available here.
- 12 Grove Headers
- 5 Digital Headers with overlapping (shingled) pins: D2, D3, D4, D7, D13
- 1 Digital Header with exclusive pins: UART0
- 3 Analog Headers with exclusive pins: A0, A2, A3 (A2 and A3 contain digital pins for their second pins)
- 3 I²C Headers
- ESP32-WROOM Co-Processor for WiFi and BLE
- 1 JST SH 4-pin connector for Qwiic and STEMMA QT components (I²C)
- 1 JST PH 2-pin connector for 3.7V LiPo Batteries (chargeable via ItsyBitsy's USB port)
- 1 Logic-shifted output (allows driving components requiring 5V logic while powered via USB)
NOTE: In shingled pin headers, each header's second pin is shared with the first pin in the header above it. Therefore, using one disables the other. For instance, using pins D3 and D4 in the D3-labeled header disallows the use of D4 in the D4-labeled header.
Additional resources and pinout diagrams are available here.
The Bitsy Expander uses an ESP32 WROOM module to provide WiFi functionality to the microcontroller using Adafruit's fork of the Arduino NINA-W102 firmware. In CircuitPython, this library also allows for the use of Bluetooth Low Energy (BLE).
To use the module with Circuitpython, use the esp32spi library. For Arduino, Adafruit's forked WiFiNINA library is required.
The ESP32 module is connected as follows:
ESP32 Pin | ItsyBitsy Pin |
---|---|
Chip Select (CS) | D9 |
Busy (BSY) | D11 |
Reset (RST) | D12 |
SPI Clock (SCK) | SCK |
SPI MISO | MISO |
SPI MOSI | MOSI |
The underside of the Bitsy Expander features a number of solder jumpers:
These pins are used to connect the ItsyBitsy board to the ESP32 module on the Expander. If WiFi functionality is not needed but additional digital pins are required, these jumpers can be used to disable the WiFi module and make additional pins available in the double-row header on the upper side of the board. The traces between the middle and left pads must be severed before soldering a jumper in place between the middle and the right pads to do so.
These solder jumpers are normally open. If the ESP32 module requires a firmware update, these jumpers may be used to enable the ItsyBitsy to serve as a programming interface for the ESP32 module. Refer to Adafruit's excellent tutorial on flashing firmware onto the ESP32.
The default battery charging current is 100mA. A faster, 500mA charging mode is available for batteries that support it. It can be enabled by closing the solder jumper.
The easiest way to identify which Bitsy Expander flavor you own is checking the label on the back of the board. RP2040 or M4 stated on the label indicates the flavor of your Expander. Older M4 Expanders have an empty label (and are also recognizable by the lack of an I²C header at the top).
The ItsyBitsy M4 Express features one (RESET) button. (So do most other ItsyBitsy Development boards, so always verify with the silkscreen.) The ItsyBitsy RP2040 features two (BOOT, RESET) buttons.
In principle, yes. The silkscreen on either flavor is specifically designed for either the ItsyBitsy M4 Express or the ItsyBitsy RP2040, respectively. Pinouts differ only slightly between ItsyBitsy Development boards, however. The M4 Expander, for instance, has also been used successfully with the ItsyBitsy M0 Express in the past. This repository includes a number of pinout diagrams for different use-cases.
Version | Comment | Known Issues | Flavors |
---|---|---|---|
1.0 | Initial version | Using pin D13 to drive the ESP Chip Select (CS) causes interference between the microcontroller's internal LED and the pull-up resistor | M4 Express |
1.1 | – Uses pin D9 instead of D13 to drive the ESP Chip Select to prevent interference – Adds a test point to the expander's underside for VBAT accessibility |
Only two Grove headers provide direct access to Analog pins of used with RP2040 | M4 Express, RP2040 |
2.0 | – Adds a top-edge JST SH 4-pin connector for Qwiic and STEMMA QT compatibility – Repositions pin A3 for better RP2040 analog pin access – Adds "NC" (not connected) labels to double-row header pins that are not normally broken out |
Tilde (~) marks inaccurately represent freely configurable PWM pins on RP2040. Note: all pins support PWM, subject to certain limitations. | RP2040 |
2.1 | Silkscreen update to accurately depict a selection of freely configurable PWM pins on RP2040, preventing configuration conflicts among them | RP2040 | |
3.0 | – Reinstates original pin layout (identical to V1) for sequential analog pin placement on M4 Express – Maintains JST SH-4 connector and VBAT test point inherited from previous versions |
M4 Express |
This is the sibling of the Nano Expander, a Grove expansion board for Arduino Nano 33 IoT.
This work is licensed under a Creative Commons Attribution 4.0 International License.