logo elektroda
logo elektroda
X
logo elektroda

TL;DR

  • A Spectral Clock propeller clock uses a spinning LED rotor to display time.
  • An ATMEGA32 controls 32 blue SMD LEDs through four MBI5170 drivers, takes time from a DS1307 RTC over I2C, and uses an optoelectronic sync sensor.
  • The controller’s 32 KB flash supports multiple display modes.
  • An HDD motor with a PHILIPS TDA5140A driver spins the propeller; the motor winding’s triangle connection required an artificial center point and brush power.
  • A 15 mm plexiglass case keeps noise low at 50 revolutions per second, but the documentation still has flaws and was not yet fully released.
Generated by the language model.
ADVERTISEMENT
Treść została przetłumaczona polish » english Zobacz oryginalną wersję tematu
📢 Listen (AI):
  • #31 4817761
    mb1988
    Level 12  
    Posts: 93
    Rate: 258
    I had it at hand, which does not change the fact that they are very nice drivers :)
  • ADVERTISEMENT
  • #32 4818763
    Meeshell
    Level 11  
    Posts: 34
    Rate: 2
    Great design, all I have to add is have you thought about sucking the air out of the inside? It is known that then you will not be able to remove the back cover to get to the system, but thanks to this there would be practically no air resistance and it could become even quieter.
  • ADVERTISEMENT
  • #33 4818910
    Anonymous
    Anonymous  
  • #34 4818919
    *seba*
    Level 12  
    Posts: 87
    Hi, a beautiful project, I would also be interested in building something like this.
    Throw some diagram, program, etc.
  • #35 4819036
    Pawełmatrix
    Level 12  
    Posts: 43
    Rate: 2
    I am interested in one thing, whether you need to somehow control the brightness of the LEDs depending on the distance from the center, because the "pixel" of the same size, for example in the middle, will shine constantly, and the "pixel" will appear at a fraction of the time or not will there be a difference in brightness?
  • #36 4819154
    big_foot
    Level 11  
    Posts: 38
    Help: 1
    Rate: 1
    Can I have photos of the brushes? How did you solve them? Weight is provided by the motor housing?
  • #37 4819184
    Pawełmatrix
    Level 12  
    Posts: 43
    Rate: 2
    big_foot wrote:
    Can I have some pictures of the brushcakes? How did you solve them? Weight is provided by the motor housing?


    a better solution would be to use two coils placed on the axis of rotation, one on the board and control the alternating voltage that would be contactless :-)
  • #38 4819346
    Pawel_361
    Level 17  
    Posts: 297
    Help: 1
    Rate: 44
    Here there is something about contactless current transfer.
  • #39 4819414
    mb1988
    Level 12  
    Posts: 93
    Rate: 258
    Quote:
    ... have you thought about sucking air from inside?
    This thought flashed to me somewhere, but it would require a very tight casing. Besides, I wouldn't even know how to do it and how to suck the air out of it, because not with my mouth. :P .

    Quote:
    I wonder how after soldering all these SMD components?
    An ordinary soldering iron. I do not like through-hole assembly, who would like to drill so many holes.

    Quote:
    I am interested in one thing, whether you need to somehow control the brightness of the LEDs depending on the distance from the center
    Of course you can, but in this project, the resources of the microcontroller do not allow it. The only thing I could get was a 3-level brightness scale, so I gave it up altogether. The effect you described is noticeable.

    Quote:
    Can I have photos of the brushes? How did you solve them? Weight is provided by the motor housing?

    The brushes can be seen in the video (they are made of wire with black insulation, so take a closer look). At the end of the wires, the proper brushes ( :P ) removed from the Walkman motor. The mass, as you well noticed, goes through the motor body and through the mounting bolts. The plus, on the other hand, is transferred to the copper circle on the bottom of the plate.
  • #40 4819707
    HakuS492
    Level 13  
    Posts: 87
    Rate: 2
    As for air suction, it's not a stupid idea :) I do not know if I am thinking correctly, but it seems to me that if the bicycle valve was installed there, of course, inverted, maybe the air could be sucked out. Could you help yourself with a vacuum cleaner with an adapter, and seal the housing with some colorless silicone? hmm ... there is no need to wonder for sure it would silence the whole system. Regards :D
  • #41 4820097
    Pawełmatrix
    Level 12  
    Posts: 43
    Rate: 2
    Quote:
    I am interested in one thing, whether you need to somehow control the brightness of the LEDs depending on the distance from the center
    Of course you can, but in this project, the resources of the microcontroller do not allow it. The only thing I could get was a 3-step brightness scale, so I gave it up altogether. The effect you described is noticeable.

    you don't need to control it from a prock, just select the resistor values in series with the leds :-)

    oh, I noticed a bug in reasoning, you have to change the way of counting the time between successive jumps,
    as you know, the engine speed is not constant, which causes rounding errors in this 8-bit timer and the displayed image jumps slightly,
    to solve this problem you have to use COMPARE MATCH interrupt something like that and add integer with fractional parts to some register which will hold the next timer1 value at which the next step will take place, of course you will round this value to integer already :-)

    that is:
    It turned out that between jumps you have 230.33333 timer cycles
    first you have some REG = 0 in the register; then you add it 230.3333 and you have REG = 230, then you add again 230.3333 and you have REG = 461, of course you compare this REG with the current value of the timer, which probably AVR can do hardware and throw an interrupt, you have to come up with an algorithm for it
    then there will be no these jumps
    I wrote too much
    good luck


    I like the project in general :-)
  • ADVERTISEMENT
  • #42 4820197
    mb1988
    Level 12  
    Posts: 93
    Rate: 258
    Quote:
    you don't need to control it from a prock, just select the resistor values in series with the leds
    Yes, when, for example, I light all the LEDs at 360 degrees, your solutions work well, but when I light one line (i.e. a pointer), it does not shine evenly. The effect turned out to be the opposite :P . The only advice is a different driver, and as I mentioned, I miss megahertz for this (or I can't use them properly :P ).

    When it comes to the smoothness of the display, it can certainly be better written. I am a novice programmer, my programs are exemplary, but the most important thing is that something is shining there, something is winking and the joy is there. Thank you for all valuable comments :)
  • #43 4820567
    Pawełmatrix
    Level 12  
    Posts: 43
    Rate: 2
    mb1988 wrote:
    Yes, when, for example, I light all the LEDs at 360 degrees, your solutions work well, but when I light one line (i.e. a pointer), it does not shine evenly. The effect turned out to be the opposite :P . The only advice is a different driver, and as I mentioned, I miss megahertz (or I can't use them properly) :P ).

    maybe you chose them wrong, too much difference between the largest and the smallest

    mb1988 wrote:
    When it comes to the smoothness of the display, it can certainly be better written. I am a novice programmer, my programs are exemplary, but the most important thing is that something is shining there, something is blinking and the joy is there. Thank you very much for all valuable comments :)


    when I find moments of time, the algo will describe you. how to do it without using fractions or multiplication / division so it works fast ;-)

    mb1988 wrote:
    I am a novice programmer, my programs are exemplary, but the most important thing is that something is shining there, something is blinking and the joy is there. Thank you very much for all valuable comments :)

    and for such a beginner, you don't name the variables well, e.g. gCostam means a global variable ;-)
  • #44 4820669
    Meny93
    Level 11  
    Posts: 10
    Hello, I like your Clock very much, I would like to make it, just no schematic. And that's why I ask when it would be ready.
    Greetings
  • ADVERTISEMENT
  • #45 4821100
    mb1988
    Level 12  
    Posts: 93
    Rate: 258
    Please be patient, I will share the materials soon.

    By the way, after listening to your opinions, I am already a little tempted to remake this clock. I will leave the enclosure because I like it ( :P ) but inside I would change:
    1) coreless transformer instead of brushes
    2) 63 (sic!) Blue diodes on the diameter instead of 32 on the radius (this means reducing the engine speed twice, which means almost inaudible operation). I just wonder if it will drag it.
    3) added simple IR communication, which would not require a computer and a programmer to change the time.

    Eh, only when I have time for all this ...
  • #46 4822379
    Meeshell
    Level 11  
    Posts: 34
    Rate: 2
    regarding 63 diodes on the diameter - I do not know if the moment of lighting of these LEDs on the other side of the propeller after half a turn, exactly in the same place as the previous ones, will match. The image would double a bit shifted.
  • #47 4823492
    anonimowybartek
    Level 19  
    Posts: 415
    Help: 2
    Rate: 6
    wow! something beautiful ... I love the spectral watches, and this one is especially true!
    PS: The theme from the end of the video is brilliant! I didn't think anyone would be able to project an animation on it :D .
  • #48 4823605
    Anonymous
    Anonymous  
  • #49 4823678
    noopS
    Level 18  
    Posts: 229
    Help: 23
    Rate: 29
    and where did you get the TDA5140
  • #50 4823710
    mb1988
    Level 12  
    Posts: 93
    Rate: 258
    It would look pretty good, but it would be nice to do a brightness adjustment right away so you can get more than 8 colors. But taking into account the number of LEDs, it would be very difficult to make a tile at home for such a layout. Besides, if you want to get the aforementioned colors at such a speed, I think that you would need to put something more powerful than the atmega inside.

    I got the TDA5140A at tme (no advertising).
  • #51 4823775
    kropkacompl
    Level 2  
    Posts: 3
    Rate: 1
    Great respect
    I just admire and envy my skills and knowledge because you can and say that it's simple, but not for me.

    For me, I would need a step-by-step description (so peasant) plus a applet.
  • #52 4824009
    Anonymous
    Anonymous  
  • #53 4824237
    Zubiik
    Level 15  
    Posts: 168
    Help: 1
    Rate: 52
    Hello. I have to say that the clock really impressed me !! I'm already thinking about my own construction, and here's my question: what do you think will it be possible to write software in bascom? Isn't he
    too "slow" for such applications ?? How much space does yours take up
    code in processor ??
  • #54 4824262
    Slaby
    Level 12  
    Posts: 104
    Rate: 2
    Come on, buddy, respect :D .
    Projekcik great, I am waiting impatiently for the documentation and in the meantime I will think about another way to power the chip :) e.g. a rotating transformer :)
    Greetings :)
  • #55 4824987
    Anonymous
    Anonymous  
  • #56 4825136
    K_o_n_r_a_d
    Level 23  
    Posts: 318
    Help: 86
    Rate: 9
    Quote:
    Zubiik , in my opinion and from what I heard, the bascom is terribly muscular and eats up memory. and after that, the test version gives too little possibility to generate the code, the size is that the code cannot exceed 4096kb.

    If you can write the correct programs and get to know Bascom, you will be able to do the acoustic spectrum analyzer in Bascom.

    It can be done in Bascom and the display support should fit within 4kB of the result code (of course, it depends what you want to have in addition to the display / watch).
  • #57 4825898
    emet_brown
    Level 1  
    Posts: 1
    Congratulations, your clock is even on the monster joe.
    http://www.joemonster.org/filmy/7287/Zegar-widmowy-na-smigle


    This copper ring (commutator) on which the brushes slide looks as if it is the same thickness as the tracks, are you not afraid that it will wear off quickly? After all, the clock runs 24 hours a day.
  • #58 4827180
    mb1988
    Level 12  
    Posts: 93
    Rate: 258
    Download diagrams. As for these brushes, I think I have already said it, but I will repeat it again: yes, I am well aware that the clock will not work soon, but I will not despair about it. At least I will have an excuse to make another version, more perfect :).
  • #59 4827260
    Slaby
    Level 12  
    Posts: 104
    Rate: 2
    Buddy, could you provide a link or source where you put these schematics ?? Today I am a bit yesterday so if I missed something, I am sorry :)
  • #60 4827272
    mb1988
    Level 12  
    Posts: 93
    Rate: 258
    Where documentation should usually be, which is in the first post :) .
📢 Listen (AI):

Topic summary

✨ The discussion revolves around the design and implementation of a spectral clock using a propeller mechanism. The project utilizes an ATMEGA32 microcontroller to control 32 blue SMD LEDs via MBI5170 LED drivers, with timekeeping managed by a DS1307 RTC. Participants share insights on motor control, programming in C, and the challenges of achieving precise synchronization for the display. Various users inquire about the specifics of the circuit, including the use of different LED drivers, the programming process, and the durability of components. Suggestions for improvements, such as using a coreless transformer for power and implementing IR communication for time setting, are also discussed. The community expresses interest in obtaining schematics, PCB layouts, and a bill of materials for the project.
Generated by the language model.

FAQ

TL;DR: One Propeller-Clock rotor spins 50 rps (≈3 000 rpm) while an ATmega32 drives 32 LEDs; “in spectral clocks the issue of software … can make a difference” [Elektroda, Twizzter, post #4815839] Size, speed and code tweaks decide image quality. Why it matters: these tips prevent the common “00:00:80” bug and burnt HDD motors.

Quick Facts

• Rotor speed: 45-55 rps recommended to avoid flicker [Elektroda, mb1988, post #4814890] • Power draw: 5 V / 250 mA (motor), 12 V / 80 mA (LEDs) [Elektroda, mb1988, post #4816959] • LED count: 32 SMD on radius = 63 pixels diameter [Elektroda, mb1988, post #4815891] • Motor driver: Philips TDA5140A; drop-in LB1688 works with minor tuning [Elektroda, mb1988, post #4815034] • Typical build cost: PLN 50–60 for electronics; case from scrap plexi [Elektroda, mb1988, post #4816863]

How do I wire and start an HDD spindle motor for a propeller clock?

Use a three-phase BLDC driver such as TDA5140A in the page-9 reference design; tie the three windings to MOT1-MOT3 and create an artificial center if the drive is delta-connected [Elektroda, mb1988, post #4815034] Feed 5–6 V to VLOGIC and 5–12 V to VMOT while monitoring temperature.

Why does my DS1307 show 00:00:80 instead of real time?

Bit 7 of the seconds register (CH) is still high; the oscillator is halted. Clear CH once, then save time. Many builders forget the pull-up on SQW, causing the same symptom [Elektroda, mb1988, post #7122854]

What fuse settings are needed on the ATmega32?

Enable external 16 MHz crystal, start-up 16K CK+65 ms, CKOPT unprogrammed. Leave JTAGEN off to free PORT C pins. Wrong fuses keep INT0 from firing and the display stays blank [Elektroda, hetm4n, post #12007461]

How can I balance the spinning PCB without special tools?

Screw the board firmly to the motor hub, then eyeball component placement symmetrically. If vibration persists, add small blobs of epoxy opposite heavy parts until the wobble stops [Elektroda, mb1988, post #4815891]

What’s the simplest way to set or change time?

  1. Compile firmware with the desired compile-time constant (e.g., 12:00). 2. Flash it exactly at that wall-clock moment. 3. Immediately flash the normal firmware that leaves RTC untouched. This two-step trick was used by the original author [Elektroda, mb1988, post #4817605]

Can I replace the 8-bit MBI5170 LED drivers?

Yes. Any constant-current shift register (e.g., STP08DP05, 74HC595 + resistors) works if you adjust SPI width in code. One builder ran three ST16CP05 without issues [Elektroda, Scyzor, post #7800620]

My image drifts; how do I sync display to speed?

Reset TIMER1 on each opto-interrupt, divide the measured period by 240, load that into TIMER0; update LEDs in the TIMER0 ISR. If drift persists, lower the prescaler so division error stays <0.5 µs [Elektroda, mb1988, post #4815891]

What causes a missing wedge or duplicate sector in the graphics?

Integer rounding of TCNT1/RESOLUTION leaves residue; the wedge shifts with RPM. Use 32-bit math or accumulate fractional ticks (phase accumulator) to eliminate the gap [Elektroda, Pawełmatrix, post #4820097]

How do I convert bitmaps or GIF frames to the 960-byte frame table?

Crop a 63 × 63 monochrome bitmap, iterate every 1.5°, sample radius 0-31, and store four bytes per ray (240 steps × 4 = 960 bytes). Community GUI converters are shared in the thread [Elektroda, boxochi, post #17138028]

What’s a safe current for the SMD LEDs?

Set the MBI constant-current to 20–25 mA; with 50 rps the duty cycle is ~0.4 %, so average LED current stays below 100 µA, preventing thermal stress [MBI datasheet].

Edge case: my motor only starts if I spin it by hand—fixes?

Increase VMOT to 7–9 V, swap two phase wires, and check that CAP-CD/CAP-DC pins have the exact values (22 nF chosen wrong cuts starting torque) [Elektroda, Moyshaa, post #9075908]

Can I power the board contact-less to avoid worn brushes?

Yes. Wind a 3-turn primary under the plexi base and a 6-turn secondary on the rotor; resonate near 35 kHz. Keep coils 5 mm above the aluminum hub to curb eddy-current heating [Elektroda, mlassota, post #7122363]

Step-by-step: flashing firmware and storing graphics

  1. Flash boot HEX with CH cleared. 2. Flash main HEX. 3. Use the provided PC tool to convert BMP/GIF to EEPROM HEX, then flash EEPROM. Done.

What’s the expected lifetime of the brushes?

Copper ring runs for 1–2 years at 50 rps before visible wear; lowering speed to 25 rps triples life, according to a 10-year user report [Elektroda, hetm4n, post #19746865]
Generated by the language model.
ADVERTISEMENT