The KiwiSDR 2 online store is open for orders! Please visit
Today's v1.694 update is hopefully a working version of the failed v1.691,692 release of a few days ago.
See the first post of the "v1.694" thread below for the CHANGE_LOG notes.
Please visit (documentation) and (online store)


We have 7 KiwiSDR receivers deployed across India. More units are in the pipeline to be deployed. These are handled externally to monitor broadcasts to a specific schedule everyday. We need to get them to record DRM broadcast too. We need to log signal strength, SNR, MER and other parameters plus record decoded audio for whatever duration as need may be. Ability to record waterfall or atleast get images of this waterfall will be extremely useful.

Has anyone done this already?


  • jksjks
    edited July 2022

    Some of these measurements/recordings can be done now, but the tools may not fit your environment (e.g. kiwirecorder, to record Kiwi audio and save as .wav files, is a python script run from the Linux command line. You'd need to automate this with a "batch file" mechanism when dealing with a dozen different Kiwis sampled on a schedule (e.g. cron on Linux, something similar on Windows).

    Remember that you have two options for DRM programs:

    1) The original Dream application that runs under Windows, Linux and MacOS. This can be fed from streamed Kiwi IQ samples. I don't use Dream much but I believe it can log some of the parameters you're interested in. Obviously starting a dozen different copies of the app and feeding them the correct parameters to connect to the correct Kiwis is a challenge.

    2) The DRM extension within the Kiwi itself. This is essentially the same low-level Dream code without the Dream user interface. So for example no logging of DRM-IF/SNR/MER etc currently although this could probably be added.

    Waterfall/spectrum recording to a .jpg file can be done manually now from the Kiwi UI. But this doesn't help you if you're trying to automate the process. kiwirecorder could be adapted to store waterfall bin values in a file. Right now it just shows SNR for the waterfall samples. There is an open request to have kiwirecorder convert waterfall samples to .jpg/.png files in the same way as the Kiwi UI.

    So in summary, yes, all of this can be done. But it's going to take some work and a better understanding of your setup. Do you have just a central computer you want to automate all this from? I would assume so. Can it run Linux?

  • So I have been working on most of these issues.

    Not ready quite yet, but I have a version of kiwirecorder and the Kiwi server that does a number of new things:

    • Can start the DRM extension on the Kiwi side and save decoded DRM audio to .wav files just as it does for the other analog (and IQ) modes.
    • Can optionally receive, in JSON format, the information that drives the status display you normally see when opening the DRM extension from a browser connection to a Kiwi. So information about IF level, DRM SNR, FAC/SDC/MSC status, service channel info etc. MER would have to be added.
    • Running kiwirecorder in waterfall mode normally just prints max/min dB info. It can now save entire waterfalls of arbitrary duration as .png files. Right now only the standard Kiwi colormap is available. To set the color space you can specify the mindB/maxdB and there is also an Auto Scale button equivalent. These work the same way as what's found on the Kiwi WF tab.
  • Thanks much @jks. I just got to read your input today.

    We eagerly look forward to a final solution to this

    We have several sites each hosting a "unit" in which a kiwiSDR is 'married' to a RPi that runs a python script to automate the monitoring. The RPi would run Linux. I would consider it is best that this is run on the local unit instead of the central ftp or database where all the monitoring data is uploaded at predefined time, which would vary for each site.

    Thanks again.

  • Rpi is Raspberry Pi and we extensively use kiwi recorder.

  • @Shakti Okay, that sounds good. I am almost ready to upload the kiwirecorder changes. Just finishing documentation. Make sure your Kiwis are running version v1.550 or later to be able to use the new DRM features. I'll reply here when the new kiwirecorder is ready for a git pull.

  • @Shakti Okay, the new kiwirecorder has been pushed to GitHub. Use the --help option with kiwirecorder and look at the Makefile where the --wf-png option is used for examples.

  • edited October 2022

    I have successfully made some DRM audio recordings using the new

    But am not able get the timestamp to work for the RSSI readings.

    This works in my python script for the DRM audio sampling:

       command = ["python3.7", "{}",
                    "-p 8073", "-f 810",
                    "-L -5000", "-H 5000",
                    "--log=debug", "--log-level=info"]

    Thanks for all your hard work, John @jks

  • @jks Hi John,

    I am now trying to get RSSI readings every 5 seconds along with a timestamp to the above options.

    When I add these four options:

    --s-meter=0 --sdt-sec=5 --timestamp --snd

    I do get the drm *.wav file but no timestamp with the RSSI readings.

    Can you please help me?


  • This worked fine for me:

    python3 -s kiwi_hostname -p 8073 -f 9620 -L -5000 -H 5000 --mode=drm --ext=DRM --snd --user=DRM-test --filename=AIR.9620.12k.drm --s-meter=0 --sdt-sec=1 --tlimit=30 --timestamp --log-level=info

  • @jks Thank you for your help. When I use the above options you give, I get the following output:

    The Output of the kiwirecorder is: freq=810

    310 - 0

    310 - 955321780

    310 - 42662891

    310 - -957337109

    18-Oct-2022 11:32:58 UTC RSSI: -53.3

    310 - 42662890

    310 - 42662891

    310 - 42662891

    310 - 42662890

    310 - 42662891

    310 - 42662890

    310 - 42662891

    310 - 42662891

    310 - 42662890

    310 - 42662891

    310 - 42662890

    310 - 42662891

    310 - 42662891

    310 - 42662890

    310 - 42662891

    310 - 42662891

    310 - 42662890

    310 - 42662891

    310 - 42662891

    310 - 42662890

    310 - 42662891

    310 - 42662890

    310 - -957337109

    18-Oct-2022 11:32:59 UTC RSSI: -53.6

    310 - 42662891

    310 - 42662890

    310 - 42662891

    310 - 42662890 ....... etc ...

    So, I do get the timestamp RSSI readings but with all these other numbers between.

    With the mode=AM, I do not get all these 310 - 42... numbers in between the timestamp RSSI readings.

    Are you getting just the timestamp readings?

    Here is my output with mode=am with the RSSI readings as well: freq=657

    18-Oct-2022 09:21:50 UTC RSSI: -28.8

    18-Oct-2022 09:21:55 UTC RSSI: -28.9

    18-Oct-2022 09:22:00 UTC RSSI: -28.9

    18-Oct-2022 09:22:05 UTC RSSI: -28.9

    18-Oct-2022 09:22:10 UTC RSSI: -28.9

    18-Oct-2022 09:22:15 UTC RSSI: -28.9

    Was hoping for the same output with mode=DRM.


  • jksjks
    edited October 2022

    No, I do not see that. I don't know what that is. I don't see anywhere in the code where that would be printed out. Make sure you are updated to the latest kiwirecorder version from

    And make sure you are using --ext=DRM in addition to --mode=DRM

    What's the full, exact kiwirecorder command you are using?

    An example of the output I see:

    python3 -s -p 8073 -f 5910 -L -5000 -H 5000 --mode=drm --ext=DRM --snd --user=DRM-test --filename=RRI.5910.12k.drm --s-meter=0 --sdt-sec=1 --tlimit=30 --timestamp --log-level=info

    2022-10-19 07:17:43,767 pid 20297 started sound recorder 0

    2022-10-19 07:17:46,700 pid 20297 Kiwi server version: 1.566

    2022-10-19 07:17:46,773 pid 20297 started extension recorder 0

    2022-10-19 07:17:47,530 pid 20297 GNSS position: lat,lon=[+52.30,  +7.18]

    2022-10-19 07:17:48,338 pid 20297 Kiwi server version: 1.566

    2022-10-19 07:17:48,339 pid 20297 ext_client_init(is_locked)=0

    2022-10-19 07:17:48,465 pid 20297 Started a new file: RRI.5910.12k.drm.wav

    18-Oct-2022 18:17:49 UTC RSSI: -54.2

    2022-10-19 07:17:49,032 pid 20297 recv EXT ready = None

    2022-10-19 07:17:49,033 pid 20297 recv EXT inuse = 1

    2022-10-19 07:17:49,033 pid 20297 recv EXT heavy = 0

    2022-10-19 07:17:49,033 pid 20297 recv EXT locked = 1

    18-Oct-2022 18:17:50 UTC RSSI: -54.5

    18-Oct-2022 18:17:51 UTC RSSI: -54.9

    18-Oct-2022 18:17:52 UTC RSSI: -55.0


  • edited October 2022

    @jks Thank you. This morning I did download the latest kiwiclient as you suggested and now it is all working fine. I managed to record DRM audio and the RSSI with the timestamps. Recorded the BBC broadcast on 17720 on Shakti's KiwiSDR in Delhi.

    Executing command: ['python3.7', '/PycharmProjects/TEST_BED/Kiwi/', '-s', '-p 8073', '-f 17720', '-L -5000', '-H 5000', '--mode=DRM', '--ext=DRM', '--snd', '--filename=testing-DRM-del-17720-66', '--s-meter=0', '--sdt-sec=1', '--tlimit=60', '--timestamp', '--log-level=info']

    2022-10-19 08:42:47,627 pid 9146 started sound recorder 0

    2022-10-19 08:42:49,486 pid 9146 Kiwi server version: 1.566

    2022-10-19 08:42:50,629 pid 9146 started extension recorder 0

    2022-10-19 08:42:50,688 pid 9146 GNSS position: lat,lon=[ +0.00,  +0.00]

    2022-10-19 08:42:51,653 pid 9146 Started a new file: testing-DRM-del-17720-66.wav

    2022-10-19 08:42:52,371 pid 9146 Kiwi server version: 1.566

    2022-10-19 08:42:52,371 pid 9146 ext_client_init(is_locked)=0

    2022-10-19 08:42:53,382 pid 9146 recv EXT ready = None

    2022-10-19 08:42:53,382 pid 9146 recv EXT inuse = 2

    2022-10-19 08:42:53,382 pid 9146 recv EXT heavy = 0

    2022-10-19 08:42:53,383 pid 9146 recv EXT locked = 1

    21 The Output of the kiwirecorder is: 

     19-Oct-2022 08:42:52 UTC RSSI: -61.4

    19-Oct-2022 08:42:53 UTC RSSI: -61.1

    19-Oct-2022 08:42:54 UTC RSSI: -61.0

    19-Oct-2022 08:42:55 UTC RSSI: -60.5

    19-Oct-2022 08:42:56 UTC RSSI: -60.0

    19-Oct-2022 08:42:57 UTC RSSI: -59.5

    19-Oct-2022 08:42:58 UTC RSSI: -59.2

    19-Oct-2022 08:42:59 UTC RSSI: -58.5 ....... etc .....

    Thank you. Keep up the good work.

Sign In or Register to comment.