RGB Mask PCB Edition




Introduction: RGB Mask PCB Edition

About: Hello world;

Hey guys what's up

So this is my RGB Mask project that is made from soldering 5 PCBs together, This RGB mask has 52 WS2812B LEDs and they are controlled by an ESP8266 microcontroller module.

BUT Does this work as an actual face mask?

No, not really but we can wear a normal mask beneath this RGB mask and stay safe.

I first made a cardboard mask and then use its measurements for making a PCB design which has solderings pads on edge of PCB. by putting PCBs together in the right order and soldering them at a certain angle, we can combine two or more 2 PCBs to create a PCB structure or shape. with this method, we can make anything with PCBs even a PCB Hat or Iron man's Helmet, we just need to follow the basic geometry and that's pretty much it.

I previously made a Project with the same Method - https://www.instructables.com/RGB-Glasses/


these are the things that I used in this project!

  • Custom PCBs (which were provided by JLCPCB)
  • ESP12F
  • 10k resistors
  • WS2812b LEDs
  • ams1117 voltage regulator
  • 10uf capacitor
  • 1uf capacitor
  • 100nf capacitor
  • SMT reflow hotplate
  • solder paste
  • patience

Step 1: Schematic and PCB Designing

I First Prepared a Cardboard mask with a basic mask shape I made, by taking this shape as my main reference, I prepared a schematic around it.

My ultimate goal was to use FR4 PCBs instead of Flexible PCBs, FR4 PCBs cannot bend and they are hard which is not ideal for such projects at all but Flexible PCBs can be folded into a mask shape without any problem, so why didn't I use Flexible PCBs?

The reason is pretty simple, Flexible PCBs are too fragile and they cannot withstand my current project which requires a hard surface.

Schematic of This project seems complicated at first but it's basically 52 WS2812B LEDs connected with an ESP12F Minimal setup and have an AMS1117 Voltage regulator for stepping down Voltage from Battery and USB Side.

Now, This Project requires a total of 5 PCBs, and making them all separately was not a hard thing but ordering 5 PCBs would cost more so I prepared this Project's PCB in such a way that a Huge PCB can be broken down into 5 Different PCB shapes.

To Accomplish This Task, I prepared the Schematic in this way-

  • Each section/PCB shape contains the components (RGB LEDs, Capacitors, etc), at the edge of each PCB section, there are three connector Pads for VCC, Din, and GND.
  • Two PCBs can be Joined by soldering connector Pads of Two PCBs together.

I Joined all PCBs together with this method along with its electronics wiring and connections.

after finalizing the PCB and checking it thoroughly, I sent the Gerber data to JLPCB for samples and received them after few weeks.

PCBs that I received was great as expected! check them out if you need great PCB service at a low cost.

Step 2: Why ESP12F?

So why did I used ESP12F in this Project?

The reason is the Connectivity issue with other MCUs. If I used an Atmega CHIP or other small MCUs like Attiny for example, I needed to add an extra BT, NRF, or WIFI module for communicating with the mask and toggle LEDs which would increase the number of components used in this mask.

I wanted to control this mask with a webserver so for this task an ESP8266 would be perfect here but I don't want to use Nodemcu because of its size, so I use ESP12F minimal setup (schematic is provided).

It's small and has all the features which are required for this project.

Step 3: PCB Assembly and Reflow Process

I followed the following steps for assembling each PCB-

  • I cut down the single Huge PCB into 5 different PCB shapes with a cutter.
  • After this, I took a single PCB and added solder paste to the components PADs ( here's a pro tip, don't be a fool like me and order stencil for this process as adding solder paste one by one on each pad without proper tools is a pain)
  • after adding Solderpaste, I added components which were LEDs and Capacitors in their assigned place (be extra careful while placing the LEDs in the right order as they won't work if they are not placed in the right order, don't worry about the SMD Capacitor as they don't have defined polarity)
  • Next, I placed the PCB with components on Reflow Hotplate, Hotplates heats this PCB up to the solder paste melting temperature and that is pretty much what happens in the SMD Process.
  • After this, I redo this whole process for the remaining 4 PCBs.
  • The result was 5 PCBs with soldered components, but how can we test the connectivity of LEDs?

For testing the LEDs, I soldered Wires on Each PCB's VCC, Din, and GND pads and use a Pro Micro Loaded with Neopixel Test sketch.

(for Testing each PCB, Neopixel Sketch has to be altered according to the number of LEDs in that PCB)

The Next step is the final assembly-

Step 4: Final Assembly!

  • I first put two PCBs together and solder two of their pads together by placing them at a certain angle/tilt and let the solder hard, after that I solder all of their pads together, by doing this PCB 1 gets connected with PCB 2, PCB 2 gets connected with PCB 3, PCB 3 gets connected with PCB 4 and PCB 4 gets connected with PCB 5.
  • I combined every PCBs together with this method, you can check out this project's video for understanding this part better.
  • The end result will be a Mask made from soldering multiple PCBs together.

After this, I uploaded the Neopixel test sketch to this Mask (i change the number of LEDs to 52) by one of my previous Projects which was a NodeMCU programmer.

Basically, this Nodemcu Programmer can flash an ESP12F or ESP12E module without adding the Flash and reset buttons. https://www.instructables.com/Program-ESP8266-With...

these are the connections for programming-

  • 3V to VCC of ESP12F
  • GND to GND
  • RX to RX
  • TX to TX
  • GPIO0 to GPIO0

I Breakout these Programming points onto the Mask's con6 header, for flashing the code we can directly plug the Nodemcu programmer onto the con6 header pin of the mask.

For Uploading the Sketch-

  • Connect the Nodemcu programmer with the Mask
  • open Arduino ide, plug the USB on Nodemcu
  • then go to the Tools menu and select the Nodemcu board that you are using
  • select the right port and hit upload

After uploading the test sketch and verify that the mask is working, we can now upload the main code to this mask PCB.

Step 5: Code and Finishing Touches

The uploading process will remain the same for this sketch.

  • Connect the Nodemcu programmer with the Mask
  • open Arduino ide, plug the USB on Nodemcu
  • Change the SSID and Password in Sketch according to your wifi credentials
  • go to the Tools menu and select the Nodemcu board that you are using
  • select the right port and hit upload
  • after uploading, open the serial monitor
  • you will see the IP Address of your mask
  • Copy this IP Address and Open it in any web browser.
  • You will see the RGB Mask web server.
  • Select any color from the color palette and that color will get displayed on the mask.

Now, after uploading the main code into the RGB Mask, I added an elastic cord on both sides by tieing them up in the square slot provided. after this, I glued a 400mA lithium cell to this mask.

also, we need to add a reset switch for the ESP, USB port for charging this battery, and battery connector with a good old soldering iron, and our PCB mask is completed!

Now just plug the battery on the connector and press the reset button once. after doing this, it will get connected with the WIFI Router and we can now just open the webserver to toggle the LEDs.

Step 6: Result


Leave a comment if you guys need any help!

Make it Glow Contest

Participated in the
Make it Glow Contest

Be the First to Share


    • Make It Modular: Student Design Challenge

      Make It Modular: Student Design Challenge
    • Colors of the Rainbow Contest

      Colors of the Rainbow Contest
    • Leather Challenge

      Leather Challenge



    1 year ago