Progress on WSPR

Published on 2008-09-14 by Mark VandeWettering

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.