Progress on WSPR
So, I’ve made some progress on teasing apart enough of the encoding of WSPR beacon messages to write a completely stand alone Python program that will generate the appropriate tone sequence to send out the callsign/grid/power message. For instance, if I type “genwspr KF6KYI CM87 27”, I get:
<br />
3, 3, 0, 2, 0, 0, 0, 0, 3, 2, 2, 2, 3, 3, 1, 2, 0, 2, 3, 0, 0, 1, 0, 1,<br />
1, 1, 3, 0, 2, 2, 2, 0, 2, 2, 3, 2, 2, 1, 0, 1, 0, 2, 0, 0, 0, 2, 3, 0,<br />
3, 1, 0, 2, 3, 3, 2, 1, 0, 0, 2, 3, 3, 0, 1, 2, 0, 0, 0, 1, 1, 2, 1, 0,<br />
3, 0, 3, 0, 3, 2, 0, 3, 0, 2, 1, 2, 3, 3, 2, 2, 2, 1, 3, 2, 3, 0, 3, 0,<br />
2, 0, 1, 2, 2, 2, 0, 0, 3, 2, 0, 1, 0, 0, 3, 1, 1, 2, 1, 1, 0, 0, 1, 3,<br />
0, 3, 2, 0, 0, 3, 3, 3, 2, 2, 2, 0, 2, 3, 0, 1, 0, 0, 1, 3, 0, 0, 0, 0,<br />
0, 2, 0, 3, 3, 0, 3, 0, 3, 3, 2, 0, 0, 1, 1, 0, 0, 2,<br />
Which is the 162 bit long code needed to indicate that KF6KYI is operating with an output power of 27dbM, or 0.5 watts.
If I crank up the power to 37dbm (a full 5w on my FT-817), i should use this code sequence.
<br />
3, 3, 0, 0, 0, 0, 0, 0, 3, 0, 2, 2, 3, 1, 1, 2, 0, 2, 3, 2, 0, 3, 0, 1,<br />
1, 3, 3, 0, 2, 2, 2, 0, 2, 2, 3, 0, 2, 3, 0, 3, 0, 0, 0, 0, 0, 2, 3, 2,<br />
3, 3, 0, 0, 3, 3, 2, 1, 0, 0, 2, 1, 3, 0, 1, 2, 0, 0, 0, 3, 1, 0, 1, 0,<br />
3, 2, 3, 2, 3, 2, 0, 1, 0, 0, 1, 0, 3, 3, 2, 0, 2, 1, 3, 2, 3, 2, 3, 2,<br />
2, 0, 1, 2, 2, 0, 0, 2, 3, 2, 0, 3, 0, 0, 3, 1, 1, 2, 1, 3, 0, 0, 1, 1,<br />
0, 3, 2, 0, 0, 1, 3, 3, 2, 2, 2, 0, 2, 1, 0, 3, 0, 2, 1, 3, 0, 2, 0, 2,<br />
0, 0, 0, 1, 3, 2, 3, 2, 3, 1, 2, 2, 0, 1, 1, 2, 0, 2,<br />
My Python program isn’t very pretty, and it doesn’t implement all the non-beacon message types that are needed for QSO-mode operation, but it does appear to work. I’ll make it available after I get a chance to tidy it up a bit more.