Introduction: DIY Wi-Fi RGB Strip Controller

About: I am an electronics hobbyist in NSW Australia. I like to do projects on PC hardware, repair and electronics design, repair and building. General enquirers/questions and all marketing/spon…

Thanks to JLCPCB and LCSC for making this project possible! Check them out today!

(Note: This is not my design(Apart from schematic and PCB) and all credit for idea goes to Saiyam)

How this project started is i bought an RGB LED strip off of Ebay and the horrible little IR controller was terrible, i hated it. So i went on a mission to make a wifi enable controller for this.

Step 1: Parts

  • 3 1K Resistors
  • 3 High power transistors, i used TIP31
  • LINKIT ONE Microcontroller
  • Analog RGB Strip
  • (The rest are if you made a PCB like i did)
  • 1 Screw Terminal
  • Male Headers
  • Soldering Iron/Station
  • Solder
  • Pliers
  • Wire Cutters

Step 2: Schematic

When i was researching this design i used Saiyam's block diagram to make this schematic in EasyEda(Link to it here) Now if you can’t read that or can’t be bothered doing so, here is the basic idea,

Emitter pin of all the transistors to be connected to GND pin of linkit one. Base pin of Transistor 1 to be connected to Digital PIN 9 of linkit one. Base pin of Transistor 2 to be connected to Digital PIN 3 of linkit one. Base pin of Transistor 3 to be connected to Digital PIN 2 of linkit one. Anode of LED strip to be connected to Power supply (+). Emitter pins of all the transistors to be connected to Power supply (-). Remember that using pins 3 and 9 is necessary and they can’t be changed as they are the only PWM pins of Linkit ONE. Since there are only two of them, the third color of the LED strip needs to be controlled to a normal digital pin.

Step 3: Solder Your PCB

Once i made the schematic i made them into PCBs and ordered them at JLCPCB and recieved them within 5 days!

I then proceded to go to LCSC and order the components, these took a while as it was too expensive for DHL to get it to where i am.

After 5 days of waiting i received my PCBs, and they were as good as i expected them to be, you can check out my review on JLCPCB here for a more in-depth look at these.

A few days later i recieved my package from LCSC with all my components all neatly packaged in their own anti static bags.

The controller runs on about 12V, so you will need around 12V 3A for a 3m strip like what i’s using.

The next step is to solder everything to either your perfboard or your PCB, making sure that the polarity of the Transistors is correct.

You can probably tell i made a mistake on here and if you can’t, i soldered female headers instead of male, as the linkit one headers are female.

Step 4: Upload the Code!

After doing all the soldering and connecting, now it’s time to upload the code to linkit one. But before that you need to have the Blynk library. I have attached the zip file below. Extract all the contents and transfer them to Documents>Arduino>Libraries.

The code for this project is found in the Blynk library it self. In the arduino IDE, go to Files>Examples>Blynk>Linkit ONE. Now you need to make some certain changes in the code:

Under: char auth[] = “YourAuthToken”; //Add the auth token of your blynk project (see next step)

Under: #define WIFI_SSID “YourSSID” //Add the name of your WiFi connection.

Under: #define WIFI_PASS “YourPASS” //Add the password of your WiFi connection


If you don’t know the Auth token, skip to next step and then come back to this step. If you already have one, just set the switches on Linkit ONE to SPI, UART and USB positions and upload the code.

Note: This is not my code and all credit goes to the maker of it.

Once you do that.

Download the Blynk App from play store for free. Sign up to an account by providing your email address and other details. You must have an internet connection to do this. On logging in to your account, create a new project with the name of your choice. You will see some digits and characters when you make a project. This is your auth token used to connect your Linkit ONE to the blynk server. Copy the Auth token and add it to code given in the previous step (Switch to the previous step for details). Now move on to the project screen which would be empty initially. Go to the widgets panel and copy a ‘Button’ and the ‘ZeRGBa’. In the button, set the pin number as 2. Set two of the pin numbers in ZeRGBa as 3 and 9. Leave the third one empty. Now finally switch on your linkit ONE, let it connect to the Wifi network and then in the app, select the ‘Play’ option. That’s it! Now you will be able to control the strip via your smartphone. If it doesn’t work, check your connections. Make sure that the auth token should be mentioned correctly in the code.

(Note: The screenshots are not mine as i forgot to to them, credit to Saiyam)

Step 5: And You're Done!

Thanks to the sponsors for making this project possible and thanks to Saiyam for the idea.

I also do still have some PCBs left from this project and you can purchase them here, if anyone is interested!

First Time Author

Participated in the
First Time Author