ProtoSupplies.com has introduced a new way to add wireless capability to the Teensy 4.x products by stacking an ESP32-C6 on top of the Teensy. After all, two brains are better than one – right?
Conceptually, this approach is the same as having a baseboard with both a Teensy and ESP32 on it that are connected together over a serial link as I do with some of my baseboards, but physically it is condensed down to just the Teensy footprint which can be handy for some applications.
These stacks come in a number of different configurations.
- Teensy 4.0 + ESP32-C6 stack
- Teensy 4.1NE + ESP32-C6 Stack
- Teensy 4.1NE includes 8MB PSRAM / 16MB Flash upgrade
- Teensy 4.1NE includes 16MB PSRAM upgrade
- Teensy 4.1NE includes 32MB PSRAM upgrade
- Teensy 4.1NE includes 8MB PSRAM / 256MB (2Gbit) Flash upgrade
- Teensy 4.1NE includes 16MB PSRAM / 256MB (2Gbit) Flash upgrade

This setup uses the Seeed Studio XAIO ESP32-C6 module. It was chosen for a few reasons:
- Very small 14-pin footprint
- Good Wi-Fi 6 and Bluetooth capability
- Built-in support for Zigbee and Thread for home automation applications
- Overall excellent build quality and manufacturer documentation
- Software support for easily switching between internal or external antenna
- None of the edge pins have boot functionality that could cause issues with the Teensy pins at boot time.
- Seeed XAIO ESP32-C6 Wiki
All pins are connected between the Teensy and ESP32 except for the 3.3V and the Teensy GND / D0 pin on the ESP32.

The ESP32 Serial1 pins are remapped in software to line up with the Teensy Serial5 pins to establish a high-speed serial link. 4Mbps has been tested and found to be very reliable. Theoretical maximum should be 5Mbps based on the ESP32 spec.
Note that the ESP32 Serial1 pins can just as easily be remapped to line up with Teensy Serial1 if you want to use the Teensy pins 20 & 21 (Serial5) for other purposes.
The rest of the ESP32 pins come up as inputs, but they are explicitly set as inputs and disconnected from the internal logic in software just to be sure there is no contention with the teensy pins. The final setup only consumes 2 of the Teensy pins (Serial5 or Serial1).
From the Teensy perspective, it can pretty much ignore the monkey on its back. Assuming it wants to be able to talk to it, then it needs to setup Serial5 at the same comm speed as the ESP32 and decide on a common communication protocol to talk to it.
Of course, the role of some of the shared pins could be reversed with the Teensy pins set as inputs and the corresponding ESP32 pins used to drive something like an I2C display directly. One nice feature of the ESP32 is that almost any pin functionality can be remapped to almost any physical pin as we did with the Serial1.
This setup could be done as a DIY project for those so inclined and of course we are also offering compete and tested assemblies as well for not much more than the retail price of the parts.
Click the link to go to the ESP32 stacks page: https://protosupplies.com/product/teensy4-esp32-stacks/



