SP511E Upgrade project

Here’s my upgrade of the Standard SP511e to support 3 strips from a choice of 6 possible outputs. Why 6? because they were the “easiest” to wire up on the board given my tools and soldering skills. The ones I chose were GPIO’s 1,2,3,13,14,15.
I will say right off, this is not a project for the impatient or faint of skill.
These boards are tiny and the traces and SMD components are sized accordingly.
Feel free to scale back what I’ve shown here if you only need part of the solution.

Shopping list:
Level shifter
I’m a fan of using 74HCT/ACT class of IC’s as level shifters. I have a few 74ACT245’s, so I used that. The advantage is it gives you 8 channels of shifters in one package, the downside is it may be a little bigger than you like. I’m using the SOIC package so the size worked out OK. If you want to use a 74HCT125 (or 74HCT08, or a bunch of other possibilities) that will work fine. You’ll just get 4 channels instead of 8.

Did I mention these boards are tiny? they are. Optical help to see what you’re doing is going to be a must. And to match that the hookup wire you use will need to be scaled down from what you’re used to seeing. Cat5 wire (24AWG) is way too big. I settled on 30AWG wirewrap wire. It’s fairly strong, solders well and most importantly will fit the tiny thru-holes on the board.

Output Strip
I went all out and included a screw terminal strip to give me easy access to 5 outputs plus ground. Many will probably scale this back to just enabling the 2nd output wire or perhaps adding a 3rd as the board will only support 3 strips at the moment.

The process
Here we go! The first thing you need to do is identify the spots on the board to attach the wires. This diagram will probably help:

When using these spots, Take Your Time. You’re better off getting the spot clean and ready for solder rather than forcing a wire through and just trying to “heat the dirty bits away”. Long applications of heat are not your friend here. I use a straight pin to try and gently ream the thru-hole from both sides of the board. Once I can see light through the hole I’ll try a piece of stripped 30AWG from the top side and move it through a few times. If it moves easily, try a dab of solder on the bottom side of the board. You can usually tell if its spreading nicely. If you’re soldering to an SMD part (like the PWR wire), don’t heat more than you have to, you’ll risk desoldering the part and causing a real mess. You may want to check for continuity from the end of the soldered wire to some other part of the trace with a meter.

When you’ve done the connections (including Pwr and Gnd), the board can look like this:

Then you’ll add in the level shifter:

You’ll change from -

To this -

The Level Shifter board just “floats” above the main board. There’s enough connections in my setup to reliably hold it together. I left the level shifter floating as that should help to let the heat from the main board dissipate. You can see where I’ve spliced in the level shifted GPIO15 to the second output plug (the heavier white wire).

Clean up the details and you’ll get -

Or up close -

Hope that helps to get a few more people started…


If you use 2 or 13 you’ll lose buttons. What pin is the easiest to get to without losing functionality?

The factory default use for GPIO’s is -
2 - PWR button
13 - M Button
14 - S Button
3 - LED drive for both connectors

1 - TX pad
15 - Nothing, but 10K0 pulldown res. (Edit, corrected pulldown, not pullup 2021-10-15)

If you want to keep all your buttons, you can pretty easily get 1 and/or 15.
The pulldown on 15 might might cause some issues but it’s a fairly large value and has worked well for me in the cases I’ve tried.
GPIO 1 will be pretty bullet proof, keep in mind that the point I’ve labelled is after a 100R resistor. It shouldn’t have much of any effect, especially if you add your own level shifter.

So 1 is a fairly easy thru-hole attach and 15 is not too bad either, although it is on one side of an SMD resistor. As I said before, BIG soldering irons won’t be a help here.

thanks for this post. In my current configuration I have 450 LED’s (3 strips) so it doesnt work under the defualt GPIO 3 pin. I will switch it to GPIO 1 probably. I’m wondering, is the level shifter necessary? can I just connect the wire directly to the data connector or will it not work?

I’ve gotten away without a shifter many times, but YMMV.
You can always try and see what happens, not a huge risk to your strip just no colours or perhaps flickering.

Not too hard to add a shifter outside the box.
For extra credit if you’re really good doing micro-work, you can even cut the trace to the resistor above the pad labelled “3” and jumper from pad “1” to pad “3”. If you do it right, you’ll get use of the onboard shifter via GPIO1 and out the regular connector.
If you do it wrong - well, you break it you bought it…

1 Like

I’ve got decent soldering equipment and microscopes at my office and I’m about to attempt this to circumvent the LED limit on this board. Maybe will post up photos when I’m done.

This doesn’t immediately work after changing the LED setting, but I went from the chip-side of the R8 resistor since GPIO3 was not run to the via through a resistor. The via trace is cut between R12 and the via and there is a 30 gauge jumper connecting GPIO1 to the via.

I’m interested in doing this mod as my LED memory usage is very high on just 232 LEDs. What do you mean by, “This doesn’t immediately work”?

I ended up destroying a lot of things on that board because I wasn’t careful. Knocked some components loose, lifted some pads, etc.

I suspect if you are more careful it should work fine.

Ah, I think maybe it didn’t work because severing R12 from the via only disconnects the RX pad on the other side. I believe R12 is inline between GPIO3 and the level shifter. There is a tiny via just beside the right pad of the resistor that goes under the pcb to the level shifter. I think you’d need to remove R12 to break the GPIO3 connection, replace R8 with a 100-ohm resistor (move R12 to R8), and jumper the right side of R8 (after the resistor) to the right pad of R12 to feed into the level shifter.

I’ve made edits to this image, the yellow is the path from GPIO3 to level shifter under the PCB. The red are what I think needs to be done to make GPIO1 feed the level shifter instead of GPIO3.

I don’t have a microscope and just looking at it through a salvaged camera lens, but it’s definitely too tiny for me to try this without a scope.

So to switch from GPIO3 to GPIO1 (to support more pixels), you need to:

  • Desolder R8 and R12
  • Solder the former R12 SMD resister in the position of R8
  • Add a jumper between the right pads of R8 and R12

And then you get a level shifted GPIO1 on the existing output connectors?

Has anybody tried this with success?

Would it work to instead just solder a jumper between the left pads of R8 and R12, and in software configure GPIO3 as an (unused) input? I’m not sure what the function of the original R12 was.

R12 is a 100-ohm series resistor between GPIO3 and the level shifter. I’m not sure its purpose, but I’ve seen people say it improves the shape of the signal when viewed on an oscilloscope.

Another way might just be to turn R12 90-degrees to where the left end is touching the right side of R8, and then solder a bridge across R8. Rotating a resistor might be easier than removing and relocating them.

Sounds like your idea to short GPIO1 and 3, and configuring 3 as an input should work.

Unfortunately, I accidentally physically destroyed my level shifter chip when experimenting, so I can’t try this. I ended up removing my damaged level shifter chip and connecting GPIO1 to the solder pads for the level shifter output using a tiny wire. Seems to work fine without level shifter.

Hmm. Maybe I am not understanding what R8 is for (before modification). Is it between some serial connector and GPIO1?

Basically, I’m wonder if it interferes with GPIO1 if not removed before connecting GPIO1 to (left side of R12; or level shifter output with level shifter removed).

R8 is a 500-ohm resistor, it’s just inline between GPIO1 and the TX pad on the other side. If nothing’s connected to the TX pad, the resistor won’t interfere as its other end will just be electrically open.

1 Like

Thanks for all of your help and brainstorming!

Is there a schematic available for this board? I keep asking questions I could answer for myself if I had one.

I haven’t been able to find one, but it would be nice to have if one existed. I physically damaged my level shifter IC and wouldn’t mind finding a replacement. Its pinouts don’t seem to match any common part that anyone knows about.

It works guys, thanks a lot, R12 instead of R8 and jumper.


Hey man, can I ask, what’s the process on identifying which pin is which?

GPIO pin numbers on the ESP 8266 chip match what you choose in the WLED config sections.

Identifying which physical pin on the chip goes to which part of the PCB board is a fair bit of work with a magnifying glass and/or a multimeter to test for continuity of traces.

The current thread has a number of the pictures various people were able to post.
Still a DIY effort to make it work as you’d like…