Love Spark




Introduction: Love Spark

About: Mechatronics Engineer . Hopeless Realist

Love Spark is a heart shaped pendant that blinks an LED every three seconds and that time is based off of a research conducted by Amy Witter at the University of Melbourne concluding that people think of their friends & loved ones, on average, every 3 seconds. So it's not all just a fancy, blinky-blinly pendant. Every time that LED blinks, it reminds you how often you're thought of by the people who love you and that's a special feeling. Also, it's an excellent conversation starter!

Don't think I could have cooked up a better Valentine's day present for her in over a weekend.

Very minimum parts used, programmed using Arduino, the code looks simpler than Blink!

Parts required:

1. ATtiny13 (replaceable with a Tiny25/45/85)
2. Red SMD LED (1206/0805)
3. 3V button cell (1220/1225)
4. Cell holder (I made it myself)
5. Dual layer copper clad (preferably fiberglass)
6. SMD STDP switch (KPS-1290)
7. Some craft skills + patience
8. A valentine
9. Lots of love

The last three parts are priceless, the rest cost me roughly 300 INR (US$5)

Step 1: Cutting the PCB

1. Print the template, pick a desirable pendant size and cut it out
2. Trace the board outline from the cutout
3. Cut out the board with a fine hacksaw or a wire saw
4. Finish off the outline into nice and rounded edges with some files.

Step 2: Etching the PCB

I masked the PCB using toner transfer method on one side and permanent marker on the other side and etched using Ferric Chloride solution.

You can find the PCB template in the Download link on the last step, download it and laser print it. For the rest of the how-to, there are tons of articles on the internet and nice instructables on how to etch PCBs at home, most of those articles do a better job of explaining the process than I ever could.

This Two sided PCB using toner method by jmengel does a good job at explaining too.

Step 3: Finishing Touches

I'm not a big fan of the yellowish color of etched PCBs, I did some searching on how to color home made PCBs painlessly and came across this nice article. He uses fabric dye, given my laziness, I used some black hair dye, boiled the PCB in the dye-water mix for about 10 mins and the PCB was transformed!

Make sure your PCB traces are tinned before you dunk it in the hot dye mix.

Program the ATtiny, solder all components and you're good to go!

This is my third prototype. The first one, I tried to etch one side without masking the other side of the PCB and you know, there was noting left of it. The second one, I messed up the switch circuit and soldered the Tiny wrong way, really really stupid mistakes. The third one, the most beautiful etch in my DIY history, it was all worth it.

In all, It cost me four LEDs, three microcontrollers, three switches, FeCl2 stains on my shirt and a weekend hidden away in my workroom, she better like it!

In case you're wondering why cute hair. ;)


And for all you lazy, impatient and non-hackers, Kitables is making a Love Spark DIY kit that you can buy from here.



  • Fix It! Contest

    Fix It! Contest
  • Tiny Home Contest

    Tiny Home Contest
  • Water Contest

    Water Contest

69 Discussions

... would it be possible to program the blinking to do 5,2,4,2,4,4,2,3,3,1,3,4,5,1,1,5

1 reply

Yeah, the micro processor in it definitely has the same to save a program to blink custom patterns. You just need to learn how to program for it. There are plenty of tutorials for it.

How did you program the Atiny ic?

how were you able to program the IC? I can do on normal IC using arduino uno but how did you manage on SOIC?

1 reply

I soldered the microcontroller on to the PCB footprint and then soldered some wires to the ISP pins to burn the code, then desoldered the wires. check the pictures.


2 years ago

Hey, it's a nice project... I was thinking, instead of the heart made from metal I could use something else right? I'm 18( from Mumbai), so I don't really have a hacksaw at home. Will that work?

6 replies

My whole idea is framed around the PCB concept. The heart is cut from a blank fiberglass copper clad and the circuit is etched in it.
You could definitely come up with something more different and creative than this, do share your ideas!

How did you program the atTiny??? Which arduino board did you buy

I used this Tiny AVR Programmer:

I used a USBasp. You can use a Uno or Mega too.

Which is the cheapest one?? Also, where do you buy these things(usbasp, attiny, etc)?? Please be kind enough to explain.. Do you get these things on amazon(link would be appreciated). Thanks alot. Really nice project. My mom's bday is coming up. Trying to make her

I bought the ATtiny13 and the switch from AliExpress since they weren't available locally, they took a little over a month to get to me.
The copper clad board, USBasp and the cell were bought locally, the same is available and can be bought on eBay India. Although, the local market in my experience is a slight bit cheaper.

nice project !! i'd like to do this one for valentines soon.. but the links doesn't work..

if you could, will you email me the files? thanks.. ...

How did you do the coin battery holder? I'm having difficulty with that section

1 reply

I just bent a piece of nickel plated copper sheet to hold the cell in place and soldered it down. give it some concave so it maintains tension. check the images.

Awesome, looks neat!
What dye are you using?
I'd love to see the finished heart.

4 replies

I'm using a light green RIT dye, I put a resistor to limit the current to the bare minimum need for the led. It will still be visible but not as bright as full power. I really only used it for current limiting to save power.

Well, using a resistor to limit the current isn't going to save you power, as far as I know. Because resistors dissipate the extra current out as heat, you'd rather use that extra current to blink the LED brighter.

Incorporating PWM in the code will save you power while reducing brightness. I blink my LED every 3s and for an interval of ~5mS, so no need for PWM, draws minimum current already.

Also, I've set the ATtiny clock speed to about 128KHz, as per the Tiny13 datasheet, it should draw less than 10uA @ <2.7v operating voltage on this setting.

I have mine clocked at 128KHz as well. I also had a friend show me how to incorporate in the watchdog timer to save more power.

Cool, share some pictures when you're done putting together your spark! :)