Device_id missing. Which device?

I’m in the process of rebuilding the client on OZ7SAT (station #49) and have been successful most of the way. I follow PE0SAT’s excellent guide.

The present snag is that any pass I try to track aborts immediately with the following message in the journal:

Aug 18 17:22:34 amsat satnogs-client[1101]:   File "/usr/bin/", line 466, in <module>
Aug 18 17:22:34 amsat satnogs-client[1101]:     main()
Aug 18 17:22:34 amsat satnogs-client[1101]:   File "/usr/bin/", line 449, in main
Aug 18 17:22:34 amsat satnogs-client[1101]:     tb = top_block_cls(antenna=options.antenna, bb_freq=options.bb_freq,, dc_removal=options.dc_removal, decoded_data_file_path=options.decoded_data_file_path, dev_args=options.dev_args, deviation=options.deviation, doppler_correction_per_sec=options.doppler_correction_per_sec, enable_iq_dump=options.enable_iq_dump, file_path=options.file_path, gain=options.gain, gain_mode=options.gain_mode, iq_file_path=options.iq_file_path, lo_offset=options.lo_offset, max_modulation_freq=options.max_modulation_freq, other_settings=options.other_settings, ppm=options.ppm, rigctl_port=options.rigctl_port, rx_freq=options.rx_freq, samp_rate_rx=options.samp_rate_rx, soapy_rx_device=options.soapy_rx_device, stream_args=options.stream_args, tune_args=options.tune_args, udp_IP=options.udp_IP, udp_dump_host=options.udp_dump_host, udp_dump_port=options.udp_dump_port, udp_port=options.udp_port, waterfall_file_path=options.waterfall_file_path)
Aug 18 17:22:34 amsat satnogs-client[1101]:   File "/usr/bin/", line 92, in __init__
Aug 18 17:22:34 amsat satnogs-client[1101]:     tune_args, settings, samp_rate_rx, "fc32")
Aug 18 17:22:34 amsat satnogs-client[1101]:   File "/usr/lib/python3/dist-packages/soapy/", line 166, in make
Aug 18 17:22:34 amsat satnogs-client[1101]:     return _soapy_swig.source_make(nchan, device, dev_args, stream_args, tune_args, other_settings, sampling_rate, type)
Aug 18 17:22:34 amsat satnogs-client[1101]: RuntimeError: device_id missing.

My big question is ‘which device’?? I have absolutely no idea of where to look for device ids. I have searched high and low and can only find one reference to a device in the ‘soapy_rx_device’ line in the configuration:

------------[ copy here ]------------
    "versions": {
        "satnogs-client": "1.7",
        "satnogs-client-ansible": "202205101826",
        "satnogs-flowgraphs": "1.4-1",
        "gr-satnogs": "",
        "gr-soapy": "",
        "gnuradio": "",
        "satnogs-config": "0.12"
    "state": {
        "is-applied": true,
        "pending-tags": null
    "system": {
        "date": "2022-08-18T15:14:19.761928+00:00",
        "distribution": {
            "DESCRIPTION": "Debian GNU/Linux 10 (buster)",
            "RELEASE": "10",
            "CODENAME": "buster",
            "ID": "Debian"
        "pending-updates": false,
        "platform": {
            "system": "Linux",
            "node": "amsat",
            "release": "4.19.0-21-amd64",
            "version": "#1 SMP Debian 4.19.249-2 (2022-06-30)",
            "machine": "x86_64",
            "processor": ""
        "memory": {
            "total": 4136824832,
            "available": 3681607680,
            "percent": 11.0,
            "used": 211398656,
            "free": 3515473920,
            "active": 248217600,
            "inactive": 224870400,
            "buffers": 34902016,
            "cached": 375050240,
            "shared": 5910528,
            "slab": 97419264
        "disk": {
            "total": 24425349120,
            "used": 4107030528,
            "free": 19051638784,
            "percent": 17.7
    "configuration": {
        "hamlib_utils_rot_enabled": true,
        "satnogs_antenna": "RX",
        "satnogs_api_token": "[redacted]",
        "satnogs_app_path": "/home/lab/",
        "satnogs_client_version": "1.7",
        "satnogs_gain_mode": "Settings Field",
        "satnogs_incomplete_output_path": "/home/lab/data/incomplete",
        "satnogs_other_settings": "LNA=9,MIX=6,VGA=11",
        "satnogs_output_path": "/home/lab/data",
        "satnogs_post_observation_script": "/home/lab/runtime/ {{ID}} {{TIMESTAMP}} {{BAUD}} {{SCRIPT_NAME}}",
        "satnogs_rot_model": "ROT_MODEL_NETROTCTL",
        "satnogs_rot_port": "",
        "satnogs_rot_threshold": "8",
        "satnogs_rx_samp_rate": "10e6",
        "satnogs_soapy_rx_device": "driver=airspy",
        "satnogs_station_elev": "10",
        "satnogs_station_id": "49",
        "satnogs_station_lat": "55.632602",
        "satnogs_station_lon": "12.600354"
------------[ copy end ]-------------

Any help and/or pointer on where to look for the missing device_id will be greatly appreciated.

It's time to upgrade the software of your stations, again (Dec 23, 2020) - #75 by Rico might help


Weird, I can find this error message only in the “SoapyAudio” sources at SoapyAudio:Settings.cpp?L74 and in no other Soapy module, so maybe when the configured device could not be found (e.g. because it is unplugged), the SoapyAudio module is loaded and fails instead?

Whatever the root cause is, this is an error message by SoapySDR.

1 Like

Thanks for the very quick replies. I have taken the machine with me home to be able to work i peace and quiet so I don’t have all the attached units here. I’ll take the machine to its proper place and see what happens there.

@oz6bl Could be a bad USB cable connection to your airspy SDR. Check the output of

SoapSDRUtil --probe

and see if it lists your Airspy is listed with its proper sampling rates 2.5e6 and 10e6 (if an R2). I’ve had a world of trouble with my Airspy R2 micro USB connector despite being careful with it. The sample rates would show up as < 1.0e6 when the connection was sub-optimal.

1 Like

You definitely got a point. See my previous post: no AIrspy connected.

1 Like

The post I linked found the root cause to be no connection with the sdr. If your sdr isn’t even plugged in I think it is a safe bet to say you’re also experiencing a connection problem.


I can’t get the machine to its proper until Tuesday night so we’ll have to wait until then to find out if the theory is correct.

Assuming it is correct one could philosophize over the messages I got during my tests. If the problem simply is ‘missing radio’ a message to that effect rather than a Python exception would have prevented me from having to trouble you good folks with my questions…

1 Like

Last night I got the OZ7SAT host moved to its proper place and commissioned. Everything worked as expected, so your theory on the cause of the <sarcasm> informative </sarcasm> error message - that it was caused by a missing radio - proved right.

My thoughts on the appropriateness of the message still stand.

1 Like

Maybe the error message should say something more than “Missing Device ID” when the device isn’t plugged in. But perhaps you could consider also mentioning to others the device wasn’t plugged in, as that is quite relevant when debugging.