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:
- Leave out the transmitter nearest to you as your main detector. Log it anyway, as a reference.
- Choose two or three far transmitters that your sound card can record.
- Run the spectrum display (section 8) and keep the ones that stand above the noise by day.
- 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.
- Make the frame. Join two sticks in a cross, and add a third stick as a stand.
- Cut a notch in each of the four ends of the cross. The notches hold the wire.
- Wind the wire around the four ends. Keep the wire straight and the tension even. Stanford allows 20 to 40 minutes for this step.
- Tape the bundle of wire together every half meter.
- Fasten the two ends of the wire to the two screws of the terminal block.
- Strip one end of the coax. Fasten the center wire to one screw and the shield to the other screw.
- 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.
- 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.
- Start SuperSID with the spectrum display (section 8).
- 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.
- Mark that direction on the floor.
- 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).
-
Install Raspberry Pi OS with the desktop. Connect a screen, or turn on SSH and VNC.
-
Update the system.
sudo apt-get update sudo apt-get upgrade -
Check the clock. Your curve is useless against the satellite data if the clock is wrong.
timedatectl statusResult: a line that says
System clock synchronized: yes. The project recommends thentpservice as the more accurate choice. Its Raspberry Pi document has those steps. -
Connect the sound card. Check that the system sees it.
cat /proc/asound/cards arecord -LResult: 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.
-
Start the mixer.
alsamixer -
Press F6 and choose your sound card.
-
Press F4 for the capture controls.
-
Set the capture level between 80 and 90. That is the project’s value.
-
Turn off every control named “Auto Gain Control”, “AGC” or “Boost”, if your sound card has one.
-
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.
-
Get the program.
cd ~ git clone https://github.com/sberl/supersid.git cd ~/supersid mkdir -p Data outgoing -
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.txtResult: the prompt starts with
(supersid-env). Run thesourceline again in every new terminal, before you start a SuperSID program. -
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>&1Result: 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. -
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>&1Result: a line with
durationnear 1 second andpeak freqnear 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 issupersid_sampler.py. -
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.
-
Open the settings file.
nano ~/supersid/Config/supersid.cfg -
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
-
Start SuperSID.
cd ~/supersid/src source ../supersid-env/bin/activate ./supersid.py -c ../Config/supersid.cfgResult: a window with a spectrum. SuperSID takes a new reading every 5 seconds.
-
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.
-
Turn the loop as in section 5, and watch each peak.
-
Keep a transmitter if its peak stays above the noise by day. Remove the others from the settings file.
-
Move the loop to its final place. Check the peaks again.
-
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:
- My shortwave receiver, the RX-888 Mk II, hears everything below 30 MHz at once. The navy transmitters are already in its data.
- The free program ka9q-radio cuts out one channel at the very bottom, from 0 to 46 kHz.
- 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?
- The gain is fixed. An automatic gain control would erase the change I look for.
- 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
22500means 22.5 MHz. Write22k5for 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.
-
Look at the live plot: https://www.swpc.noaa.gov/products/goes-x-ray-flux. Its time axis is UTC, as your file is.
-
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". -
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.
- The whole path was in daylight at that time.
- NOAA lists a flare, and your step starts within minutes of the flare’s begin time. Not before it.
- The shape is a fast change and a slow return.
- The step is larger than what your curve does on a quiet day. Measure this: look at a week of quiet daylight curves first.
- The step shows on a second transmitter at the same time, or on another site’s curve.
- 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.
-
Set these lines in the
[FTP]section ofsupersid.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 -
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.
-
Make a start script.
nano ~/runSID.sh#!/bin/sh sleep 30 cd /home/pi/supersid/src ./supersid.py -
Make it executable.
chmod +x ~/runSID.sh -
Add this line at the end of
/etc/xdg/lxsession/LXDE-pi/autostart, withsudo nano.@lxterminal --command "/home/pi/runSID.sh" -
Set the computer to log in to the desktop at the start.
-
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
22500in ka9q-radio is at 22.5 MHz. It heard nothing until I wrote22k5.
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.txtfixes 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_3LEand 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
alsamixerand the exact text of thetimedatectlline. 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
-
My list names the transmitter in Japan JJI. Loudet’s list of 2023 gives the same place and frequency under the call NDT. ↩