Introduction: Bring Back to Life a Vixen SP Mount for Astrophotography
I bought this mount a long time ago and it rested years in the basement. I thought about to use it (again) to make astrophotography.
This led to some steps I had to do:
- I had clean the whole mount and remove the old, chewy grease out of all bearings. I followed the instructions on Optimierung Vixen SP to accomplish this.
- Second: build a new tracking device, as driver-IC in the old one were blowed ;-) and nowhere available anymore.
What the tracking should do:
- The right ascension-stepper must be stepped with frequency 9,62Hz to track the stars.
- It should be possible to adjust both axis using the tracking device.
- Some kind of torch light.
- A longtime timer for the camera.
To solve this a decided to use an arduino
Some lessons I learned building the new tracker:
- How to divide frequencies using two CD4040
- How to use interrupts to do something like "multithreading"
- using I2C and additional hardwareinterrupts is bad
Step 1: Some Thoughts
A sideric day has 86.164,099 seconds.
And the mounting has the following specifications:
- The right ascension axis has a worm gear with 144 cogs
- The stepper has a transmission ratio of 1:120
- The stepper needs 48 steps per turn.
That evaluates to do a step every 86164,099/(144*120*48) seconds i.e.
F_E = 1/(86164,099/(144*120*48)) = 9,62Hz
Howto get 9.62Hz?
This was some kind of an educational challenge, because I didn't needed it in the end.
I had a 7.3728 MHz Crystaloszillator. If you divide it by 765901, you get 9,62Hz.
To divide it I used two CD4040 (see image).
This circuit would be sufficient, if you only want to drive the right ascension axis using some stepper driver, but I wanted more.
Howto get 9.62Hz and more?
As I had to implement three independent running timers (2 stepper and the longtime timer), I decided to feed an arduino hardware interrupt with 10kHz and use counters to trigger actions every X calls of the interrupt. I.E. if I call the interrupt 10000 times, one second has passed.
For the 10kHz I used an 1MHz Crystaloszillator an divided it by 100 using two 7490 (See final step).
Step 2: Longtime Timer
This one made things complicated because a user interface had to be implemented.
The first try was to use the Adafruit RGB LCD Shield, but this was in conflict with my hardware interrupt because of the i2c bus (very strange effects). So I had to switch to a native 16*2 LCD display and 4 switches. These 4 switches had to be sufficient to build a UI because now all IO PINs of my arduino were used.
The timer itself used the same technique, the stepper use. But with a constant threshold for the interrupt.
The user can set the timer by modifying each digit of a MM:SS display, can start the timer and i able to change some settings. To know, which function is requested, when a button is pressed, a byte value is used to store the blinking cursors' position. This way, it is clearly identifiable, what the user sees when he presses a button and it can be checked using a simple switch command. (See Sourcecode)
Step 3: Finish
All steps before were tested on a breadboard. Now I had to build something "productive".
For the circuit board development I used Target 3001! light (File attached).
And then I did the old-fashioned circuit board build: print on acetate sheet, exposure, develop it and etch it with ammoniumpersulfat.
The tracks for the stepper were tin-coated because of the current for the steppers. I also glued heatskins on the stepper driver. Also I doubled the protective diode (1N4007) because the whole circuit needs a current of 1.2A.
For power I use a 12V 6.2Ah sealed lead-acid battery.
At last I put it all in a aluminium case with acryl window (I own no 3D printer). A nice sideeffect of the torchlight is, that the switches are clearly visible in the night.
Attached ist my sourcecode (with german remarks, I know) and the target 3001! file.
Step 4: Some Photos
- 1st test: on my terrace (with no sight to north): I positioned the mount the wrong way (north pointed to south) *LOL*
- 2nd test: a line instead of a point ?! Ahhh... there IS a difference between attachInterrupt "change" or "rising" *ggg*
- 3rd test: 5 minutes are really that long...? Wait I changed attachInterrupt to "rising" *faceplam*
- 4th test: hmmm... still a short line instead of a point? It is to late to check why *going to bed*
Where is the error?
At first I wanted to check, if the stepper runs to fast or to slow. So I took photos every 1 minute and on the photos, there was a tree and bright Jupiter. Both went in the same direction, so my stepper is to fast. Using a frequency meter, we found out, that the interrupt was called with 12.5kHz, not 10kHz.
It turned out that, the 2nd 7490 failed, it did divided the 100kHz in by 8 not 10. After replacing this IC, a quick test - before the clouds hid the stars - was successful :-D
Now I have to wait for a clear sky.