Restoring Vintage Christmas Lights

At my parents' place, there was a Christmas lights string that I admired since childhood, even though I couldn't recall ever seeing it whole and functional. I always wanted to see its glow and charm when it was lit up. 🌟

The light was in dreadful condition: not all lamps were present, wires were cut, and only a few lights were working. I decided to "refactor and rebuild" it completely but to save as many original parts as possible.

So, my exciting journey started with the task: replace glow-lamps with LEDs, and, consequently, replace the supply voltage from 220v to 5v.

After spending some time searching, I finally found out the origin of the Christmas lights. It was made in the USSR around 1985 and named "Little ice cube" ("L'dinka"), consisting of 14 lights. However, my sample only has 12, so 2 of them are missing. An interesting fact: the lamps not only look like colorful ice crystals but also, when they bump into each other, they produce a sound similar to real small ice cubes in the water.

I still have 4 working bulbs, so I can partially see how it looks when it's working. Calculating the voltage for a single bulb is not a big deal - just divide 220 by 14, so it was at least 16V. As I found on the internet, the nominal power consumption per bulb is 20V/50mA.

Before: original bulbs inside the lights
After: modern LED inside the lights

First of all, we need to disassemble it completely, and here's what I got:

  • wires ~5m, fractionated
  • bulb sockets - 12
  • sockets contacts - 21
  • bulbs - 4
  • bulb covers - 12

Light bulbs will be replaced with LEDs corresponding to the color of covers. Consequently, the serial connections (for 220V) must be replaced with parallel ones (for 5V). Fortunately, as I measured, the length of the wire will be just enough so that the space between lights will not be changed. The wire without lights, which was previously used as a spacer between the power plug and the lights, will now connect the lights to each other as a second power line. The spacer to the power socket will be replaced with a new transparent wire.

Now, we need to create a new order for the lights, a sequence for the colors, as the original sequence cannot be reproduced due to 2 missing lights, and I'm not exactly satisfied with the original order. So, the next task is to design a color sequence. It was important to design the order beforehand because it will be complicated to change it once the lights string is finished.

The new sequence should follow next rules:

  • It should be spread evenly along the line, avoiding repetitions.
  • Red and green should appear in pairs, as I consider them "classic Christmas colors".
  • Green and blue should not be neighbors, as both are "cool" or "dark" colors and should be separated by "warm" or "bright" ones.
  • Since there are more yellow lights, avoid placing yellow and red lights next to each other as they produce too much brightness.

After some manipulation, I decided to choose this specific order for my upcoming Christmas lights string:

The next step is to develop the electrical scheme. We have 12 LEDs that should be connected in parallel. The standard approach for using LEDs involves the use of an extra resistor to protect the LED from excessive current. However, since we have 4 different colors, we need 4 different types of LEDs, each consuming different voltage. Therefore, it's impossible to connect all LEDs directly in parallel and protect them with only one resistor. Instead, we need 4 different resistance values and one resistor for each LED, as the colors are mixed in sequence. Meanwhile, the resistors can be hidden in the wires, making them unnoticeable.

Let's define some rules:

  • Minus is common.
  • The resistor is connected to the positive pin of the LED.
  • The brightness of all LEDs should be at the same level.

The last rule is crucial because different LEDs produce varying amounts of light at their nominal current. Therefore, some LEDs will operate at their nominal state, while others may not.

The structure of the Christmas lights
Main principle of placing LEDs with their resistors on the wires

I conducted a practical study on the brightness of the LEDs I prepared for the Christmas lights. I powered all colors simultaneously, adjusted the current supply for each, and assessed the relative brightness between them using a phone camera, a digital camera, and the most accurate tool - my own eyes 😉.

Finally, I reached this conclusion:

  • Red and yellow can be powered at their nominal current to achieve their nominal intensity.
  • Green and blue are close in proximity, but green is slightly brighter, so it should be powered with the least current. Both of them will shine at approximately 8 times less brightness than their nominal intensity.
  • The total current, according to calculations, will be approximately 144mA.

I decided to use a DC-DC converter with adjustable output voltage and set the input voltage for the lights to 3.1V:

Electrical circuit diagram

Ok, enough with theory, let's move on.

I got 21 socket contacts instead of 24, so 3 were lost, and I decided to make replicas on my own 🛠️

Firstly, we need to choose the material for the future contacts because:

  • It cannot be iron or pure copper as it may oxidize.
  • Not aluminium; it should be possible to solder.
  • If possible, avoid stainless steel because it is hard to solder and work with.
  • It should be a thin sheet, but not too thin.
  • It should be an accessible material.

And as a result, I chose brass, which corresponds to all the points mentioned above.

To craft three small pieces following the sample wasn't too challenging, and it was quite a precise and engaging process.

All components are prepared. It's time to assemble the entire structure step by step and test at each stage.

Assembling

Step 1: Connect all LEDs in a chain with a common minus

  • Test the negative wire.
  • Test each LED in the chain individually: we have common negative, so pass just "positive potential value" parameter for our tests 🙂

Step 2: Connect proper resistor to each LED.

  • Test current of each LED with their resistors.
  • Temporary connect all free resistors pins in common and test full illumination and evenness of illumination.

Step 3: Start laying a positive line

To reduce the amount of "cable salad" and add extra strength to the string, I decided to twist the positive and negative wires in segments between lights. I cut off the first part of the positive wire measured from the input connection point to the free end of the first resistor. When I wound the first segment of the twisted pair, I discovered a bug - an unaccounted nuance: which way should the resistor be directed, towards the start or the end?

My original assumption - to direct it towards the start, meaning the direction from which the pair is wound - was incorrect. In this position, I would have to solder the free wire end with the free resistor end before the wire segment between the resistor and LED is wound. However, I cannot wind it beforehand because there could be a risk of damaging the other wire in the pair during soldering.

So, I had to cut a new first positive segment. Although the wire lengths were right on the edge, it could turn out that an additional splice in the middle of the segment between LEDs might be necessary, something I didn't want to allow.

Luckily, the last LED directs its resistor to the beginning, so the length of this segment is shorter than the others. Thus, I found the spot for the "bug" wire.

So, by applying a "staged release strategy in production", I managed to find and fix an "early bug" 😁

Step 4: Continue soldering other LEDs in the chain, testing the completed chain after each new connection.

And now, finally, my new old Christmas lights are alive again with 12 new hearts
💛❤️💚💛💙❤️💚💛💙❤️💚💛

Music and Blinking Feature

At this particular point, I got an idea to upgrade my Christmas lights with a feature that blinks to the beats and plays "Jingle Bells". I absolutely love this melody and hummed it while connecting the lights together 🎶.

I have a musical postcard I bought back in my childhood, and it plays "Jingle Bells" in a tune that appeals to me. Recently, I acquired Arduino programming skills, which gives me the opportunity to implement my own controlled music box.

New feature: Blink to the beat and play "Jingle Bells" using Arduino.

Step 1: Obtain the notes of the melody from the postcard.

There are two ways:

  1. Connect the oscilloscope to the speaker and record the sequence of tones.
  2. Record the melody with a microphone and recognize the notes using software.

Easy ways are not my style, so I chose both of them to guarantee that the melody is transferred precisely 🤓 Especially since I have skills in working with both an oscilloscope and audio recording, and I love doing it.

In fact, both options are important together:

  • My non-professional oscilloscope provides information only about the correct tones, but I cannot determine the timings.
  • With an audio recording, I can capture the duration of each note.
Some note with frequency 740.375Hz is playing
Parsing the notes from the audio recording. One main tone and a bunch of overtones

I had some partial knowledge of music theory from secondary school, so writing a melody by notes with modern program tools wouldn't be a big deal for me. I knew that notes have durations like whole, half, and quarter, but when I measured the duration of some recorded notes, I noticed that some of them were too long. After that, the internet helped me fill the gap in my knowledge: there is one special mark that prolongs note duration by 50% – such a note is named "a dotted note", and this mark is simply a dot placed after the note on a staff.

Dotted notes
Dotted note near to common note

When I finished parsing the tones, it was time to put them into Arduino. However, not just as parsed from the oscilloscope because this is a melody, a piece of music and we should respect "the spirit of music", and the tones should correspond to proper note frequencies. I found a web page with a table of such correspondences:

https://pages.mtu.edu/~suits/notefreqs.html

As expected, my parsed tones were slightly different from the ones in the table, so I chose the closest in value.

When I ran my Arduino melody sketch, I noticed that the generated melody differed from the melody on the postcard, and not in a good way. I began looking for another bug. I found it on a page with tones, but it was my mistake - again, a gap in my music theory knowledge. I hadn't paid attention to the numbers at the top of the page, labeled as "tuning choices, A4". I didn't know what it meant, so, as one says "the internet is my best friend". This time, I found out that frequencies are not "hard-coded" to the notes. Instead, there are several standards for this linkage known as "pitch standards", and each of them defines the frequency of "the note A above middle C", or A4. The most common standard is A440, also known as Stuttgart pitch, which corresponds to the note A4 having a frequency of 440 Hz. Read more: https://en.wikipedia.org/wiki/A440_(pitch_standard)

Now, let's return to the "notefreqs" web-page and switch the pith to the A4=440. This attempt of transfering frequencies was crowned with success and my "Jingle Bells" melody on Arduino plays fine and just as good as on my postcard.

Then I recalled another Christmas tune that I also started humming - "We Wish You a Merry Christmas", and boom: the internet, the notes, then "everything is in a fog", and "a few moments later" I have another Christmas melody on my Arduino 😄

Speaker and LEDs can be connected to the Arduino by a classical transistor switch circuit:

So, here you are, the sources for Arduino, who interested:

https://github.com/asilichenko/arduino-play-melody

By the way, during this small "musical journey" I noticed that I also like to work with music, so I created a video tutorial how to play "Jingle Bells" on piano for beginners, check it out:

Strange, considering I've never liked musical flashing Christmas lights, but when it's your creation, you change your attitude towards it. Yes, every project I work on is kind of like my child, into which I pour my soul and care deeply about its well-being.

Now, when the major work is done, as often happens, it's time to document it 🙂

As far as my project results should be visualised I need to make some videos and photos. So, I dressed up my Christmas tree (also from my childhood) put "newly rebuilt jewelry" on it and started to capture it in its best. Taking photos is my another passion, so this part was no less exciting as all previous.

Shorts videos of the result

That's all for today. Thanks to everyone who read this article and, to some extent, experienced this little journey with me.

Merry Christmas and a Happy New Year 🎄🎅🎁

May peaceful skies be above everyone's heads 👼

Links

No comments:

Post a Comment

Why BQ28Z610 function Current() returns 0 mA

Fixing 0 mA Current Readings on the BQ28Z610 Device Custom driver for the BQ28Z610 device was connected directly via I2C. It is p...