Radiosonde decoder plugin for SDR++

Overview

Radiosonde decoder plugin for SDR++

radiosondeGPX

Build instructions

  1. Download the SDR++ source code: git clone https://github.com/AlexandreRouma/SDRPlusPlus
  2. Open the top-level CMakeLists.txt file, and add the following line in the # Decoders section at the top:
option(OPT_BUILD_RADIOSONDE_DECODER "Build the radiosonde decoder module (no dependencies required)" ON)
  1. In that same file, search for the second # Decoders section, and add the following lines:
if (OPT_BUILD_RADIOSONDE_DECODER)
add_subdirectory("decoder_modules/sdrpp_radiosonde")
endif(OPT_BUILD_RADIOSONDE_DECODER)
  1. Navigate to the decoder_modules folder, then clone this repository: git clone https://github.com/dbdexter-dev/sdrpp_radiosonde
  2. Build SDR++ as usual: cd .. && mkdir build && cd build && cmake .. && make && sudo make install
  3. Enable the module by adding it via the module manager
Comments
  • Building on Windows

    Building on Windows

    This is a great plugin!

    Trying to build on Windows (using clang-cl), gave only 2 problems:

    • timegm() is not available. But the my_timegm() is already in the code.
    • setenv() and unsetenv() are also missing on Windows.
    • The "/tmp/radiosonde*" files.

    I patched 2 files to fix it:

    --- a/src/decode/dfm09/decoder.cpp 2022-01-06 08:51:39
    +++ b/src/decode/dfm09/decoder.cpp 2022-01-06 09:43:01
    @@ -10,6 +10,12 @@
    
     static time_t my_timegm(struct tm *tm);
    
    +#ifdef _WIN32
    +  #define timegm(tm)                   my_timegm(tm)
    +  #define setenv(env, val, overwrite)  _putenv_s(env, val)
    +  #define unsetenv(env)                _putenv_s(env, "=")
    +#endif
    +
     DFM09Decoder::DFM09Decoder(dsp::stream<uint8_t> *in, void (*handler)(SondeData *data, void *ctx), void *ctx)
     {
            init(in, handler, ctx);
    
    --- a/src/main.cpp 2022-01-06 08:51:39
    +++ b/src/main.cpp 2022-01-06 10:44:54
    @@ -24,6 +24,20 @@
    
     ConfigManager config;
    
    +static std::string GetTempFile (std::string file)
    +{
    +    const char *env = getenv("TMP");  /* Unix / Apple */
    +
    +    if (!env)
    +       env = getenv("TEMP");  /* Windows */
    +    if (!env)
    +       env = "/tmp";
    +#ifdef _WIN32
    +    return (std::string(env) + "/" + file);
    +#else
    +    return (std::string(env) + "\\" + file);
    +#endif
    +}
    
     RadiosondeDecoderModule::RadiosondeDecoderModule(std::string name)
     {
    @@ -40,8 +54,8 @@
    
            config.acquire();
            if (!config.conf.contains(name)) {
    -               config.conf[name]["gpxPath"] = "/tmp/radiosonde.gpx";
    -               config.conf[name]["ptuPath"] = "/tmp/radiosonde_ptu.csv";
    +               config.conf[name]["gpxPath"] = GetTempFile ("radiosonde.gpx");
    +               config.conf[name]["ptuPath"] = GetTempFile ("radiosonde_ptu.csv");
                    config.conf[name]["sondeType"] = 0;
                    created = true;
            }
    

    Hope you could clean it up.

    IMHO most of this should go into utils.c. Or better yet, into sdrpp_core.dll.

    opened by gvanem 3
  • Automatically Compiled Binaries?

    Automatically Compiled Binaries?

    Hi,

    I was wondering if you had considered setting up GitHub Actions to automatically generate binaries when you update the plugin.

    This would solve the problem of having to manually build SDR++ and could make the plugin much more accessible.

    opened by LukePrior 3
  •  After the April SDR ++ updates...

    After the April SDR ++ updates...

    1. After the April SDR ++ updates, the plugin cannot be compiled in
    2. It should be: if (OPT_BUILD_RADIOSONDE_DECODER) add_subdirectory ("decoder_modules / sdrpp_radiosonde") endif (OPT_BUILD_RADIOSONDE_DECODER)
    • space after endif in the 3rd line ...

    Linux, Ubuntu 20.04.4 LTS

    opened by kmp56 2
  • Radiosonde Decoding Compatibility Table

    Radiosonde Decoding Compatibility Table

    May I suggest including a radiosonde support matrix such as the ones found here: https://github.com/projecthorus/radiosonde_auto_rx#radiosonde-support-matrix https://github.com/dl9rdz/rdz_ttgo_sonde#radiosonde-support-matrix

    I have included an example table but I'm not sure if all the fields are correct

    Radiosonde Support Matrix

    Manufacturer | Model | Position | Temperature | Humidity | Pressure -------------|-------|----------|-------------|----------|---------- Vaisala | RS41-SG/SGP/SGM | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: (for -SGP) Graw | DFM06/09/17 | :heavy_check_mark: | :heavy_check_mark: | :x: | :x:

    opened by LukePrior 1
  • SDR++ on W64 cannot detect the dll . Help pls

    SDR++ on W64 cannot detect the dll . Help pls

    SDR++ W64 cannot detect the dll in modules folder. The error "The procedure entry point args could not be located in the dynamic link library . why? help pls.

    opened by 9w2www 4
  • sdrpp v1.1.0 Aug/8/2022

    sdrpp v1.1.0 Aug/8/2022

    • Ubuntu 22.04.01 LTS
    • the newest (Aug / 8/2022) SDR ++ v1.1.0
    • manually added and unpacked sdrpp_radiosonde-dev.zip
    • sondedump downloaded from https://github.com/dbdexter-dev/sondedump/tree/f3a9ac9e2ea9bf2e82cd85ae4dac57c1eb33ac1d
    • additionally bookmark_manager plugin

    Compilation without problem, everything works fine!

    opened by kmp56 0
  • Link for baseband file.

    Link for baseband file.

    Link for baseband file.

    https://wetransfer.com/downloads/c7509bba6cf2cb1687950bc5b097a44020220502160002/8ed70e2bf431425d16bc708df3e0c72420220502160024/5c1a8c

    Happysat (www.happysat.nl) is telling me the tuning frequency step is 5khz. It would be nice when it is 1 khz.

    Originally posted by @albertus62 in https://github.com/dbdexter-dev/sdrpp_radiosonde/issues/7#issuecomment-1115151785

    It is no longer available. Could you make it available again? Thanks !

    opened by py5cv 0
  • Imet-4 support?

    Imet-4 support?

    It would be nice if you can add Imet-4 sondes like the sondes launched from Beauvechain (B) to your plugin. Normally I use Mysondy to receive a sonde near the landing spot but Mysondy can not support Imet.

    opened by albertus62 9
  • SondeHub support?

    SondeHub support?

    Just wondering if you've considered adding sondehub.org upload support?

    SondeHub has a simple API for submitting data to, and is usually fairly easy for RS41 data. DFM sondes have a few quirks around frame numbering but also not too hard.

    https://github.com/projecthorus/sondehub-infra/wiki/SondeHub-Telemetry-Format https://github.com/projecthorus/sondehub-infra/wiki/Specific-Notes#sonde-data-uploader-notes https://github.com/projecthorus/sondehub-infra/wiki/API-(Beta)

    Let me know if this interests you and if you need any help.

    opened by TheSkorm 13
Releases(v0.9-r1)
Owner
Davide Belloli
Davide Belloli
SDR++ is a cross-platform and open source SDR software with the aim of being bloat free and simple to use.

SDR++ is a cross-platform and open source SDR software with the aim of being bloat free and simple to use.

AlexandreRouma 2.2k Jan 7, 2023
CaribouLite turns any 40-pin Raspberry-Pi into a Tx/Rx 6GHz SDR

CaribouLite CaribouLite is an affordable, educational, open-source SDR platform that is also a HAT for the Raspberry-Pi family of boards (40-pin versi

CaribouLabs.co 858 Dec 15, 2022
EDACS trunk tracking using RTL2832. rtl_fm, sdr++, gqrx, or gnuradio.

EDACS-FM Florida Man Edition EDACS 9600 Trunk Tracking software for Linux, *Nix, BSD systems (and maybe others) using two RTL2838 dongles(or anything

null 6 Dec 27, 2022
An open collection of tools and experiments for rendering wide-gamut scene-linear data into an image for an SDR or HDR display device.

Open Display Transform An open collection of tools and experiments for rendering wide-gamut scene-linear data into an image for an SDR or HDR display

Jed Smith 127 Dec 29, 2022
SleighCraft is a decoder based on ghidra's decompiler implementation.

SleighCraft is a decoder (or, linear disassembler) based on ghidra's decompiler implementation. Sleighcraft can be used in Rust or Python, with both high-level and low-level API.

PortalLab 236 Nov 6, 2022
Multichannel HFDL decoder

dumphfdl dumphfdl is a multichannel HFDL (High Frequency Data Link) decoder. HFDL (High Frequency Data Link) is a protocol used for radio communicatio

Tomasz Lemiech 85 Dec 22, 2022
Quite OK Image (QOI) format encoder/decoder

This project implements encoding and decoding the "Quite OK Image" (QOI) format in the Ć programming language. Ć can be automatically translated to pu

Piotr Fusik 50 Dec 25, 2022
Minimalist protocol buffer decoder and encoder in C++

protozero Minimalistic protocol buffer decoder and encoder in C++. Designed for high performance. Suitable for writing zero copy parsers and encoders

Mapbox 237 Dec 23, 2022
Browser and NodeJS Web Assembly audio decoder libraries that are highly optimized for size and performance.

WASM Audio Decoders WASM Audio Decoders is a collection of Web Assembly audio decoder libraries that are highly optimized for browser use. Each module

Ethan Halsall 81 Jan 4, 2023
mini-plugin host as plugin

DISTRHO Ildaeil DISTRHO Ildaeil is mini-plugin host working as a plugin, allowing one-to-one plugin format reusage. Load a VST2 plugin inside a LV2 ho

DISTRHO 58 Dec 12, 2022
No loss LV2 sound effect plugin

B.Spacr Description: LV2 sound effect plugin B.Spacr is a unique LV2 effect plugin that enables a clear and brilliant audibility of your music product

null 14 Aug 24, 2022
A cross-platform (Android/iOS/Windows/macOS) cronet plugin for Flutter via `dart:ffi`

cronet_flutter A cross-platform (Android/iOS/Windows/macOS) cronet plugin for Flutter via dart:ffi

null 25 Dec 11, 2022
Multi-dimensional dynamically distorted staggered multi-bandpass LV2 plugin

B.Angr A multi-dimensional dynamicly distorted staggered multi-bandpass LV2 plugin, for extreme soundmangling. Based on Airwindows XRegion. Key featur

null 21 Nov 7, 2022
Vimb - the vim like browser is a webkit based web browser that behaves like the vimperator plugin for the firefox and usage paradigms from the great editor vim.

Vimb - the vim like browser is a webkit based web browser that behaves like the vimperator plugin for the firefox and usage paradigms from the great editor vim. The goal of vimb is to build a completely keyboard-driven, efficient and pleasurable browsing-experience.

Daniel Carl 1.2k Dec 30, 2022
MHPatches is a plugin that brings some of PS2 features of Manhunt to the PC.

MHPatches Intro MHPatches is a plugin that brings some of PS2 features of Manhunt to the PC. Requirements UAL (https://github.com/ThirteenAG/Ultimate-

Fire_Head 30 Dec 20, 2022
Bass21 tone plugin

Bass21 This VST3 is a virtual-analog simulation of the famous Bass Driver DI Version 1 preamp pedal from Tech21. The discretization, while far from be

JP Cimalando 19 Jan 2, 2023
SynthLab is a synth plugin framework for developing software synthesizers.

SynthLab SynthLab is a synth plugin framework for developing software synthesizers.

willpirkleaudio 77 Dec 7, 2022
A Flutter Web Plugin to display Text Widget as Html for SEO purpose

SEO Renderer A flutter plugin (under development) to render text widgets as html elements for SEO purpose. Created specifically for issue https://gith

Sahdeep Singh 103 Nov 21, 2022
IDA StrikeOut: A Hex-Rays decompiler plugin to patch the Ctree

StrikeOut is an plugin for the Hex-Rays Decompiler. It allows you to delete (hide) statements from the AST, thus simplifying the pseudocode output. This is a useful scenario when you are dealing with lots of junk code or code that don't necessarily increase your understanding of the pseudocode.

Elias Bachaalany 82 Dec 6, 2022