Here are my notes for interfacing with N1MM from an application. I have two ideas I'm working on. 1) We need to pass information into N1MM from external applications. (APRS for example) We don't want to use another IM type program... just have the info pop up in the N1MM Info window. 2) I would like to use the rotor control program that comes with N1MM to implement a search pattern. When the contest gets slow, I would like to run a script that moves the antenna 20-30 degrees, pauses for a CQ, and moves again. Perhaps this will help find more Q's.
I used wireshark to monitor the N1MM protocol. Then, I used perl (soon C#) to interact with N1MM. Here are my notes on the protocol. Note, I'm not interested in the full protocol because I only want to pass messages and interact with the rotor program.
Messaging Protocol as follows:
TALK%[STA2] Passing WA0DYJ on 432000.0%~ STA1 (.49) STA2 (.88) ECHOREQ%2008-07-22%19:43:11%~ ECHO%2008-07-22%19:43:11%~ STATUS%0%43200000%0%W4IY%0%0%%~ ECHOREQ%2008-07-22%16:43:10%~ ECHO%2008-07-22%16:43:10%~ STATUS%1420000%1420000%-1%W7IY%0%0%SB%~ Start up sequence STA1 (.49) STA2 (.88) ECHOREQ%2008-07-22%19:46:42%~ ECHOREQ%2008-07-22%16:46:41%~ FREQ%43200000%~ ECHO%2008-07-22%16:46:41%~ ECHO%2008-07-22%19:46:42%~ LASTQAT%2008-07-19 23:46:42%~ FREQ%1420000%~ LASTQAT%2008-07-22 23:45:59%~ CHECKSUM%2008-06-29 18:00:22%2008-07-22 23:46:42%1273027086%FD%~ TALK%[STA2] My contest: DX, yours: FD%~
Note: for multiple stations, you must exchange ECHOREQ/ECHO with each station in the group.
For the rotor program:
Send UDP packet to port 12056 <N1MMRotor><goazi>20.0</goazi><offset>0.0</offset><bidirectional>0</bidirectional></N1MMRotor>
Enter az in entry window, press Alt-J