The following video shows a breadboarded Arduino automatically tuning a amateur radio's transmitting and receiving frequencies so as to allow two-way communications through a satellite. It also shows the accuracy of the doppler tuning while tracking a single satellite's tone through its pass:
The Arduino is doing something that until now has required a full computer.
This task has two components. To use a communication satellite, first you need to know when it is visible to your station and in what direction. This 'tracking' requires a computer/microcontroller to compute the position of the satellite, each second or so and then compare this to where you are on earth.
Once you know the satellite is visible, you have another problem, and that is that the frequencies on which it is receiving and transmitting do not stay still; they shift like the whistle of a train passing by. Because the frequency of the satellite's radio link is much higher than the train whistle, and the satellite much faster, this 'doppler' shift is in the 10's of kHz for some satellites.
So in this video the Arduino is tracking the satellite and changing the receiving and transmitting frequencies of the radio so that it can talk to a satellite. In the second half of the video, it is tuning in a single tone morse code signal, which, despite the doppler shift, is staying within a 100Hz range, a very good result for any tracking program, much less one that runs on $4 silicon.
The hardware side of this is going to sit on a 1" x 2.5" board that snaps onto an Arduino Mini Pro. With the 328's EEPROM, the qrpTracker can keep track of about 10 satellites, tuning the radio as each appears.
Bruce - you are doing an amazing thing there - I am VERY interested in seeing how you make all that happen. Just tracking the sats is pretty darn good. You are saying this is a complete stand alone system? not connected to a main computer or internet for tracking?
WOW!!! and tracking the freq change also? Amazing!! I know some folks who will want that! Keep us posted.
The library entitled TleStoreCallback facilitates the storage and retrieval of satellite three line elements in EEPROM, I2C ROM or what have you. (The callback approach means that the way in which the bytes are stored and retrieved can be determined at the time of the construction of the object.)
Finally, there's the FT817 library, which controls the FT817 radio. I hope to port this also to the Kenwood THD-7a handheld radio, so I will probably make a superclass for all radios.
The Sketches/satpack.pde file puts all this together in a loop that polls the 10 tles stored in the EEPROM for a visible satellite, tunes the radio appropriately and response to a button push by changing satellite modes and from satellite to satellite if more than one is up.