Radio Repeater Controller
w1jeq
Posts: 1
I am trying to use a BS2 to control a radio Repeater system. I need to have the stamp do a 10 minute timer to trigger an ID over the air. while it is in operation. It would be initially triggered whenever someone access the repeater and go while it is in use, then afterwords it would ID about 2 minutes after the last transmission and go into standby untill it is next used. any help would be greatly appreciated.
Matthew A. Chambers, W1JEQ
Activities Director NEMO ARC
ARES OES - Amateur Extra
Matthew A. Chambers, W1JEQ
Activities Director NEMO ARC
ARES OES - Amateur Extra
Comments
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
- Stephen
It has an ID timer, timeout timer, Hang timer.
The key is you have to program everything like a multi-tasking system.
That is, you can never wait in a hard loop for COR, ID timer, etc. I always check timers when in the COR loop to see if I need to ID or timeout. Even while idle (standby), I am counting down an ID timer so within 8 mins of the last squelch tail, I do an ID then reset the pending ID flag.
With a BS2 you would have enough space to add a DTMF decoder interface with commands.
CW ID EncodingThe only trick is how to encode the CW ID. Brute force methods took too much program space. The method I use encodes a byte as a CW character by using the ones and zeros as dot-dash values. The byte is encoded from left to right (LSB to MSB) as a one bit for dash and zero bit for dit. You then put a single one bit at the end. This last bit will not be sent but is only used as a "stop bit". The routine plays a CW character by stripping all by the lower bit and·using it to determine if it's a dot (0) or dash (1). Then, the bits are shifted to the right by one bit with a divide by two. The routine stops when the CW character value is a one. For example, here are some characters:
In the above example, the A is sent from right to left. "0" is sent as "DIT". Then the value is shifted right one to give "11". Since the value is not "1", the right digit is stripped "1" and sent (as a DASH). The value is again shifted right and now equals one (1). A value of one will cause the routine to stop.
(Excuse the code formatting, I pasted it from elsewhere and did not make a good translation)
Enjoy,
Dane.
Post Edited (Dane) : 6/9/2007 7:52:30 AM GMT