Wi-Fi RGB Strip Controller

Well it’s finally here, the RGB Strip controller powered by a LINKIT ONE.

But before we delve into the project i would like to thanks the sponsors that made this possible.

LCSC, for great quality components at a low price, check them out here! And their components here!

And JLCPCB, for providing the PCBs, get 10 high quality boards for just $2 here!

Thanks Guys!

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.

Here are the following components you will need.

  • Parts
  • 3 1K Resistors
  • 3 High power transistors, i used TIP31
  • Linkit One
  • Analog RGB Strip
  • (The rest is if you make a PCB like i did)
  • 1 Screw Terminal
  • Male Headers
  • Female headers
  • Tools
  • Soldering Iron
  • Solder
  • Pliers
  • Wire Cutters

Here is a copy of the final schematic if you would like to follow it.

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.

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.

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.

It looks white but it is blue.

And you’re done!

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