New controller SP511E

Great work. Did you desolder the outputs? It looked like there were a second set of pads under there that were not being used.

The fairy lights I use work better with 3v3 data, so having one output shifted and on not would probably be ideal for me.

If we had to give up some functionality to get a second output, I’d sacrifice the S or M button before IR.

On my batch of these devices there’s no evidence of a “second set of pads” although the output wires are joined to the board with a suspiciously large blob of solder on each connection.
Given the general tiny size of the board, I’d guess the second set of pads is just an extension of the first.

I agree buttons would be the logical 1st sacrifice if necessary. The IR connection is also through some kind of driver transistor (?) so that could make it’s sacrifice actually more difficult.

Given that GPIO1 is connected through a 100R resistor to the TX pad on the switch side of the board, it should be ideal. On my boards the TX pad has a through hole in the center, surrounded by solder. It should be reasonably simple to feed a piece of wirewrap wire (30AWG) through the hole and apply a dab of solder. That should be more stable than trying to anchor a larger wire to the pad directly and risking shearing to pad from the board.

The Mic input is also through some kind of multiple transistor preamp (?) so hopefully that will give the Sound Reactive folks something to add to their pot…

I noticed the ref to 3v3 lights and it occurred to me, the GPIO3 out goes directly to the RX pad before it hits the output driver transistors. If you use my wirewrap trick on the through holes for both RX & TX, you’ll end up with 2 drivers you want on the top side of the board at 3v3 levels.

That trick will work for all 3 buttons as well so you could end up with all 5 “easy” GPIO connections on the top side of the board. Wirewrap wire is fairly easy to manage and could be connected to a piece of 2x5 .1" header pins (one side all GND, the other GPIO’s) to give you something more robust for connections. Perhaps it could come out the side of the case?

Yes the second set of pads is just an extension of the first, i measured it earlier.
They made two pads for two outputs, but end UP using just one for both outputs🤷

OK managed to get my level shifter hooked up.
Confirmed the GPIO’s 1,2,3,13,14,15 as valid for outputs.

At this point I’ve only proven out 2 at a time just to make sure I have valid contact points identified.
GPIO’s 1,3,15 all worked as I’ve described. GPIO3 was interesting in that I can grab signal before the on board level shifter and just use my own while leaving the original active.

All this bodes well for the “5 easy GPIO” approach I outlined above.
More to do…

I’d like to encourage you to document your findings with some graphics or a video. I don’t think most people would want to mess up the clean look of these. So I’d recommend focusing on what you think would be the best option for a second data pin.

When you run the 30 gauge wire through the via, how are you opening that up? With a pin, a tiny drill? I don’t think I have any bits that tiny.

And since you obviously know much more about these things than me, my RX pad ripped off the board when I had originally been soldering the programming pins on. I haven’t been able to repair it. I cleaned up the spot, put flux and solder paste but I never got it to work.

The reason I chose 30 AWG wire is that it will fit cleanly in the existing through holes without any drilling. The worst you might have to deal with is flux or silk screening overruns that fill the hole.
To clean them out you can usually use a straight pin to gently ream the hole from both sides of the board until it clears. The wire is much smaller than CAT5e wire (24AWG) and still quite robust, with good insulation. It’s usually pretty easy to find at anyplace that sells electronic parts (or Amazon).

As far as the lost pad, I’d try to ream from the top and bottom until you see a hint of the copper. The “through hole” is actually a tiny copper tube that goes through the board. If you can get it clean of paint and flux it will solder very well. So get it clean, put a piece of wire through it and solder that in place. If that doesn’t work well, you could always gently attach to the “left” side of R12 (nearest the power plug) as that’s the same trace as the lifted pad. You want a fine soldering iron for these types of jobs, a 150W gun is definitely the wrong tool for the job.

I’ll post some images of my attempts as I have something working.

Hello. I bought 3 units of SP511E, but I think that first one I have try to reflash has died. Trying to solder the pads with connectors the board has lost the tin.
Second and third has gone right. Running now with WLED.

is there any other way to solder cables elsewhere on the board?


So you’re at least the 2nd person to do that :angry:

You might get some info from my other post on upgrading the SP511E

I’ve said it a few (hundred) times now - don’t use a big soldering iron, this stuff is tiny.

Good luck…

Sorry, but my knowledge of electronics is very limited.
In your post I think I have understood which connector is the PWR and the GND, but I am unable to know which is the Tx and Rx.

It will be easier for me to buy another

Now a question about WLED configuration.

Which value has the ‘Relay pin’? Originally it has 12 or 13, don’t remember, but all two are for button 1 and 2.

And about Sound Input setting? with setup should it be right?


We need to understand what you are trying to do. Are you trying to do the initial firmware replacement, trying to get additional outputs, or are you trying to repair the one you ripped the pads off of?

And if you use either of the firmware bins I linked to, the GPIOs will already be set with the exception of the “S” and “M” buttons (12 and 13 respectively). The is no relay on this device. Just set the value to 0.

They also make little test clips. Little needles with tiny hooks that come out the end. You can use those to clip on to the little legs coming out of the ESP chip. But if you don’t already have a set of those, they cost more than the controller. Honestly, it’s $8. I’d either toss it or give it to someone who’d happily use FairyNest and the remote and never know the difference.

Working on the flashed units. And yes, I flashed your bin. I set up following this part of the guide:

Configure IR by selecting "JSON remote" as the remote type. The IR pin is 5, but should already be set for you. Once you select "JSON remote" a control will appear to upload the config. Upload the 38-key config found here.
Configure the two additional buttons. The power button (pin 2) is set as button 0 because its default behavior is to toggle off and on. Set button 1 to pin 13 ("M" button) and button 2 to 12 ("S" button).
You will need to make presets for each button action to make the "M" button cycle through effects create on preset with API Command of FX=~ and save to ID 100. Then make a second preset with FX=~- and save to 101. To cycle speed with the "S" button, you want to take bigger steps. The API commands would be SX=~16 and SX=~-16.
Finally, you need to map your presets to the button action. Go to Config -> "Time & Macros" and set short press on button 1 to 100 and long press to 101. If you made presets for the "S" button, set them here as well.

But I don’t know how to do some things.

On the LED prefs page, button 0 is already set, set button 1 to 13 (M), button 2 to 12 (S). Change relay to -1 because we don’t have one.

are these settings ok?

Sorry, I can’t post all pics in same message…

Is there any way to do a private message? In order to do not disturb all people…

You’ll need to actually create those presets. I thought about offering my presets but there is so much variability in what people like I’m not sure it would be any good. But here it is anyway. I had to change prefix to txt so I could upload it.

But basically here’s my general philosophy on presets.

  1. Preset 1 is always my boot preset and always has segment bounds.
  2. Presets 1-30 or so are my effects to play and almost never include segment bounds or brightness. They are named “1: [effect] - [palette or color]”
  3. Preset 90-99 are playlists and name begins "0: " so they are listed first
  4. Presets 100 + are macros and name begins "2: " so they are listed last

I do things this way so presets are portable from one node to another. When configuring a new controller, I copy over the cfg.json and presets.json for that type of controller. I modify the node name, and the boot preset with the segment bounds if changed.
sp511e_sign_presets.txt (13.1 KB)

Here’s an uncompressed section of my presets file:

	"99": {
		"n": "0: Play",
		"playlist": {"ps":[2,3,4,5,6,7,8,9],"dur":1800,"transition":7,"repeat":0}
	"100": {
		"win": "T=1",
		"n": "2: Power On"
	"101": {
		"win": "T=0",
		"n": "2: Power Off"
	"102": {
		"win": "A=~16",
		"n": "2: Bright+"
	"103": {
		"win": "A=~+16",
		"n": "2: Bright-"
	"104": {
		"win": "SX=~16",
		"n": "2: Speed+"
	"105": {
		"win": "SX=~-16",
		"n": "2: Speed-"
	"106": {
		"win": "IX=~16",
		"n": "2: Intensity+"
	"107": {
		"win": "IX=~-16",
		"n": "2: Intensity-"
	"108": {
		"win": "FX=~",
		"n": "2: Effect+"
	"109": {
		"win": "FX=~-",
		"n": "2: Effect-"
	"110": {
		"win": "PL=~&P1=2&P2=17",
		"n": "2: Preset+"
	"111": {
		"win": "PL=~-&P1=2&P2=17",
		"n": "2: Preset-"
	"112": {
		"win": "ND",
		"n": "2: Nightlight"

I have just discovered how to load presets! thanks @Artacus !!

I think that I have to modify something, because the strip has 100 leds, but only turns on 50.
The led setup at config is OK, shows 100.

And by the way, how to config the button actions? like this?

I am sure that it is not ok.