K9AN C port of the WSPR decoder, now for Windows as well

While having caught a nasty bug, staying at home, i have managed to port K9AN’s source code of the WSPR C decoder, so it can be compiled in Visual Studio Express under Windows.


Update: Now i have made a dedicated page for this, please check it here.

18 thoughts on “K9AN C port of the WSPR decoder, now for Windows as well

  1. John KC4RSN

    Hi Chris,
    Wondering if K9AN decoder Version 3/8/2015 is the latest updated version available?

    73, John KC4RSN

    1. m0nka Post author

      Hi John,

      Yes, latest changes to the k9an decoder are not implemented in the Windows version yet.

      73, Chris

    1. m0nka Post author

      Hi Yuri,

      There is a new update of the decoder by Joe and the C port by K9AN, but i didn’t have a chance yet to compare and implement the changes in my port.

      73, Chris

  2. Yuri

    Hello Chris!
    Thanks for your effort.
    Tried last night K9AN decoder (v1.5) for wspr-x in wspr-15 mode on 2200m.
    Decoder wrote wrong frequency -100Hz in wspr-15 mode.
    2015-04-08 04:15 RK2Y 0.137518 -9 0 KO73dg 0.1 EW6BN KO45jl 432 307
    2015-04-08 03:00 RK2Y 0.137518 -18 0 KO73dg 0.1 EW6BN KO45jl 432 307
    2015-04-08 01:45 RK2Y 0.137518 -17 0 KO73dg 0.1 EW6BN KO45jl 432 307
    2015-04-08 00:45 RK2Y 0.137518 -16 0 KO73dg 0.1 EW6BN KO45jl 432 307
    2015-04-07 23:46 RK2Y 0.137518 -18 0 KO73dg 0.1 EW6BN KO45jl 432 307
    2015-04-07 22:46 RK2Y 0.137518 -13 0 KO73dg 0.1 EW6BN KO45jl 432 307
    2015-04-07 21:16 UA4WPF 0.137520 -13 0 LO66pu 1 EW6BN KO45jl 1516 275
    2015-04-07 21:00 RK2Y 0.137518 -18 0 KO73dg 0.1 EW6BN KO45jl 432 307

    Real decoded frequency must be plus 100 Hz.

    Yuri EW6BN

    1. m0nka Post author

      Hi Yuri,

      Thanks for your report! Is this only on my Windows port or on the Linux version as well ?

      73, Chris

  3. Jim


    I’m thinking in the file wsprd.cpp this line:


    needs to be changed to:


    For MS Windows platforms per: http://en.wikipedia.org/wiki/Newline

    I also inspected the file WSPR_ALL.TXT file and I can see only an embedded 0x0A (a LF or /n char) in the file at the ends of lines added by the new wsprd.exe program.

    I tried compiling the file but VS2010 is giving me an error at the moment on something unrelated.


    1. m0nka Post author

      Thanks Jim,

      I will try that now. It seems to hand for me as well sometimes, but not very often.


  4. Jim

    Oops … the brackets in the above post disappeared!

    Here’s a sample showing the brackets in lieu of a callsign – note the full six-character :
    grid square is shown:

    1516 .. -20 .. -0.9 …. 7.040057 .. 0 .. <…> …. DM43FE … 33


  5. Jim

    Chris, an example of how six digit locators are handled now with ver. 1.2

    Note callsign AA7OO and corresponding frequency, and apparently he
    has checked the option to force the transmission of a 6-digit Maidenhead
    grid locator, giving the following results received with ver. 1.2 wsprd.exe.

    1444 .. -9 .. -1.1 .. 7.040057 .. 0 .. AA7OO …. DM43 33
    1446 .. -7 .. -0.7 .. 7.040170 .. 0 .. NV0O …… EM28 37
    1448 .. -8 .. -0.9 .. 7.040056 .. -1 .. ………. DM43FE 33
    1458 .. -7 .. -0.8 .. 7.040057 .. 0 .. AA7OO ….. DM43 33
    1458 .. -21 .. -0.6 .. 7.040171 .. 0 .. N8SDR …… EM79 27
    1504 .. -12 .. -1.0 .. 7.040056 .. 0 .. ……….. DM43FE 33
    1504 .. -22 .. -0.8 .. 7.040172 .. 0 .. N8SDR ….. EM79 27
    1506 .. -6 … -1.3 .. 7.040169 .. 0 .. K9AN …….. EN50 33
    1512 .. -17 .. -0.9 .. 7.040056 .. -1 .. AA7OO …. DM43 33
    1516 .. -20 .. -0.9 .. 7.040057 .. 0 …………. DM43FE 33

    My understanding is that on alternate transmitting cycles the callsign and
    six-digit location is transmitted, and the receiver makes the ‘connection’
    based I think on frequency and something else …

    Jim WB5WPA

      1. Jim

        re: Linux build or just your fork –

        Good question. I generally don’t run Linux here as my focus is on other than computer tech
        and my preferred language is actually NI’s LabVIEW (for instrument control nowadays) ….

        One thing I did notice, is that ‘old’ spots that had stalled for uploading in WSPR-X (for
        whatever reason) don’t start up and automatically try and reload to the site when WSPR-X
        is closed and re-opened … I think his is (or was) related to the CR-LF issue at the end of the
        line. The symptom is it shows ‘Uploading spots’ (for almost 2 minutes) until the next cycle
        where normal is to see an ‘Uploading spots’ highlighted in yellow.


  6. Jim


    Your link above for the VS2012 runtimes in the opening post above (as of 2015-03-02)
    is incorrect.

    Your link defaults to pointing to the x64 runtimes, which are totally incorrect for
    80×86 processor-based 32-bit Windows Xp.

    I made mention of this on the WSPTnet.org website blog post, but note was not taken.

    Users must go instead to the link below (notice, it is almost the same link except it
    does not have the word ‘confirmation’ in it) and after clicking ‘download’ button
    the choice for x86 or x64 or ARM runtimes is presented, and one should choose
    x86 (of course) for Intel 80×86 based processors running Windows Xp:

    This will get them the correct x86 runtime.

    I have run version 1.2 wsprd.exe overnight with good results.

    There are a couple minor issues like handling six character locators and
    the WSPR logging file no longer has CR-LF appended at the end of each
    line (so using Windows Notepad, which requires a line feed – carriage
    return pair to recognize end-of-line, shows just one big line of text) but
    the decoding seems to work just fine.

    Jim WB5WPA (former C programmer from a long time ago in a galaxy
    far, far away)

  7. Jan Damme

    Dear Chris,
    Your first attempt did work fine with me.
    Run WIN 7 here.

    However the XP added version is not working.
    It remains in the status “decoding”.
    Waterfall and LF bar ect. is acting normally, but the receive screen remains empty.
    Also installed (possible again) the MS C+ lib but that didn’t move the program.

    For this experimental purpose I have fresh installed WSPR-X in a separate dictonary.
    All info filled in and even checked the directory for the wave/c2 files.

    Your first version could run together with the original.
    So I noticed the difference of intercept, which is on 30m quite an improvement for signals which are close to each other.
    For bands with low traffic there is a slight improvement noticeable.
    The noise figure is somewhat better (a few dB)

    Any clue why your updated version doesn’t run?

    73’s Jan/pa3abk

    1. m0nka Post author

      Hello Jan,

      Thanks for the report. I am using the new version on Win7/64 and seems to be ok. Do you get any error in the log file at all ? Maybe is best to drop me a mail and talk (djchrismarc at gmail).

      73, Chris


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.