Lazy Words - Single LED Strip Word Clocks

by parallyze in Circuits > Clocks

9225 Views, 146 Favorites, 0 Comments

Lazy Words - Single LED Strip Word Clocks

_title.jpg
IMG_4931.jpg
IMG_4923.jpg
02-006.JPG
IMG_4941.jpg
001.jpg

Hey all,

here's another lazy design using a single LED strip (WS2812B, 60 LEDs/m). There's a lot of word clocks out there, I know... but actually building one was my first project using WS28xx LED strips back in 2014, also it became the reason to get a 3d printer very soon after. And my Lazy Grid Clock is actually just a smaller derivative from all that... so it is some kind of "back to the beginning", somehow... ^^

When a friend of mine asked if I could provide him with the files for the old design there was a problem. He simply doesn't speak german. And because I wasn't happy with my old design anyways I decided to start from scratch. This time trying to design one in english, too. Hopefully I didn't mess that one up... das wäre ganz, ganz fürchterlich! xD

Differences to the Lazy Grid Clock v2:

  • 11x10 instead of 7x11 grid cells
  • Cells aren't square to give the 11x10 arrangement a square appearance
  • There's something printed on the second layer of diffusion ^^

You will need a proper frame for this thing. I am not providing any printable frames here for various reasons:

  • They usually don't look as good as a proper wooden frame
  • Looking at material cost/print times it's likely more expensive than a finished 8" frame

And even if I did people would want one for their 210x203mm glass plate, another one would want a frame for 210x210 and many others would want a 235x235 frame. So simply design your own one or get one that fits. ;)

A modified version of ClockSketch v7 is running on this. It is one sketch for both languages. Due to the nature of the front layout there's a few limitations and differences which I will come back to later in this instructable. But the sketch has to be downloaded from the CSv7 Instructable and I highly recommend reading that one before building any of my designs.

This Instructable will be rather short and focus on building the clock "sandwich". Important information about electronics and "schematics" are available in the CSv7 Instructable.

The biggest 3d part to print is the front panel, it is 199mm x 199mm x 16mm.

The PDF front does require a printer capable of printing 197mm x 197mm (almost any printer able to handle A4/Letter should be able to do so).

Supplies

01-001.JPG
01-002.JPG
01-003.JPG
01-004.JPG
01-005.JPG
002.jpg

There's not really many 3d printed parts here, the only difference between the english and german version is the front panel - the LED grid and other parts are identical.

These 3d printed parts are required:

  • 1x LW-All-LED_Frame_01.stl
  • 1x LW-All-Outer_Parts_01.stl
  • 1x LW-Front_English.stl or LW-Front_German.stl

For obvious reasons I highly recommend printing the parts from black material. Walls are multiples of 0.5mm, so I'd also recommend using an appropiate extrusion width. Layer height doesn't really matter, most of the parts won't be seen later on. The most important thing is to get all the parts printed in a way there's no gaps in the solid infill where the LEDs can shine through.

The front panels do have very small features which are connected later in the print using a tiny wall - so be careful when removing them from the build plate.

Please note that this Instructable is not about how you are printing this on your printer using your favorite slicer. If you have problems getting small parts to adhere to the bed or don't know how to print the 199mm x 199mm parts on a 200mm x 200mm printer then there's countless other and more appropiate places to ask for help. A workaround for adhesion problems is to print a thin single layer of clear material first and then print the front panel on that. This does work quite well but will spill some light into letters surrounding lit words (usually just visible in very dark environments). Also you'll very likely see some fine lines in the end if you take a very close look at the letters, but that's usually negligible from regular viewing distances. I will add other generic notes for slicing at the end of this Instructable.

I do not provide any sort of frame for this, so you will have to get a suitable one where you can put all the parts into. I am using 20cm x 20cm object frames from the "Objekt 13" series, available from "Boesner".

The printed parts will have a thickness of ~16mm. Including the backing board it is a very tight fit inside the "Objekt 13" frame, but it does fit without any trouble.

If you are using a frame with a different size (like the ones from IKEA) think about how you'll finish the front. Always remember the limitations coming into play - like a printer only handling A4/Letter formats...

In case you'd like to drill holes somewhere to mount this on - hole spacing is 192mm x 192mm.

As always the simple usage of a single LED strip does come with some limitations. For optimal results I highly recommend using something like backlit inkjet film instead of paper - using 2 sheets of paper will result in a very dim clock and less vibrant colors. While you can omit the first layer of diffusive material between the LED grid and front panel this will very likely make it more visible if the current contents are lit from above or below inside the grid.


There's two files you will need to 2d print. Remember those? :)

  • LW-Diffuser-Cut.pdf
  • LW-Front-English.pdf or LW-Front-German.pdf

The first layer of diffusion between the LED grid and front panel is more important than it may look at a first glance. But this greatly helps improving the quality of the final thing as it softens down the shadows of the thin walls holding islands inside some letters (B, A, P, R...). It also helps in evening out the difference between rows lit from the top vs. the ones lit from the bottom.

Note: I don't know what your printer model is, I don't know what software you are using to print this. But make sure that the application you are using is set to print at 100% and your printer driver is not scaling output. The PDF files are already at 197mm x 197mm to accommodate for the non-printable area on many printers. But selecting options like "borderless printing" may result in a slightly too large print, making it impossible to fit it to the 3d printed front panel.

By default my Canon IX6850 did scale the print down a bit which rendered the first print on inkjet film completely useless... (and is the reason why I cropped the PDFs to 197mm from their initial size of 199mm). ^^


Non-printed parts you'll need:

  • 100x or 106x WS2812B LEDs, 60 LEDs/m (english 100/german 106)
  • 1x RTC (DS3231 recommended and used in the pictures shown here)
  • 1x Microcontroller (Arduino Nano/Pro Mini used in the pictures shown here)
  • 2x 6mm x 6mm push buttons, 2-3mm pin length recommended
  • 1x USB cable (keep length reasonably short, I'd recommend a maximum of 200cm)
  • 4x M3 screws, length 10-14mm (10mm recommended, non-countersunk)
  • 1x M3 screw, length 6-10mm (8mm recommended, non-countersunk)

If you're missing details in the above list I'd recommend again to have a look at the ClockSketch v7-Instructable, it's very likely been covered there.

Letters in the front panel parts are offset by +0.6mm compared to the printed PDF front. To a certain degree you can increase/decrease this using the horizontal size compensation in your slicer. Also note that squishing the first layer too hard and not using any compensation will reduce the tolerances when it is time to align the printed PDF to the printed front panel....


Notes:

The sketch is not using the AM/PM letters on the english front plate, so the LED strip doesn't have to cover those. If you want to use them you will have to add a few LEDs and modify the sketch accordingly, the A/PM letters are included in the front panel and PDF file - so there's no further hardware modifications required. I just somehow didn't see much sense in using them at all...

There's some holes in the LED grid part where you can use cable ties to hold things in place. Be careful when using them and use small cable ties. Regular 100mm x 2mm will be a very tight fit and are very likely to accidentally break small features where you're tightening them. Small cable ties like 70mm x 1.8mm do work well but you'll still have to be careful when tightening them.

Some things might be different between pictures, like showing a Nano or Pro Mini, black or white LED strips. I did take the pictures while building both versions, so it's simply pictures from two different clocks...

The LED Strip

02-002.JPG
02-001.JPG
02-003.JPG
02-004.JPG
02-007.JPG

Insert strip. Done. ;)

There's actually not much more to say than this if you have a look at the Lazy Grid Clock v2, the principle is the same.

We'll start at the lower left corner when looking at the part as shown with Data In. Then we'll work our way to the end of the first row, bend the strip carefully and return to the start. 2 LEDs are "wasted" between each section. If you want to save them and solder the strips together instead you can do so, but you will have to adjust the sketch accordingly.

And please note how this does not translate to: "Tell me if you did save them and have no idea of how to get this thing to work now.". I've explained how to count LEDs and insert numbers into (fully commented) arrays before. More than once. So I simply refuse to do so any longer... ;)

When you arrive at the topmost section there's a difference between the german/english editions in how many LEDs you'll need. The german one is using 106 LEDs while the english one does stop after 5 LEDs inside the top row, requiring a total of 100 LEDs. The last picture from this step does show the difference (red - english, blue - german).

I recommend a "dry run" where you pre-bend the strip slightly and check if any of the places where you will have to change direction sits on a solder joint (there is one every 30 LEDs/500mm). Removing one or two LEDs from the start of the strip to offset everything usually fixes this easily.


Electronics

02-005.JPG
02-005b.JPG
02-005c.JPG
02-005d.JPG
02-006.JPG
IMG_4085.jpg

Arduino Pro Mini/Nano and a ZS-042 (DS3231) will fit nicely. If you intend to use the pin headers on the Arduino (or you ordered one with them already soldered in) make sure nothing does stick out more than 3.5mm on the back of the grid, otherwise it will prevent you from seating the grid into the front panel properly. Spacing is the same for Nano/Pro Mini. Also make sure nothing ends up higher than the walls from the grid cells - depending on the pins the RTC/Arduino come with you might have to desolder or trim them down a bit.

Power/USB cable is soldered to the spot where the strip bends inside the topmost section. Wire length for the buttons is roughly the distance from the microcontroller to the top border of the LED grid part.

Buttons are held in place like on my other designs - route them into the holes, hold them in place and "lock" them by putting in the little "clamps" provided with the outer parts stl file. Some pictures can be found in Step 9 of my TFO-Instructable, for example (last picture is from that Instructable, for illustration purposes).

Sketch / Testing

IMG_1238.JPG
IMG_1239.JPG
IMG_1240.JPG

Once all the electronics are done I highly recommend uploading and testing the sketch. After this step you'll not be able to reach the microcontroller easily, so if a button isn't working because you accidentally may have switched a wire, this is the time to find out - not later on when you will have to disassemble the whole thing. :)

Before uploading the sketch make sure the proper language is selected on top of the sketch:

// Lazy Words, uncomment only the one to be used#define LW_ENG // english//#define LW_GER // german

Check if your RTC does retain time properly, check if the A/B buttons do work. You will need button B just a few steps later.

You can put the LED grid inside the front panel for testing without the first diffuser sheet, that's up to you. I had it put in at this point and accidentally scratched it a bit while turning the thing over multiple times. Coated inkjet film is very, very prone to scratches... ^^

I recommend putting a blank sheet of paper on top of the panel while looking at it if not using the first diffuser, looking directly into the LEDs isn't really a great experience.

Frame Preparation

03-001.JPG
03-001b.JPG
03-002.JPG
03-003.JPG
03-004.JPG
03-005.JPG
04-001.JPG
04-002.JPG
04-003.JPG
IMG_1245.JPG

To mount everything inside the frame without having to handle multiple parts I ended up "clamping" the backing board the frame came with. To do so I had to remove the edges (or drill some holes - but my power drill is broken) and a tiny section where the wiring will be.

Be careful when tightening the screws. Once everything is inside the frame it doesn't have to take any loads, but tightening too much can bend the "X" upwards easily if you cut off the edges from the backing board like I did.

It's also a good time to mount the push buttons and route the USB cable as shown. And putting the lid on. I mean, everything has been tested in the previous step, hm? ;)

Front Alignment

05-003.JPG
IMG_1266.JPG
IMG_1267.JPG
IMG_1268.JPG
IMG_1269.JPG
IMG_1271.JPG

Power up the "clock sandwich" and hold button B down while doing so. After roughly 5 seconds the clock will light up some words to help you aligning the final front sheet to the panel (no, the words displayed won't necessarily make sense ;)).

I used tiny, TINY amounts of glue stick to make the front stick to the printed front panel. Inkjet film doesn't curl up that easily but make sure you keep a safe distance to the letters.

This is one of the most important steps of all. But there's not so much to say here, somehow... just be careful, patient and align it as good as you can... ^^

Final Assembly / Sketch Differences

IMG_4931.jpg
IMG_4876.jpg
IMG_4908.jpg

Clean the inside of the frame and the glass thoroughly. Avoid dust, fingerprints and scratches! ;)

Final Assembly actually consists of putting the "sandwich" inside the frame. And how that one is finally locked depends on the one you're using. I don't own an IKEA frame but had a look at them. The "X" part on the back should have enough clearance for the wall hook on them. But you will very likely not be able to use both tabs on the side where the buttons are.

As noted in the beginning, there's a few changes to the sketch running on this:

  • Single color mode (colors spread across words, still various palettes to choose from)
  • No 12h/24h selection (D'oh!)
  • No AutoDST support (unless used in conjunction with WiFi/NTP on ESP8266)
  • No WPS support, SSID/PW only on ESP8266

Setup is the same as on my other designs, push A+B and hold them until the screen blanks to enter setup.

Use buttonA to advance in 5 minute steps and set time to the next "valid" time.

Example: It is 10:32, set the clock to 10:35 and confirm using buttonB once it is 10:35.

ButtonA/B long press will add/subtract 1h to allow for easy DST changes.

ButtonA/B short press will select brightness/color palette like on all other models

Additional Notes

_1stlayer_a.JPG
_1stlayer_b.JPG
_gapfill02.JPG
_gapfill01.JPG
_1stlayer_c.JPG
_1stlayer_d.JPG
_infill_a.JPG
_infill_b.JPG
01.gif

The tiny letters inside the front panel are something to pay attention to when slicing the part. One of the likely things to encounter is gaps inside some of the letters because of no inner perimeters. The first two pictures do show this. As always there's multiple ways.

One way is to use "gap fill" or whatever it might be called in your slicer. This may lead to more or less likeable results, pictures 3+4 do compare this from different slicers.

Another way is to simply lower the extrusion width until the slicer fits inner/outer parameters and doesn't leave any holes (pictures 5+6). But remember to have it at the proper values when the print reaches the upper part, the walls are multiples of 0.50mm.

Another thing that is tricky on shapes like this is the infill. Depending on extrusion width you will get some places where infill doesn't reach every spot. Increasing the perimeter overlap is often used here - I absolutely do not recommend that.

Instead use different fill angles to make sure there's no gaps left. Depending on your slicer you can simply add different infill angles (Cura, S3D) or might have to use modifiers (Slic3r/PS). Increasing/Decrasing the amount of perimeters on 2 layers additionally will also help in getting a nice closed surface around the letters.