Introduction: Meditation/Breathing Practice Light
During the lockdown, many of us had felt the anxiety due to continuously staying indoors and it was that time I explored the meditation and breathing practices to calm down the anxiety.
Initially, it was difficult to focus on breathing which is pretty much necessary to do for certain meditations, and my mind used to divert in different thoughts.
While there were a few apps that also stimulate the breathing cycles but having smartphone nearby cause distractions so I made a device that can help me to practice the 4-7-8 breathing method which I want to share in this Instructable.
Step 1: Supplies
- Arduino Nano
- 2.5mm Pitch Female Headers
- Right Angled Male Header
- 330ohm & 1k ohm resistors
- BC547 NPN Transistor
- 8X Common Anode RGB LEDs (5mm)
- SPDT Slide Switch
- TTP223 Touch Switch
- 3V to 5V Boost Converter Module
- Lipo Battery
- TP4056 Lipo Charge/Protection Module
- A 5V Active buzzer (Optional)
A bulb diffusion cover of 48mm opening diameter(you can alternatively 3D print one)
Also, some 3D printed parts will be required.
Step 2: What Is 4-7-8 Breathing Cycle?
4-7-8 is a renowned and proven methodology to reduce anxiety and help in boosting concentration.
All you need to do is to sit down, relaxed in the correct posture, and perform cycles of inhaling - pausing - exhaling.
4 seconds of inhaling, 7 seconds of pausing with the inhaled air then release/exhaling slowly for 8 secs. With only 10-15 minutes of this practice, you will feel relaxed, calm and be able to better concentrate on the work ahead.
Another use case scenario for this practice is for falling asleep as it deeply relaxes the nerves and can help easily falling asleep.
The device which we are going to make will help in structuring the duration of 4,7,8 seconds with mesmerizing glowing and fading of RGB LEDs.
Step 3: Designing the Circuit
We are going to control 8 LEDs and each channel is roughly going to consume 10mA of current so for 8 LEDs it will be 80mA which our microcontroller's (Arduino Nano) GPIO can't handle directly so we will control the LEDs with a BJT (Bipolar Junction Transistor).
To get the user input I have chosen a touch sensor(TTP223) so the device has a clean look (as we are focusing minimizing the distractions).
To get a subtle identification of the touch button press we can add a buzzer(optional).
The whole circuitry will be powered by a 500mAh Lipo Battery so a charging and protection circuit(TP4056) is used and a switch to turn on and off the device. and as the RGB LEDs have a forward voltage drop of around 2.5V we need at least 3.5v Power Lines so we can't rely on lipo solely as it can vary from 4.2v to 2.8v so we have to include a DC-DC boost converter to convert lipo voltage to usable 5V.
Step 4: PCB
Now we have designed the circuit, it now time to create a PCB, and for that, I have used Eagle CAD.
As I have used a diffusion cover of an LED Bulb with a bottom diameter of 48mm, I had created a PCB of the circular dimension of 48mm to fir flush with it.
Then I have used the Fusion 360 Sync feature of Eagle CAD to build a casing around the PCB.
If you don't want to fabricate PCB yourself, then you can go for solutions like JLCPCB, PCBWay, NextPCB, etc., where you can upload the Gerber files (which you can get from this link), and you will get PCB a week or two.
If you are going this way, then skips the steps ahead to go directly to step number 8.
Step 5: Copper Clad Preparation
As we are going to make a circular PCB, First we will cut a circular piece of 48mm diameter from the copper clad.
To cut out a circular piece I had taken a rough print out of the design and drew the outline.
First I used Dremel to take a rectangular piece from the whole copper-clad, then I cut the corner pieces and used a Flat file to curve out the corners
You can also use a wire hand saw to directly cut out a circular piece.
We will be using the Toner Transfer method for PCB Manufacturing.
Step 6: Transfer the Trace to Clad
Take the printout of the designed PCB top layer, pads, vias, and drill positions on glossy paper. (it should not be mirrored) or just use the file provided below to take a print out
Place the circular piece of copper-clad on the print and align it on the print and stick it so the alignment doesn't change while you press both of them down using a clothing iron or hot plate from the paper side for at least 5 minutes.
Then soak it in lukewarm water for 10-15 minutes so the paper gets wet enough to peel off easily.
The peeling process is needed to be done carefully as some traces may peel off with the paper.
If some of the traces peel off then use a marker to redraw them.
Step 7: PCB Etching & Drilling
Now that you have the traces transferred to the copper-clad, we can move forward for etching the PCB so only the copper under the traces remains on the clad, and rest of the copper gets etched away.
We will be using FeCl3 (Ferric Chloride) for the etching process.
It will take around 5-10 minutes for the etching process to complete. (it is recommended to agitate the etching solution during the process to speed it up).
Afte the etching is completely clean the PCB with acetone and drill the holes.
Note: use a 0.8mm drill bit for all the holes except the one for mounting the PCB on the cover, it is 2mm.
Step 8: Soldering the Components
Now we have a PCB and we can move forward to solder all the components at their respective place, take the reference from the design to find which component will go where, or see the images above to find the relative position of the component,
Just for reference, we have used Common Anode RGB LED and its notch is on the inner side of the PCB.
Step 9: 3D Print the Cover
As our circuit is complete, let's print the cover for our device, There are mainly 2 parts to be printed the Bottom Part and the Base Cover.
All the prints are done in 3 perimeters and 25% infill, some bridging is needed in the Bottom Part but most of the FDM 3D Printers can easily handle it.
But if you can't find the diffusion cover of the perfect size then you can also print the spherical diffusion ball to be used as a diffusion layer for the LEDs.
I have included all the 3 files and you can get the STEP file of the design from this link if you wish to tweak it.
Step 10: Assembly
This is the reference for how the assembly will proceed.
Step 11: Assemble the Base Cover & Touch Switch
Now let's assemble the parts together, take the base cover and stick the charging, protection of Lipo battery, and turn ON/OFF the circuit on the base cover as shown in the video/images above.
The TP4056 and ON/OFF slide switch will go in their respective slots(add just hot glue to secure them there), and as you may have a different battery so no slot for it, there is enough room on the base plate to stick the battery with the help of some double-sided tape.
Also, take the touch Switch TTP223 module and solder some wires its VCC, Output, GND pins, and female headers on the other side as can be seen in the image above.
Step 12: Prepare the Body
After preparing the base cover, take the bottom part and first insert the touch switch into the slot given with the help of some double-sided tape.
Then insert the prepared PCB from the top and tight 2mm screws on the 3 long flanges on the body.
Make sure the wires of the switch are coming up from the side of the PCB. Now you can insert the switch in the 3 pin header soldered in between the headers for Arduino nano and make sure the polarity of the connection is right.
Now you can insert the programmed Arduino Nano.
Step 13: Lets Program the Arduino
The Arduino program (.ino) file is given below and you can move straight to program the Arduino Nano.
Below I have discussed a bit about the code is completely optional.
This program used the timer of atmega328p (the microcontroller on Arduino nano/uno) for counting the time between the glowing, pausing, and glowing of the LEDs. The timer is configured in CTC Mode(Clear Timer on Compare) and it triggers an interrupt every 4ms which is counter for 4seconds then 7seconds and 8seconds.
The loop monitors the touch sensor with the help of external hardware interrupt on GPIO2 which in turn changes the mode from color setting and LED glowing and also to play/pause the LEDs.
The buzzing of the buzzer is also done in the main loop with the help of millis() function to determine how long will it buzz.
There is two types of inputs, a short press for play pause and a long press for changing the mode.
The program is commented enough to get the grasp of the code still if you have any query then do comment below.
Step 14: Close the Cover
Now that we have programmed Arduino Nano, we can plug it into the circuit and close the cover.
The bulb diffusion cover will snap-fit to the bottom part. There are two pads on the circuit beside the pads for 5v Boost convert to connect the power lines from the battery circuit that we stick onto the base cover.
Before closing it up, check it once by turning on the slide switch.
After that, we can close the bottom cover with 2mm screws from the bottom.
Step 15: Working of the Device
As you turn on the device, you will see the glowing and fading of the last chosen color according to the 4-7-8 timing rule.
To change the color, you need to long-press on the touch sensor (if you struggle to find the touch sensor on the body, it is just opposite the charging port). For the long-press, it will automatically beep.
For pausing on any color, whether in color choosing mode or the normal glow/fade mode, just a single tap on the sensor.
As soon as you choose a color from the color choosing mode, it gets saved in the memory so that you can enjoy it after restarting the device
Step 16: Now Enjoy a Peaceful Breathing Session
It time to sit back relax and enjoy rejuvenating breathing sessions with your own little meditation lights.
Also, you can use it as a mini mood lamp on the study table.
If you face any difficulties in replicating the project do comment below, I would love to help you out.
Second Prize in the