Docker version, failed observations (RTL V4 and/or HackRF), after changing USB port

Your LNA isn’t working, assuming you use the DC from the RTL-SDR, because you are missing a parameter when using the RTL-SDR.

SATNOGS_DEV_ARGS=biastee=true

In the compose and or env file.

@yo4dft Maybe this image gives you an idea how to look at docker compared to your physical system.

Infrastructure: is the physical system.
Host Operating System: The OS installed on the physical system.

Docker: The software layer that interfaces between the physical system and containers.

Examples:

If you run SoapySDRUTIL --find it will run on the Host Operating system.

If you run docker exec AppA SoapySDRUTIL --find you will run the command inside the container.

Although the commands are the same, it is possible that these aren’t the same version and have other functions and options. So inside the container other software versions can be used.

I hope this gives you an idea on the structure.

Jan | PE0SAT

2 Likes

Good morning Jan & Daniel, thank you for your efforts and sorry for late reply.

Station 3600 it seems is working now, with some observations: I saw for the first time false data packets (g0 suffix). It seems I have 3 options:

  • to increase the SDR gain level with 3-6 dB (but doesnt solve the noise problem)
  • to power up the SDR from a dedicated regulated power supply, not from USB port (most probably it will reduce the noise)
  • to modify the antenna reflector to increase FB (it will reduce only the band noise).

Now, the details I promised:

  • station settings -
SATNOGS_API_TOKEN=xxx
SATNOGS_DB_API_TOKEN=xxx
SATNOGS_ARTIFACTS_API_TOKEN=xxx
SATNOGS_ARTIFACTS_ENABLED=True
SATNOGS_SOAPY_RX_DEVICE=driver=rtlsdr
SATNOGS_ANTENNA=RX
SATNOGS_RX_SAMP_RATE=2.048e6
SATNOGS_RF_GAIN=25.4
SATNOGS_PPM_ERROR=-4
SATNOGS_LO_OFFSET=200e3
SATNOGS_WATERFALL_AUTORANGE=False
SATNOGS_WATERFALL_MIN_VALUE=-90
SATNOGS_WATERFALL_MAX_VALUE=-60
SATNOGS_STATION_ELEV=50
SATNOGS_STATION_ID=3600
SATNOGS_STATION_LAT=44.141
SATNOGS_STATION_LON=28.617

SATNOGS_LOG_LEVEL=INFO
SATNOGS_PRE_OBSERVATION_SCRIPT=satnogs-pre {{ID}} {{FREQ}} {{TLE}} {{TIMESTAMP}} {{BAUD}} {{SCRIPT_NAME}}
SATNOGS_POST_OBSERVATION_SCRIPT=satnogs-post {{ID}} {{FREQ}} {{TLE}} {{TIMESTAMP}} {{BAUD}} {{SCRIPT_NAME}}
UDP_DUMP_HOST=0.0.0.0

#SATNOGS_GPSD_CLIENT_ENABLED=False
#SATNOGS_GPSD_TIMEOUT=30
#AUTO_SCHEDULER_EXTRA=-P prio.txt -d 1.2
#GRSAT_KEEPLOGS=True
#DIREWOLF_ENABLE=True
#DIREWOLF_CONF=/var/lib/satnogs-client/direwolf.conf
#ENABLE_IQ_DUMP=True
#IQ_DUMP_FILENAME=/tmp/iq
#IQ_DUMP_RENAME=True
  • containers ID -
yo4dft@marte:~/station-3600$ sudo docker ps
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS          PORTS                                                                                                NAMES
65cc2f6228cb   knegge/satnogs-client:lsf-addons   "satnogs-client"         12 minutes ago   Up 12 minutes                                                                                                        station-3600_satnogs_client_1
f7420d721e0b   librespace/hamlib:latest           "/docker-entrypoint.…"   12 minutes ago   Up 12 minutes                                                                                                        station-3600_rigctld_1
088543d851a1   portainer/portainer-ce:latest      "/portainer"             3 months ago     Up 34 hours     0.0.0.0:8000->8000/tcp, [::]:8000->8000/tcp, 0.0.0.0:9443->9443/tcp, [::]:9443->9443/tcp, 9000/tcp   portainer
  • log -
yo4dft@marte:~/station-3600$ sudo docker-compose logs -f
[sudo] password for yo4dft:
Attaching to station-3600_satnogs_client_1, station-3600_rigctld_1
satnogs_client_1  | INFO     satnogsclient                   Starting status listener thread...
satnogs_client_1  | INFO     satnogsclient.scheduler.tasks   Registering `get_jobs` periodic task (60 sec. interval)
satnogs_client_1  | INFO     satnogsclient.scheduler.tasks   Registering `post_data` periodic task (180 sec. interval)
satnogs_client_1  | INFO     satnogsclient                   Configuration valid, satnogs-client started successfully.
satnogs_client_1  | INFO     satnogsclient.scheduler.tasks   Received job for observation 11407549, starting at 2025-04-14T01:48:04+00:00
satnogs_client_1  | INFO     satnogsclient.scheduler.tasks   Received job for observation 11407550, starting at 2025-04-14T02:02:54+00:00
satnogs_client_1  | INFO     satnogsclient.scheduler.tasks   Received job for observation 11407541, starting at 2025-04-14T01:35:41+00:00
satnogs_client_1  | INFO     satnogsclient.observer.observer Executing pre-observation script.
satnogs_client_1  | grsat - INFO - Observation: 11407541, Norad: 62394, Name: CROCUBE, Script: satnogs_fsk.py, Baud: 9600.0, Freq: 436.775 MHz
satnogs_client_1  | grsat - INFO - Starting gr_satellites at 57600 sps
satnogs_client_1  | INFO     satnogsclient.observer.observer Begin observation 11407541 ...
satnogs_client_1  | rot_init called
satnogs_client_1  | initrots4_dummy: _init called
satnogs_client_1  | rot_register (1)
satnogs_client_1  | rot_register (2)
satnogs_client_1  | dummy_rot_init called
satnogs_client_1  | rot_open called
satnogs_client_1  | dummy_rot_open called
satnogs_client_1  | rot_get_position called
satnogs_client_1  | dummy_rot_get_position called
satnogs_client_1  | rot_get_position: got az=0.00, el=0.00
satnogs_client_1  | rot_set_position called az=269.65 el=2.25
satnogs_client_1  | rot_set_position: south_zero=0
satnogs_client_1  | rot_set_position: range problem az=269.65(min=-180.00,max=180.00), el=2.252594(min=0.00,max=90.000000)
satnogs_client_1  | rig_init: rig does not have rx_range!!
satnogs_client_1  | network_open: hoststr=rigctld, portstr=4532
satnogs_client_1  | netrigctl_open: unknown setting='has_set_conf=1'
satnogs_client_1  | netrigctl_open: unknown setting='has_get_conf=1'
satnogs_client_1  | netrigctl_open: unknown setting='has_power2mW=1'
satnogs_client_1  | netrigctl_open: unknown setting='has_mW2power=1'
satnogs_client_1  | netrigctl_open: unknown setting='timeout=0'
satnogs_client_1  | netrigctl_open: unknown setting='rig_model=1'
satnogs_client_1  | netrigctl_open: unknown setting='rigctld_version=Hamlib 4.5.4 Jan 10 01:31:41Z 2023 SHA=921cc5'
satnogs_client_1  | netrigctl_open: unknown setting='agc_levels=0=OFF 1=SUPERFAST 2=FAST 3=MEDIUM 4=SLOW 5=AUTO 6=USER'
satnogs_client_1  | netrigctl_open: unknown setting='ctcss_list= 67.0 69.3 71.9 74.4 77.0 79.7 82.5 85.4 88.5 91.5 94.8 97.4 100.0 103.5 107.2 110.9'
satnogs_client_1  | netrigctl_open: invalid dumpcaps line, expected 'setting=value', got ' 114.8 118.8 123.0 127.3 131.8 136.5 141.3 146.2 151.4 156.7 159.8 162.2 165.5 167.9 171.3 173.'
satnogs_client_1  | netrigctl_open: invalid dumpcaps line, expected 'setting=value', got '8 177.3 179.9 183.5 186.2 189.9 192.8 196.6 199.5 203.5 206.5 210.7 218.1 225.7 229.1 233.6 241'
satnogs_client_1  | netrigctl_open: invalid dumpcaps line, expected 'setting=value', got '.8 250.3 254.1'
satnogs_client_1  | netrigctl_open: unknown setting='dcs_list= 17 23 25 26 31 32 36 43 47 50 51 53 54 65 71 72 73 74 114 115 116 122 125 131 132 134'
satnogs_client_1  | netrigctl_open: invalid dumpcaps line, expected 'setting=value', got ' 143 145 152 155 156 162 165 172 174 205 212 223 225 226 243 244 245 246 251 252 255 261 263 26'
satnogs_client_1  | netrigctl_open: invalid dumpcaps line, expected 'setting=value', got '5 266 271 274 306 311 315 325 331 332 343 346 351 356 364 365 371 411 412 413 423 431 432 445 4'
satnogs_client_1  | netrigctl_open: invalid dumpcaps line, expected 'setting=value', got '46 452 454 455 462 464 465 466 503 506 516 523 526 532 546 565 606 612 624 627 631 632 654 662 '
satnogs_client_1  | netrigctl_open: invalid dumpcaps line, expected 'setting=value', got '664 703 712 723 731 732 734 743 754'
satnogs_client_1  | INFO     satnogsclient.observer.observer Start gnuradio thread.
satnogs_client_1  | Found Rafael Micro R828D tuner
satnogs_client_1  | RTL-SDR Blog V4 Detected
satnogs_client_1  | [INFO] Opening Generic RTL2832U OEM :: 00000001...
satnogs_client_1  | Found Rafael Micro R828D tuner
satnogs_client_1  | RTL-SDR Blog V4 Detected
satnogs_client_1  | [INFO] Using format CF32.
satnogs_client_1  | Allocating 15 zero-copy buffers
satnogs_client_1  | netrigctl_close: done status=Command completed successfully
satnogs_client_1  | INFO     satnogsclient.observer.observer Observation 11407541 finished.
satnogs_client_1  | INFO     satnogsclient.observer.observer Executing post-observation script.
satnogs_client_1  | grsat - INFO - Observation: 11407541, Norad: 62394, Name: CROCUBE, Script: satnogs_fsk.py, Baud: 9600.0, Freq: 436.775 MHz
satnogs_client_1  | grsat - INFO - No gr_satellites running
satnogs_client_1  | INFO     satnogsclient.observer.observer Artifacts upload for observation 11407541 successful.
satnogs_client_1  | INFO     satnogsclient.scheduler.tasks   Upload successful.
satnogs_client_1  | INFO     satnogsclient.scheduler.tasks   Upload successful.
satnogs_client_1  | INFO     satnogsclient.observer.observer Executing pre-observation script.
satnogs_client_1  | grsat - INFO - Observation: 11407549, Norad: 39440, Name: CUBEBUG-2 (LO-74), Script: satnogs_fsk.py, Baud: 9600.0, Freq: 437.445 MHz
satnogs_client_1  | grsat - INFO - Starting gr_satellites at 57600 sps
satnogs_client_1  | INFO     satnogsclient.observer.observer Begin observation 11407549 ...
satnogs_client_1  | rig_init: rig does not have rx_range!!
satnogs_client_1  | network_open: hoststr=rigctld, portstr=4532
satnogs_client_1  | netrigctl_open: unknown setting='has_set_conf=1'
satnogs_client_1  | netrigctl_open: unknown setting='has_get_conf=1'
satnogs_client_1  | netrigctl_open: unknown setting='has_power2mW=1'
satnogs_client_1  | netrigctl_open: unknown setting='has_mW2power=1'
satnogs_client_1  | netrigctl_open: unknown setting='timeout=0'
satnogs_client_1  | netrigctl_open: unknown setting='rig_model=1'
satnogs_client_1  | netrigctl_open: unknown setting='rigctld_version=Hamlib 4.5.4 Jan 10 01:31:41Z 2023 SHA=921cc5'
satnogs_client_1  | netrigctl_open: unknown setting='agc_levels=0=OFF 1=SUPERFAST 2=FAST 3=MEDIUM 4=SLOW 5=AUTO 6=USER'
satnogs_client_1  | netrigctl_open: unknown setting='ctcss_list= 67.0 69.3 71.9 74.4 77.0 79.7 82.5 85.4 88.5 91.5 94.8 97.4 100.0 103.5 107.2 110.9'
satnogs_client_1  | netrigctl_open: invalid dumpcaps line, expected 'setting=value', got ' 114.8 118.8 123.0 127.3 131.8 136.5 141.3 146.2 151.4 156.7 159.8 162.2 165.5 167.9 171.3 173.'
satnogs_client_1  | netrigctl_open: invalid dumpcaps line, expected 'setting=value', got '8 177.3 179.9 183.5 186.2 189.9 192.8 196.6 199.5 203.5 206.5 210.7 218.1 225.7 229.1 233.6 241'
satnogs_client_1  | netrigctl_open: invalid dumpcaps line, expected 'setting=value', got '.8 250.3 254.1'
satnogs_client_1  | netrigctl_open: unknown setting='dcs_list= 17 23 25 26 31 32 36 43 47 50 51 53 54 65 71 72 73 74 114 115 116 122 125 131 132 134'
satnogs_client_1  | netrigctl_open: invalid dumpcaps line, expected 'setting=value', got ' 143 145 152 155 156 162 165 172 174 205 212 223 225 226 243 244 245 246 251 252 255 261 263 26'
satnogs_client_1  | netrigctl_open: invalid dumpcaps line, expected 'setting=value', got '5 266 271 274 306 311 315 325 331 332 343 346 351 356 364 365 371 411 412 413 423 431 432 445 4'
satnogs_client_1  | netrigctl_open: invalid dumpcaps line, expected 'setting=value', got '46 452 454 455 462 464 465 466 503 506 516 523 526 532 546 565 606 612 624 627 631 632 654 662 '
satnogs_client_1  | netrigctl_open: invalid dumpcaps line, expected 'setting=value', got '664 703 712 723 731 732 734 743 754'
satnogs_client_1  | INFO     satnogsclient.observer.observer Start gnuradio thread.
satnogs_client_1  | Found Rafael Micro R828D tuner
satnogs_client_1  | RTL-SDR Blog V4 Detected
satnogs_client_1  | [INFO] Opening Generic RTL2832U OEM :: 00000001...
satnogs_client_1  | Found Rafael Micro R828D tuner
satnogs_client_1  | RTL-SDR Blog V4 Detected
satnogs_client_1  | [INFO] Using format CF32.
satnogs_client_1  | Allocating 15 zero-copy buffers
  • docker-compose.yml -
version: '3.3'
services:

  rigctld:
    image: librespace/hamlib:latest
    user: '999'
    read_only: true
    environment:
      MODEL: '1'
    restart: 'unless-stopped'
    command: 'rigctld'

  satnogs_client:
    image: knegge/satnogs-client:lsf-addons
    #image: librespace/satnogs-client:master  # LSF stable docker image
    #image: librespace/satnogs-client:master-unstable  # LSF experimental docker image
    #image: librespace/satnogs-client:lsf-addons  # LSF stable + gr-satellites and addons
    #image: librespace/satnogs-client:lsf-dev-addons  # LSF unstable + gr-satellites and addons
    user: '999'
    read_only: true
    init: true  # init is needed when launching processes in the background
    env_file:
      - ./station.env
    environment:
      SATNOGS_RIG_IP: 'rigctld'
      SATNOGS_RIG_PORT: '4532'
    command: 'satnogs-client'  # default
    device_cgroup_rules:
      - 'c 189:* rwm'
    devices:
      - '/dev/bus/usb'
    volumes:
      - type: 'tmpfs'
        target: '/tmp'
      - type: 'volume'
        source: 'satnogs-client'
        target: '/var/lib/satnogs-client'
    restart: 'unless-stopped'
    stop_grace_period: 1s

volumes:
  satnogs-client:  # persistent named volume for the station
  • I understand about hamlib version, it should be version 4, not less: I shall try to find, see and learn how to update it (for the moment it seems is working).
  • About LNA, it was OK, it is powered by a separate linear regulated power supply (not from bias-tee from SDR).
  • For docker settings I used infos from satnogs-client-docker/lsf/LSF-GUIDE.md at main · kng/satnogs-client-docker · GitHub
  • For the moment, station 3600 will be with RTL V4. With HackRF I shall try to build station 3387, L band (on same PC, docker, etc.).
  • Thank you for all info about working with containers, commands, etc. I appreciate your time and effort.

Regards,
Cristian - YO4DFT

Thank you for all the details

This option needs to be added to your docker-compose to enable the RTL-SDR BiasT option.

SATNOGS_DEV_ARGS=biastee=true

Change the following to use Hamlib 4.0

image: librespace/hamlib:latest to image: librespace/hamlib:4.0

After the changes, run the following command to stop the container, pull the new/updated image and start the container again.

docker-compose down && docker-compose pull && docker-compose up -d

Hello Jan, thank you for info:

  • about bias - tee, I have the filter inserted between LNA and SDR, so a separate power supply its OK for me.
  • yes, I shall modify the version of hamlib.

Thank you again,
Cristian - YO4DFT

1 Like

maxing out the gain is usually a bad sign. LNA at the antenna is usually much better.

filtering supply might not be as effective as one hopes, any conducted interference on the other leads and screen will still propagate towards the antenna. using chokes on the usb cable and also on the coax is a pretty decent method of keeping the rfi from the antenna.

regarding F/B ratio, this is ofc good, but might be pretty hard to actually achieve. pointing the antenna away from the ground where much of the interference comes from is also one. chokes on the coax to try and isolate the antenna system from conducted rfi. keeping the antenna away from electrical stuff in general.

good luck with the improvements and the station, 73’s (:

1 Like