
FunHouse - WiFi Home Automation Development Board by Adafruit
Home is where the heart is…it’s also where all we keep all our electronic bits. So why not wire it up with sensors and actuators to turn our house into an electronic wonderland. Whether it’s tracking the environmental temperature and humidity in your laundry room, or notifying you when someone is detected in the kitchen, to sensing when a window was left open, or logging when your cat leaves through the pet door, this board is designed to make it way easy to make WiFi-connected home automation projects.
The main processor is the ESP32-S2, which has the advantage of the low cost and power of the ESP32 with the flexibility of CircuitPython support thanks to native USB support. There’s also Arduino support for this chip, and many existing ESP32 projects seem to run as-is. Note this chip does not have BLE support, but for WiFi projects its great. You can use it to connect to IoT services or just the Internet in general, with SSL support and this module has plenty of PSRAM for any kind of data processing.
The board is designed to make it easy to wire up sensors with little or no soldering. There are built in sensors for light, pressure, humidity and temperature sensors. Three JST PH plugs allow for quick connection of STEMMA boards that use digital or analog I/O, and there’s a STEMMA QT port for any I2C devices.
Technical details
- ESP32-S2 240 MHz Tensilica processor - the next generation of ESP32, now with native USB so it can act like a keyboard/mouse, MIDI device, disk drive, etc!
- WROVER module has FCC/CE certification and comes with 4 MB of Flash and 2 MB of PSRAM - you can have huge data buffers
- 1.54” Color TFT display with 240x240 pixels. This petite display is one of our favorites, with SPI interface and a controllable backlight.
- USB C power and data connector
- Five mini RGB DotStar LEDs on the top, for animations or easily-visible notification
- 3 buttons can be used to wake up the ESP32 from deep-sleep, or select different modes
- DPS310 barometric pressure and temperature sensor
- AHT20 relative humidity and temperature sensor
- Plug in socket for Mini PIR sensor (not included)
- Front facing light sensor
- Speaker/Buzzer can play tones and beeps for audible notification.
- STEMMA QT port for attaching all sorts of I2C devices
- 3 STEMMA 3 pin JST connectors for attaching NeoPixels, speakers, servos or relays.
- 3 capacitive touch pads and one capacitive touch slider with 5 elements.
- On/Off switch
- Boot and Reset buttons for re-programming
Purchase:
Contribute
Have some info to add for this board? Edit the source for this page here.
CircuitPython 9.2.8
This is the latest stable release of CircuitPython that will work with the FunHouse - WiFi Home Automation Development Board. Use this release if you are new to CircuitPython.
Modules included in this download
_asyncio _pixelmap adafruit_bus_device adafruit_pixelbuf aesio alarm analogbufio analogio array atexit audiobusio audiocore audioio audiomixer audiomp3 binascii bitbangio bitmaptools board builtins builtins.pow3 busdisplay busio busio.SPI busio.UART canio codeop collections countio digitalio displayio errno espidf espnow espulp fontio fourwire frequencyio getpass gifio hashlib i2cdisplaybus io ipaddress jpegio json keypad keypad.KeyMatrix keypad.Keys keypad.ShiftRegisterKeys keypad_demux keypad_demux.DemuxKeyMatrix locale math mdns memorymap microcontroller msgpack neopixel_write nvm onewireio os os.getenv pulseio pwmio rainbowio random re rotaryio rtc select socketpool socketpool.socketpool.AF_INET6 ssl storage struct supervisor synthio sys terminalio tilepalettemapper time touchio traceback ulab usb_cdc usb_hid usb_midi vectorio warnings watchdog wifi zlibIncluded frozen(?) modules: neopixel
Features: Wi-Fi, STEMMA QT/QWIIC, Speaker, Display, USB-C
CircuitPython 10.0.0-beta.0
This is the latest development release of CircuitPython that will work with the FunHouse - WiFi Home Automation Development Board.
Alpha development releases are early releases. They are unfinished, are likely to have bugs, and the features they provide may change. Beta releases may have some bugs and unfinished features, but should be suitable for many uses. A Release Candidate (rc) release is considered done and will become the next stable release, assuming no further issues are found.
Please try alpha, beta, and rc releases if you are able. Your testing is invaluable: it helps us uncover and find issues quickly.
Release Notes for 10.0.0-beta.0
Modules included in this download
_asyncio _eve _pixelmap adafruit_bus_device adafruit_pixelbuf aesio alarm analogbufio analogio array atexit audiobusio audiocore audiomixer audiomp3 binascii bitbangio bitmapfilter bitmaptools board builtins builtins.pow3 busdisplay busio busio.SPI busio.UART canio codeop collections countio digitalio displayio errno espidf espnow espulp fontio fourwire frequencyio getpass gifio hashlib i2cdisplaybus io ipaddress jpegio json keypad keypad.KeyMatrix keypad.Keys keypad.ShiftRegisterKeys keypad_demux keypad_demux.DemuxKeyMatrix locale lvfontio math mdns memorymap microcontroller msgpack neopixel_write nvm onewireio os os.getenv pulseio pwmio rainbowio random re rotaryio rtc select socketpool socketpool.socketpool.AF_INET6 ssl storage struct supervisor synthio sys terminalio tilepalettemapper time touchio traceback ulab usb_cdc usb_hid usb_midi vectorio warnings watchdog wifi zlibIncluded frozen(?) modules: neopixel
Features: Wi-Fi, STEMMA QT/QWIIC, Speaker, Display, USB-C
Absolute Newest
Every time we commit new code to CircuitPython we automatically build binaries for each board and language. The binaries are stored on Amazon S3, organized by board, and then by language. These releases are even newer than the development release listed above. Try them if you want the absolute latest and are feeling daring or want to see if a problem has been fixed.
Previous Versions of CircuitPython
All previous releases of CircuitPython are available for download from Amazon S3 through the button below. For very old releases, look in the OLD/ folder for each board. Release notes for each release are available at GitHub button below.
Older releases are useful for testing if you something appears to be broken in a newer release but used to work, or if you have older code that depends on features only available in an older release. Otherwise we recommend using the latest stable release.
Install, Repair, or Update UF2 Bootloader
Latest version: 0.35.0
The UF2 bootloader allows you to load CircuitPython, MakeCode, and Arduino programs. The bootloader itself is not CircuitPython. On Espressif boards, the UF2 bootloader is called TinyUF2. If the TinyUF2 bootloader is installed, you can check its version by looking in the INFO_UF2.TXT file when the BOOT drive is visible (FTHRS2BOOT, MAGTAGBOOT, HOUSEBOOT, etc.)
In general, it is not necessary to update TinyUF2 at every version change. You can read the release notes on GitHub to see what has been changed. Update if you've been told about a necessary change or a bug fix.
Note: CircuitPython 10 and later, on Espressif boards with 4MB flash, requires TinyUF2 0.33.0 or later. The flash partition layout has changed (details).
If TinyUF2 has never been installed on the board, or it was removed by erasing or overwriting the flash, it must be installed in order to flash .uf2 files onto the board. But you don't need the TinyUF2 bootloader to upload .bin files. They can be uploaded using the built-in ROM bootloader, with the Adafruit WebSerial ESPTool or esptool.py.
Warning: Installing the TinyUF2 bootloader will erase everything that was previously on the board. Save any files in CIRCUITPY for which you don't have backups.
There are several ways to install the TinyUF2 bootloader on your board. Check to see if your board's manufacturer provides specific instructions. For Adafruit boards, consult the Factory Reset page in the Learn Guide for your particular board (example).
The easiest way to install TinyUF2 is to use the OPEN INSTALLER button (see above, in the CiruitPython sections). You can also use the Adafruit WebSerial ESPTool, or esptool.py, as described in the Factory Reset page.
- Plug board into a USB port on your computer using a data/sync cable. Make sure it is the only board plugged in, and that a charge-only cable is not being used.
- Press and hold the BOOT button (sometimes marked "B0").
- Press and release the RESET button (sometimes marked "RST").
- Release the BOOT button. This starts the ROM bootloader.
After installing TinyUF2, enter the UF2 bootloader by double-clicking the RESET button. On boards with an RGB status LED, you usually tap reset once, wait for the LED to turn purple, and tap again before the purple goes away. On other boards, consult the board documentation.
If you are updating TinyUF2, look at INFO_UF2.TXT to verify the new version of TinyUF2, by checking the version number. Then you will need to copy the CircuitPython.uf2 file to the BOOT drive.