BHARAT RGB Version 1.0
Hey everyone WAZZUP!
This is "BHARAT RGB Version 1.0" It's a 3D Printed RGB Moodlight/LAMP which is designed to look exactly like Map of India.
The idea here was to design something related to Indian Map as Independence day is coming soon so I thought let's design an INDIA shaped LAMP which will house RGB LEDs inside.
The body is designed in Fusion360 and then 3D Printed on ENDER3 with Transparent PLA and Black PLA.
RGB Module is totally custom, I used one of my previous project's PCB in it.
In this Instructables, I'm gonna show you guys how I made this MAP Project in few easy steps.
So Let's get started!
Supplies
3D Printed Parts
- Diffuser
- Base
Electronics
- ESP12F Module
- WS2812B LEDs
- AMS1117 3.3V
- 10uf Cap 1206 Package
- 4.7uf Cap 1206 Package
- 10K Resistance 0805 Package
- 100nf Cap 0805 Package
- NodeMCU
- Custom PCB
Prologue
3D Printing technology is such an extreme innovation which is being developed in the past 15 years, one can make all sorts of stuff with it which includes all sorts of things from a phone stand to an RC plane.
a few years ago, I visited a workplace near my place, they have made an entire world map out of wood with a CNC and mounted it on a wall.
It was quite something and I really wanted to replicate that but I didn't have a CNC back then but why use wood when this type of project can be easily made via 3D Printing!
Just to see how this works out, I first made a 3D model of my country (which is India) and then 3D Printed it on an Ender 3.
The model took 6 hours to print and it was just great. Instead of making a solid body, I made the base hollow so I could put LEDs inside because adding RGB LEDs to stuff is KEWL!
Body Designing Process and 3D Printing Details
- First, I downloaded a black and white Indian Map from google.
(Sorry if this map boundary is incorrect in any aspect, not really making this for political debate about boundaries here)
- Then I imported the image in fusion360 and calibrated its Height to
- After setting the height of the image, created a new sketch and trace out the boundary of the map which took quite some time but after that, I extruded the sketch into a new body with a thickness of then, at last, I used the shell command to make this body hollow.
- after that, I made mounting holes in different regions of this map structure and ten added a Lid which will be the diffuser of this RGB LAMP.
- In the end, I exported the STL files and printing them on my ender 3 with 0.2mm layer settings at 200 C with Black and transparent PLA.
Electronics
As for the electronics part, I'm using an ESP8266 Based RGB Module which I made for my previous project- https://www.instructables.com/RGBLAMPIO/
Basically, It's a Minimal ESP8266 Setup that utilizes an ESP12F Module connected with 18 WS2812B LEDs.
This module can be powered with a voltage between 3.3V to 12V as I've added an AMS1117 Regulator on this board.
But for simplicity, I will use a 5V 2A Mobile Phone Charger to power this setup!
Schematic of PCB
Here's the schematic of this PCB that I'm using.
I placed 18 WS2812B addressable LEDs and connected them with a minimal ESP12F or 12E setup.
I also added an AMS1117 circuit for stepping down the 5V from USB or 3.7V from the battery side as the ESP12F is 3.3v tolerant and 5V will instantly burn the board.
I didn't make any breadboard prototype for this setup as I previously have made similar projects, for example, these RGB glasses. https://www.instructables.com/RGB-Glasses/
They also have the same setup, everything is the same except the number of LEDs and the mechanical fittings and shape. In the PCB editor, I put WS2812B LEDs in a Ring sequence and added the ESP12F at the middle and AMS1117 at one side.
Downloads
Assembly Process of PCB
The Assembly process of this badge includes four different processes, which are-
- Solder paste Dispensing
- Pick and Place Process
- Hotplate Reflow
Let's start with the first process which is the solder paste Dispensing process.
Solder Paste Dispensing Process
This process is an easy one, we first add solder paste to the pads of each component manually one by one, solder paste, if you don't know, is a mixture of tiny solder balls and flux, because solder balls are tiny, this mixture looks and feels like a paste.
we apply solder paste with a solder paste dispenser syringe or the proper method is to use stencil here which I don't have. but anyway, after this, we can now move on to the next process, which is to add components to each pad.
Pick and Place Process
Next, we carefully pick all the components with an ESD tweezer and place them in their assigned place one by one.
Hotplate Reflow Process
then after doing the pick and place process, we carefully lifted the whole PCB and place it on the hotplate. I’m using my good old DIY hotplate which I made a few months ago. I’ve made a Instructables about it which You can check out but basically, in this hotplate reflow process, the surface heats up to the solder paste melting temp and it slowly melts.
after few mins when the solder paste completely melts, we remove the PCB and let it cool down for a moment.
CODE and Programming Details
For Programming ESP12F, we can use an FTDI module but there's also exist a better and easy method that required only a NodeMCU board.
I previously made a PCB which is an ESP12F Programmer board that contains a NodeMCU and few header pins. basically, we just need to connect any minimal ESP12F Setup with NodeMCU in this config. We first pull down the enable pin of NodeMCU to GND which turns off the ESP12F on NodeMCU, we can just hook an extra esp12f setup and use NodeMCU's CP2102 chip to flash that. I already have made Instructables on this topic so you can check that out from here- https://www.instructables.com/Program-ESP8266-With...
In the RGB PCB, I connected all the programming pins which are VCC, GND, RST, GPIO0, TX, and RST to a CON6 header pin.
For programming, we can directly plug the NodeMCU Programmer PCB onto the RGB PCB CON6 Header Pin
It's a clever method to use as because of this external programmer, we don't need to add FTDI Chips on ESP12F setup and we can make smaller PCBs and for programming them we just break out 6 important pins and connect our external programmer with it.
For Programming the ESP12F board, we need to connect the NodeMCU with our ESP12F Setup in this way-
- 3v to 3v
- GND to GND
- RST to RST
- GPIO0 to GPIO0 //D3 is GPIO0 on Nodemcu
- TX to TX
- RX to RX
Also, do not forget to add a Jumper wire between ENA and GND Pin on Nodemcu.
this will turn off the ESP12F of the Nodemcu and our external ESP12F will get connected with the Nodemcu's CP2102 chip.
Downloads
Final Assembly of 3D Printed Parts and Electronics
The Final Assembly Process of this Light was pretty simple and a quick task.
- I first added the Circuit at the centre of the base with Hot glue
- then I added a USB Cord to VCC and GND of the Circuit
- then, at last, I close the Light with its lid and secure both of them with a few small 2.2mm Screws
and that was pretty much the assembly process of this light!
See, that was simple and quick, right?
RESULT
In the end, this was the result!
after the assembly process, I then mounted the light on a plain wall in my living room and connected it with a 5V 2A Mobile Phone charger.
My plan is to make more of these lights of different countries and make a huge world map which will take time!
Improvements
This is not really an ideal setup for this project.
For starters, PCB Shape needs to be changed according to the shape of light.
Also, ESP8266 for this project would be overkill so I will use an Attiny85 in the next iteration.
Leave a comment if you need any help with this!