dbdexter-dev / sdrpp_radiosonde Goto Github PK
View Code? Open in Web Editor NEWRadiosonde decoder plugin for SDR++
License: MIT License
Radiosonde decoder plugin for SDR++
License: MIT License
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.
Any chance for DFM17 decode for us here in the U.S.? Thanks!
Get the above error on starting SDR++. The radiosonde_decoder_w64.dll module is in the modules subdirectory. SDR++ does not 'see' it in the modules list after starting up.
I am getting the error
Couldn't load /usr/lib/sdrpp/plugins/radiosonde_decoder_x64.so: /usr/lib/sdrpp/plugins/radiosonde_decoder_x64.so: wrong ELF class: ELFCLASS64
I did use various .so files, same result.
I updated SDR++ to the latest nightly build of 20240423 on my 64-bit Windows-10 platform. Although SDR++ recognizes the radiosonde decoder dll, when one tries to create the module with Module Manager, the process begins and then stalls, forcing one to close SDR++ to regain control.
Thank you for such a wonderful module that worked in earlier versions of SDR++.
Ken -- WBØOCV
I don't have the necessary permission on the computer to compile the plugin myself. If somebody with a mac, preferably apple silicon, can compile and upload that would be great, Thanks!
By adding in the modulmanager sdr++ is freezing.....
SDR++ V1.2.0 running in Adminmode
greetings
Martin
Hi,
if possible add Horus decoder (Horusdemodlib).
Thanks in advance.
Mario
[2023-10-11 13:48:16.584] [error] Couldn't load /usr/lib/sdrpp/plugins/radiosonde_decoder_debian_sid.so.
i've tried with every version of the plugin, including both debian and ubuntu variants with no success.
i use OpenSUSE Tumbleweed
adapted sdrpp_radiosonde so it exports all measured values to the log file. Wrote a script that uploads the data to Sondehub as they come in real-time. Sondes used in this area are RS41-SGP.
As more stations follow a sonde, one can compare sdrpp_radiosonde reported measurements, with those reported by other rx stations, using radiosonde_auto_rx. Perfect match, except for Relative Humidity. And for a few data missing in sdrpp_radiosonde.
At high altitudes 20-30 km, radiosonde_auto_rx reports RH in the few percent. sdrpp_radiosonde does not report under 5%, and through the entire trajectory consistently higher than the other reporters. Of course either can be right, difficult to tell, but what causes the same base data to yield different results?
Other questions: When radiosonde_auto_rx reports that the burstkill is inactive, sdrpp_radiosonde reports some burstkill integer, suggesting it is active. Which one is right?
SDR++ general question: is there a way the radiosonde module can know what the tuned frequency is, and what the signal strength, so it can export that into the log?
Now add the frequency via a rigctl query. But not elegant, nor can I get S/N that way.
Great work by the way; the decoder works really well. Thank you!
Compilation without problem, everything works fine!
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.
Can I request a radiosonde plugin for sdr++ android
I'm trying to compile this plugin one macOS; everything seems to be going well until I get the following error :
[ 61%] Built target radiosonde
[ 62%] Building CXX object decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/src/main.cpp.o
In file included from /Users/fredericdruppel/Downloads/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp:7:
In file included from /Users/fredericdruppel/Downloads/SDRPlusPlus/core/src/signal_path/signal_path.h:2:
In file included from /Users/fredericdruppel/Downloads/SDRPlusPlus/core/src/signal_path/iq_frontend.h:3:
/Users/fredericdruppel/Downloads/SDRPlusPlus/core/src/signal_path/../dsp/buffer/reshaper.h:61:13: warning: 'run' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
int run() {
^
/Users/fredericdruppel/Downloads/SDRPlusPlus/core/src/signal_path/iq_frontend.h:79:43: note: in instantiation of template class 'dsp::buffer::Reshaper<dsp::complex_t>' requested here
dsp::buffer::Reshaper<dsp::complex_t> reshape;
^
/Users/fredericdruppel/Downloads/SDRPlusPlus/core/src/dsp/block.h:65:21: note: overridden virtual function is here
virtual int run() = 0;
^
/Users/fredericdruppel/Downloads/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp:57:46: error: too few arguments to function call, expected 5, have 4
fmDemod.init(vfo->output, bw, bw/2.0f, false);
~~~~~~~~~~~~ ^
/Users/fredericdruppel/Downloads/SDRPlusPlus/core/src/dsp/demod/fm.h:25:14: note: 'init' declared here
void init(dsp::stream<dsp::complex_t>* in, double samplerate, double bandwidth, bool lowPass, bool highPass) {
^
1 warning and 1 error generated.
make[2]: *** [decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/build.make:118: decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/src/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:864: decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
Can someone help me ? ^^'
Hello, is it possible to get a build file for arch ?
I can't easily recompile your plugin as my version of SDR++ was installed through AUR so I don't have any build directory.
Your released builds (for ubuntu and debian) - predictably - don't work for arch it seems.
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."/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
.
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.
best regards
just add .so file on /usr/lib/sdrpp/plugins
but cant see it on modules manager
cant give a help ...
Opensuse 15.4
Linux 5.14.21-150400.24.63-default #1 SMP PREEMPT_DYNAMIC Tue May 2 15:49:04 UTC 2023 (fd0cc4f) x86_64 x86_64 x86_64 GNU/Linux
`[ 89%] Building CXX object decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/src/main.cpp.o
/usr/local/src/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp: In constructor ‘RadiosondeDecoderModule::RadiosondeDecoderModule(std::string)’:
/usr/local/src/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp:57:46: error: no matching function for call to ‘dsp::demod::FM::init(dsp::streamdsp::complex_t&, float&, float, bool)’
57 | fmDemod.init(vfo->output, bw, bw/2.0f, false);
| ^
In file included from /usr/local/src/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.hpp:6,
from /usr/local/src/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp:9:
/usr/local/src/SDRPlusPlus/core/src/dsp/demod/fm.h:25:14: note: candidate: ‘void dsp::demod::FM::init(dsp::streamdsp::complex_t, double, double, bool, bool) [with T = float]’
25 | void init(dsp::streamdsp::complex_t* in, double samplerate, double bandwidth, bool lowPass, bool highPass) {
| ^~~~
/usr/local/src/SDRPlusPlus/core/src/dsp/demod/fm.h:25:14: note: candidate expects 5 arguments, 4 provided
make[2]: *** [decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/build.make:118: decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/src/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2076: decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
`
After recent updates in SDR++ v1.1.0, compiling with the radiosonde plugin ends with an error:
.
.
.
[ 92%] Built target sdrplay_source
[ 93%] Built target bookmark_manager
[ 96%] Built target spyserver_source
[ 96%] Built target do_always
[ 96%] Built target radiosonde
Consolidate compiler generated dependencies of target radiosonde_decoder
[ 96%] Building CXX object decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/src/main.cpp.o
/home/kmp/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp: In constructor ‘RadiosondeDecoderModule::RadiosondeDecoderModule(std::string)’:
/home/kmp/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp:57:21: error: no matching function for call to ‘dsp::demod::FM::init(dsp::streamdsp::complex_t&, float&, float, bool)’
57 | fmDemod.init(vfo->output, bw, bw/2.0f, false);
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/kmp/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.hpp:6,
from /home/kmp/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp:9:
/home/kmp/SDRPlusPlus/core/src/dsp/demod/fm.h:25:14: note: candidate: ‘void dsp::demod::FM::init(dsp::streamdsp::complex_t, double, double, bool, bool) [with T = float]’
25 | void init(dsp::streamdsp::complex_t* in, double samplerate, double bandwidth, bool lowPass, bool highPass) {
| ^~~~
/home/kmp/SDRPlusPlus/core/src/dsp/demod/fm.h:25:14: note: candidate expects 5 arguments, 4 provided
make[2]: *** [decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/build.make:118: decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/src/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1540: decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
Can you do something about it? please...
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
Manufacturer | Model | Position | Temperature | Humidity | Pressure |
---|---|---|---|---|---|
Vaisala | RS41-SG/SGP/SGM | ✔️ | ✔️ | ✔️ | ✔️ (for -SGP) |
Graw | DFM06/09/17 | ✔️ | ✔️ | ❌ | ❌ |
It would be nice if you could add a column with frame numbers in the .csv log file.
I'm receiving RS41 sondes.
Thanks for your work!
Johan SM6LKM
If you have multiple sdrpp_radiosonde modules loaded in SDR++, removing one (by clicking the - icon in the module manager) works fine, but when you try to remove another one, the program crashes:
#5 ?? () from /usr/lib/libc.so.6
#6 free () from /usr/lib/libc.so.6
#7 fclose () from /usr/lib/libc.so.6
#8 ims100_decoder_deinit (d=0x5555562d47d0) at sdrpp/decoder_modules/sdrpp_radiosonde/src/decode/sondedump/sonde/ims100/ims100.c:75
#9 radiosonde::Decoder<ims100decoder, &ims100_decoder_init, &ims100_decoder_deinit, &ims100_decode>::~Decoder at sdrpp/decoder_modules/sdrpp_radiosonde/src/decode/decoder.hpp:24
#10 radiosonde::Decoder<ims100decoder, &ims100_decoder_init, &ims100_decoder_deinit, &ims100_decode>::~Decoder at sdrpp/decoder_modules/sdrpp_radiosonde/src/decode/decoder.hpp:24
#11 RadiosondeDecoderModule::~RadiosondeDecoderModule at sdrpp/decoder_modules/sdrpp_radiosonde/src/main.cpp:85
#12 _DELETE_INSTANCE_ at sdrpp/decoder_modules/sdrpp_radiosonde/src/main.cpp:419
#13 ModuleManager::deleteInstance at sdrpp/core/src/module.cpp:115
#14 module_manager_menu::draw at sdrpp/core/src/gui/menus/module_manager.cpp:74
#15 Menu::draw at sdrpp/core/src/gui/widgets/menu.cpp:124
#16 MainWindow::draw at sdrpp/core/src/gui/main_window.cpp:476
#17 backend::renderLoop at sdrpp/core/backends/glfw/backend.cpp:285
#18 sdrpp_main at sdrpp/core/src/core.cpp:370
#19 main at sdrpp/src/main.cpp:5
Hi,
I am trying to decode an iMet-4. I can see the signal on SDR++, but it's not being decoded. are there any tips or tricks to make it work? I guess the signal was only about 12 db over the noise, but I could clearly see it on the waterfall. The decoding just stayed all 0s.
Thanks.
home/peter/Applications/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp:57:21: error: no matching function for call to ‘dsp::demod::FM::init(dsp::streamdsp::complex_t*&, float&, float, bool)’
57 | fmDemod.init(vfo->output, bw, bw/2.0f, false);
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/peter/Applications/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.hpp:6,
from /home/peter/Applications/SDRPlusPlus/decoder_modules/sdrpp_radiosonde/src/main.cpp:9:
/home/peter/Applications/SDRPlusPlus/core/src/dsp/demod/fm.h:25:14: note: candidate: ‘void dsp::demod::FM::init(dsp::streamdsp::complex_t, double, double, bool, bool) [with T = float]’
25 | void init(dsp::streamdsp::complex_t in, double samplerate, double bandwidth, bool lowPass, bool highPass) {
| ^~~~
/home/peter/Applications/SDRPlusPlus/core/src/dsp/demod/fm.h:25:14: note: candidate expects 5 arguments, 4 provided
make[2]: *** [decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/build.make:118: decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/src/main.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2004: decoder_modules/sdrpp_radiosonde/CMakeFiles/radiosonde_decoder.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
Any ideas. Iv followed your guide step by step. This is on Bookworm and Volk ver is 2.5.2-3. Also tried to use the precompiled .so but Volk issue arose. Any help would be appreciated.
Linux, Ubuntu 20.04.4 LTS
Link for baseband file.
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 #7 (comment)
It is no longer available. Could you make it available again? Thanks !
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.