did commercial ELF radio recievers exist? - Page 1
Forum section: electronics / rf-microwave

author: coppercone2
author_rank: Super Contributor
timestamp: May 29, 2025, 05:12:32 am
content: So you can find radio recievers pretty easily that go down to 15KHz on their front panel. (sold as VLF)Of course there is alot of work and research that was done on lower frequencies by hobbyists, the military and scientists.I am wondering if there are any commercial receivers for this low frequency range, where the front panel might start at 1Khz or 100Hz or even less.Or perhaps special options for VLF receivers to work lower.I mean like big rackmount high quality professional systems.Like something that was sold to atmospheric scientists, navy, power company, etc.

author: radiolistener
author_rank: Super Contributor
timestamp: May 29, 2025, 05:34:20 am
content: you can use high quality 32-bit sound card. Usuall sound card input also should works ok for that.I have successfully received VLF submarine transmissions using a standard sound card input. It works surprisingly well, though the main challenge is the high environmental noise floor. For optimal reception, it’s best to stay away from electrical equipment and buildings, or to monitor during power outages when man-made noise is significantly reduced.If you want to receive just specific frequency, it requires specific filter.

author: coppercone2
author_rank: Super Contributor
timestamp: May 29, 2025, 05:36:15 am
content: this is a historical question

author: Lord of nothing
author_rank: Super Contributor
timestamp: May 29, 2025, 07:48:36 pm
content: QuoteIs there anything to decode or interesting?

author: TimFox
author_rank: Super Contributor
timestamp: May 29, 2025, 08:50:47 pm
content: The US Navy's NAA used low frequencies to penetrate a reasonable depth of seawater.https://www.navy-radio.com/commsta/cutler.htmTechnically, this is "VLF" (14 to 24 kHz)There was another serious proposal to work at ELF (between 4 Hz and 500 Hz, or "damned low frequencies").https://www.navy-radio.com/commsta-elf.htmTo my knowledge, after preliminary experiments this was never funded.It would have used antennas in wetlands in Wisconsin or Michigan, but the voltage gradients in the wet ground would have been dangerous. Imagine a deer with a stride of, say, 2 m slogging through the swamp.

author: radiolistener
author_rank: Super Contributor
timestamp: May 29, 2025, 09:39:20 pm
content: Quote from: Lord of nothing on May 29, 2025, 07:48:36 pmThe signals in the VLF range from submarines are almost certainly encrypted, its just some unknown codes like on military numerical stations like UVB76 (4625 kHz USB) at shortwave. So decoding the actual content is impossible without access to classified information and cryptographic keys.However, it's definitely interesting from a technical and hobbyist perspective to listen them. You can analyze the modulation schemes, study the signal propagation (especially how VLF travels through seawater and around the globe), and observe patterns in transmission timing.In the VLF band, submarine communications typically operate on fixed frequencies around 18-22 kHz (for example 18100 Hz, 21100 Hz and other). There is also a channel in the ELF band (US uses 76 Hz and Russian uses 82 Hz), though its capabilities are extremely limited. Due to the extremely low frequencies, this link is strictly one-way - from shore to the submarine. Submarines can receive ELF signals even at great depths, but cannot transmit back because of the enormous antenna sizes and power requirements needed to generate ELF signals. Such links are usually reserved for critical messages, such as orders to initiate communication or in extreme cases, to authorize strategic actions like a nuclear strike.This is crucial because such messages must be delivered quickly. By the time a submarine ascends to periscope depth to establish VLF communication, command centers on land may already be destroyed. Therefore, ELF provides a reliable method to ensure that a launch order for a retaliatory nuclear strike can be received under any circumstances.To ensure the reliable delivery of a nuclear launch order, multiple redundant communication methods are employed. For example, the order can be transmitted via specialized missiles that act as airborne relays, as well as from aircraft equipped with trailing wire antennas up to 10 kilometers long. There are also massive land-based transmitters dedicated to this purpose.One of these ground-based transmitters reportedly uses an unusual traveling wave antenna design to transmit signals at such extremely low frequencies.

author: radiolistener
author_rank: Super Contributor
timestamp: May 29, 2025, 10:33:48 pm
content: Quote from: TimFox on May 29, 2025, 08:50:47 pmThe VLF channel at frequencies around 20 kHz is the standard communication channel with submarines, but it requires the vessel to be at periscope depth. In contrast, ELF is reserved for urgent messages when the submarine is operating at greater depths, where VLF signals cannot penetrate and communication via standard methods is not possible. ELF channel works on 76 (US) or 82 (Russian) Hz.As I hear US shut down their ELF transmitter, so I'm not sure if they still use ELF channel to submarines.It's very hard to receive these ELF frequencies in modern city due to high interference from 50 Hz mains. But VLF is much better, you can receive it even with noise from mains.

author: pdenisowski
author_rank: Super Contributor
timestamp: May 29, 2025, 11:33:06 pm
content: Quote from: radiolistener on May 29, 2025, 09:39:20 pmI may or may not be putting together a video on VLF communications right now ...But in the meantime, there is a lot of publicly available information on TACAMO (in which a plane uses a trailing wire antenna) and some of the land-based VLF transmitters, such as the US Navy one in Cutler, Maine.As for receivers - there are plenty of "professional" monitoring receivers (like our PR200 or ESMD) that can go down 8 kHz, which is kind of the bottom of "useful" VLF frequencies, and many "professional" spec ans (like our FSW) can go down to 2 (yes, two) Hertz. On the hobbyist side, I have an SDRplay RSPdx-R2 which goes down to 1 kHz.But as others have stated, the larger issue in the antenna. There are also VLF-specific preamps (like the L-202 from LF Engineering) that can help when trying to pull in those signals.

author: Stray Electron
author_rank: Super Contributor
timestamp: May 30, 2025, 12:51:54 am
content: There was a LF/VLF/ELF option for the Racal 6790 receivers that will take the input frequency down to 10kHz. Mine has that option and the optional RF preamp.Racal date sheethttp://blackradios.terryo.org/documents/manufacturers/Racal/data-sheets/Racal-RA6790-GM-data-sheet-ver-1.pdf

author: radiolistener
author_rank: Super Contributor
timestamp: May 30, 2025, 12:56:06 am
content: I'm using a custom FPGA-based DDC SDR setup with a high-speed ADC and a DC-coupled pre-amplifier at the input for VLF reception. However, you can achieve comparable (or even better) results using the audio input of a standard sound card. The main advantage of the FPGA-based approach is the ability to observe a wide frequency spectrum in real time, whereas typical sound cards are limited to around 192 kHz bandwidth and are more susceptible to aliasing effects.It allows to receive even 76/82 Hz. But the noise from mains on these frequencies is so strong that it's almost impossible to see something

author: coppercone2
author_rank: Super Contributor
timestamp: May 30, 2025, 01:45:20 am
content: I think mine goes down to 100Hz too and I have a DSA but I really wanted like old analog possibly tube based boxesI guess its just not popular enough for a RF company to make a 'receiver' or converter for just this purpose?Though I do ask myself what the modulation functions would be.it might look like this box but I assume bigger. its the lowest frequency 'radio' I found producedhttps://www.radioblvd.com/RAA-3_LW_Receiver.htmI want to know what the band 0 system would look like from 1KHz to 10KHz if they added it onalso look at this, what is this, ... could it be 2 loop stick antennas or a figure 8 winding or...?https://aaroniausa.com/product/antennas/magnetic-field-antennas/magnotracker-elf-1hz-9khz/

author: TimFox
author_rank: Super Contributor
timestamp: May 30, 2025, 03:09:54 am
content: Nomenclature: the traditional division of the RF spectrum works out in decades of wavelength.30 to 300 Hz ELF 10,000 to 1000 km300 Hz to 3 kHz ULF 1000 km to 100 km3 to 30 kHz VLF 100 km to 10 km30 to 300 kHz LF 10 km to 1 km300 kHz to 3 MHz MF 1000 m to 100 m3 to 30 MHz HF 100 to 10 m30 to 300 MHz VHF 10 m to 1 m300 to 3000 MHz UHF 1 m to 10 cm3 to 30 GHZ SHF 10 cm to 1 cmI believe these were standardized in about 1953, but were deprecated by later standards, such as CCIR, to describe bands.I'm not sure about the exact usage of ULF and ELF as band designators.Some more recent research in the low frequencies:https://vlfstanford.ku.edu.tr/research_topic_inlin/introduction-vlf/

author: fourfathom
author_rank: Super Contributor
timestamp: May 30, 2025, 06:36:36 am
content: Since we're on a tangent, if you're interested in participating in some VLF science, take a look at the HamSCI program:https://hamsci.org/hamsci-searching-instrumentation-sites-and-hosts. I plan to put together one of these VLF receive sites, as I'm about 50 miles from the USA "Jim Creek Naval Radio" installation (https://en.wikipedia.org/wiki/Jim_Creek_Naval_Radio_Station).I'm currently working on a GPS time and synchronization interface that will be used in this program. HamSci is also looking for people to host magnetometer systems, as well as HF receivers and transmitters for ionospheric propagation research. I've developed (and continue to develop) gear for the HamSCI HF and VHF propagation research programs. If you're interested, I gave a little presentation at the recent Hamvention on the topic of wideband SDR receiver optimization and a multi-channel transmitter I make (as used in the HamSCI program and elsewhere):https://turnislandsystems.com/hamvention-presentation/

author: Lord of nothing
author_rank: Super Contributor
timestamp: May 30, 2025, 07:47:09 am
content: As I ask here in some Treads why not use some of the shelf Soundcard Chipset who are very sensitive and create an PCB with some kind of standard Data Transfer Protocol: USB, Serial, Ethernet,...as an Receiver?Sometimes there is a reason why there are Receiver who from an SDR User Perspective are very narrow Band and cover only one purpose. Its like when I looking for Filter on Aliexpress some Freq pop up constantly and the one I want arent.

author: fourfathom
author_rank: Super Contributor
timestamp: May 30, 2025, 05:27:04 pm
content: Quote from: Lord of nothing on May 30, 2025, 07:47:09 amLook at ka9q-radio (software) or GnuRadio for processing SDR-type data arriving on standard interfaces.The VLF receiver systems I am working on use a multi-channel USB audio interface, such as the Behringer UMC204HD, andhttp://abelian.org/vlfrx-tools/software.

author: radiolistener
author_rank: Super Contributor
timestamp: May 31, 2025, 11:43:51 am
content: if you want to apply some specific filter, frequency shift, AM/FM demodulator, etc, there is a nice command line tool:https://github.com/ha7ilm/csdrit allows to do DSP operations on the stream in linux pipe style. It works even on a slow machines.For example here is command line with DSP chain for WFM receiver:Code:rtl_sdr -s 2400k -f 102000k -g 2.7 - \| csdr convert_u8_f \| csdr fir_decimate_cc 10 0.05 HAMMING \| csdr fmdemod_atan_cf \| csdr fractional_decimator_ff 5 4 0.0625 HAMMING \| csdr deemphasis_wfm_ff 48000 50e-6 \| aplay -t raw -r 48000 -c 1 -f FLOAT_LEHow it works:1) rtl_sdr command in the pipe chain is the tool from RTLSDR driver, it setup LO=102000 kHz, gain=2.4 dB, bandwidth 2.4 MHz and get IQ stream from RTLSDR and push it into pipe stream for further processing.2) The commandcsdr convert_u8_fconverts from unsigned byte format used in RTLSDR to a float32 sample format.3) The commandcsdr fir_decimate_cc 10 0.05 HAMMINGdoing 10x decimation with FIR filter cut-off 0.05 and Hamming window, so the output stream will be reduced from 2.4 MHz to 240 kHz.4) The commandcsdr fmdemod_atan_cfdoing FM demodulation using atan method (slow but good quality) and produce real output.5) Thencsdr fractional_decimator_ff 5 4 0.0625 HAMMINGdoing 5x decimation of real stream using 4 point interpolation and 0.0625 bandwidth with Hamming window. The output stream will be reduced from 240 kHz to 48 kHz.6) Thencsdr deemphasis_wfm_ff 48000 50e-6applying 50 us deemphasis filter (required for WFM for compensation).7) And the last commandaplay -t raw -r 48000 -c 1 -f FLOAT_LEin pipe sequence playing stream on sound card.last prefix _ff, _cf, _cc, etc means input and output stream format. c means complex float32 (IQ stream). f means float (real stream).It is a little bit old and outdated, in order to compile it with modern raspberry pi, you can fix makefile to use these options:Code:-g -O3 -ffast-math -funsafe-math-optimizations -Wno-unused-result -Wformat=0-fdump-tree-vect-details -dumpbase dumpvect-mcpu=cortex-a72 -march=armv8-a+crc -mtune=cortex-a72 -mabi=lp64 -mcmodel=tiny -mlittle-endianhere is CMakeLists.txt file that I wrote to build it on modern machines:Code:cmake_minimum_required(VERSION 3.10)project(csdr C CXX)set(CMAKE_C_STANDARD 99)set(CMAKE_CXX_STANDARD 11)# Detect architecture and set SIMD flagsinclude(CheckCSourceCompiles)include(CheckCCompilerFlag)if(NOT WIN32)string(ASCII 27 Esc)set(EscReset "${Esc}[0;m")set(EscBoldRed "${Esc}[1;31m")set(EscBoldGreen "${Esc}[1;32m")set(EscBoldYellow "${Esc}[1;33m")set(EscBoldBlue "${Esc}[1;34m")set(EscBoldMagenta "${Esc}[1;35m")set(EscBoldCyan "${Esc}[1;36m")set(EscBoldWhite "${Esc}[1;37m")set(EscBoldGray "${Esc}[1;90m")endif()# Detect SIMD optionsif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|armv7l)$")# Extract Revision from /proc/cpuinfoexecute_process(COMMAND grep Revision /proc/cpuinfoOUTPUT_VARIABLE RPI_REV_RAWOUTPUT_STRIP_TRAILING_WHITESPACE)string(REGEX REPLACE ".*Revision[ \t]*:[ \t]*([^ \t\r\n]+).*" "\\1" RPI_REV "${RPI_REV_RAW}")if(NOT RPI_REV STREQUAL "")# https://github.com/raspberrypi/documentation/blob/develop/documentation/asciidoc/computers/raspberry-pi/revision-codes.adocmath(EXPR RPI_REV_DEC "0x${RPI_REV}") # Convert hex string to decimalmath(EXPR RPI_PROC "(${RPI_REV_DEC} >> 12) & 0xF") # Extract bits 12-15 (processor)math(EXPR RPI_SIZE "(${RPI_REV_DEC} >> 20) & 0x7") # Extract bits 20-22 (memory size)math(EXPR RPI_TYPE "(${RPI_REV_DEC} >> 4) & 0xFF") # Extract bits 4-11 (type)math(EXPR RPI_SIZE_MB "256 << ${RPI_SIZE}") # Extract memory size in MBset(RPI_PROC_LIST "bcm2835" "bcm2836" "bcm2837" "bcm2711" "bcm2712")list(LENGTH RPI_PROC_LIST _len)if(RPI_PROC LESS _len)list(GET RPI_PROC_LIST ${RPI_PROC} RPI_PROC_TXT)else()set(RPI_PROC_TXT "#${RPI_PROC}")message(STATUS "${EscBoldRed}Cannot recognize RPI_PROC=${RPI_PROC}${EscReset}, RPI_REV=\"${RPI_REV}\"")endif()set(RPI_TYPE_LIST"A" "B" "A+" "B+" "2B" "Alpha" "CM1" "#7" "3B" "Zero" "CM3" "#11" "Zero W" "3B+" "3A+" "Internal #15""CM3+" "4B" "Zero 2W" "400" "CM4" "CM4S" "Internal #22" "5" "CM5" "500" "CM5 Lite")list(LENGTH RPI_TYPE_LIST _len)if(RPI_TYPE LESS _len)list(GET RPI_TYPE_LIST ${RPI_TYPE} RPI_TYPE_TXT)else()set(RPI_TYPE_TXT "#${RPI_TYPE}")message(STATUS "${EscBoldRed}Cannot recognize RPI_TYPE=${RPI_TYPE}${EscReset}, RPI_REV=\"${RPI_REV}\"")endif()endif()endif()if(CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64")# intelmessage(STATUS "${EscBoldCyan}SIMD: ${EscBoldBlue}${CMAKE_SYSTEM_PROCESSOR}${EscReset}")set(SIMD_FLAGS -msse -msse2 -msse3 -msse4.1 -msse4.2 -mfpmath=sse)elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64" AND RPI_PROC_TXT MATCHES "^(bcm2837|bcm2711)$")# rpi02w/rpi4 aarch64message(STATUS "${EscBoldCyan}SIMD: ${EscBoldBlue}${CMAKE_SYSTEM_PROCESSOR} ${RPI_PROC_TXT} ${EscBoldGray}(${RPI_REV}: Raspberry Pi ${RPI_TYPE_TXT} ${RPI_SIZE_MB}MB)${EscReset}")set(SIMD_FLAGS -mcpu=cortex-a72 -march=armv8-a+crc -mtune=cortex-a72 -mabi=lp64 -mcmodel=tiny -mlittle-endian)elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^armv7l" AND RPI_PROC_TXT MATCHES "^(bcm2837|bcm2711)$")# rpi02w/rpi4 armv7lmessage(STATUS "${EscBoldCyan}SIMD: ${EscBoldBlue}${CMAKE_SYSTEM_PROCESSOR} ${RPI_PROC_TXT} ${EscBoldGray}(${RPI_REV}: Raspberry Pi ${RPI_TYPE_TXT} ${RPI_SIZE_MB}MB)${EscReset}")set(SIMD_FLAGS -mfloat-abi=hard -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mvectorize-with-neon-quad -DNEON_OPTS)else()message(STATUS "${EscBoldRed}Cannot detect SIMD: CMAKE_SYSTEM_PROCESSOR=\"${CMAKE_SYSTEM_PROCESSOR}\", RPI_PROC=${RPI_PROC}, RPI_PROC_TXT=\"${RPI_PROC_TXT}\" ${EscBoldGray}(${RPI_REV}: Raspberry Pi ${RPI_TYPE_TXT} ${RPI_SIZE_MB}MB)${EscReset}")endif()set(LOOPVECT_FLAGS -fdump-tree-vect-details -dumpbase dumpvect)set(COMMON_FLAGS -g -O3 -ffast-math -funsafe-math-optimizations -Wno-unused-result -Wformat=0)#set(COMMON_FLAGS -g -Ofast -ffast-math -funsafe-math-optimizations -Wno-unused-result -Wformat=0)set(COMMON_LIBS m rt fftw3f)add_compile_options(${LOOPVECT_FLAGS} ${SIMD_FLAGS} ${COMMON_FLAGS})# FFTW detection and preprocessor definesfind_library(FFTW_LIB fftw3f)if(NOT FFTW_LIB)message(FATAL_ERROR "FFTW library not found")endif()add_definitions(-DUSE_FFTW -DLIBCSDR_GPL -DUSE_IMA_ADPCM)include_directories(${CMAKE_SOURCE_DIR})link_directories(${CMAKE_CURRENT_SOURCE_DIR})#-----------------------------------------------------------------------# Source files for the shared libraryset(LIB_SOURCESfft_fftw.clibcsdr_wrapper.c)# Build shared libraryadd_library(csdr_shared SHARED ${LIB_SOURCES})#set_target_properties(csdr_shared PROPERTIES OUTPUT_NAME "csdr" VERSION 0.15 SOVERSION 0.15)target_link_libraries(csdr_shared ${COMMON_LIBS})#-----------------------------------------------------------------------# Build command-line tool csdradd_executable(csdr csdr.c)target_compile_options(csdr PRIVATE -Wno-trigraphs)target_link_libraries(csdr ${COMMON_LIBS} csdr_shared)#-----------------------------------------------------------------------# Build ddcd tool#add_executable(ddcd ddcd.cpp)#target_compile_options(ddcd PRIVATE ${LOOPVECT_FLAGS})#target_include_directories(ddcd PRIVATE ${CMAKE_SOURCE_DIR})#target_link_libraries(ddcd ${COMMON_LIBS} pthread csdr_shared)#-----------------------------------------------------------------------# Build nmux tooladd_executable(nmux nmux.cpp tsmpool.cpp)target_link_libraries(nmux csdr_shared pthread)#-----------------------------------------------------------------------# Install targets#install(TARGETS csdr_shared DESTINATION lib)#install(TARGETS csdr ddcd nmux DESTINATION bin)#-----------------------------------------------------------------------just drop this CMakeLists.txt it into csdr folder and make it with:Code:mkdir build && cd buildcmake ..makeI didn't tested install option, because I'm using it from the build folder. But it should work if you uncomment install lines in the file.There are also some more refactored clones rewritten in C++ (they using a little bit different syntax):https://github.com/jketterl/csdrhttps://github.com/luarvique/csdrThe last one also has CW, SSTV and other decoders.

author: ME
author_rank: Frequent Contributor
timestamp: July 16, 2025, 05:16:33 pm
content: Did i once hear the uk elf signals used train lines as tx antennas ?.

author: jonovid
author_rank: Super Contributor
timestamp: July 17, 2025, 01:39:58 am
content: ELF audio linkback in the 1970s magnetic loop antennas was used in school classroomsamplifier audio was pumped into a wire loop that ran the wall of the room. 8 to 16individual school students had headphones that picked up the audio from a ferrite loop stick antenna inside one headphone sidefrom a 4 or 5 transistor amp & 9v battery

author: pdenisowski
author_rank: Super Contributor
timestamp: July 17, 2025, 02:29:03 am
content: Quote from: pdenisowski on May 29, 2025, 11:33:06 pmAnd I may or may not have posted a video on VLF to the R&S YouTube channel

author: coppercone2
author_rank: Super Contributor
timestamp: July 17, 2025, 04:02:08 am
content: https://apps.dtic.mil/sti/trecms/pdf/AD0822478.pdfhttps://patents.google.com/patent/US8295786B2/en