The KiwiSDR 2 online store is open for orders! Please visit kiwisdr.nz
Please visit kiwisdr.com (documentation) and kiwisdr.nz (online store)
DRM RECORDING
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?
Comments
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 havekiwirecorder
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:
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.I have successfully made some DRM audio recordings using the new kiwirecorder.py
But am not able get the timestamp to work for the RSSI readings.
This works in my python script for the DRM audio sampling:
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?
Thanks.
This worked fine for me:
python3 kiwirecorder.py -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:
del.twrmon.net:8074 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:
jnb.twrmon.net:8073 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.
Thanks.
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 https://github.com/jks-prv/kiwiclient
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 kiwirecorder.py -s df0twn.dnsuser.de -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
...
@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/kiwirecorder.py', '-s del.twrmon.net', '-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.