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):
  • #211 13403152
    art95
    Level 9  
    Posts: 6
    Rate: 1
    Hello, I am trying to make this clock according to the diagrams, but I am not able to read all the elements, could someone give me a list of all the necessary parts in turn?
    Thanks in advance
  • ADVERTISEMENT
  • #212 13449719
    młodyelektronik3
    Level 9  
    Posts: 8
    Rate: 8
    Hello, could someone add a list of elements and a diagram to print on the plate ??? Thanks in advance ;)
  • ADVERTISEMENT
  • #213 13708203
    universum 17
    Level 11  
    Posts: 18
    Rate: 1
    Hello

    I know that the topic is already a bit and it will be rather difficult but would you be able to send the source code of the BMP generator -> hex you used?

    Regards

    universum_17
  • #214 13819192
    Sonia1993
    Level 2  
    Posts: 3
    Hello
    I am new to the forum and I like this project very much, I know that the diagram is in pdf and can I count on eagle files from someone

    Added after 13 [minutes]:

    mb1988 Hello, I'm new to the forum and I know that many people are bothering you about this project, but can I count on you for a diagram in eagle or in some other program and image generator Thanks in advance
  • #215 13820517
    DJCheester
    Level 27  
    Posts: 2049
    Help: 75
    Rate: 949
    Hello

    From what I remember (I once read this topic), the author made the project in protel, so there are protel files, I suggest installing protel and printing a mosaic of paths from these files and making a tile.

    Regards ...
  • #216 13821011
    Sonia1993
    Level 2  
    Posts: 3
    but unfortunately these files are not there anymore :( maybe someone has and would be so nice and throw
  • #217 13876501
    Sonia1993
    Level 2  
    Posts: 3
    I have one more question, I was able to etch the board and I encountered another problem with the micro resistor k200 and k270 are these resistors in KILO or in ohm ?? I have not come across such a designation yet, thanks in advance
  • #218 13880503
    DJCheester
    Level 27  
    Posts: 2049
    Help: 75
    Rate: 949
    Hello

    In this case, you treat k as a comma, so you read 0.200k and 0.270k correctly, so these are just ohms.

    PS you have never met a marking on resistors, e.g. M10 it was a 100k ohm resistor

    Regards ....
  • #219 15300889
    kamil1994zielony
    Level 11  
    Posts: 37
    Rate: 36
    Hello, I would like to ask if it is possible to replace the 16-bit, 8-bit led driver, because the diagram shows 3 8-bit and one 16-bit drivers. Do you have to make changes to the program when changing? I still have a request because I have already made the clock fully but I do not know how to program the uC, would it be possible to make a short guide on how to program this clock and how to set the time correctly. Thank you in advance and best regards ;)
    -
  • #220 15682157
    neoarboy
    Level 2  
    Posts: 2
    Rate: 1
    hello, anyone here had successfully design that propeller clock ?
  • ADVERTISEMENT
  • #221 16266540
    armm
    Level 1  
    Posts: 1
    hi
    How do you convert images to code for this clock
    for example : YouTube image that you show
    Please Send Me your software , If possible.
    Thanks

    Dodano po 8 [minuty]:

    neoarboy wrote:
    hello, anyone here had successfully design that propeller clock ?


    yes , I could successfully design a propel
    can i help you?
  • #222 16274640
    neoarboy
    Level 2  
    Posts: 2
    Rate: 1
    armm wrote:
    hi
    How do you convert images to code for this clock
    for example : YouTube image that you show
    Please Send Me your software , If possible.
    Thanks
    Dodano po 8 [minuty]:
    neoarboy wrote:
    hello, anyone here had successfully design that propeller clock ?


    yes , I could successfully design a propel
    can i help you?


    could you share about your project? do you have blog?
  • ADVERTISEMENT
  • #223 16818828
    lotnik95
    Level 9  
    Posts: 14
    Rate: 3
    Hello, I will refresh the cutlet a bit, but maybe someone will be able to give me advice, I have built my own version of the display, partly based on this topic (I cordially greet the author)

    I have a problem with the code, namely I can not understand why (I bet some hardware delays) when I try to display something, my processor displays what I want, but not in certain degrees (positions) but further

    In whilu I am trying to light up just 2 columns, from positions 1 to 9 and the second from 42 (at the moment I am displaying 2 columns for a test, then I will try to write fonts when the display is in complete position)
    in fact, the columns burn much further (items 1-9 correspond to "12-13 o'clock (the infrared LED is at 12 o'clock), and in fact the column is somehow at 4 p.m.) where is this shift from?

    [syntax=c]
    #include
    #include
    #include

    #define TIMER0_ON (TIMSK |= _BV(TOIE0))
    #define TIMER1_ON (TIMSK |= _BV(TOIE1))
    #define TIMER0_OFF (TIMSK &= ~_BV(TOIE0))
    #define TIMER1_OFF (TIMSK &= ~_BV(TOIE1))

    int volatile pozycja=0;
    int volatile flag = 0;
    int volatile gClicksPerStep; //


    ISR(INT0_vect) { // wykona sie w INT0, zapisanie biezacej wartosci timera1 do globalnej, zainicjowanie timera 0, zerowanie timera 1, zerowanie pozycji
    gClicksPerStep = TCNT1 / 180;
    TCNT0 = 255 - gClicksPerStep;
    TCNT1 = 0;
    TIMER0_ON;
    pozycja = 0;

    }

    ISR(TIMER0_OVF_vect)
    {
    sei();
    TCNT0 = 255- gClicksPerStep;
    pozycja++;
    if (pozycja == 180)
    {
    TIMER0_OFF;
    }
    }

    int main (){

    //inicjalizacja timerow 0 i 1
    TCCR1A = 0;
    TCCR1B |= (1
  • #224 17138028
    boxochi
    Level 9  
    Posts: 6
    Rate: 2
    HELLO I make it 3 years ago with software for convert pics and gifs to CODE :)
    tnx to mb1988 For Code Sharing
    To compensate for this affection, I share the written code For all :) )
    best Regards

    Spectral Clock - Propeller Clock

    Spectral Clock - Propeller Clock

    Spectral Clock - Propeller Clock

    Spectral Clock - Propeller Clock

    Spectral Clock - Propeller Clock

    Spectral Clock - Propeller Clock

    Spectral Clock - Propeller Clock
    Attachments:
    • c# gui.zip (138.01 KB) You must be logged in to download this attachment.
    • maked by sajjad(iran).mp4 (21.34 MB) You must be logged in to download this attachment.
  • #225 17195918
    kamil1994zielony
    Level 11  
    Posts: 37
    Rate: 36
    Hello, what can be the reason that after compiling PropClock.pnproj using Programmers Notepad and uploading PropClock.hex the clock does not display anything, after uploading the original author's .hex everything works fine ... could anyone tell me where the problem is and what I am doing not so ?
  • #226 17418094
    Master_69
    Level 2  
    Posts: 2
    Good morning! I repeated your watch on ATMega32, but after compiling the source code nothing is displayed. Your HEX works. what could be the reason?
  • #227 17418253
    boxochi
    Level 9  
    Posts: 6
    Rate: 2
    Master_69 wrote:
    Good morning! I repeated your watch on ATMega32, but after compiling the source code nothing is displayed. Your HEX works. what could be the reason?


    use this file and compile it in ATMEL STUDIO
    download

    before compile set f_cpu like picture:
    Screenshot of Atmel Studio with the delay.h file open and F_CPU set to 16000000UL
  • #228 17420771
    Master_69
    Level 2  
    Posts: 2
    Thank you ! But I can not download the file. Writes no rights to download ... Can you send it to the mail "Masters-69@mail.ru" ?
  • #229 17636426
    hetm4n
    Level 20  
    Posts: 812
    Help: 5
    Rate: 525
    For me, the time support has stopped working. New battery resets anyway. I do not remember if the software could be changed or something broke.
  • #230 17639101
    kamil1994zielony
    Level 11  
    Posts: 37
    Rate: 36
    Remember that the battery was 3V and the programmer was 5V. I had the same problem :D After programming the time, it did not take on new values ...
  • #231 18064973
    darinyou
    Level 10  
    Posts: 3
    Rate: 1
    boxochi wrote:
    HELLO I make it 3 years ago with software for convert pics and gifs to CODE :)
    tnx to mb1988 For Code Sharing
    To compensate for this affection, I share the written code For all :) )
    best Regards

    Spectral Clock - Propeller Clock

    Spectral Clock - Propeller Clock

    Spectral Clock - Propeller Clock

    Spectral Clock - Propeller Clock

    Spectral Clock - Propeller Clock

    Spectral Clock - Propeller Clock

    Spectral Clock - Propeller Clock



    thank you 4 sharing your program but it doesnt work with me in win 7 ultimat any help
  • #232 18065400
    boxochi
    Level 9  
    Posts: 6
    Rate: 2
    darinyou wrote:

    thank you 4 sharing your program but it doesnt work with me in win 7 ultimat any help


    what is your error or problem?
    it tested in win7
  • #233 18066883
    darinyou
    Level 10  
    Posts: 3
    Rate: 1
    Spectral Clock - Propeller Clock
    boxochi wrote:
    darinyou wrote:

    thank you 4 sharing your program but it doesnt work with me in win 7 ultimat any help


    what is your error or problem?
    it tested in win7
  • #234 18066899
    boxochi
    Level 9  
    Posts: 6
    Rate: 2
    Spectral Clock - Propeller Clock
    New File Attached,test it please
    AutoResize=Enabled
    Resizable=Enabled
    Maximaze=Enabled
    Minimum Size=Fixed
    Attachments:
    • c# gui size fixed.zip (138.28 KB) You must be logged in to download this attachment.
  • #235 18069481
    darinyou
    Level 10  
    Posts: 3
    Rate: 1
    thank you for fast replying
  • #236 19746865
    hetm4n
    Level 20  
    Posts: 812
    Help: 5
    Rate: 525
    After 10 years of using this clock, he will write a summary.
    The author could implement timing, mode switching via ir. There would be no confusion with uploading settings etc. Second thing, drive on the hdd motor, great thing, but at such high revs they wear out quickly, so they got louder and louder, I exchanged 2-3 engines from surplus annually. I built a 2 clock with the aliexpress putty which I put on the hdd engine, I was able to slow down the speed so slow that the display started flickering. The advantage of this was that 1 engine for 2 years was enough.
  • #237 19764103
    boxochi
    Level 9  
    Posts: 6
    Rate: 2
    hetm4n wrote:
    After 10 years of using this clock, he will write a summary.
    The author could implement timing, mode switching via ir. There would be no confusion with uploading settings etc. Second thing, drive on the hdd motor, great thing, but at such high revs they wear out quickly, so they got louder and louder, I exchanged 2-3 engines from surplus annually. I built a 2 clock with the aliexpress putty which I put on the hdd engine, I was able to slow down the speed so slow that the display started flickering. The advantage of this was that 1 engine for 2 years was enough.

    I saw your graphic bro, i made an gui app for converting picture to hex codes.
    Can you say me how you converted your picture to hex?
    I mean which method you used for picture converting?
  • #238 19765458
    hetm4n
    Level 20  
    Posts: 812
    Help: 5
    Rate: 525
    I have not uploaded anything to the clock from the moment it was started. I don't have files from that year anymore.
  • #239 19765540
    boxochi
    Level 9  
    Posts: 6
    Rate: 2
    @hetm4n yes you did
    What you used for converting hetm4n frame to hex like this?
    Spectral Clock - Propeller Clock
  • #240 19767089
    hetm4n
    Level 20  
    Posts: 812
    Help: 5
    Rate: 525
    I have converted the bitmape to a binary system. I don't remember what the program it was, then I pasted it into the author's program.
📢 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