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.
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.