The electronics of the propeller clock exist of two part, the base and the propeller.
Circuit diagram of the base electronics in .gif and in Eagle format.
The PIC16F628 is decoding RC5 pulses from the IR sensor (tsop17xx, tsop18xx, SFH506,...) and makes it possible to switch the clock between a standby mode (stopped rotor) and running mode. In running mode the Pic generates a PWM signal to the gate of the FET driving the trafo coil. Frequency (~20kHz) and duty cycle are optimized to get maximum amount of energy across the trafo. The pic also generates a PWM signal for the FET gate for the motor. This is about 40Hz and duty cycle was adjusted to make a good compromise between noise from the spinning rotor and a nice, flicker-free display. The result is about 1920 rpm with gives a display refresh rate of 32Hz.
In standby mode the index-led (1) and the motor are turned off. About 5 seconds later, when all leds will be off, the frequency and duty cycle for the coil are adjusted to get just enough energy across to keep the pic alive. This way time and date can be kept while power consumption is at minimum.
24 Feb. 2003 : I noticed some problems with the way the motor speed was controlled by PWM. This methode to set motor speed is dependant of the unregulated voltage of the transformer. If the current load on this transformer changes (e.g. more or less leds on) then the speed of the motor would change. This is not favorable for a stable display. So I have modified this and now I use an adjustable linear regulator the MIC2941A. The MIC2941A has a shutdown-pin which made it again possible for the pic to turn on and off the motor. The circuit diagram on this page now includes this new regulator.
Circuit diagram of the propeller electronics in .gif and in Eagle format.
Power for the propeller comes from the coil around the motor. The voltage on the coil is rectified with a diode bridge and stored in a elco of 1000uF/40V. From there a 78L05 is used the make a stable 5V for the cpu.
The heart of the propeller is again a PIC16F628 also running at 20MHz. The oscillator circuit here is equip with an adjustable capacitor. This was needed to fine-tune the frequency of the oscillator to 20.000000 Mhz so that the real-time clock is running accurate. Without this my clock was running off by 10 seconds each day. Adjusting the osc. with a very accurate frequencies-meter resulted in less than 1 second deviation in 3 days.
There are two input signals to the cpu. First is an IR sensitive transistor (1) to detect the position of the rotor. RB0 was selected for this input so it would be possible to use the interrupt-on-edge feature of the pic. Each time the ir-transistor is aligned with the index led off the base electronics an interrupt will be generated. Second is an IR sensor/demodulator (tsop17xx, tsop18xx, SFH506,...) which de-modulates the 36kHz IR information from an RC5 remote. The RC5 input is RA2
All leds are driven by an transistor configured as a current-source. This way the current through the leds is independent of the voltage over the 1000uF capacitor. This voltage can vary a lot depending on the number of leds that are turned on. For the blue outer leds the current is set to 20mA. This is the maximum continuous forward current for most leds. The current source for the green leds are set to 50mA. This would be to much for a continuous current. But these leds are used in a pulsed operation. Non of the leds have a duty cycle more than roughly 30% and the pulses are about 260 uSec so it is perfectly OK to use a 50mA current source. But this is not the main reason why the display is so bright and readable even in daylight. The leds I used are the Nichia NSPB636AST (Blue) and NSPG636AST (Green). Luminous intensity for these leds is extreem high, typical 550 mcd for blue and 2000 mcd for green. Compared to a standard low cost led with has a luminous intensity of 2~7 mcd.
It would have been nice here to use the complete port B to drive the transistors for the display leds. But since RB0 is used as interrupt source for the index transistor, one of the display leds is connected to RA0. This makes it a little more complicated for the software. The blue outer leds are controlled with RA1.
(1) Something about the index-led and ir-transitor. This can be any IR emitting led in combination with any IR sensitive transistor. But in fact I used two parts of a slotted optocoupler (sg-211) the I cut in half.