ESP8266 Wemos D1 Mini GPIO Expander

Table of Contents


So a few years ago, I had purchased a good number of Wemos D1 Mini modules. However, I never got around to actually doing anything with them other than giving them away every now and then.

Design Considerations

The number of GPIO on the board is woefully low, if you wanted to control a whole mess of switches, LED(s) and such. So I wanted to make a small board that the Wemos D1 Mini could interface with and allow it access to more GPIO pins.

I had intended to use the more standard MCP23017 I2C=>16GPIO. However, while browsing through the various parts available, I came across this lesser known IC the TCA6424, an I2C=>24GPIO expander. Cool. I made use of the chip in my design.

There are other bits I added to the board as well:

  • Schottky diode to provide the link for the Deep Sleep wakeup.
  • 1wire connections to make use of the Dallas 1-wire temperature sensors.
  • 2×5 header for connection to the PMSA003 air quality sensor module.
  • Onboard 3.3v VREG to provide more reliable power to the rest of the board from the USB 5V source.


So good and bad with the first produced version:

  • I2C to the TCA6424 worked fine.
  • Dallas 1wire connections were either wired wrong or the components I had on hand were slightly different. In either case, it results it in not working or burning out. 🙁
  • The PMSA003 header hasn’t been tested yet, but on the todo list.
  • ESP8266 deep sleep and wake up works reliably.
  • Flashing the Wemos D1 mini with either Espressif toolchain via PlatformIO or ESPhome works fine.


  • TCA6424ARGJR: TCA6424ARGJR Texas Instruments I/O Expansion 24 I2C SMBus QFN-32_5x5x05P RoHS

  • AMS1117-3.3: AMS1117-3.3 Slkor(SLKORMICRO Elec.) Fixed 30V 3.3V 1.4V @ 1A SOT-223 Dropout Regulators(LDO) RoHS

  • About Post Author

    Author: Wing Wong
    Husband, Father, and all around technology tinkerer. :)