Hi Kamikaze47,

Thanks for your useful suggestions. One year after posting I saw a reply today! Since I didn't see any response for many months after posting I almost gave up. Your reply was in fact a pleasant surprise.

In my code, I use polling instead of interrupts. The index pulse is generated by a Hall device. After the index pulse, the display routine starts. The RPM should be around 800 for proper display. If the speed is reduced, the characters shrink in width. If the RPM is too high, the characters widen and before the display routine is completed, the next pulse may arrive. There is also a software routine to control the width of the characters through the IR remote.

I have used PIC18F2620 and most of the components are surface mount type.

I like your suggestion of using a table to convert cartesian coordinates to polar ones. That should definitely lead to faster conversion.

Let me know if you have tried your own version of propeller clock.

- Bala