Music and Lights – the PCB!

After that fun-but-this-is-too-much-work making of the PCB, and over 200 solder joints later, I am finally done with the construction phase of the Music and Lights system.

Music and Lights PCB assembled.

Music and Lights PCB assembled.

One difficulty I had with soldering components on to this board is that certain components like the screw terminals and the audio connector could not be made flush with the PCB surface. This is because in order to solder the pins I had to reach in between the component and the board surface with the soldering iron. So when you look at the board from certain angles you can see the gaps, and it doesn’t look that neat. Next time I will make sure to put the traces for these components on the bottom side so they can be easily soldered.

I put all of the components on the top side of the PCB except for the LM1875 audio amplifiers, which were placed on the bottom side, so that I can heat sink them directly to the ground plane and avoid those bulky heat sinks.

The LM1875 audio amplifiers were placed on the bottom side of the PCB so that they can be heat sunk directly to the ground plane.

The LM1875 audio amplifiers were placed on the bottom side of the PCB so that they can be heat sunk directly to the ground plane.

The next step is to test it and see if all that hard work in designing and making the PCB has payed off. First I decided to try just the Speakers with no lights. The first time you power up a circuit board is always both exciting and dreadful. So it turned out that one of the speakers worked, and one of them didn’t.

Now it’s time to troubleshoot. First thing I did is to check if the amplifier for the speaker that didn’t work has power. Turned out that it didn’t, and this is good news. Close inspection of the solder joints of the amplifier found that I had forgotten to solder the power pin. Thankfully it is an easy fix. After soldering the power pin, both speakers are now happily working.

So far so good. What about the lights? After connecting the RGB strip to the PCB I turned on the lights switch and there was…. no flashing lights. Time to troubleshoot again. As before, I checked to make sure that power is available to all the components of the RGB driver portion of the circuit. This includes the RGB strip, the ATmega328p and the active filters. All the components had power. This means I have to dig a bit deeper to find the problem.

I decided to re-program the ATmega328p first. Surprise surprise! After re-programming the MCU the lights started flashing. Most likely what happened was that sometime in between removing the MCU from the breadboard and putting it on the PCB and soldering it, the program on the chip got corrupted. This could be due to ESD since I didn’t take any protective measures for ESD.

The best part however, is that now there is none of the interference that I observed before when the setup was on the breadboard. The audio is crystal clear even when the RGB strip is running. This means that the interference observed before is due to imperfections of the breadboard. Good layout technique and having a ground plane eliminated the interference problem.

Finally, let’s enjoy a show to celebrate this

So what’s next? This project is not done yet. One of the reasons I build this is to have a platform where I can test and implement different ways of syncing lights to music. So I will be trying out different algorithms and doing a bit of programming for the next little while to get the maximum use out of the Music and Lights system. And I will keep you up to date on that as well. Stay tuned and Thanks for reading!

3 responses to “Music and Lights – the PCB!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s