SNR Measurements allow for user variable time input [fixed in v1.813]

edited June 12 in Feature requests

Just a thought, the current default minimum SNR measurement time is 1 hour, but during solar storms and especially CME events or solar eclipses, I would like to be able to use a smaller time increment to measure the effects across the HF spectrum. So I was wondering if it would be possible to add a user-defined time increment down to 1-minute intervals, or if not possible, add fixed intervals of 1, 5 and 10-minute intervals to the current list. Thank you. 73.

Tremolat

Comments

  • edited June 1

    Here is an alternative method to trigger custom measurement intervals using cron:

    https://forum.kiwisdr.com/discussion/3309/snr-measurement-timing-enhancement-can-be-done-via-cron-snr-meas-url

  • I'd rather learn ancient Greek! Just want a simple easy way from a drop-down menu without requiring Kantian (Linux) priori knowledge. Everything on discussion list might as well be in ancient Greek to me! I can't understand a word of it!! 😉

  • But as a Kiwi owner (with admin rights) you can always force SNR measurement

    by clicking the button next to the "SNR measurement interval" settings.

    This doesn't force an immediate change on the main Kiwi search page,

    but it is visible to you and all current users.

    I use this multiple times every day when switching my antennas.

    LIN

  • Yes, I know, and if that works for you, great! But it doesn't work for me in the gathering of telemetry. The SNR data provided is very useful but it is too coarse at 60-minute increments for many events that affect the ionosphere and propagation. I need finer measurement increments, and I want the Kiwi to do this automatically without needing me to tell it when or having to know how to use Linux programming from the Kiwi console. Just need 1, 2, 5, and 10-minute increments added to the current Control list drop-down menu that currently starts at 60-minute increments.

  • I assumed it was something more sophisticated... and by the way, once John approves the changes and finds time for your problem, the SNR measurement could be done automatically every time the antenna is changed (but that's a minor thing).

    LIN

  • If your KiWi is on your local network, you can add /snr?meas to the url to force an SNR measurement.

    This was added for pretty much the scenario you desire.

    This is also what the cron job that was suggested earlier, automatically triggers at the required interval.

    It may not be desirable for KiWi users to keep on requesting an SNR measurement every minute, as this would quickly fill up the log file.

    I'm not sure how you were intending to collect the data you require, but assuming you intend to automate it in some way, it would be relatively easy to add the url command into the process.

    If you intend to do it manually, you just have to save the url string as a tab, and refresh it as required.

    Another alternative is to get your browser to snapshot the waterfall at regular intervals and time stamp them. This will give you a better indication of changes in propagation conditions and solar events, rather than hoping the SNR measurement will capture the required data.

    This previous forum discussion may help.

    https://forum.kiwisdr.com/index.php?p=/discussion/2942

    Regards,

    Martin

  • edited June 4

    Not what I want. I'd rather not use a sledgehammer to solve this "problem". But I can't see how to program the crontab file to measure SNR at 1, 2, 5 or 10-minute increments. The JSON file telemetry is what I need and I want it quick, easy and automatic.

    So I would prefer to be able to select the SNR measurement interval from the pop-down menu. Another feature would be the dBm and SNR breakdowns by bands. It would be interesting, say, to compare the LF, 160m, 80m to 10m bands during a solar eclipse for example and how and when they react depending on the amount of solar disc coverage. Then we have CMEs, SIDs, TIDs, electron precipitation, et al. Lots of radio science is possible and the Kiwi has only just scratched the surface of what I think it can do, IMHO.

    But, if anyone could tell me how to program crontab to measure SNR at less than on-hour increments, which also adds the extended telemetry data to the JSON file, that would be appreciated.

    73.

  • jksjks
    edited June 4

    In the next release I'll add a "custom" entry in the SNR measurement interval menu with a corresponding time field where you can enter the number of minutes you want.

    I think I can also add a checkbox that asks for each ham band to get a separate measurement in addition to the 0-30 and 1.8-30 MHz measurements.

    studentkranitroenginesmgF5AFY
  • edited June 4

    Great and thanks, John! The KiwiSDR can do some really serious radio science with those features, I am using the 1-hour SNR and dBm measurements to get a rough picture of what the current CME events have been doing to the HF spectrum overall, combined with my Kiwi's FT8 and WSPR data spotted to WSPRnet and PSK Reporter.

    73,

    Robert

  • Wow, that's an interesting idea, thanks John.

    Maybe this improved granularity could eventually somehow provide a more accurate measure of the overall quality of reception for a given KiWi at a given time.

    I also wonder if some known "quiet" bits of spectrum could be measured, if they have signals present, then it's likely to be either noise or interference.

    I also think the day / night variation in signal levels could be used as a measure of quality too.

    Something like BlackCat's SDR Monitor SNR Graph. The larger the variation, the more likely it is genuine reception, and not just a fixed level of noise.

    Regards,

    Martin

  • In addition to check boxes, how about a field to measure SNR across a custom range? Such as having the option to measure the SNR across 500 - 1800 to compare AM band performance of various antennas designed for AM DX. Right now, I look at the measured 0 - 1800 range, but there is often a ton of noise down below 500 that varies throughout the day.

  • smgsmg
    edited June 4

    An SNR graph into the admin page? :-D

    I have been using blackcats SNR logger, however it always clears the graph when the kiwi restart for any reason - like an update etc.

    So I tried a little Python and some AI help to write this monstrosity! :-D

    It uses a poller to collect the SNR records from the Kiwi and write them to a file. Another script then parses that to this graph using matplot libraries. It's very buggy, and not 100% what I wanted, but it's close. You can see I also have it noting the highest levels of signal on the graph



  • Yes, it's a pity that the BlackCat logger looses information when the KiWi reboots. I've also found this to be a disadvantage if you wish to keep a long term record.

    Your Python code seems to be more useful.

    I wonder if a daily (24 hour) max / min value, for each frequency range, which could then be used to calculate a difference between the two, would provide the "figure of merit" I mentioned.?

    Regards,

    Martin

  • Well if anyone knows python, they are welcome to make this good :-)

  • edited June 9

    I've been using SNR level logging, adc_ov, and the number of users for a long time. The charts are available as a web page, and it is located on the Kiwi server in the config folder as simple html file. The code was written a long time ago without using AI )) . That's why it looks ridiculous, but it works great. You can use it as a blank for your code.


    smgHB9TMCTremolatdl7awl
  • I have only been using the new SNR measuring for a few hours, but I spotted a possible problem in the SNR data. For some reason, after the initial SNR measurement (I asked for the ham and BCB bands to be included at 10-minute intervals), subsequent SNR measurements become zero for the majority of the bands, which to me is impossible. If I do a KiwiSDR reboot, the first reading is okay and the same pattern of zeros for the ham bands returns. I also used 5-minute intervals with the same "problem": I had to truncate the JSON file because of the message size limitation:

    [{"ts":"Tue Jun 17 15:31:25 2025","seq":0,"utc":1,"imin":5,"ant":0,"snr":[
    {"lo":0,"hi":30000,"min":-92,"max":-46,"p50":-77,"p95":-59,"snr":18},
    {"lo":1800,"hi":30000,"min":-92,"max":-56,"p50":-78,"p95":-65,"snr":13},
    {"lo":0,"hi":1800,"min":-80,"max":-46,"p50":-58,"p95":-48,"snr":10},
    {"lo":1800,"hi":10000,"min":-80,"max":-56,"p50":-71,"p95":-58,"snr":13},
    {"lo":10000,"hi":20000,"min":-86,"max":-62,"p50":-77,"p95":-69,"snr":8},
    {"lo":20000,"hi":30000,"min":-92,"max":-71,"p50":-82,"p95":-76,"snr":6},
    {"lo":136,"hi":138,"min":-81,"max":-69,"p50":-73,"p95":-71,"snr":2},
    {"lo":472,"hi":479,"min":-84,"max":-76,"p50":-79,"p95":-77,"snr":2},
    {"lo":1800,"hi":2000,"min":-83,"max":-73,"p50":-76,"p95":-75,"snr":1},
    {"lo":3500,"hi":4000,"min":-91,"max":-81,"p50":-86,"p95":-84,"snr":2},
    {"lo":5250,"hi":5450,"min":-92,"max":-80,"p50":-85,"p95":-81,"snr":4},
    {"lo":7000,"hi":7300,"min":-99,"max":-85,"p50":-93,"p95":-91,"snr":2},
    {"lo":10100,"hi":10150,"min":-96,"max":-89,"p50":-92,"p95":-91,"snr":1},
    {"lo":14000,"hi":14350,"min":-107,"max":-90,"p50":-101,"p95":-98,"snr":3},
    {"lo":18068,"hi":18168,"min":-104,"max":-94,"p50":-99,"p95":-97,"snr":2},
    {"lo":21000,"hi":21450,"min":-104,"max":-94,"p50":-98,"p95":-97,"snr":1},
    {"lo":24890,"hi":24990,"min":-105,"max":-98,"p50":-101,"p95":-99,"snr":2},
    {"lo":28000,"hi":29700,"min":-108,"max":-80,"p50":-100,"p95":-95,"snr":5},
    {"lo":530,"hi":1700,"min":-82,"max":-59,"p50":-71,"p95":-62,"snr":9}]},
    
    
    {"ts":"Tue Jun 17 15:43:10 2025","seq":2,"utc":1,"imin":5,"ant":0,"snr":[
    {"lo":0,"hi":30000,"min":-92,"max":-45,"p50":-77,"p95":-60,"snr":17},
    {"lo":1800,"hi":30000,"min":-92,"max":-56,"p50":-78,"p95":-66,"snr":12},
    {"lo":0,"hi":1800,"min":-83,"max":-45,"p50":-59,"p95":-48,"snr":11},
    {"lo":1800,"hi":10000,"min":-80,"max":-56,"p50":-74,"p95":-59,"snr":15},
    {"lo":10000,"hi":20000,"min":-86,"max":-65,"p50":-77,"p95":-67,"snr":10},
    {"lo":20000,"hi":30000,"min":-92,"max":-73,"p50":-82,"p95":-77,"snr":5},
    {"lo":136,"hi":138,"min":-79,"max":-70,"p50":-73,"p95":-71,"snr":2},
    {"lo":472,"hi":479,"min":-84,"max":-76,"p50":-79,"p95":-77,"snr":2},
    {"lo":1800,"hi":2000,"min":-82,"max":-73,"p50":-76,"p95":-74,"snr":2},
    {"lo":3500,"hi":4000,"min":-90,"max":-80,"p50":-84,"p95":-82,"snr":2},
    {"lo":5250,"hi":5450,"min":-91,"max":-79,"p50":-84,"p95":-81,"snr":3},
    {"lo":7000,"hi":7300,"min":-99,"max":-86,"p50":-93,"p95":-90,"snr":3},
    {"lo":10100,"hi":10150,"min":-97,"max":-90,"p50":-93,"p95":-91,"snr":2},
    {"lo":14000,"hi":14350,"min":0,"max":0,"p50":0,"p95":0,"snr":0},
    {"lo":18068,"hi":18168,"min":0,"max":0,"p50":0,"p95":0,"snr":0},
    {"lo":21000,"hi":21450,"min":0,"max":0,"p50":0,"p95":0,"snr":0},
    {"lo":24890,"hi":24990,"min":0,"max":0,"p50":0,"p95":0,"snr":0},
    {"lo":28000,"hi":29700,"min":0,"max":0,"p50":0,"p95":0,"snr":0},
    {"lo":530,"hi":1700,"min":0,"max":0,"p50":0,"p95":0,"snr":0}]}]
    


  • Hmm. Haven't been able to replicate here so far. Would help if I could connect as admin to your Kiwi and take a look at the log. Email details to support@kiwisdr.com if possible please.

  • I believe mine is logging OK. I re-jigged the python script to plot the bands in the SNR data


  • edited June 17

    WILCO.

    I also included a note that when I turned off the FT8 and WSPR extensions (I monitor each on 20, 15 and 10 m) SNR measurement problem across the ham/BCB bands disappeared. I offered a possible workaround for the old v. 1 KiwiSDRs that may be underpowered for the task asked of it. More incentive to buy a new v. 2 KiwiSDR and just let the v. 1 do SNR measurements 24/7/365.

    73.

  • smgsmg
    edited June 18

    So i have made some more changes to my script. LOL

    If anyone wants it, they are welcome to it. Its just a python script. The benefit is that unlike the blackcat logger, this one doesnt clear the screen when the kiwi restarts.

    Ive added the ability to turn on or off individual bands to declutter the graph. :-)

Sign In or Register to comment.