Pillow Word Clock

by MartinMemol in Circuits > Clocks

760 Views, 6 Favorites, 0 Comments

Pillow Word Clock

Opener.jpg
I build a wordclock in a pillow
02496-2388475576-_word clock_ in a pillow with LEDs.png
02474-2388475554-_word clock_ in a pillow with LEDs.png
02461-2388475541-_word clock_ in a pillow with LEDs.png

I was asked to build a word clock.

What came first to my mind was: Oh no! Thousands of other people did this before. But although I never planned to do this for myself, I took this as a challenge. After looking at some instructables, I found some good inspirations. Then we met and I proposed to have a different front plate. The display could also be flexible. And I liked the idea of using some fabric as diffusor. So the idea came up to create a word clock in the form of a pillow.

As AI is currently a hype, I asked stable diffusion how such a project could look like. It was quite interesting and I added some picutres, but it looks like the AI does not know what a 'Word Clock' is.

This clock needs Wifi to get the time from the internet. This way you never have to set the clock manually.

Although my pictures show the german version, I have added the 3D print files for the english version. Let me know when you want to build a german version.

Supplies

Supplies.jpg

Materials:

LED Strip (WS8212b or SK6812)

Pillow and (elastic) pillowcase.

ESP 8266 Microcontroller

Transparent Filament alternatively white filament which lets some light through.

Black Filament alternatively some dark filament which absorbs light well

Cables to connect the strip

Tools:

3D Printer

Soldering iron.

Hot glue or any other glue which can glue your filament.

Design the Word Boxes

Early_Prototype.jpg
Lid_with_led.jpg

You don't need to do this step. The finished files can be found in the next step. This is just to explain what I did and why.

Since a pillow is flexible, the whole display should also be flexible. Not because it has to change all the time, but to adapt to the pillow surface and let the pillow appear like a normal pillow.

The idea was to create little boxes with led strips inside. They should have transparent parts where the words shine through to the surface.

So I started Tinkercad and designed some prototypes. After printing some, I decided to not connect them with cables, but just put them one after the other on the LED strip and connect the rows with cables. Therefore I need boxes with the size of several LEDs on the strip (1.66 cm for 60 LEDs per meter). Since we have short words like to, but also long words like twentyfive, different sizes are needed. The box has an inside size which has to be large enough to hold the leds and an outside size which has to be small enough to leave enough space to the next box between the LEDs. See the following illustration to get an idea how I measured.


+----------------------------------------------+
|  +-----+           +-----+          +-----+ |
|  | LED |           | LED |          | LED | | <== This is the LED strip
|  +--+--+           +--+--+          +-----+ |
|  |  |<--  1.66 cm  -->|  |          |       |
+--+--+-----------------+--+-----------+-------+
   |<----- 2.4 cm   ----->|< 0.93 cm >|


The overhang of the leds to the left and right is then: 2.4 - 1.66 = 0.74

So we have a inside size of 1.66 * (LEDs-1) + 0.74 and the walls can be up to 0.93 cm / 2 thick. Since we don't need such thick walls, the rest is the distance between the boxes for more flexibility. I decided to have a little bit more space inside and less space between the boxes. The walls are 0,1cm Furthermore I round it to the next decimal. The sizes are:

Number
of LEDs Inside Outside
2 2.7 cm 2.9 cm
3 4.3 cm 4.5 cm
4 6.0 cm 6.2 cm
5 7.6 cm 7.8 cm
6 9.3 cm 9.5 cm
7 10.9 cm 11.1 cm

I set the height of the boxes to a value of 3.5cm since this looked reasonable for me and is big enough to have readable text from some distance. You might want to make them smaller or bigger depending on your preferences and pillow used. For very large sizes you may need more LEDs in a box. The thickness is 18mm which could also be increased for larger boxes. Which box is used for which word is chosen in Tinkercad by just looking at the word.

What words to use depends on your needs and on the language. I build my clock in german, but all languages should be possible since the software is quite modular. The most important words are the hours. You probably need 12 unless you want to have a 24 hour display. Minutes are also useful, but you usually need them only in 5 minute steps otherwise you get too many and the clock changes too often. Seconds are usually not practical in a word clock. The minutes can also be before (to) and after (past) the hour. "Twenty minutes to three" and "Twenty minutes past three" can reuse the twenty. So you need a maximum of 6 and 2 additional for "to" and "past" Then you may want to have additional words like "It is" and "o'clock"

overall this gives the following words:

It is   five       minutes    to      one    seven    o'clock
ten past two eight
fifteen three nine
twenty four ten
twentyfive five eleven
thirty/half six twelve

Overall 23 boxes.

3D Model the Word Boxes

Modelling WordClock Boxes with Tinkercad
Box-One.png

I use Tinkercad to model the Boxes. Since I am in a non-imperial unit country, as you have guessed from the step above, you need to set Tinkercad to Millimeters in the settings on the bottom right.

The design is quite simple, since they are just boxes. To make them a little round I set the radius to 1(mm). By using the ruler tool it is easy to set the exact size of the box. As shown in the step above the measures are:

29mm x 35mm x18mm for the smallest box and increasing the first value for bigger boxes with the values:

29, 45, 62, 78, 95, 111.

Copy the box and make it a hole. Move the hole 1 mm to each dimension and shorten it by 2mm in each dimension. This makes the box hollow. now add a box with the size of your outer box and make it also a hole. move it up by 16mm and group everything together. You now have an open hollow box. For the lid just copy it and move the last hole box down to 2mm.

Add a text and resize it to the box minus 3mm on each side. Set it to hole and 0.3mm above the ground. This makes sure the first layer is solid. To make the text appear correctly on the outside, it has to be mirrored. Choose the mirror tool in the button bar and click on the arrows below the text. When you want to use a different font you can follow this instructable: https://www.instructables.com/Custom-Fonts-in-Tinkercad/

See also the video on this step.

The files are here:

3D Print the Parts

Printed_parts.jpg
Box inside.jpg
One_box.jpg

Although the pictures here are in german, I have added the english version in step 2.The boxes consist of two parts:

  • The bottom
  • The top with the according word

Printing is not completely trivial. You need to add a pause to the print after the first layer and change the filament from transparent to black. This Instructable can give you an impression how this works, although it might be different for your printer.

Be aware that you need to print 'five' and 'ten' two times since it is used as minutes and hours. You need only one of the "thirty" or "half" word boxes according to your preferences. The pictures shown above are a little different from the files. Please don't let this confuse you.

While the printer is busy, go on to the next steps of the project.

Solder Everything Together

LED_Strip_one_Led.jpg

Take your boxes and lay them on the ground according to your layout. You can adapt the layout to your needs according to the size of the pillow. You should have the same amount of lids in the correspondig sizes. Put them in the same pattern.as your boxes. Put the LED strip in the first row and cut it after the last box of the row. Do this for each row. Mark the LED stip parts with numbers or make otherwise sure you don't mix them up.

Solder them toghether to one long stip. Make sure that the direction is correct. There are small triangles on the strip which have to be in the same direction. You can also connect the +5V and GND at the start with the ones at the end to have a better power supply.

Solder the strip to the ESP 8266. GND has to be connected to GND. +5V can be connected to a 3V output or if available a VU pin which provides the power from USB. The Din (data) pin has to be connected to D6.

Program the ESP and Test It

The source can be found on Github:

https://github.com/JustMakeAnything/PillowWordClock

Program and test the software. The repository was created with PlatformIO. It may also run on other IDEs, but was only tested with PlatformIO

To get a time, the ESP needs a Wifi connection. This can be done with WPS. There is a button on your router, or in the WEB configuration to start WPS. Push the button and connect the D4 pin on the ESP with ground aftwerwards. There is a timeout of about 2 Minutes in which the pairing has to be completed. You can see in the terminal (serial console) with 74880 bps what is going on.

When you don't have Wifi, it cannot work since it does not have any controls to set the time. To set the correct timezone set your offset to UTC in the constants.h file.

Build It Together

In Pillow.jpg

Putting it together is quite simple. Just put the boxes on th pillow and put it together into the pillowcase. Make sure you have a USB cable plugged in the ESP and you can connect a power supply or powerbank to it when the pillowcover is in place.


In case of questions, comments or other ideas feel free to post them below.