PCB Heart Necklace

by Arnov Sharma in Circuits > LEDs

3136 Views, 9 Favorites, 0 Comments

PCB Heart Necklace

01 (44).gif
IMG_20220117_175910.jpg
24 (14).gif

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.

Supplies

Following 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

GETTING STARTED

02 (44).gif
03 (41).gif
04 (44).gif

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,

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 Study

SCH_page-0001 (5).jpg

Now 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 PCBWAY

05 (41).gif
06 (40).gif

I 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 ASSEMBLY

IMG_20220112_231915.jpg

These 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 PASTE

08 (39).gif

The 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 PROCESS

09 (38).gif

After 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 REFLOW

10 (44).gif
11 (42).gif
12 (39).gif

After 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.instructables.com/DIY-SMT-Hotplate-Pro...

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 Placement

Image4.jpg
13 (37).gif
18.gif

Now 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.

Using Multimeter for Testing LEDs

14 (32).gif
IMG_0371.JPG

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

This 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
}
}
}


Programming Attiny84

25 (12).gif
22.gif

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 a 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.

PROBLEM 404

26 (12).gif
15 (33).gif
16 (30).gif

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 right or not.

THT COMPONENETS

19 (26).gif

After 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 CELL

20 (26).gif

After 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.

Result

IMG_20220117_175910.jpg

And 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 Attachment

24 (14).gif
21 (23).gif

Now, 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!