Hey Everyone what's up!
So this is my Heart Themed PCB Necklace.
The idea here was to make a necklace from PCB that glows.
The concept that I used for making this Necklace was pretty simple as well.
It's basically a blinky board consisting of 36 LEDs that are controlled by an Attiny84.
MATERIAL REQUIREDFollowing are the materials used in this built-
- Attiny84
- LEDs 0603 package
- 10K 0603 Resistor
- SMD Button
- Slide switch
- Custom PCB
- Arduino nano
- Coin Cell holder
- solder paste
I first searched for a heart image that would be suitable for adding leds and componenets, I select this image in the end.
I first imported this image on fusion360 and sketched the exposed white lines.
then I used the extrude function to make this 2D Sketch into a 3D shape.
now we have a 3D Heart shape that will act as a base for our PCB design,
Let me show you how.
my plan is to convert this 3D shape into a drawing and export the top layer's DXF file so my OrCAD PCB suite can import this DXF file which will be then used to make the PCB Outline and art patterns.
Circuit StudyNow after finalizing the shape, I prepared the schematic which consists of a total of 36 LEDs, 6 LEDs are in parallel and there is a total of 6 different led setups driven by 6 different 8205S N channels MOSFET IC.
This Mosfet IC is then controlled by an Attiny84 MCU, we can change the LED Glow pattern by pressing this button.
After following the schematic and making a PCB Board with these components, I sent the Gerber data to PCBWAY for samples.
Getting PCBs from PCBWAYI received the PCBs in a week which was really fast.
I choose RED Soldermask for this project with a white silkscreen.
I've Left openings in the soldermask on both sides so the LED would be visible from the topside.
The quality of the PCB I received was just awesome.
I have Been using their service for a while and I have to say, it's pretty decent for getting started.
Checkout PCBWAY from here- https://www.pcbway.com/
PCB ASSEMBLYThese are the steps for the main assembly of the FLUX CAP V3 PCB.
- Solder paste Dispensing Process
- Pick & Place Process
- Hotplate Reflow
Because this PCB Doesn't have any Through-hole component, we dont have to add any component with soldering iron, except for the Coin Cell holder on the backside.
SOLDER PASTEThe first step is to add solder paste to each components pad one by one.
To Apply solder paste, I'm using a Solderpaste Dispensing Needle with a Wide syringe, and the solder paste I'm using is a regular solder paste consisting of 63% Tin 37% Lead.
PICK & PLACE PROCESSAfter carefully applying Solderpaste we move on to the next step which is to add componenets to their assigned location.
I used an ESD Tweezer to place each component in its place.
HOTPLATE REFLOWAfter the "Pick & Place Process", I carefully lifted the whole circuit board and place it on my DIY SMT Hotplate.
I made this Hotplate especially for making projects like these which require SMD soldering. hotplate available in the market were not exactly cheap so I made a minimal version of that which you can check out from here- https://www.hackster.io/Arnov_Sharma_makes/diy-smt-hotplate-project-8157a5
the hotplate heats the PCB from below up to the solder paste melting temp, as soon as the PCB reaches that temp, solder paste melts and all the components get soldered to their pads.
We carefully lift this PCB and try not to shake it as the solder paste is still melted and components might move a bit from their location if shake the circuit too much.
we lift the PCB and then place it on a cooler surface for a little bit, to cool down the heat of PCB.
LED PlacementNow here's something odd, my plan is to add leds on the bottom side of the PCB but the orientation of the LED would be inverted. which means I'm gonna add them upside down so their glow will be visible from the top.
To accomplish this method, I have added 1206 Pads on the PCB and I'm using 0805 Package LEDs with this 1206 PAD, by using smaller LEDs, soldering them would be much easier.
- To solder one LED, we first have to add solder on one side of the pad,
- then place led in its place and reheat the pad again so solder paste will grip the LED from one end.
- When solder paste holds the LED from one side, we add solder paste on the other side and this is basically the entire process of adding led with a soldering iron.
- The trick here is to be quick and let the solder paste dry before removing the tweezer from the led.
By following this process, I soldered the remaining 35 LEDs and this was the result.
I then used a multimeter to test each led for proper soldering.
we just set the multimeter in diode checking mode and place the probes on the positive and negative sides of the led. LEDs are working which means we can now move on to the next step which is to program the Attiny84.
Code and Programming Attiny84This is the code that I used in this project-
const int switchPin = 7;
int pinsCount=6;
int pins[] = {0,1,2,3,4,5};
int lightMode = 1;
void setup()
{
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(switchPin, INPUT_PULLUP);
//digitalWrite(switchPin, HIGH); // internal Pull-up enabled
}
void loop()
{
if (digitalRead(switchPin) ==LOW)
{
lightMode = lightMode + 1;
if (lightMode == 4)
{
lightMode = 1;
}
}
if (lightMode == 1)
{
digitalWrite(0, HIGH);
digitalWrite(1, HIGH);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
delay(300);
}
else if (lightMode == 2)
{
digitalWrite(0, LOW);
digitalWrite(1, LOW);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
delay(300);
}
else if (lightMode == 3)
{
for (int i=0; i<pinsCount; i=i+1){ // chasing right
digitalWrite(pins[i], HIGH); // switching the LED at index i on
delay(90); // stopping the program for 100 milliseconds
digitalWrite(pins[i], LOW); // switching the LED at index i off
}
for (int i=pinsCount-1; i>0; i=i-1){ // chasing left (except the outer leds)
digitalWrite(pins[i], HIGH); // switching the LED at index i on
delay(90); // stopping the program for 100 milliseconds
digitalWrite(pins[i], LOW); // switching the LED at index i off
}
}
}
I'm using an Attiny84 in this project, to program this microcontroller we can do two things here.
1st is to program it via USBASP and Atmel studio which is the hard way or use an Arduino as ISP Setup to flash this MCU.
I'm gonna use the Second option here which is the Arduino as ISP setup.
I have already made a custom programmer that utilizes an Arduino Nano Board to flash a variety of stuff.
To do that, we first need the infamous Spence konde AttinyCore for Arduino IDE which you can download from here https://github.com/SpenceKonde/ATTinyCore
After Installing the core files, connect the following Arduino as ISP pins with PCB Badge in this order.
- VCC to VCC
- GND to GND
- D10 of Arduino Nano to RST Pin of Attiny84
- D11 of Arduino Nano to MOSI
- D12 of Arduino Nano to MISO
- D13 of Arduino Nano to SCK of Attiny84
The Flashing Process is relatively simple
- open the tool menu, and select the attiny84 from boards. do not change any setting.
- select Arduino as ISP as programmer
- select the Right port and hit Burn Bootloader, wait for few seconds and you will be greeted with a done burning bootloader message.
- now go to the sketch menu and hit "upload using programmer"
- and the Attiny84 will get flashed.
After flashing the MCU, I run into a small problem.
I added a load resistor in series with the coin cell to limit the current drawn by LEDs, but the programming header pins were connected directly to LEDs so when the LEDs turn ON, they immediately draw the max current and get burned out.
In the end, almost every LED on the heart board was dead.
To make things right, I had to remove all the LEDs from the bottom side and then again add LEDs by following the same exact process of adding inverted LEDs.
Unfortunately, I ran out of RED LEDs so I had to use blue ones but this was the end result, I tested blue leds with a multimeter again to check the soldering process has been done rightly or not.
THT COMPONENETSAfter adding LEDs again, I added the remaining components which were the SMD coin cell holder and the slide switch from the bottom side of the board.
I first added a coin cell holder and then added the slide switch in its place with a regular soldering iron.
COIN CELLAfter adding the last two componenets this board was completed and now we can add coin cell to it and see if its works or not.
ResultAnd it's working!
to turn on the system we use the slide switch and to change the LED animation, we had to use the button on the top side, by pressing it, leds glows in a chasing sequence or they get turned off entirely.
Necklace chain attachmentNow, this is a necklace so I've added this hole at the top side so we can add any regular chain to wear it like a glowing piece of jewelry.
also, we can use it as a keychain or use an ID card strap to wear it as a maker badge.
Well, this is it for today folks, thanks for reading this post, and I'll be back with a new project pretty soon!
Comments