D1 Mini Matrix Deluxe Shields

Shields for the D1 Mini ESP8266 board using the ISSI chips

Similar projects worth following

When I ordered the matrices for the #D1 Mini Matrix Shield project, I found a number of cool matrices that couldn't be driven by the venerable HT16K33 chip that I used there. I went to search for a chip that could handle them, and was pointed to the IS31FL37* family of chips produced by ISSI.

Those chips are interesting for a variety of reasons. There are versions for charlieplexed displays, and for driving two matrices connected in reverse to each other, and for various sizes of regular matrices. More importantly, they can control the brigtness (or color) of each LED individually, and they often have interesting additional effects built-in, such as automatic animations, per-pixel blinking and "breathing", and some can even modulate the brightness according to music or other analog input. They are also much more modern -- they come in very small QFN packages and operate on 3.3V logic.

I requested some samples of those chips, and I will try to design and build some matrix shields using them. I also plan to do some more interesting things with them, but we will see how that works when I actually try.

Gerber files for the 8x8 monochrome matrix breakout board.

Zip Archive - 44.06 kB - 05/09/2017 at 21:28



Fritzing design for the 8x8 monochrome matrix breakout board.

x-fritzing-fz - 706.93 kB - 05/09/2017 at 21:26



Fritzing design for the 8x8 monochrome matrix shield.

x-fritzing-fz - 857.42 kB - 05/05/2017 at 12:54


Gerber files for the 8x8 monochrome matrix shield.

Zip Archive - 32.87 kB - 05/05/2017 at 12:53


  • Grayscale 14x11 Matrix

    Radomir Dopieralski5 days ago 0 comments

    The IS31FL3733 has double the pins of IS31FL3736, so you get double fun! This board was also finished and assembled for some time, but I couldn't get it to work. Today I checked dug it out to try the capacitor trick, but it already has the decoupling capacitor. But once I had it out, I did some more experimenting and sure enough, I had the SDA and SCL pins swapped on it!

    This board was pretty hard to route -- it's a lot of pins, and it's not like they are arranged with any logic. In the end I couldn't find a way to route the last 4 traces, so I just made two 4-pin headers, and then connected them with wires. It works, and that's what counts.

    The colors in the photos are of course all wrong -- because the camera sees colors differently than human eye. In reality all the pixels are red, with different brightness -- not yellow.

    I guess now I need to write the code for playing a movie on this, or at least some animated gifs...

  • Grayscale 7x11 Matrix

    Radomir Dopieralski5 days ago 1 comment

    The third chip that I got from ISSI is IS31FL3736. It's very similar to the IS31FL3733, except it only drives up to 8×12 LEDs. That's perfect for those 7×11 LED matrices that I got!

    I actually designed that shield a while ago, and assembled it when it came. But it didn't work, at least not reliably -- the chip would sometimes be visible on the I²C bus, and sometimes not, and sometimes it would start behaving weird after some time... I put it all to my poor soldering skills and the really tiny QFN package, and gave up on it for a while.

    Yesterday, after debugging some problems with the IS31FL3733 on the #PewPew FeatherWing, which were solved by adding a decoupling capacitor across the power, I decided to dig out the old board and try adding a decoupling capacitor to it too. And what do you know, it works perfectly fine after all!

    The PCB is here:

    And the updated MicroPython library for driving it:

  • Smaller 8x8 Matrix Breakout

    Radomir Dopieralski05/09/2017 at 21:24 1 comment

    The shields are nice, but not everybody has a D1 Mini, and not everybody wants to put that matrix on top of their dev board. Sure, you can just use wires for the shield, but with such a small and convenient chip, it makes sense to make an even smaller breakout board -- one that you could tile easily. So I made one that is exactly the size of the matrix:

    I soldered the pin header sideways here, but you can also solder it normally, and then you can tile the boards easily. I also broke out the address pin this time, so you can change the I2C address of the board by connecting it to one of the other pins (you get 4 different addresses this way).

    There is also the audio pin, which you can use to control the brightness or to feed the built-in equalizer. I will be experimenting some more with that once the microphones arrive.

    I have added the design files and gerbers to the download section, and you can also order the board from @oshpark here:

  • 8x8 Matrix Shield Design

    Radomir Dopieralski05/05/2017 at 13:01 0 comments

    The final PCBs for the 8x8 matrix shield based on the IS31FL3728 chip arrived, and I verified that all the connection are now correct and working. You can download the design files and the gerbers in the "files" section above.

    Here is the schematic (the connections for the matrix itself are left as ratlines, for clarity):

    And here's the image of the PCB (I changed the colors from default yellow on orange):

    The bill of materials is as follows:

    • the PCB
    • the IS31FL3728 in a QFN package
    • 3x 10kΩ 0805 resistor
    • 2x 100nF 0805 capacitor
    • 1x 1µF 0805 capacitor
    • 1x 220nF 0805 capacitor
    • 1x 8x8 mini LED matrix with anode rows and cathode columns

  • PewPew FeatherWing

    Radomir Dopieralski05/03/2017 at 07:52 0 comments

    Apart from making those breakout boards for the D1 Mini (and the corresponding libraries), I also decided to use the IS31FL3733 chip in an expansion board for the Adafruit Feather boards, turning them into a simple game console. However, since that's a little bit different, I made a separate project page for that at #PewPew FeatherWing.

  • Bi-color 8x8 Matrix

    Radomir Dopieralski04/28/2017 at 22:48 0 comments

    After the IS31FL3728 chip, I tried its larger cousins, but I'm still struggling getting them to work. They are in 40- and 48-pin QFN packages, which are pretty hard to solder by hand (in fact, it might be impossible without a hot air gun and/or a reflow oven). But one of them, the IS31FL3733 also comes in a TQFP package, and I got one. This one is too big to fit on a D1 Mini shield, but I made something else:

    (Note that the colors are smooth and perfectly fine in reality, but my phone camera can't handle them.)

    This project will have a page of its own soon, but for now it's a good testing platform for my code. So I made another MicroPython library, available at that can handle both IS31FL3733 (for up to 12x16 matrices) and IS31FL3736 (up to 8x12 matrices).

    In the mean time, I'm going to work on those QFN chips, maybe I will manage to get them to work somehow. Maybe it's just time for me to invest in a proper rework station?

  • The 8×8 Monochrome Matrix Finished

    Radomir Dopieralski04/19/2017 at 19:42 1 comment

    Well, almost. There is going to be one more version of the PCB, because of course I swapped one of the rows with one of the columns of the matrix.

    You can also see that one of the rows has a cold joint in there, but that was easily fixed.

    I also wrote a MicroPython library for this matrix, which is available at

    I will still need to update it to reorder the rows and columns to fit the reality -- but I will do that once I get a final working PCB.

  • Custom Footprints

    Radomir Dopieralski04/14/2017 at 22:30 3 comments

    I made the trip to the hackerspace and used their hot air gun, and desoldered/resoldered the chip properly. I can now confirm that the resistors that I removed from the example schematic in the datasheet when designing that version of the PCB were in fact necessary for the chip to function. Who would have thought! Oh well, I just need to wait for the other version of the PCB, with all the resistors, to arrive.

    In other news, I also received the PCB for the 7x11 matrix and the IS31FL3736 chip. Unfortunately, there is a small problem with the QFN footprint that I used (instead of making a custom one based on the datasheet):

    Turns out that just taking a 36-pin QFN footprint and adding the pins to make it a 40-pin QFN footprint is not enough -- you also have to scale it down. I have now corrected all my QFN footprints for those chips to be exactly like in the datasheets, and re-did the PCBs. Of course it's another couple of weeks until they arrive...

  • Chips!

    Radomir Dopieralski04/10/2017 at 21:23 1 comment

    The chips arrived today!

    And since I already have the first version of the PCB for the 8x8 matrix, I decided to give it a try, even though that PCB actually misses two important resistors, and instead connects signals directly to VCC/GND. So I first tinned both the pads and the chip:

    I wasn't supposed to tin the center pad, but a bit of solder got there, so I spread it as thinly as I could. Next, I placed the chip as precisely as I could, and heated the pads with my soldering iron, one by one, until the solder stuck to the sides of the chip. Added flux and removed excess solder. Ready!

    Except the connections weren't very good. I had to re-touch some of the pads, until I got it to appear properly as 0x96 on the I²C scan. But some of the rows still weren't displaying, so I re-touched some more pads and... apparently the solder from the ground pad got onto the VCC pad -- I have a short in there now, and no way to get to it.

    Tomorrow I will go to a hackerspace and use their hot air gun to remove the chip and solder it properly.

  • The 8×8 Monochrome Matrix

    Radomir Dopieralski04/08/2017 at 12:43 0 comments

    The first shield I'm going to make is a standard 8×8 matrix with red LEDs, using the IS31FL3728 chip. What's the difference from the HT16K33-based one then? Well, not much. It's still "on/off" only for each LED, with a global brightness control. There are two extra features, related to the analog input pin that this chip has: you can modulate the brightness of the whole matrix according to an audio signal, and you can switch it into "equalizer mode" -- not sure what it does then, but you can guess.

    I have the PCBs already, and I should get the chips on Monday. I will need to do some tricky QFN package soldering then, but I have a couple of tricks that should work.

View all 10 project logs

Enjoy this project?



Richard Milward wrote 5 days ago point

Where did you get the 7x11 matrix?

  Are you sure? yes | no

Radomir Dopieralski wrote 5 days ago point

Aliexpress, as usual. Search for 13117BS (make sure you don't get the 13117AS, it has wrong polarity).

  Are you sure? yes | no

Radomir Dopieralski wrote 05/27/2017 at 23:44 point

Oh, wow, nice! Thank you for the heads up. I have never heard about it before, but now I did some research and there is a log coming up about it soon.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

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