logo elektroda
logo elektroda
X
logo elektroda
Dostępna jest polska wersja

Czy wolisz polską wersję strony elektroda?

Nie, dziękuję Przekieruj mnie tam

TL;DR

  • A large WS2812B LED clock shows time and weekdays, with digits 79 mm high and the day line placed above or below the numbers.
  • The enclosure uses PLA-printed parts, a glued two-piece mounting frame, an HDF back wall, and white self-adhesive foil inside the partitions.
  • The display is tuned for the popular 60 LED/m strip, and the current time is downloaded from NTP servers every hour by default.
  • It offers many colors and animations, including nine display colors, a "Patriot" pattern, and a very slow vertical color change.
  • The build depends on access to a 3D printer, and the author still needs to finish the GUI.
Summary generated by AI based on the discussion content.
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
📢 Listen (AI):
  • #31 20856198
    efi222
    Level 22  
    Posts: 770
    Help: 12
    Rate: 1211
    The culprit is the oscilloscope.
    It seems that the measurements are made from what he "sees" on the screen. And since the base is quite thick (noise?), it is included in the measurement. The peak value is different for different voltage ranges per division. This is what it looks like for the 5V and 2V range per plot. Best when measuring with a cursor. To sum up, it`s probably a problem with budget equipment (DSO5102BM)...
    It does not matter whether the probe is connected, shorted to ground or disconnected.
    5V range:
    Oscilloscope screen displaying signal waveform with annotated voltage values.
    2V range:
    Oscilloscope showing waveform with Pk-Pk value of 240 mV.
    cursor measurement. 500mV range:
    Oscilloscope screen showing voltage waveforms.
    Returning to the topic of WS2812B. The waveforms (amplitude) on the GPIO controlling the WS are identical with and without the tape connected. So nothing works retroactively with WS here. At least 5V. So ESP is safe in my opinion.

    And I must admit that the system I propose works at the border of the WS specification. With a 3.3 -> 5V driver, the system will certainly be reliable. I found an interesting patent on the Internet using a single WS2812. There is not always a driver at hand.
    Diagram showing the connection of a WS2812B LED with data and power.
    The only thing is that the WS +1 addresses need to be renumbered in the software
  • ADVERTISEMENT
  • #32 20856207
    krzbor
    Level 29  
    Posts: 1765
    Help: 41
    Rate: 1065
    khoam wrote:
    Are you sure this information comes from the manufacturer`s documentation?

    All I know is that "All digital IO pins are protected from over-voltage". I assumed (maybe too optimistically) that it was done like in other UPs according to drawing. However, I may be wrong, as the documentation does not mention the method of security.

    Added after 1 [hour] 50 [minutes]:

    I found a very interesting website Link The author claims that the inputs can be easily connected to 5V. What`s even more interesting - the output can also work in 5V logic with an open drain configuration. I`m curious about your opinions on this matter. Anyway, I was wrong about the "Clamping diode" protection.
  • #33 20856366
    efi222
    Level 22  
    Posts: 770
    Help: 12
    Rate: 1211
    I am familiar with the article. Actually, the manufacturer himself does not know or does not want to reveal the 5V resistance of the ESP inputs. It will be more convenient to maintain that it is not. Let me just say from my experience that it is quite a resistant MCU. I once powered it directly from a Li-ion battery (4.2V). It is true that the system was put to sleep and woken up every minute. He worked like this for several months. It was sending data via ESP-NOW. The disadvantage of this solution was the relatively high power consumption during Deep Sleep. About 1mA at 4.2V, which dropped with the battery discharge to the order of microamps.
  • #34 20856482
    Anonymous
    Level 1  
  • #35 20856494
    Anonymous
    Level 1  
  • #36 20856835
    Jawi_P
    Level 36  
    Posts: 3238
    Help: 259
    Rate: 706
    These WS2812 diodes are a brilliant invention. A clock made of a chip and a strip of diodes. Apart from that, it`s nicely made, I didn`t think I would admire another watch :)
  • ADVERTISEMENT
  • #37 20856921
    efi222
    Level 22  
    Posts: 770
    Help: 12
    Rate: 1211
    Clock - You could say that it is one of the few measuring devices present in every home...
    Friend @Jawi_P, there is no point in admiring, just get to work :D . Eyesight weakens with age, and here are the big numbers...
    This is obviously a joke. There are plenty of watches on the market now. Here there is only satisfaction from building such a device. Although there are not many watches with NTP synchronization (including automatic summer-winter time).
  • #38 20857256
    tmf
    VIP Meritorious for electroda.pl
    Posts: 14318
    Help: 2090
    Rate: 2203
    Speaking of WS control... a few years ago I made Christmas lights on them, they are controlled from a 3.3V XMEGi and there is no problem at all - it works like a dream, even at -20 degrees :) Of course, I do not encourage anyone to go beyond the scope declared by the manufacturer. Here I simply made a mistake and forgot about the level translation, and since it worked, I discovered this error a few years later when I read the note for this diode more carefully. :)
  • #39 20863804
    bumble
    Level 40  
    Posts: 7189
    Help: 608
    Rate: 1192
    >>20853923
    The clock may be OK, but what are these lines under the numbers, where one is highlighted in red? I guess days of the week. But not described. For some people the first day of the week is Monday, for others it`s Sunday and that`s where everything gets mixed up. The lack of a date is also a disadvantage. It`s like a bedside lamp without a lampshade. That`s how I see it.
  • #40 20863874
    efi222
    Level 22  
    Posts: 770
    Help: 12
    Rate: 1211
    urkotrebor wrote:
    If I remember correctly, the library I used made it possible to read the values on individual diodes, so a feedback signal of 5V is tolerated by the ESP?

    I delved deeper into the topic of WS2812B. How are the settings of individual LEDs on the strip read? There is no physical feedback from WS to the MCU here.
    After assigning RGB or HSV values to the selected LED, they are written to and read from the CRGB table.
    Moreover, proof that physical reverse information does not exist is the use of a 3.3 -> 5V converter.
    Such a converter is unidirectional. Personally, I have not encountered a bidirectional converter for WS control.

    Added after 14 [minutes]:

    bumble wrote:
    I guess days of the week.

    There`s no need to guess. This is described in the article.
    bumble wrote:
    But not described

    It`s only seven lines. Easy to remember visually.
    bumble wrote:
    For some people the first day of the week is Monday, for others it is Sunday

    In the program code, the order of the days of the week can be set to your liking.
    bumble wrote:
    It`s like a bedside lamp without a lampshade.

    With the appropriate brightness setting, this watch can be successfully used for this purpose (additionally) :)

    Added after 4 [minutes]:

    bumble wrote:
    The lack of a date is also a disadvantage.

    The project did not include a calendar.
  • ADVERTISEMENT
  • #41 20864063
    urkotrebor
    Level 21  
    Posts: 335
    Help: 37
    Rate: 81
    I used this library https://github.com/adafruit/Adafruit_NeoPixel, there are two instructions whose names would indicate that they give feedback "getPixelColor()" and "getBrightness()".
    I admit, I haven`t tested them and I don`t know how they work.
    As for the converter, I don`t know which one you use, I use this one https://abc-rc.pl/pl/products/konwerter-level...-4-kanaly-stanow-logicznych-spi-uart-arduino- 6191.html?query_id=1 and I assure you that it is bidirectional.
    I quickly found this diagram:
    Circuit diagram of a logic level converter with connection labels.
  • ADVERTISEMENT
  • #42 20864072
    Anonymous
    Level 1  
  • #43 20866835
    Andrzej42
    Level 32  
    Posts: 1534
    Help: 177
    Rate: 321
    https://d2j2m4p6r3pg95.cloudfront.net/module_files/led-cube/assets/datasheets/WS2812B.pdf
    Is it so difficult to read? : WS2812 work in series with a maximum of 1024 pieces, you send packets of 24 bits to the input of the first one, where the first packet programs the last one and the last packet programs the first LED. So, when you arrange a shape, you have to remember which led is where.
  • #44 20866962
    efi222
    Level 22  
    Posts: 770
    Help: 12
    Rate: 1211
    It`s exactly as my friend writes. And here you can wonder why the "getBrightness()" instructions etc. were created.
    If the MCU sends data to the LED address, it stays there until the next instruction or until the power is turned off.
    Anyone have an idea?

    Another logical example:
    - turn on the switch to turn on the bulb.
    - check the condition of the switch.
    - if it is on, the bulb is on...
  • #45 20866986
    Anonymous
    Level 1  
  • #46 20885923
    davidcpurdy
    Level 7  
    Posts: 22
    Rate: 4
    Thank you for sharing your project and explaining the details.

    I had been thinking about a clock project - analog 12- hour - and had considered just lots and lots of LEDs... but I think your use of the "mask" idea makes it more readable and better define (less "fuzzy"). The "segments" are super easy to read and interpret...

    Now I just have to buy the LED tape and do some planning + programming.
  • #47 20890680
    sq3evp
    Level 39  
    Posts: 6596
    Help: 219
    Rate: 875
    An interesting design, simple and effective.
    A cool idea to make a display with LEDs.
  • #48 21793830
    Szymonix
    Level 12  
    Posts: 29
    Rate: 24
    Excellent project. Congratulations to the author. The simplicity convinced me and I took the liberty to use the files and make such a watch. I thought I could do without the smoked Plexiglas and printed specially on a carbon textured board, but unfortunately the white matte is too visible and has to be covered up. Congratulations again on the project and thank you 👍
    LED clock with carbon fiber textured panel, digits show the time 16:58.
  • #49 21793907
    efi222
    Level 22  
    Posts: 770
    Help: 12
    Rate: 1211
    I'm glad you used this project :) and congratulations on your perseverance.
    To disguise the white matte a bit, try putting tinted film (no glue) between the segment mask and the matte. The brightness will drop, but the contrast of the digits will improve.
  • #50 21793982
    Szymonix
    Level 12  
    Posts: 29
    Rate: 24
    >>21793907

    Perseverance is definitely needed when soldering so many diodes 😉 Good idea with that foil 👍 For now I'm waiting for the rest of the diodes because there was a shortage for the bottom strip so later on I'll try with foil.
  • #51 21793999
    Seba_smd
    Level 17  
    Posts: 301
    Help: 8
    Rate: 87
    Setting the clock how is it implemented?
  • #52 21794001
    efi222
    Level 22  
    Posts: 770
    Help: 12
    Rate: 1211
    Seba_smd wrote:
    Setting the clock how is it implemented ??

    I suggest reading the article. The time is taken from the NTP servers.
  • Black antisol glass front instead of plexiglass

    #53 21794432
    efi222
    Level 22  
    Posts: 770
    Help: 12
    Rate: 1211
    Szymonix wrote:
    I thought I could do without the smoked Plexiglas

    Instead of plexiglass I used 4mm black antisol tinted glass in the construction. Micro scratches appear on the plexiglass over time.
    The frame of the housing is glued on black silicone to the glass.

    Black frame with 4mm tinted antisol glass placed on bubble wrap.

    This preparation is quite strategic structurally and makes the whole assembly much easier.
    The remaining components are laid inside, freely, without gluing. The whole is closed with a back panel.

    Without the windscreen, I can see that you were struggling to glue the front grilles together.

    If you decide on such a glass front, I will send you the contact details of a glazier who cuts such glass to size with polished edges. You can also order from him by mail order.
  • UV resin used to glue the front from inside

    #54 21794456
    Szymonix
    Level 12  
    Posts: 29
    Rate: 24
    efi222 wrote:
    Without the windscreen, I can see that you've been struggling with gluing the front grilles together.

    If you decide to have such a glass front, I will send you on priv. the contact details of a glazier who cuts such glass to size with polished edges. You can also order from him by mail order.


    I put everything on the table and gently glued the inside with UV resin 😁 Then it was easy.
    Please send me the directions, because I have to do something with this front and I won't use foil, because I glued the parts inside too 😉
📢 Listen (AI):

Topic summary

✨ Discussion of a large LED clock built from WS2812B addressable LEDs and controlled by an ESP8266, with time synchronized from NTP servers and automatic daylight-saving adjustment. The design uses printed segment masks, smoked/tinted front material, and optional STL files for 3D printing. The clock also displays the day of the week, and brightness is automatically adjusted using a photoresistor and ADC input. The thread covers practical issues such as WS2812B signal level compatibility with 3.3 V GPIO, whether a level shifter is needed, ESP8266 ADC voltage limits, and the effect of oscilloscope measurements. Several construction details are discussed, including print quality, masking material thickness, and alternatives such as tinted glass or foil to improve contrast.
Summary generated by AI based on the discussion content.

FAQ

TL;DR: With 79 mm digits and hourly NTP sync, this WS2812B clock shows that a large, readable display can be built from leftover LED strip and an ESP8266. The key practical lesson is: "use a driver" for the data line if you want robust long-term behavior. It helps makers who want a big network-synced clock without designing complex electronics first. [#20856198]

Why it matters: This project turns a simple ESP8266 and WS2812B strip into a large wall clock with automatic time sync, day-of-week display, and configurable colors, while also exposing the real engineering limits of ADC scaling, diffusion, and 3.3 V logic.

Option Result in this project Practical takeaway
Digit height 79 mm Author calls it optimal for 60 LED/m Best readability at normal distance
Digit height 45 mm Practical minimum Works with 1 LED per segment
Direct 3.3 V ESP8266 → WS2812B Worked in practice Borderline versus spec
3.3 V → 5 V driver Recommended in discussion More reliable long term
0.16 mm PVC matte Worked in earlier builds Better than 1 mm sheets for segment isolation

Key insight: The mechanical diffuser and front cover affect readability as much as the code. The clock worked directly from 3.3 V data, but the thread repeatedly concludes that a proper level shifter is the safer design choice.

Quick Facts

  • The display uses 79 mm-high digits, and the author says that size is optimal for the common 60 LED/m WS2812B strip. [#20853923]
  • The minimum practical digit height reported was 45 mm, using one LED per segment and no LED removal from the strip. [#20853923]
  • The clock downloads time from NTP servers every hour by default, and it also shows the day of the week. [#20853923]
  • The white PLA diffuser was printed as one layer with a 0.4 mm nozzle, 0.3 mm path width, and about 0.17–0.2 mm thickness. [#20854445]
  • A 1 mm matte sheet was judged too thick because light spilled into neighboring segments; the author previously used 0.16 mm PVC instead. [#20854706]

How do you build a large NTP clock from a WS2812B LED strip and an ESP8266?

Build it as a segmented enclosure around a WS2812B strip and let the ESP8266 fetch time from NTP. 1. Print the PLA frame, separators, and diffuser parts, then glue the frame from two pieces. 2. Cut and join the LED strip into seven-segment digits and weekday bars, then mount everything inside. 3. Drive it from ESP8266 code, sync time every hour, and close the housing with a front cover and HDF back. The finished clock uses 79 mm digits and supports multiple colors and animations. [#20853923]

What is the minimum practical digit height when using a 60 LED/m WS2812B strip for a seven-segment clock display?

The minimum practical height is 45 mm. That version uses one LED per segment and keeps the LEDs on the strip, without removing them. The author tested smaller displays and concluded that 79 mm is more comfortable, but 45 mm is the lower usable limit with the common 60 LED/m strip. [#20853923]

How is automatic brightness control implemented on an ESP8266 clock using a GL5516 photoresistor and the ADC?

It uses a photoresistor feeding the ESP8266 ADC, then maps the reading to PWM with an exponential brightness curve. The author states that the only non-basic part of the circuit is the ADC section for auto-brightness, and later explains that the code uses a curve_w[] table so low brightness levels change more gently. In practice, the sensor sits behind dark glass, which weakens its response in bright conditions. [#20855310]

Why does the ESP8266 ADC input range cause problems in auto-brightness circuits, and how should the voltage divider be chosen?

The problem is that the ESP8266 ADC itself expects up to 1 V, so an ordinary divider can overdrive it in bright light. One commenter calculated about 2.9 V at the ADC with a GL5516 and 33 kΩ to ground, and the author later measured 1.9 V in bright surroundings. A safer approach is to size the divider so bright light stays within 1 V, or bias the divider for better low-light resolution instead of full-range daylight tracking. [#20855139]

What is NTP, and how often should an ESP8266 clock synchronize with NTP servers to keep accurate time?

NTP is the network time source this clock uses, and the project synchronizes once every hour by default. That interval was the author’s chosen setting for keeping the display current without constant network traffic. The same implementation also supports automatic summer-winter time handling, which was cited as a practical advantage over many commercial clocks. [#20853923]

What is a snap-back circuit in the ESP8266, and how is it different from a simple clamping diode on GPIO pins?

"Snap-back circuit" is an over-voltage protection structure that conducts only after a higher trigger point, unlike a simple clamping diode that starts conducting just above the supply rail. In the thread, a commenter quotes the ESP8266 documentation: digital IO pins use a snap-back circuit to ground with typical snap-back around 6 V and holding voltage around 5.8 V. That differs from the earlier assumption of a direct clamp diode from pin to VCC. [#20856494]

ESP8266 to WS2812B at 3.3V vs using a 3.3V-to-5V level shifter — which is more reliable for long-term use?

A 3.3 V-to-5 V level shifter is the more reliable choice. The author’s clock ran for about a month with direct 3.3 V drive, but later admits the design sits at the edge of the WS2812B specification. The thread’s practical conclusion is clear: direct drive may work, yet a proper driver makes the system robust and repeatable. [#20856198]

Why does a WS2812B strip sometimes appear to work directly from a 3.3V ESP8266 data pin even though the datasheet suggests a higher logic-high level?

It appears to work because some real setups tolerate borderline logic thresholds even when the design is outside the stated margin. The author reports stable operation without a driver, and another commenter says 3.3 V control worked flawlessly even at -20°C. The failure fact is that the thread still treats this as out-of-spec behavior, so success on one build does not guarantee long-term reliability on another. [#20857256]

What is the best way to diffuse WS2812B segments in a 3D-printed clock: thin PVC matte, a one-layer PLA print, or material from an LCD panel?

Thin PVC matte or a carefully printed one-layer PLA diffuser worked best in this project. The author had previously used 0.16 mm PVC, then switched here to a thin white PLA print after failing to find suitable white PVC. LCD panel layers were tested and judged unsuitable, while 1 mm material was rejected because it lets light bleed into adjacent segments. [#20854706]

How do you print a thin white PLA diffuser so the backlight looks even and the print lines stay as invisible as possible?

Print it as a single thin layer and control the first layer very tightly. The author used a 0.4 mm nozzle, 0.3 mm line width, and about 0.17–0.2 mm thickness on glass. He also warns that the bed must be level and the whole machine warmed up, because tiny changes that look harmless in normal parts become obvious once the diffuser is backlit. [#20854913]

Which smoothing methods are suitable for PLA diffuser parts: acetone vapor, spray plastic, or other finishing techniques?

Acetone vapor is not suitable for PLA in this thread; spray plastic is the safer suggestion. One commenter explicitly states that acetone works for ABS and ASA, not PLA, and mentions harsher PLA options that are better avoided. The author also says extra chemical treatment may worsen the optical result, because an illuminated diffuser exposes every surface defect immediately. [#20854913]

How do the getPixelColor() and getBrightness() functions in the Adafruit NeoPixel library work if WS2812B LEDs do not send data back to the MCU?

They read the library’s own RAM buffer, not the physical LED strip. The thread explains that there is no reverse communication from WS2812B to the MCU, so these functions report stored state such as pixel color or brightness values already held in memory. That is why a unidirectional 3.3 V-to-5 V converter still works for WS2812B control. [#20864072]

What is the practical difference between WS2812 and WS2812B when controlling them from 3.3V microcontrollers?

The practical claim in the thread is that older WS2812 versions had more trouble with 3.3 V control than WS2812B. The author says he had read that early WS2812 parts, without the “B,” were problematic at 3.3 V, while his WS2812B build worked directly from ESP8266. He also notes that he cannot vouch for that older source, so treat it as field experience rather than a proven rule. [#20855734]

How can you add day-of-week indicators to a WS2812B clock, and how do you change whether the week starts on Monday or Sunday in code?

Add seven separate indicator bars and map one bar to the current weekday in software. This clock places the weekday display above or below the digits, and the author says the day order can be changed in code to start on Monday or Sunday. That makes the feature easy to localize without changing the hardware. [#20863874]

What's the best front cover for this kind of LED clock: smoked plexiglass, black antisol glass, or tinted film over the diffuser?

Black antisol glass is the best premium front cover in this thread, while tinted film is the easiest retrofit. In a later update, the author says he used 4 mm black antisol glass because plexiglass picks up micro-scratches over time, and he glued the housing frame to the glass with black silicone. For an existing build, he suggests adding non-adhesive tinted film between the segment mask and diffuser to improve contrast. [#21794432]
Summary generated by AI based on the discussion content.
ADVERTISEMENT