ChannelSPURIOUS EMISSIONS

Sheet 4 · The written guides

VLF and
Solar Flares

At the end you have a computer that logs the strength of two or three navy transmitters all day, and a daily curve that you compare with NOAA's X-ray data. A flare may then show as a sudden step in your curve. I cannot promise that it will.

Rev A · checked 2026-10-10

Download the Markdown

The Markdown file is the whole guide in plain text. You can give it to a coding agent.

Some links are affiliate links: if you buy through them, I may earn a commission at no extra cost to you. As an Amazon Associate I earn from qualifying purchases. How links work.

Contents

1. What this guide builds

A receiver that measures how strong a far navy transmitter is, every 5 seconds, all day. Sunlight and solar flares change the bottom of the ionosphere, and that changes the strength. The name of the instrument is a sudden ionospheric disturbance (SID) monitor.

There are two paths. The public path uses a wire loop, a sound card and the free program SuperSID. That is the path of the Stanford SOLAR Center SID program, and this guide gives every step of it. My own path uses a wideband shortwave receiver and a program I wrote. That program is not public. Section 9 says what you can and cannot copy from it.

Part Public path (this guide) What I use (◆)
Signal Navy transmitters for submarines, sent around the clock The same
Frequency 19.8 to 40.8 kHz. This is very low frequency (VLF) and just above it 19.8 to 25.2 kHz
Antenna A wire loop that you wind, about 1 m wide ◆ MLA-30+ active loop, still indoors
Radio A sound card that samples at 96 kHz. There is no radio ◆ RX-888 Mk II
Program SuperSID (free, MIT license) ◆ ka9q-radio, then my own logger (not public)
Computer A Raspberry Pi or any PC with Linux or Windows ◆ An x86 desktop PC with Linux
 PUBLIC PATH
 wire loop -- coax -- [SuperSID preamp, optional] -- sound card, line input -- computer
 (1 m frame,                                         96 kHz sample rate,       SuperSID:
  25 to 50 turns)                                    fixed gain                one number each
                                                                               5 seconds, one
                                                                               file each day
                                                                                    |
                                          NOAA GOES X-ray data (internet) -- compare by eye

 MY PATH
 active loop -- RX-888 Mk II -- ka9q-radio (one channel, 0 to 46 kHz) -- my logger -- my monitor

A sound card can be the whole receiver because the signals are so low in frequency. A transmitter at 24.8 kHz is only a little above the range of human hearing. A sound card that samples fast enough records it directly from the wire.

2. What you need

A part marked ◆ is what I use. A blank box is for your pencil. Prices are from my full-station guide, checked on 2026-10-07. For the other parts I name no product, because I did not buy them.

Lowest-cost path: loop and sound card

☐ Part Job Connector Price
☐ About 120 m (400 ft) of insulated wire, from 18 AWG to 26 AWG The loop Bare ends See seller
☐ Three sticks or plastic pipes, 1 m or longer, with screws The frame See seller
☐ Terminal block with two screws Joins the loop ends to the coax Screw See seller
☐ RG-58 coax, as short as your site permits Loop to the sound card Your sound card decides (step 7 of section 5) See seller
☐ Sound card with a line input that samples at 96 kHz or more. Inside the PC or on USB The receiver Usually a 3.5 mm stereo socket See seller
☐ A computer: Raspberry Pi (Zero W to 4 are tested by the project) or a PC with Linux or Windows Runs SuperSID USB See seller

Stanford’s page says the antenna costs less than $10 in materials. I did not check that number against a shop.

With the Stanford preamp

☐ Part Job Connector Price
☐ SuperSID monitor (a preamp), from the Society of Amateur Radio Astronomers Makes the loop signal about a thousand times larger BNC in, audio cable out See listing. The page gives no price

The Stanford manual says the loop gives about 0.1 millivolt, and that a sound card needs the preamp. The README of the open-source SuperSID says “direct connection to external soundcard” in place of the preamp. Both statements are published. I did not test which one is true for a given sound card. The lowest-cost path gives up the preamp, so it may show weak transmitters poorly or not at all.

What I use: a wideband receiver

☐ Part Job Connector Price
☐ ◆ RX-888 Mk II, 16-bit, 10 kHz to 64 MHz direct Hears everything below 30 MHz at once SMA $152.79, OpenSourceSDRLab, 2026-10-11
☐ ◆ MLA-30+ active loop with its power injector Antenna SMA See listing, Amazon
☐ ◆ x86-64 desktop PC with a USB 3.0 socket on the main board Runs ka9q-radio USB 3.0 Used market

This path costs far more. It makes sense only if you build the shortwave receiver for other signals too. It also needs a measuring program that you write yourself (section 9).

3. Before you start

Skills. You wind wire on a frame, strip coax, and type commands in a Linux terminal. You edit one text file.

Time. Stanford gives a few hours for the antenna. Allow an evening for the software. Then wait 24 hours for the first full curve. A flare can take days or weeks to come.

Accounts. None. An upload to Stanford’s database is optional (section 11).

Values to choose first. Write these down. The steps use them as placeholders.

Placeholder Meaning Example form
<NAME> A site name with no spaces and no personal detail MYSITE
<ID> A monitor name. With a SARA preamp, its serial number MON1
<EMAIL> A contact address. SuperSID requires the field you@domain.tld
<LAT> <LON> Your position, decimal degrees. West and south are negative xx.x
<UTC_OFFSET> Your offset from UTC -08:00
<TZ> Your time zone name PST

The Stanford manual says that a position rounded to the nearest degree is acceptable. Use a rounded position.

The law. I am not a lawyer. This is what I read, for the United States. This guide only receives. The navy transmitters send messages that are not for the public. This guide measures how strong the carrier is and decodes nothing. US law (47 U.S.C. section 605) says a person must not pass on the contents of a radio message that is not meant for the public. Never transmit on these frequencies.

4. Choose your transmitters

Do this before you buy a sound card. The transmitter decides the sample rate.

Transmitters for a reader in North America

Call Frequency Place Lowest standard sample rate
NPM 21.4 kHz Lualualei, Hawaii 48 kHz
NAA 24.0 kHz Cutler, Maine 96 kHz. At 48 kHz it sits on the upper limit
NLK 24.8 kHz Jim Creek, Washington 96 kHz
NML 25.2 kHz LaMoure, North Dakota 96 kHz
NAU 40.75 kHz (Stanford manual) or 40.8 kHz (Loudet’s list) Aguada, Puerto Rico 96 kHz

Frequencies and places are from the Stanford SuperSID manual, Appendix A, and from Lionel Loudet’s list, which Stanford links. Loudet’s list was last changed on 31 July 2023. It warns that it may hold old or wrong data. It says that NML is off the air on Tuesdays from 12:00 to 19:00 UTC.

My own logger also measures NWC in Australia (19.8 kHz) and a transmitter at Ebino in Japan (22.2 kHz).1 From the Puget Sound I have not heard either one.

Why the sample rate matters

A sound card can only record frequencies below half of its sample rate.

Sample rate Highest frequency it records Transmitters in the table that fit
44.1 kHz 22.05 kHz NPM
48 kHz 24 kHz NPM. NAA is on the limit
96 kHz 48 kHz All five
192 kHz 96 kHz All five

SuperSID checks this rule at the start. It refuses a transmitter above half of audio_sampling_rate. The Stanford manual says that sites in North and South America need a sound card that samples at 96 kHz.

Caution. Some sound cards accept a setting of 96 kHz or 192 kHz and record at 48 kHz. The recording then has nothing above 24 kHz. The SuperSID Windows document describes this for the Windows MME driver. Do the test in step 4 of section 7 before you trust a sound card.

Choose a far transmitter, with a path in daylight

This is the lesson of the episode. A transmitter that is close to you is a poor flare detector.

  • The signal arrives by two ways. One part follows the ground. One part travels between the ground and the bottom of the ionosphere, 60 to 90 km up. A flare changes only the second part.
  • Close to the transmitter, the ground part is the larger one. That is the likely reason my curve barely moved in a flare. My only transmitter that I hear is the one in my own state.
  • Far from the transmitter, the sky part is the larger one. Stanford’s program tells its users to monitor “distant VLF transmitters”. I found no published number for the shortest useful distance.
  • The path must be in daylight. A flare changes the ionosphere on the sunlit side of the earth only. A flare shows only while the whole path from the transmitter to you is in daylight.
  • A path that crosses many time zones has fewer hours of full daylight. At the start and the end of your day, one end of the path is in the dark.

So choose in this order:

  1. Leave out the transmitter nearest to you as your main detector. Log it anyway, as a reference.
  2. Choose two or three far transmitters that your sound card can record.
  3. Run the spectrum display (section 8) and keep the ones that stand above the noise by day.
  4. Log more than one. A step that shows on two transmitters at one moment is much stronger evidence.

5. Build the loop antenna

The antenna is a frame with many turns of wire. The Stanford manual says there is no standard size, and that exact dimensions do not matter.

Frame width Turns Wire Note
About 1 m About 50 Thinner, near 26 AWG Easier to build and to move
2 m or more About 25 Thicker, near 18 AWG More sensitive. Stanford: 25 turns on 2 m is better than 50 turns on 1 m

Warning. Lightning can strike an antenna that is higher than the trees and buildings around it. Never put the loop higher than they are. A loop does not need height: it works indoors, in a shed, or near the ground.

  1. Make the frame. Join two sticks in a cross, and add a third stick as a stand.
  2. Cut a notch in each of the four ends of the cross. The notches hold the wire.
  3. Wind the wire around the four ends. Keep the wire straight and the tension even. Stanford allows 20 to 40 minutes for this step.
  4. Tape the bundle of wire together every half meter.
  5. Fasten the two ends of the wire to the two screws of the terminal block.
  6. Strip one end of the coax. Fasten the center wire to one screw and the shield to the other screw.
  7. Fit the other end of the coax for your receiver. A SuperSID preamp takes a BNC plug. A sound card usually takes a 3.5 mm plug.
  8. Cover every bare joint with electrical tape if the loop will be outdoors.

Result: a loop with two wire ends on a terminal block, and a coax that leaves from the same block.

The project’s documents do not say how to wire the coax to a 3.5 mm plug. I list this in section 16.

Where to put the loop

  • Keep the loop 3 m (10 ft) or more from every noise source. Stanford lists computer monitors, televisions, microwave ovens, fluorescent lights, motors, pumps and old light dimmers.
  • Do not put it under power lines or inside a building with a metal frame.
  • Keep the coax short. Do not coil spare coax near the computer: the coil works as a second antenna.
  • Leave the loop near the computer for the first tests. Move it to its final place after you have a signal.

Point the loop

A loop receives best along its own plane, and worst at a right angle to it.

  1. Start SuperSID with the spectrum display (section 8).
  2. Turn the loop until the peak of your transmitter is as small as it gets. This minimum is sharp, so it is easy to find.
  3. Mark that direction on the floor.
  4. Turn the loop 90 degrees from the mark.

Result: the edge of the loop points at the transmitter. Stanford’s words: “sight down the plane of the antenna towards where the transmitter ought to be”. The maximum is broad, so the direction does not need to be exact.

With transmitters in different directions, choose a direction between them, or favor the weakest one.

6. Prepare the computer and the sound card

These steps are for a Raspberry Pi with Raspberry Pi OS. The project tested the Pi Zero W, Zero 2 W, 3 B, 3 B+ and 4 B, with the 32-bit system. Its documents for Ubuntu and for Windows 10 are in the same repository folder (section 17).

  1. Install Raspberry Pi OS with the desktop. Connect a screen, or turn on SSH and VNC.

  2. Update the system.

    sudo apt-get update
    sudo apt-get upgrade
    
  3. Check the clock. Your curve is useless against the satellite data if the clock is wrong.

    timedatectl status
    

    Result: a line that says System clock synchronized: yes. The project recommends the ntp service as the more accurate choice. Its Raspberry Pi document has those steps.

  4. Connect the sound card. Check that the system sees it.

    cat /proc/asound/cards
    arecord -L
    

    Result: your sound card is in both lists. Write down its name in the form plughw:CARD=<card>,DEV=0.

Set a fixed gain

SuperSID measures small changes in level. An automatic gain control hides exactly those changes. It turns the gain down when the signal grows and up when it falls.

Caution. A microphone input often has automatic gain control and a “boost” switch. Use a line input. If the sound card has only a microphone input, turn off every automatic setting.

  1. Start the mixer.

    alsamixer
    
  2. Press F6 and choose your sound card.

  3. Press F4 for the capture controls.

  4. Set the capture level between 80 and 90. That is the project’s value.

  5. Turn off every control named “Auto Gain Control”, “AGC” or “Boost”, if your sound card has one.

  6. Do not change these controls again. A change makes a step in your curve that looks like an event.

On Windows, the project’s document says: select the line input, turn off all sound effects, and set 16 bit and the sample rate in the sound card’s own settings.

7. Install SuperSID

Program: SuperSID. It records one second of sound every 5 seconds, measures the strength at each transmitter’s frequency, and writes one file each day.

  1. Get the program.

    cd ~
    git clone https://github.com/sberl/supersid.git
    cd ~/supersid
    mkdir -p Data outgoing
    
  2. Make a Python environment for it, and install the libraries.

    cd ~/supersid
    python3 -m venv supersid-env
    source supersid-env/bin/activate
    python3 -m pip install -U pip wheel setuptools
    sudo apt-get install python3-matplotlib
    sudo apt-get install libasound2-dev
    sudo apt-get install libatlas-base-dev
    pip3 install -r requirements.txt
    

    Result: the prompt starts with (supersid-env). Run the source line again in every new terminal, before you start a SuperSID program.

  3. Let the project’s tool find the sound card settings. Connect the line output of the sound card to its line input with a short cable first. The tool plays a tone and records it.

    cd ~/supersid/src
    python3 -u find_alsa_devices.py 2>&1
    

    Result: after some minutes, the last lines are settings for supersid.cfg. Choose the highest sample rate that works, then the format with the most bits.

  4. Check those settings with the sampler. This example uses 96 kHz and 24 bits.

    python3 -u supersid_sampler.py -s=96000 -m=alsaaudio -d="plughw:CARD=<card>,DEV=0" -f=S24_3LE -p=1024 2>&1
    

    Result: a line with duration near 1 second and peak freq near the test tone. A duration far from 1 second means the sound card does not really run at that rate.

    The project’s documents name this file sampler.py. In the repository today its name is supersid_sampler.py.

  5. Remove the test cable. Connect the loop, or the preamp, to the line input.

Write the settings file

Your position goes into this file, and into every data file. If you turn on the upload in section 11, the files go to a public database. Use a rounded position and a site name with no personal detail.

  1. Open the settings file.

    nano ~/supersid/Config/supersid.cfg
    
  2. Replace its contents with this. Fill in your values. Keep only the transmitters you chose in section 4.

    [PARAMETERS]
    viewer = tk
    site_name = <NAME>
    monitor_id = <ID>
    contact = <EMAIL>
    longitude = <LON>
    latitude = <LAT>
    utc_offset = <UTC_OFFSET>
    time_zone = <TZ>
    audio_sampling_rate = 96000
    log_interval = 5
    log_format = supersid_extended
    log_type = filtered
    scaling_factor = 1.0
    hourly_save = YES
    data_path = ../Data
    
    [STATION]
    call_sign = NAA
    color = r
    frequency = 24000
    channel = 0
    
    [STATION]
    call_sign = NML
    color = b
    frequency = 25200
    channel = 0
    
    [STATION]
    call_sign = NPM
    color = g
    frequency = 21400
    channel = 0
    
    [Capture]
    Audio = alsaaudio
    Device = plughw:CARD=<card>,DEV=0
    Format = S24_3LE
    PeriodSize = 1024
    Channels = 1
    
    [FTP]
    automatic_upload = no
    

What the settings mean:

Setting Meaning
viewer tk shows a window with the spectrum. text runs with no window
audio_sampling_rate Must be a rate that your sound card really gives (step 4 above)
log_interval Seconds between two readings. Each reading records 1 second
log_format supersid_extended writes one file for all transmitters, with a time stamp on each line
log_type filtered smooths the data before it is written. raw writes the readings as they are
hourly_save YES also writes a raw file each hour, so a power cut loses less. Capital letters are required
frequency In hertz. NLK is 24800, NAU is 40750
Device, Format The values from step 3 above

8. The first signal

  1. Start SuperSID.

    cd ~/supersid/src
    source ../supersid-env/bin/activate
    ./supersid.py -c ../Config/supersid.cfg
    

    Result: a window with a spectrum. SuperSID takes a new reading every 5 seconds.

  2. Look for narrow peaks at the frequencies of your transmitters. The noise floor jumps up and down from second to second. A transmitter is a peak that stays.

  3. Turn the loop as in section 5, and watch each peak.

  4. Keep a transmitter if its peak stays above the noise by day. Remove the others from the settings file.

  5. Move the loop to its final place. Check the peaks again.

  6. Leave SuperSID running for 24 hours or more.

Result: a file ~/supersid/Data/<NAME>_yyyy-mm-dd.csv for each UTC day. The Stanford manual says the program writes it at the end of the UTC day. All times in the file are UTC.

If there is no peak at all, go to section 14 before you wait a day.

To continue after a stop, start SuperSID with -r and the name of an existing data file. It then adds new data to that file. To run with no window, add -v text.

9. The other path: a receiver that tunes down to VLF

SuperSID reads a sound card and nothing else. I did not confirm any way to feed it from a software-defined receiver.

This is what I do, as the episode shows it:

  1. My shortwave receiver, the RX-888 Mk II, hears everything below 30 MHz at once. The navy transmitters are already in its data.
  2. The free program ka9q-radio cuts out one channel at the very bottom, from 0 to 46 kHz.
  3. A program I wrote measures each transmitter once a second. It asks one question: how far does the signal stand above the noise beside it?
  4. The gain is fixed. An automatic gain control would erase the change I look for.
  5. The program saves one number every 10 seconds for each transmitter.

My program is not public, and I give no more detail of it. ka9q-radio is public (GPL-3.0), and my full-station guide has the steps to install it. The measuring part is the part you must write, or find.

What this path gives: no second antenna and no sound card, and a measurement in decibels above the noise. What it gives up: a ready program, and the documents and user group that SuperSID has.

Three things to know if you try it:

  • Most low-cost receivers do not tune this low. Check the lowest frequency in the data sheet. It must be under 20 kHz.
  • In ka9q-radio, the number 22500 means 22.5 MHz. Write 22k5 for 22.5 kHz.
  • A filter in front of the receiver can remove VLF. On my 30 MHz filter unit, the extra shelf filter cuts 28 dB below 1 MHz. Keep it bypassed.

10. Read a day’s curve

Plot one day.

cd ~/supersid/src
./supersid_plot.py -f ../Data/<NAME>_yyyy-mm-dd.csv

The normal day

The Stanford manual describes the normal curve of a far transmitter in three parts:

Part of the day What the curve does
Night High, and restless
Sunrise on the path A sharp slope down, often with a strange shape
Day Lower and stable. This is where you look for flares
Sunset on the path A sharp slope up

Stanford’s explanation of the strange shapes at sunrise and sunset: the part of the signal along the ground and the part from the sky add and cancel as the ionosphere changes.

The manual states this rule: no sunrise and sunset pattern means no signal. A flat or random curve after 24 hours is an antenna problem, not a quiet sun.

My own curve, of the transmitter in my own state, is different, and that is a warning sign in itself. It stood about 16 dB above the noise all day. In daylight it drifted slowly, over about 1.5 dB. At night it swung by more than 3 dB. It stepped down about 1 dB at sunrise and dipped about 2 dB in the hour after sunset. That the two drops come from the ionosphere is the usual explanation. One day does not prove it.

Times of sunrise and sunset on your curve are in UTC. A far transmitter’s sunrise is not your sunrise: the pattern follows the daylight along the whole path.

Other shapes you will see:

  • A flat line for some hours. The transmitter was off. The manual says each transmitter stops for maintenance about once a week.
  • Many spikes, all day. Electrical noise near the loop.
  • Sudden jumps in a thunderstorm. Lightning.

What a flare looks like

A fast change, then a slow return. The Stanford manual: “a swift increase in signal strength followed by a slower decrease”. The rise takes minutes. The return can take much longer.

The step can also go down. Stanford’s example shows one flare seen at seven sites: five curves went up and two went down. The direction depends on where you are and on the transmitter.

How large a flare must be: flare classes are A, B, C, M and X, and each class is ten times stronger than the one before. An older Stanford guide says its monitors detect flares of class C2.0 or more, that M flares “should be very apparent”, and that X flares can run off the scale. Those are Stanford’s numbers for a good site. They are not a promise for yours.

Compare with the X-ray data from NOAA

The GOES satellites of NOAA measure the sun’s X-rays directly. The data is free and public.

  1. Look at the live plot: https://www.swpc.noaa.gov/products/goes-x-ray-flux. Its time axis is UTC, as your file is.

  2. Or list the flares of the last 7 days in a terminal.

    curl -s https://services.swpc.noaa.gov/json/goes/primary/xray-flares-7-day.json \
      | python3 -m json.tool | grep -E '"(begin_time|max_time|max_class)"'
    

    Result: three lines for each flare, for example "max_time": "2026-10-10T17:52:00Z" and "max_class": "C4.8".

  3. Or let SuperSID mark the flares on your plot. It reads NOAA’s daily event list.

    ./supersid_plot.py -w -f ../Data/<NAME>_yyyy-mm-dd.csv
    

The one-minute X-ray values are in xrays-1-day.json in the same folder of NOAA’s server. Use the rows whose energy is 0.1-0.8nm.

How to be sure it is a flare

Check every line. One “no” means you do not claim it.

  1. The whole path was in daylight at that time.
  2. NOAA lists a flare, and your step starts within minutes of the flare’s begin time. Not before it.
  3. The shape is a fast change and a slow return.
  4. The step is larger than what your curve does on a quiet day. Measure this: look at a week of quiet daylight curves first.
  5. The step shows on a second transmitter at the same time, or on another site’s curve.
  6. Nothing changed at your station at that moment: no gain change, no moved loop, no machine that started.

My own test failed on lines 2 and 4, and I say so in the episode. On my day the sun made an M1.0 flare just before noon. The X-rays grew about 25 times stronger in 10 minutes. My curve changed by 0.3 dB. The same curve changes by more than twice that with no flare at all, and the small drop began a few minutes before the X-rays rose. So it was not a detection.

11. Share your data (optional)

This step makes your site public. Stanford’s database holds the files of every site, with the site name and the position that you put in the settings file. Stanford also shows a map of sites. Read section 7 again and use a rounded position and a neutral name.

The project asks you to send data only after your curve shows a clear sunrise pattern.

  1. Set these lines in the [FTP] section of supersid.cfg. List only the transmitters worth sending, with commas and no spaces.

    [FTP]
    automatic_upload = yes
    ftp_server = sid-ftp.stanford.edu
    ftp_directory = /incoming/SuperSID/NEW/
    local_tmp = ../outgoing
    call_signs = NAA,NML
    
  2. Start SuperSID again.

Result: at midnight UTC, SuperSID sends the day’s files. I did not run this step. Stanford’s page says the Society of Amateur Radio Astronomers now supports the monitors. Ask its SuperSID group (https://groups.io/g/supersid) before the first upload.

12. Run it unattended

SuperSID has no service file. The project’s Raspberry Pi document starts it from the desktop’s autostart file after a power cut.

  1. Make a start script.

    nano ~/runSID.sh
    
    #!/bin/sh
    sleep 30
    cd /home/pi/supersid/src
    ./supersid.py
    
  2. Make it executable.

    chmod +x ~/runSID.sh
    
  3. Add this line at the end of /etc/xdg/lxsession/LXDE-pi/autostart, with sudo nano.

    @lxterminal --command "/home/pi/runSID.sh"
    
  4. Set the computer to log in to the desktop at the start.

  5. Copy the storage card after everything works. The project recommends this.

Result: after a power cut, a terminal window opens and SuperSID starts in it.

Three limits. The path /home/pi is for a user named pi: change it to yours. The script does not load the Python environment of section 7: add the source line before ./supersid.py if you use one. The autostart file belongs to the older Raspberry Pi desktop, and I did not confirm it on the current one.

13. Check that it works

# Check Pass Wait
1 timedatectl status System clock synchronized: yes None
2 The sampler, step 4 of section 7 duration near 1 second, peak freq near the test tone Some minutes
3 The spectrum window A steady peak at each transmitter’s frequency, by day 5 minutes
4 Turn the loop 90 degrees The peak falls, then comes back 1 minute
5 ls ~/supersid/Data/ A new .csv file for each UTC day 24 hours
6 Plot one full day A sunrise slope and a sunset slope on a far transmitter 24 hours
7 Plot a week The daylight part looks the same from day to day 7 days
8 A flare of class M in daylight on the path A step that passes all six lines of section 10 Days to weeks. Not certain

Check 6 is the real test of the station. Check 8 is the goal, and it depends on the sun and on your site.

14. If it does not work

Symptom Likely cause What to do
SuperSID stops at the start with a message about audio_sampling_rate A transmitter is above half of the sample rate Raise the rate, if the sound card can do it. Or remove that transmitter
The spectrum is empty above 24 kHz The sound card records at 48 kHz, whatever the setting says Use a sound card that samples at 96 kHz. Do the sampler test
The sampler shows a duration far from 1 second The sound card does not give that rate or format Choose another line from find_alsa_devices.py
No peak at any transmitter Loop not connected, wrong input, input muted, or too much noise Check the terminal block and the plug. Run alsamixer. Move the loop
No peak, loop direct to the sound card The signal may be too small without a preamp Wind a larger loop, or get the SuperSID preamp
A peak by night, none by day The transmitter is too weak at your site by day Choose another transmitter. Build a larger loop
No sunrise or sunset pattern after 24 hours No real signal. Stanford: an antenna problem Check cables. Turn the loop. Move it away from noise. Shorten the coax
Spikes all day Electrical noise within a few meters Turn devices off one at a time to find it. Move the loop 3 m or more away
The curve is flat, with small steps Automatic gain control is on Turn it off (section 6). Use a line input
One sudden step that stays The gain or the loop was changed Do not touch either. Mark the loop’s place
The curve is zero for some hours The transmitter was off Wait. Loudet’s list has NML off on Tuesdays, 12:00 to 19:00 UTC
The curve barely moves at sunrise, and a flare leaves no mark The transmitter is close: most of its signal arrives along the ground Log a far transmitter
Your step and NOAA’s flare are minutes apart The computer’s clock is wrong, or you compare local time with UTC Check the clock. Use UTC for both
pip3 install -r requirements.txt fails The file fixes old versions of numpy and pandas. A new Python may have no ready package for them Ask the SuperSID group. I did not test this
sudo apt-get install libatlas-base-dev finds no package A newer system release may not have it Continue without it and see if pip3 succeeds. I did not test this
python3 sampler.py: no such file The documents use an old file name Use supersid_sampler.py
A ka9q-radio channel at 22.5 kHz hears nothing 22500 means 22.5 MHz there Write 22k5

15. What I did wrong

  • My antenna is still indoors, near the computer. That is the worst place for it. My loop hears one of my six transmitters.
  • The one transmitter I hear is the nearest one. It is the poorest flare detector of the six, because most of its signal arrives along the ground. The far transmitters are the real detectors.
  • A small step near a flare is not a detection. The drop in my curve began before the X-rays rose, and my curve drops that much on a quiet day. Measure the quiet day first.
  • I typed a frequency in the wrong unit. A channel at 22500 in ka9q-radio is at 22.5 MHz. It heard nothing until I wrote 22k5.

16. Not run and not confirmed

  • My station does not run SuperSID. No SuperSID step in sections 6, 7, 8, 11 and 12 was run by me. The commands and settings are from the project’s documents and source files, read on 2026-10-10.
  • My station has not caught a clear flare. Every statement about what a flare looks like is from Stanford’s documents, not from my own data.
  • That a loop connected directly to a sound card gives enough signal. The Stanford manual and the open-source README disagree on the need for a preamp.
  • How to wire the loop’s coax to a 3.5 mm plug, and whether a given sound card’s line input suits a loop.
  • The price and the contents of the SuperSID monitor from the Society of Amateur Radio Astronomers. Its page gives neither.
  • Stanford’s “less than $10” for the antenna materials.
  • That the libraries install on a current Raspberry Pi OS, on a Raspberry Pi 5, or on a 64-bit system. The project lists the Pi Zero W to the Pi 4 with the 32-bit system, and its requirements.txt fixes old versions of numpy and pandas.
  • The example settings file as a whole. Each line is from the project’s sample file and its settings document. I did not start SuperSID with it.
  • The Format = S24_3LE and the 96 kHz rate for your sound card. They are the example values of the project’s document. Use what step 3 of section 7 prints.
  • That SuperSID accepts a rounded position with no bad effect. The Stanford manual says rounding to a degree is acceptable. I did not read how the program uses the position.
  • The upload to Stanford. The server name and folder are from the project’s sample file. Stanford’s database browser did not answer on the check date.
  • The autostart method on the current Raspberry Pi desktop.
  • The key F4 in alsamixer and the exact text of the timedatectl line. Both are from my memory of those tools, not from the project’s documents.
  • The shortest distance at which a transmitter becomes a good detector. I found no published number.
  • Which transmitters are on the air today. Loudet’s list is from 2023. The frequency of NAU differs between my two sources.
  • Stanford’s detection limit of class C2.0. It is from an older guide for the first SID monitor.
  • That my own loop and filters pass 25 kHz well. I hear one transmitter through them. The loop’s maker does not specify it for VLF, as far as I know.
  • Any way to feed SuperSID from a software-defined receiver, and any public program that logs carrier strength from a ka9q-radio channel.
  • The “ground part and sky part” reading of my own flat curve. The episode says “likely”. One flare proves nothing.
  • The law outside the United States.

17. Sources

All were read on 2026-10-10, except where a date is given.

The episode. Episode 10, “VLF and Solar Flares”: its fact sheet, script and links (fact sheet dated 2026-10-06 to 2026-10-09).

Stanford SOLAR Center, SID program. Program page: https://solar-center.stanford.edu/SID/ · Monitors and documents: https://solar-center.stanford.edu/SID/sidmonitor/ · Requirements: https://solar-center.stanford.edu/SID/installation/ · How to get a monitor: https://solar-center.stanford.edu/SID/obtaining/ · SuperSID Users Manual, version 1.0 (2010): https://solar-center.stanford.edu/SID/Distribution/SuperSID/supersid_v1_1/Doc/SuperSIDManual_v1.pdf · “So I have all this data. Now what?”: https://solar-center.stanford.edu/SID/docs/understanding-sid-data.pdf · Questions 1, 17 and 19 of the FAQ: https://solar-center.stanford.edu/SID/FAQ/

SuperSID, the program. https://github.com/sberl/supersid (last change 2025-06-30). Read: README.md, docs/ConfigHelp.md, docs/SuperSIDonRaspi.md, docs/SuperSIDonLinux.md, docs/SuperSIDonWindows.md, Config/supersid.cfg, requirements.txt, and the option lists in src/supersid.py, src/supersid_plot.py, src/supersid_sampler.py, src/supersid_config.py, src/noaa_flares.py.

The monitor hardware. Society of Amateur Radio Astronomers, SuperSID: https://www.radio-astronomy.org/node/210 · User group: https://groups.io/g/supersid

Transmitters. Lionel Loudet’s list (last change 31 July 2023): https://sidstation.loudet.org/stations-list-en.xhtml · Appendix A of the SuperSID manual.

NOAA. GOES X-ray flux: https://www.swpc.noaa.gov/products/goes-x-ray-flux · Data files: https://services.swpc.noaa.gov/json/goes/primary/ · Solar flares: https://www.swpc.noaa.gov/phenomena/solar-flares-radio-blackouts

My path. ka9q-radio: https://github.com/ka9q/ka9q-radio · My full-station guide on this site, sections 2, 4, 11, 15 and 17 (checked 2026-10-07).

Rules. 47 U.S.C. 605: https://www.law.cornell.edu/uscode/text/47/605 (read for the full-station guide on 2026-10-07).

Footnotes

  1. My list names the transmitter in Japan JJI. Loudet’s list of 2023 gives the same place and frequency under the call NDT. ↩

SpurMy own station has not caught a clear flare yet. I did not run the SuperSID steps in this guide: they come from the project's documents, read on the check date.