D1 Mini Expander Shield

Add 16 extra GPIO pins to your ESP8266.

Similar projects worth following
Starting from
deshipu has 296 orders / 19reviews
Ships from Switzerland

The ESP8266 is a great and cheap chip, but it doesn't have many GPIO pins available. Half of them is taken up by the flash memory chip, and half of the remaining pins have additional function on boot, which makes them tricky to use. So you connect your SPI display, and some sensors over I2C, and you are left with two pins only, and they have to be pulled up on boot. What about all those buttons you need to add to your project? Well, sure, you could use the #D1 Mini X-Pad Shield if you just want the buttons, but this is a much more versatile solution.

With this shield you get additional 16 GPIO pins available over the I2C bus. And you can stack up to 8 such shields, for the total of 128 pins! They can work as input (with weak pull-ups, so perfect for buttons) or output, and they even have interrupts. Sure, they are slower than the built-in pins, and you can't do PWM on them (for that try #Servo Breakout for WeMos D1 Mini), but they can let you free up some of the internal pins for that.

Gerber files

Zip Archive - 70.28 kB - 03/09/2019 at 09:10


  • Now Also in SOP

    deʃhipu03/26/2019 at 12:48 0 comments

    The PCBs for the larger chips just arrived (just one day after the smaller chips arrived, that was a close race), so now I have both versions:

    The big one is slightly faster to solder, but has the jumpers and interrupt pins on the bottom.

  • Finally

    deʃhipu03/25/2019 at 09:39 0 comments

  • Third Time is the Charm

    deʃhipu03/14/2019 at 16:21 0 comments

    I stopped believing that I am somehow competent enough to order the right footprint of the chips, and I decided to simply redesign the PCB to accommodate the bigger chips. When life gives you lemons...

    It just barely fits, together with the pullups and a filter cap. I had to move the address jumpers to the bottom, though:

    Now working on fitting as many as I can on a 10x10cm board:

  • Running Gag

    deʃhipu03/14/2019 at 13:14 9 comments

    This is really annoying...

  • Mass Production

    deʃhipu03/08/2019 at 17:36 6 comments

    I feel like this could actually be sold on Tindie, so I added this board to an order I was making anyways. The boards arrived this week, and today I decided it's time to play a bit of a sweat shop and assemble a couple of them. However, this is the only MCP23017 chip I could find in my drawer:

    I think it may be the wrong footprint for it...

  • That Feeling When...

    deʃhipu01/19/2018 at 23:34 4 comments re-discover your unfinished project by looking through order history at OSHPark, then search for the PCBs that must have arrived three months ago, then assemble and test it, and then, when you go to document it at HaD, you find that you already did all that once.

  • First Prototype

    deʃhipu10/20/2017 at 13:10 0 comments

    The chips arrived as expected, and I assembled the first prototype. It responds over I²C, so everything seems fine. Now I just need the library.

  • Got PCBs, Waiting on Chips

    deʃhipu10/19/2017 at 10:37 0 comments

    The prototype PCBs from OSHPark arrived today, but I'm still waiting for the chips. However, I just got an e-mail notification that the package with the chips arrived in my country, so they should get here tomorrow. Of course I will also need a library for this, but it should be trivial.

View all 8 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates