Search This Blog

Thursday, July 26, 2018

Charleplex Xmas Tree without uC

Projects / LED  Original post date: 11/13/2015

This is one of the Xmas trees I built over the years to keep up up with the Jones at work. The flasher circuits are made with 3 oscillators built with logic gates with their output Charlieplexed together.

This was built before the age of "Maker", "Arduino" and "Charleplex".

Runs from below 5V to 9V (max) unregulated DC input. The low side depends on the type of LED you are using. For red/green/ambers, it'll run down to 1.8V with the LED barely visible.

This was constructed on pad per hole perf board a long time ago. Now I have rebuilt it for the 1" x 1" contest complete with PCB design.

Main perf board I used was: 0.5"x0.5"
4 additional 0.2"x0.2" that are soldered to the paper clip used for mechanical support for each of the 4 LED clusters.
Total board space: 0.5"x0.5" + 4 x (0.2"x0.2") = 0.41 sq inch.

Note: components values updated.
The circuit consists of 3 independent oscillators. The inverted and non-inverted outputs are used to Charleplex 6 groups of LED. My design came way before I was aware of the term.

The frequency could be calculated using this:
http://www.theremin.us/Circuit_Library/Astable Multivibrator Calculator/CMOS_Calculator.html

I doubt that the results would be any accurate as the capacitors can easily be off by +/-20% and the threshold voltage do not have tight tolerances either... The voltage is not regulated as I use a series resistor instead of a regulator to give it a much wider operating range. I didn't bother to use Rs. This design has pretty much stripped all the non-essentials.

Since the contest asked for gerber files, I created a few versions of PCB for reference.

Homebrew PCB

This is a single side PCB layout using smaller 0603 parts. Just use pref board for the LED branches.

Homebrew double sided PCB

Here is a bit more aggressive double sided layout to include the LED branches and fit inside 1" x 1". The sub boards can be scored with a box cutter and snapped or other cutting tools. This is probably the version I am going to be building for the contest.

I use mostly 12/12 rules except for a trace between a 0805 cap, so it should be easy for home made PCB. All the 0.5mm vias are at the edge of the PCB, so I can skip the drilling and simply bridge the two sides together with piece of wires on the outside edge of the PCB. For the LED branches, I'll be lazy and only drill the centre hole and just solder the LED onto the pads.

PCB fab

I haven't done panels before, so I don't know the rules nor the optimal way of doing this. The 1x3 strip is for the LED at the top. The sub boards are panel with 1mm milling bit. For production, the more optimal way of doing this would be to make an array of the circuits on its own.
The rest could be scrap PCB panels area that can be fitted into unused areas. There is a reason why there are really thin strips of PCB proto boards from China.

Construction


Each layer of the tree trunk in my old tree is built out of a small piece of perf board. The leads for the LED acts like the branches. They are trimmed to different length for the different layers.

A straightened paper clip acting as the "tree trunk" runs through the centre pad and is soldered in place for mechanical support. Wire the LED to the PCB.
The tree trunk and wiring is covered by the Tinsels. Branches are made of this as well.

Looks like the cap values are wrong. I thought C10uF might have meant 0.1uF because of the size of the package. Those really tiny tantalum caps are really 10uF. The easiest fix is to bump up the cap value and resistance values by a factor of 10 in the schematic and find the closest ones I have in the part bin. The actual values aren't really that important as they only affect the blink speed. Even when you do calculate, they are still going to be off quite a lot anyway as they relies on the input logic threshold of a digital logic chips.

I am updating the schematic and part list to reflect the changes. I really don't think a finalized part list before things are built make any sense for most projects, but hey I didn't make up the rules.

Full BOM: https://github.com/FPGA-Computer/1x1/blob/master/Xmas/xmas tree proto_ListByValues.csv

Build log for the Xmas tree

I haven't done toner transfer for a while, so I am kind of rusty. I have tinned the PCB, then heat it with my hot air tool and scrap off the excess solder with a piece of cardboard as a cheap replacement for HASL.


PCB before I cut it up in tiny pieces. I guess the blinking circuit can enter the 1cm x 1cm contest if there is one.

Back side of the main PCB


Soldered in passives on one side. Proceed to drill vias with steel 0.5mm bits I bought from China. These are the much cheaper "high speed" bits which are more flexible. They don't break as easily as the carbine steel bits when you are using it without a drill press.

The soft AWG#26 solid copper wire snug fit the drill hole and works as a cheap rivet when compressed on both ends with a pair of pliers. I soldered both sides afterwards.

Some of the resistors values are slightly different than in the schematic as these are the ones I can find. The change in values would only affect the blinking rates.

The other side of the board.
The etching on this side wasn't that good so I have to patch the connection with small strands of wires.

Back side again with the power and ground connected. After fixing a few bad connections, all the oscillators work. Those square pads are the connections for the LED chain.


Make my LED on a stick aka the trunk out of the 4 piece of the 3x3 pads and a piece of stiff wire out of a paper clip. I used a piece of cardboard for the spacing while I solder the centre pad to the wire.

I am trying to have mixed colour LED this time. The big issue is that they don't have same brightness. Also to watch out for is that blue and white LED have much higher voltages than the red/green/yellow/amber, so they might not light up at all if you mix them.

The base is a heatsink and I have the second piece of paper clip that anchor itself among the fins and is spliced to the trunk with a spirally wound piece of copper wire. I soldered the two together after lining up the tree.



The LED are connected to the flashing PCB using magnetic wires. I use the following order: (A'B), (AB' AC'), (BA' BC'), (CA' CB') for the different levels. The actual order doesn't matter as it only affect the flashing sequence grouping of the LED.

I cleaned up the wiring by bundling the wires together to the trunk with another piece of magnetic wire. I use heat shrink to cover the electronics and crimp seal the ends with pliers while the tubing is hot. This put a bit of strain relieve on the power leads solder joint. I spliced the power leads to a cheap USB cable and tug the end of the cable between he heat sink fins. Now I have USB LED Xmas tree for my computer!

I wrap around some tinsels around the trunk. I didn't do a good job as it looks kind of like the unsold barren trees left at lot that nobody wants to buy. I think even my old tree looks better than this. :(

The yellow LED from some indicator lights doesn't seem as bright as the others. That's the problem of mixing LED made in different eras from old junk box collection. They have been improving the efficiency over the years.

I'll try to clean it up a bit tomorrow and get a video or animated gif made to show it work.





No comments:

Post a Comment

Note: Only a member of this blog may post a comment.