-
Power supply considerations
11/14/2018 at 08:12 • 0 commentsA quick primer on powering WS281X LED's
There's some important things to keep in mind when designing with Worldsemis WS281X LED's. I'll try to keep it short and concise. Here are the main points to consider:
- type of LED (there's different versions of those LED's available)
- how many LED's will be on at a time at which color and brightness level
- what will the power supply be
We will discuss these in the following paragraphs
LED types
Worldsemi (that's what WS stands for) has those LED's in many different styles.
The famous WS2812 found on LED strips is most likely the WS2812B type, which has a current consumption of 20mA max per color (60mA at full brightness white). They offer some dimmer variants as well, the WS2812C for example. It has only 5mA per color at much less brightness.
It's the same with the WS2813. There is a 12V variant too, the WS2815B.
If you're interested in a smaller case, the WS2812C-2020 or the WS2813B-MINI are your choice, which come in a 2020 respectively 3535 case.
I ordered my LED's at lcsc.com. I guess Aliexpress etc. has them too (wouldn't be surprised if there are fakes out there).
Active LED's at once
This is the most important factor for choosing a power supply! You should always consider the worst case scenario of your application.
In my case this will be the time displayed with most segments on at maximum brightness in white color (*3 because of 3 LEDs per segment):
Time 23 : 58 LED's lit (5 + 5)*3 2 (5 + 7)*3 Current consumpt. [mA] 1800 120 2160 This is 4.08A at 5V = 20.4W. At an estimated 85% efficiency of a wall plug this is 23.5W of total mains power usage.
Another way to ship around this is to use only 1 or 2 LED's per segment. With 2 LED's the current would be 2.76A, with only one LED 1.44A.
Power supply considerations
4.08A is too much for the standard USB 1.0 / 2.0 output (500mA max) and even for all those USB-phone chargers which deliver up to 2.1A.
We also need to take into consideration that when programming the clock, it might only connected be to the PCs USB port (which might even be USB 1.0, who knows). So there needs to be a low-power mode for programming which is preferably activated automatically.
So, for this clock I will use a 5V, 25W standard power supply. Expecting all segments active would draw 5.4A from the supply which is totally unrealistic...
Final considerations
The clock won't run this brightly for any longer period of time, so the above values are very conservative. I expect it to use a maximum of 1.8 - 2A at a "good to read in daylight brightness". But in normal operation it'll draw something around 1A or less.
The FastLed library has options to restrict power consumption, we'll look into that later on.
-
New design (includes special WS2813 footprint)
11/12/2018 at 11:56 • 4 commentsFont overhaul
The layout of the segments has been revised. Dimensions are as in the following drawing.
You can see that everything is now nicely symmetrical, aligned and has even dimensions in mm for all important features (segment width, supports between segments, character height). I did this to have it scale down nicely to 50mm (segment-width is 5mm in that case) and bigger is easily scaled too.
Optical correction of the corner-segments
This is something that always annoyed me with this font. The marked corners do no look aligned, though they are perfectly in line. They seem to stick out a bit. This is an optical thing, which needs to be corrected by an offset.
Here's the version with corrected corners:
Here's how little correction is needed (0.3mm):Foundation of my work is the digital-7 font which is free for personal use. By the way. There even is a Segment Displays Wiki on the net, exclusively dedicated to segmented displays and fonts. Wow :)
LED's per segment
For the 100mm font-height 3 LED's per segment are used to achieve the "top-to-bottom rainbow effect" I want to have with the finished 4-character-display (plus separating colon)
I want to show the time as 24 hour format plus maybe temperature and/or date.
Modularity
Many different PCBs for each segment would result in no bulk discount at most PCB manufacturers, so I created one PCB, which can be used for every 7-segment-letter including the colon.
Later there will be four "dumb" segments with just LED's and one smart segment, which in turn controls the four others.
Each segment has all LED's in series plus an input and output connector. A solder bridge tells the "smart segment" which one is first and which is last.
Control of the Segments
One master-segment has all the parts placed to control further segments. The programming is done via USB (CH330N USB/UART bridge). It uses the same driver as the well known CH340 from all those cheap Arduino clones.
It has three pots (yes pots, not rotary encoders) to set the time and color of each/all segments. As the clock works in HSV-color mode, there's one pot for each value.
Reducing the overall height
This step includes two aspects:
- setting the LED's in into the PCB
- adding more diffusion because there's less overhead space for the LED's light to mix now
Setting-in of the LED's
This is done by creating a slightly undersized cutout of 4.9x5.3mm in the PCB for each LED. This makes soldering much easier. LED's are pressed in by hand with little force. There's no need for further aligning, just solder them from the bottom-side and you're done.
PCBs are from Aisler this time as they only take 8 days from uploading Gerbers to your mailbox if you live in Germany. I already asked them about their cutout-quality. Edges are not as straight as I am used to by OSHPark...
PCB - bottom WS2813 - they align differently because I used desoldered ones from an RGB LED strip bottom side You can download the KiCAD footprint here: https://cdn.hackaday.io/files/20142861755328/WS2813_sunken_final_Aisler.kicad_mod
It is not possible (at least not in KiCAD 5.0.1) to draw lines on the Edge Cuts layer. If you wonder how it's done: draw the cutout on the DWG User layer, save the file, open it in a text editor and substitute your "layer dwgs.User" with "layer Edge.Cuts":
Save your file and close/reload your KiCAD. Be aware that modifications to these lines in the KiCAD footprint editor will give you errors, telling you it has detected segments on unsupported layers. Just click "Cancel" and you're fine.
-
Update coming shortly
11/12/2018 at 09:12 • 0 commentsWork on this project has been continued! I ordered a test PCB to try something new. Should arrive end of this week, I'll update my log then.
In a nutshell it'll be about getting everything thinner while making the whole unit bigger. I'll go for 100mm segment height and have worked on the "font" a bit. It's now easily scaled while maintaining enough space for the WS2813 LEDs.
New goal is to get down to 10mm thickness @ 100mm text height!
Talking about LEDs: I ordered 150x WS2813Bs and and 50x WS2812B mini (3535 case).
-
Short video and PCB prototype
03/23/2017 at 17:22 • 0 commentsI've been on a short trip, so I had little time for my project. Anyway I've created a prototype PCB (through-hole components will be substituted with SMD parts soon):
I'll use two LEDs for each segment to keep the overall thickness to less than 15mm. I added a short video in the files section which shows one segment lit with two different colors.
I think very cool effects will be possible with this configuration. The PCB will get an Atmega328, ISCP etc for programming so the unit can be used on its own.
-
Laser-cutted parts arrived
03/09/2017 at 15:16 • 7 commentsLaser-cutted segments arrived today. They are a bit loose (maybe 0,1mm or so) but they'll fit snuggly when everything is powder-coated/laquered.
Yay, the laser-cutted steel parts arrived today. They look great:
-
Obstacle 2: Homogeneously illuminated segments
03/02/2017 at 19:52 • 0 commentsProblem
This is the real problem. I don't want to use more than two LEDs per segment. Segments are somewhere from 25 to 29mm long. Using one LED is not enought to get an even glow. Using two creates a "dark spot" between them...
Solution
Lot's of testing had to be done! I ordered a few laser-cutted steel plates (2mm thick) to play with:
Number one and two (from the left) are spacer plates which I'll use to get some space between the light-source and the front plate. Plate number three is the front plate, where laser-cutted acrylic segments (opaque plexi) will be pressed in. Last one is the back-plate.
-
Obstacle 1: number-height of 60mm
03/02/2017 at 19:34 • 0 commentsProblem
As I wanted to use spare WS2813 LEDs I have lying around, I needed a typeface which has wide enough segments to fit these at a height of 60mm. A quick google search for "led font" or "7 segment font" gave lots of options to choose from.
Solution
My first choice was Open 24 Display st by southype.
The problem here is the number "1". As the segments don't reach the top/bottom segments number 1 seems much smaller than the other digits. Another search brought up Digital-7 by Style-7.
Ah, much nicer! After converting it from .ttf to vector I had to modify it slightly to get it to the dimensions I needed. Height is exactly 60mm, width is 32mm. A few of the dimensions:
Width of the single segments is enough to fit the 5x5mm LEDs. I modified the bridges between the segments to 1,6mm so laser utting from 2mm thick steel won't yield any problems.