Improving the Sonoff Programming Adapter

I’ve almost run out of PCBs for the Sonoff Programming Adapter, which means it’s time to order more. But before I do that, there are some changes I want to make.

As a reminder, this is the current version:

The power jumper turned out to be useless. I put the footprint there for a slide switch, but the switches were rubbish (poor connections) but luckily it had 0.1" pin spacing so I put the pin header into the same holes. In practice, I found it’s easier to leave the jumper in place permanently and unplug the adapter from the Sonoff to cycle the power.

Question 1: Would anyone care if I remove the power jumper and just link 3.3V straight through?

A couple of people suggested that there needs to be a way to connect GPIO0 to GND on Sonoffs that don’t have it controlled by the button. Perhaps there could be a single pin header linked to GND on the adapter, so that a jumper wire could be plugged in. I’m not 100% clear on the best way to do this though. Just a GND header? Or a header that links to GND through a button?

Question 2: Would a GND header be useful? If so, how should it work?

Any other suggestions?

How about a pushbutton to momentarily open the 3V3 supply - I haven’t checked if there is something suitable. A ground pin would useful. I didn’t buy a board originally, but if you had a push button 3v3 interrupt I would definitely purchase one.

That’s an interesting idea. I’ve never had a need for NC tact switches but a quick search shows they exist, so I’ll look into that :slight_smile:

Funny… I was just thinking about that last night as I was whacking Tasmota on a (literal) dozen Sonoffs of differing flavors. You are right on the 3.3v jumper being redundant. I actually cut the extra pin off the header so it is only 3.3v. Since the board itself is already small, fiddling with the jumper is way harder than just plugging in the cable to the FTDI adapter while holding down the IO0 button to put it in bootloader mode. I think a button in place of the jumper might be helpful but again, the board is pretty small and for people with big meathooks like mine, there isn’t a lot of room over that board to push two buttons (IO0 and adapter button) at the same time. (imagine time passing…) OKAY. So I just grabbed my board and all my different Sonoff’s to try some different positioning and see what the outcome might be. 2 hours worth actually. I tried with the pins bent as delivered, straightened them and used passthrough headers as extensions, and ultimately, my original idea of just building a set of cables - female to female for the 4 channels and female to male for all the other flavors I own - is what works best for me. I think removing the jumper and designing in a NC pushbutton would be a great idea as well. But since I use a cable to connect to the Sonoff, one finger on the button and plugging the cable in to the header works just fine. No button on the adapter needed. One modification I did do to your design was to put a drop of superglue under the plastic piece on the input header to glue it to the board. Just makes it feel a little more solid and durable.

I glued the two plastic header plugs together on one end so the different cables are always together so I am not searching for them or making new ones because I have used them for something else.

I did end up with a Basic that had a permanently closed switch and I had to remove it and solder in some wires so I could program it. Good thing for a microscope!


Thanks for the feedback. I’ve found some NC tact switches that are in the same form factor as normal switches, so I did a quick update to see how it turns out. Pin header replaced with the NC switch, and a GND connection added near the side so that if anyone wants to add another jumper lead for GPIO0 there’s a convenient place to attach it.

A major design objective with this board was to make it as simple and cheap as possible, mostly because I have to assemble them all by hand. I’ve made about 140 of them now and it’s a really boring job when I make about $2 on each unit, so I don’t want to complicate it.



Nice! The spare ground pin will come in handy for sure. You should sell them as a kit… cuz really, $2 profit? I understand you are in competition with China who can crank them out by the millions for 7 cents a piece but is that labor really worth it? :smiley: Anybody buying one probably has a soldering iron since it is pretty much essential kit in this game. Even a cheap one. I would think a kit for that price is probably even cheap. Want one assembled? $5 extra. Your time is worth something.


I definitely lose money selling them at $4, if you count my time! I spent hours assembling the ~140 units that I’ve sold so far.

In the past I’ve sold kits, and it’s surprising how much time it takes just to bag them up. I think it would take me almost as long to package these up with loose parts as it does to solder the headers on.

I had trouble flashing a Sonoff 4ch Pro R2. Turned out I needed to power the board externally via the DC jack. After that and getting the timing right it programmed perfectly. For me the being able to disable the onboard 3.3v was handy as I could just power it up via power supply controls and get gpio0 to ground easily while leaving the serial connected.

Welcome to the group Carl!

That is interesting that you had an issue with the 4ch Pro R2. I flashed a couple of them and never had to do external power. I had to add a ground for GPI0 but they flashed perfectly with just the adapter attached. You do bring up an interesting case for having a removable jumper though. Does your FTDI board not have a 5v-3.3v selector jumper? Mine has one and I could just pull it to disable power passthrough completely to the Sonoff adapter board if I was using a bench power supply instead.

@jon Speaking of that, you know when you expect to have the new version board in the mix? I want to get one of them when they are ready.

That’s interesting about isolating the power. I haven’t had that problem personally.

Tracking shows the new PCBs are at the DHL depot right here in Melbourne, so I should receive them on Monday. The normally-closed buttons arrived a few days ago so I’m ready to assemble some as soon as the boards arrive:

Based on @Guru’s feedback I’m also thinking of packing them with both pin headers and sockets in the bag, but not soldered on. That way I don’t have to keep 2 versions in stock, there’s only 1 type to order, but people can put on whichever header they prefer. The downside is that it means customers will have to solder on the header, but for anyone who is hacking around with a Sonoff that shouldn’t be a big hurdle.

1 Like

DHL delivered on Sunday! That’s never happened to me before. I’ll assemble some tonight

1 Like