The Funhouse has a display and so many great features. It's packed with buttons, lights, connectors and sensors. Time to take a tour!

TFT Display and Display Connector

Front and center is a 1.54" ST7789-based IPS Wide Angle TFT Display with 240x240 pixels. Each pixel is 16-bit full color.

On the back, the display cable goes through the board to the display connector on the back.


  • USB C port - This is used for both powering and programming the board. You can power it with any USB C cable and will request 5V from a USB C PD.
  • On/Off switch - This switch controls power to the board. If you plug in your board and nothing happens, make sure the switch is flipped to "ON"!

ESP32-S2 WiFi Module

The ESP32-S2 WROVER module.

The ESP32-S2 is a highly-integrated, low-power, 2.4 GHz Wi-Fi System-on-Chip (SoC) solution that now has built-in native USB as well as some other interesting new technologies like Time of Flight distance measurements. With its state-of-the-art power and RF performance, this SoC is an ideal choice for a wide variety of application scenarios relating to the Internet of Things (IoT), wearable electronics, and smart homes.

Please note, this is a single-core 240 MHz chip, so it won't be as fast as ESP32's with dual-core. Also, there is no Bluetooth support. However, we are super excited about the ESP32-S2's native USB which unlocks a lot of capabilities for advanced interfacing! This WROVER module comes with 4 MB flash and 2 MB PSRAM.

The 4 MB of flash is inside the module and is used for both program firmware and filesystem storage. For example, in CircuitPython, we have 3 MB set aside for program firmware (this includes two OTA option spots as well) and a 1MB section for CircuitPython scripts and files.

DotStar LEDs and Red LED

DotStar LEDs and red LED.

  • On the front of the board, along the top, are five addressable RGB DotStar LEDs, so you can light up the display with any color or pattern. You can use DOTSTAR_CLOCK or GPIO15 for the Clock pin and DOTSTAR_DATA or GPIO14 for the Data pin to control the DotStars.
  • Below the display, and slightly to the right, is a red LED positioned at the top right of the FunHouse door. It is user-controllable for blinky needs. You can blink this at any time. This LED is attached to LED or GPIO37.


STEMMA QT - This JST SH 4-pin connector breaks out I2C (SCL, SDA, 3.3V, GND). It allows you to connect to various breakouts and sensors with STEMMA QT connectors or to other things using assorted associated accessories.

In CircuitPython, you can use the STEMMA connector with board.SCL and board.SDA, or board.STEMMA_I2C().

Works great with any STEMMA QT or Qwiic sensor/device

You can also use it with Grove I2C devices thanks to this handy cable

Digital/Analog Connectors

On the side are three connectors labeled A0, A1, and A2. These are STEMMA 3 pin JST digital or analog connectors for attaching NeoPixels, speakers, servos or relays. These pins can be analog inputs or digital I/O. They are connected to GPIO17 for A0, GPIO2 for A1, and GPIO1 for A2.

All three connectors have protection 1K resistors + 3.6V zener diodes so you can drive an LED directly from the output. The maximum current from these connectors is 200mA.

All three ports are 'true' analog outputs and all three can be used for PWM as well as analog inputs. The maximum input voltage is 2.6V, after which the zener diodes will kick in to drain excess voltage.

The power output is 5V by default, but a jumper can be cut/soldered to change it to 3.3V.

Speaker and Sensors

  • Towards the middle of the board, at the bottom right corner of the display, is a speaker/buzzer labeled with a musical note. This includes a mini class D amplifier on DAC output GPIO42 and can play tones or lo-fi audio clips.
  • In the bottom right corner of the board, on the left side of the cutout region, is a DPS310 pressure sensor, that can be used to sense the barometric pressure It is connected to the I2C port and available on I2C address 0x77.
  • Also in the bottom right corner of the board, on the right side of the cutout region, is an AHT20 Humidity and Temperature sensor, that can be used to sense the humidity and temperature. It is connected to the I2C port and available on I2C address 0x38.
  • Below the display, and slightly to the left, is a front-facing light sensor that is positioned at the top left of the FunHouse door. This is connected to GPIO18.

Note: The light sensor is influenced by the display's backlight, use some tape to block the light if needed. More info, and a great chart here.

Reset and Boot Buttons

  • Reset button - The reset button is on the front below the display and to the right of the FunHouse Door.
  • Boot button - The boot button is on the back and situated between the Digital/Analog Ports and the ESP32-S2 module. This is connected to BOOT0 and can be used to put the board into ROM bootloader mode. To enter ROM bootloader mode, hold down DFU button while clicking reset button mentioned above. When in the ROM bootloader, you can upload code and query the chip using esptool.

User Buttons

On the front of the board, to the left of the display, there are three user-controllable buttons labeled arrows for the top and bottom buttons. The buttons are on BUTTON_DOWN or GPIO3, BUTTON_SELECT or GPIO4, and BUTTON_UP or GPIO5. They can be used to wake up the ESP32-S2 from deep-sleep, or however you want to use them.

There are no pull-ups on board, use internal pulldowns for these pins - when the buttons are pressed the IO pin labeled is set to HIGH

Capacitive Touch Pads and Slider

On the front of the board, to the left of the display and along the top, there are three capacitive touch pads with ravens on top labeled CT6, CT7, and CT8. The pads are on CAP6 or GPIO6, CAP7 or GPIO7, and CAP8 or GPIO8. They can be used like buttons.

On the right side of the board, there is a capacitive touch slider made up of 5 capacitive touch pads. It has a tree on top. The pads are on CAP9 or GPIO9, CAP10 or GPIO10, CAP11 or GPIO11, CAP12 or GPIO12, and CAP13 or GPIO13. They can be used as separate buttons or a positional slider.

PIR Sensor Port

On the front of the FunHouse is a location to add the PIR sensor. It is intended to be inserted through the front and into the connector on the back, but it could also work from the back. When inserting, make sure the + and - symbols match up with the PIR sensor's markings or it will short out the board.

The PIR sensor is connected to PIR_SENSE or GPIO16.

This guide was first published on Apr 20, 2021. It was last updated on 2023-12-05 17:57:57 -0500.

This page (Pinouts) was last updated on Apr 14, 2021.

Text editor powered by tinymce.