Code Monkey home page Code Monkey logo

rs's People

Contributors

daniestevez avatar darksidelemm avatar dl9rdz avatar einergehtnochrein avatar jiri-pinkava avatar rs1729 avatar sammyshp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

rs's Issues

RS41 sgp or sg with ozone sensor

Hi good day from Spain,

There are possibility to implement the decoding of the aux data from the ozone sonding when the Rs41 is launched with the OIF411 ozone interface in according with Vaisala documentation M211486EN-C?

Measurement Data
ID Data 1
ID Data 2
Low temp
No battery   low temp
No battery
Nominal

See attached screenshots. Also I give info about the Status (Diagnostic Word) implemented with my help in the Diego IW1GIS RS41 Tracker.

RS92 PTU

The RS92 PTU data is described here:
https://brmlab.cz/project/weathersonde/telemetry_decoding

Frequencies of capacitive sensors can be measured as periods 1/freq. The RS92 PTU values can be approximately calculated as described in the lecture notes by Haeberli (2001):
https://www.file-upload.net/download-14470162/haeberli-convert.pdf.html
(probably for a predecessor of the RS92)
RS92 seems to use degree 5 polynomials to model the sensors, though for the two humidity sensors the upper two coefficients are zero.

In
2453b79
only the uncorrected values are calculated. Temperature and pressure are close enough.
The humidity sensors are heated in intervals (up to -60C/100hPa), however if the temperature difference is not constant, the temperature at the humidity sensor would have to be estimated depending on e.g. air temperature and air flow (climb rate). At lower temperatures and higher relative humidity the corrected relative humidity would be noticeably higher (applying e.g. Hyland/Wexler).
cf.
https://amt.copernicus.org/articles/7/4463/2014/ (amt-7-4463-2014)
https://www.vaisala.com/sites/default/files/documents/9781461439080-c1.pdf

Demodulator as a standalone executable

It would be nice to have a FM demodulator as a standalone application. If I do

iq_client --freq 0.023 |
tee >(./rs41mod ...) \
      >(./rs92mod ...)

it makes no sense for all decoders I start in parallel to demodulate the signal first. And without demodulator it is not possible to get audible signal

Input parameters for the demodulator could be at least bandpass filter paramters (e.g -0.5;0.5). Bandpass filter comes before the quadrature demodulator

PTU not printed in JSON in silent mode

I noticed that decoder demod/mod/rs41mod.c doesn't print PTU in JSON in silent mode, because both getting the PTU data and printing it in non-JSON mode is handled in the same if block.

It can be easily fixed with this patch:

diff --git a/demod/mod/rs41mod.c b/demod/mod/rs41mod.c
index 01c3d8a..f70bacb 100644
--- a/demod/mod/rs41mod.c
+++ b/demod/mod/rs41mod.c
@@ -1789,9 +1789,9 @@ static int print_position(gpx_t *gpx, int ec) {
 
             if ( pos > frm_end )  // end of (sub)frame
             {
-                if (gpx->option.ptu && out && !sat && !encrypted && pck_ptu > 0) {
+                if (gpx->option.ptu && !sat && !encrypted && pck_ptu > 0) {
                     err0 = get_PTU(gpx, ofs_ptu, pck_ptu, !err3);
-                    if (!err0) prn_ptu(gpx);
+                    if (!err0 && out) prn_ptu(gpx);
                 }
                 pck_ptu = 0;

I can't test other decoders at the moment to see if they are affected too, and due to different code in each decoder I can't simply grep for the relevant section. Otherwise, I'd submit a pull request.

iMS-100 data availible

we have iMS-100 in use in Indonesia, once a week there is one local to here, and daily from another site 200km away. I have recorded some data as I would be keen to get decoding going here.
I am using SDR# but I am not sure about audio or baseband format and the bit rate.

Would you like samples of the data?

Up until 2 weeks ago they also would put the processed flight data up on this page a couple of hours after the launch. Hopefully they will resume doing this.
http://puslitbang.bmkg.go.id/rason/

regards hca

RS41 temperature and humidity calculation.

Hi. I'm trying to find how to read temperature and humidity directly from the sonde (custom firmware). In file rs41ptu.c I found function to calculate temperature (and humidity too). I would like to know where you got information about calculation and coefficients values. Maybe from sensor manufacturer datasheet?

RTL-SDR vs. HACKRF for RS

Greetings,

I've been trying to receive RS41 signal with RS/rs41. With Daniel Estevez describes, it was successful to get (basic) telemetry and PTU info as follows,

(base) OFRDs-MacBook-Pro:rs41 ofrd$ rtl_fm -f 405e6 -g 20 -s 48e3 - | sox -t s16 -r 48e3 -c 1 - -t wav - lowpass 2800 | ./rs41ptu_ --ecc --crc --ptu
Found 1 device(s):
sox WARN wav: Length in output .wav header will be wrong since can't seek to fix it
0: Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Tuner gain set to 19.70 dB.
Tuned to 405252000 Hz.
Oversampling input by: 21x.
Oversampling output by: 1x.
Buffer size: 8.13ms
Exact sample rate is: 1008000.009613 Hz
Sampling at 1008000 S/s.
Output at 48000 Hz.
sample_rate: 48000
bits : 16
channels : 1
samples/bit: 10.00
512,R2521089,Sa,2020-05-09, 08:50:59.000, 0.00000, 0.00000, 0.00, 0.0, 0.0, 0.0, -273.1, -1.0,# [00000]
513,R2521089,Sa,2020-05-09, 08:51:00.000, 0.00000, 0.00000, 0.00, 0.0, 0.0, 0.0, -273.1, -1.0,# [00000]
514,R2521089,Sa,2020-05-09, 08:51:01.000, 0.00000, 0.00000, 0.00, 0.0, 0.0, 0.0, 24.7, 60.6,# [00000]
515,R2521089,Sa,2020-05-09, 08:51:02.000, 0.00000, 0.00000, 0.00, 0.0, 0.0, 0.0, 24.7, 60.0,# [00000]

Then, I move onto HackRF to do the same and failed so far,

(base) OFRDs-MacBook-Pro:rs41 ofrd$ hackrf_transfer -r - -f 405e6 -g 20 -s 48e3 | sox -t >s16 -r 48e3 -c 1 - -t wav - lowpass 2800 | ./rs41ptu_ --ecc --crc --ptu
sox WARN wav: Length in output .wav header will be wrong since can't seek to fix it
call hackrf_set_sample_rate(48000 Hz/0.048 MHz)
call hackrf_set_freq(405000000 Hz/405.000 MHz)
Stop with Ctrl-C
sample_rate: 48000
bits : 16
channels : 1
samples/bit: 10.00
5.5 MiB / 1.005 sec = 5.5 MiB/second
5.8 MiB / 1.003 sec = 5.7 MiB/second
5.8 MiB / 1.000 sec = 5.8 MiB/second
5.5 MiB / 1.005 sec = 5.5 MiB/second
5.8 MiB / 1.001 sec = 5.8 MiB/second
5.5 MiB / 1.001 sec = 5.5 MiB/second
5.8 MiB / 1.004 sec = 5.7 MiB/second
^C 1.3 MiB / 0.220 sec = 6.0 MiB/second

Exiting...
Total time: 7.24040 s
hackrf_stop_rx() done
hackrf_close() done
hackrf_exit() done
fclose(fd) done
exit

It is still not clear whether I post this issue either here or mossmann/hackrf. Should anyone have similar experience or comments on this matter, please give me a shout.

Ta, Reno

Possible new DFM Model

An interesting one observed by Pit[m] in Germany. A DFM sonde that has lat/lon etc decoding fine, but never obtains an ID.

I've got the raw bit output from auto_rx hosted here: https://rfhead.net/sondes/samples/dfm_unknown.bin

Run with: cat dfm_unknown.bin |./dfm09mod --bin (and whatever options you need)

Might be something new?

Meteosis: help needed

Thanks for decoding Meteosis MTS01.

How can I run ./meteosis decoder on test branch?
I have one Meteosis and when I power it it’s start to transmitting.

Can you help me for decoding it with raw recorded file or directly from rtl_fm?

Thanks

RS41 - dew point

It would be useful to have also a dew point value in the output if "--ptu" option is used. I don't know if this value is directly in data from radiosonde or it could be only calculated from temperature and humidity.

RS41 SGP Pressure Sensor Value

Hi,
I´m using your decoder with radiosonde_auto_rx and in the log of the sounding the value of the pressure sensor is not present.
It´s not implemented yet? Because the model of the sonde -SGP (with sensor pressure) is well detected.
Thanks a lot for your devellopment and efforts.
Javier

fft calculated using iq_server looks a bit strange

Hello,

I'm calculating fft using csdr and using iq_server. So, I suppose that the result should look the same for the same signal but there are some slight differences which makes me wonder if something isn't quite right.

Here is the picture of the spectrum I get using csdr https://i.imgur.com/G9A6erQ.png
Here is the picture of the same region I get using iq_server/iq_client https://i.imgur.com/tazPe0s.png

The pictures are almost the same except that bin in the middle that goes down in case of iq_server. Additionally, the signal strength of the signal on the left (the bigger peak between 402.5 and 403 MHz) is somewhat weaker in case of iq_server

The sample rate is 2400000, number of bins 4096, gain 40, averaging 5 seconds (yes, I patched the iq_server a bit)
(Different noise levels do not play any role)

Thanks

RS41 R-Series No GPS Position

(Duplicating this here from the auto_rx repo)

R-series Vaisala RS41s are being detected, but no GPS data is being extracted.
An audio sample of a sonde that has this issue is here: https://rfhead.net/sondes/brokenrs41.wav
Download and pipe into rs41dm_dft (rs41ecc in auto_rx/) using;
cat brokenrs41.wav | ./rs41ecc
Only the serial number will be shown.

Missing db.txt

Dear all,
I am just trying to get started but do not exactly where to start.

I started ./scan_multi_rs.pl but it complains about a missing db.txt file.

Could you please state what it is and where I can find it and/or how I can generate it?

Thanks in advance for your feedback !

Here is what I did:

casa@DPR:~/RS/RS/scan$ ./scan_multi_rs.pl 

[scan 403660000:404620000:405580000]

rtl_sdr -g 40.2 -p 45 -f 404620000 -s 1920000

Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Detached kernel driver
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
Sampling at 1920000 S/s.
Tuned to 404620000 Hz.
Tuner gain set to 40.20 dB.
Tuner error set to 45 ppm.
Reading samples in async mode...

User cancel, exiting...
Reattached kernel driver
sh: 1: ./scan_pow: not found
rs-peaks: 0
Traceback (most recent call last):
  File "plot_fft_pow.py", line 8, in <module>
    data = np.genfromtxt( 'db.txt', delimiter=';', names=['1','2','3','4','5','6','7','8', '9'] )
  File "/usr/lib/python2.7/dist-packages/numpy/lib/npyio.py", line 1549, in genfromtxt
    fhd = iter(np.lib._datasource.open(fname, 'rbU'))
  File "/usr/lib/python2.7/dist-packages/numpy/lib/_datasource.py", line 151, in open
    return ds.open(path, mode)
  File "/usr/lib/python2.7/dist-packages/numpy/lib/_datasource.py", line 501, in open
    raise IOError("%s not found." % path)
IOError: db.txt not found.

Thanks in advance for your feedback !

David

iq_fm --wav switch creates wav that canno't be played with the aplay

Minor issue. I suppose something is wrong with the wav header added. The rs41mod decoder is able to understand the header but the standard linux tools. So as an example

../iq_svcl/iq_client --freq -0.3771 | ../iq_svcl/iq_fm --wav --lpbw 10 - 48000 32 --bo 16 | aplay -t wav

won't work.
Workaround currently is to treat the stream as raw

../iq_svcl/iq_client --freq -0.3771 | ../iq_svcl/iq_fm --wav --lpbw 10 - 48000 32 --bo 16 | aplay -t raw -r 48000 -f S16_LE -c1

rs_encode GF16RS example code

Hello!

Can you show example usage rs_encode for GF16RS
I CCSDS used rs(10,6) shortned code for primary header protection

Thanks!

Can't seem to get iqserver/iqclient work

I've compile the server and the client as well as recompiled all decoders in demod/mod

The server is started normally

IF : 48000
dec: 50
bps: 32
waiting on port 1280
Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
[R82XX] PLL not locked!
Sampling at 2400000 S/s.
Tuned to 402500000 Hz.
Tuner gain set to automatic.
Reading samples in async mode...
Allocating 15 zero-copy buffers
<0: ADD f=-0.0833>
waiting on port 1280

remark1: I'm sending -0.08333333 and if you scanf it into -0.0833 then you get 80 Hz offset.
remark2: I'm not sure if the sign is correct. If my target freq is above the tuner one then I want baseband be shifted left, so the rate param should be negative. Looks like it's the other way around here. But it doesn't matter

I'm starting the client the following way provided very strong rs41 signal at 402300000

#!/bin/bash

calc_bandpass_param()
{
  #$1 = $SONDE_SIGNAL_BANDWIDTH
  #$2 = $DEMODULATOR_OUTPUT_FREQ

  awk -v sb=$1 -v ofr=$2 'BEGIN{printf("%.8f\n", sb/ofr)}'
}


TUNER_FREQUENCY=402500000
TARGET_FREQUENCY=402300000
TUNER_SAMPLE_RATE=2400000

freq=$(calc_bandpass_param "$((TARGET_FREQUENCY-TUNER_FREQUENCY))" "$TUNER_SAMPLE_RATE")
echo "freq: $freq"

./iq_client --freq "$freq" | tee >(./rs41mod -vx --IQ 0.0 - 48000 32) |
./csdr fmdemod_quadri_cf | ./csdr limit_ff | ./csdr convert_f_s16 |
sox -t raw -esigned-integer -b 16 -r 48000 - -b 8 -c 1 -t wav - highpass 10 gain +5 |
aplay -r 48000 -f S8 -t wav -c 1 -B 500000 &> /dev/null

here is the output:

freq: -0.08333333
sox WARN wav: Length in output .wav header will be wrong since can't seek to fix it
client: 0
sr: 48000
bsp: 32
IF: 48000
dec: 1
^Csox WARN highpass: highpass clipped 1922 samples; decrease volume?
sox WARN gain: gain clipped 10594 samples; decrease volume?
sox WARN dither: dither clipped 9324 samples; decrease volume?

rs41mod doesn't output anything but you can listen what my csdr demodulator outputs
https://ufile.io/0olggr9x
Don't know how long this file be available

But it sounds to be off the target frequency

m10ptu show invalid frames

Using m10ptu sometimes i get incorrect readings (time, date, alt and lat/lon), this does not happen with other decoders like sondemonitor. I wonder if it would be possible to improve the performance or extra frame checks. I don't see that the decoder has any command line switch, would it be possible to show only the valid frames?

(W 2218) Di 2022-07-12 (14:14:50)  lat: 39.XXXXXX  lon: -1.XXXXXX  alt: 878.31
 (W 2218) Di 2022-07-12 (14:14:52)  lat: 39.XXXXXX  lon: -1.XXXXXX  alt: 872.00
 (W 2218) Di 2022-07-12 (14:14:55)  lat: 39.XXXXXX  lon: -1.XXXXXX  alt: 862.64
 (W 272) Di 1985-03-26 (14:14:59)  lat: 39.XXXXXX  lon: -2.XXXXXX alt: 1682.48
 (W 272) Di 1985-03-26 (14:15:18)  lat: 39.XXXXXX  lon: -2.XXXXXX alt: 1261.89
 (W 2218) Di 2022-07-12 (14:15:33)  lat: 39.XXXXXX  lon: -1.XXXXXX  alt: 728.86
 (W 2218) Di 2022-07-12 (14:15:39)  lat: 39.XXXXXX  lon: -1.XXXXXX  alt: 657.37
 (W 1088) Di 2000-11-14 (14:15:57)  lat: 25.XXXXXX  lon: -2.XXXXXX alt: 61.82
 (W 544) Mo 1990-06-11 (23:37:43)  lat: 30.XXXXXX  lon: -2.XXXXXX  alt: 1203.45

build system

Hi,

I found no instruction how to build individual tools and no anny build system is preset. How do you build those tools? Would you like to include anny?

I can help with that, if you wat so.

MP3-H1 sondes bandwidth

Could you tell me what bandwidth have the MP3-H1 sondes? Based on the source code I assume that if baudrate is 2400 and manchester bit encoding is used than they should have at least 5kHz (demodulated) bandwidth. Is that about right? Are there any IQ samples available I could test with?

Thanks

Inclusion in another project

Not really an issue. I just want to thank you for adding GPLv3 license as it will make my life much easier.

I created sonde tracker for RPi last summer, written in Qt: https://github.com/danijelt/sondepi-qt
It's also licensed under GPLv3, so your licensing will allow me to integrate your code directly instead of the current solution, which will make the Android port much simpler.

I'll keep you updated, if interested.

English translation

Hi,

I'm member of group who is interested in weather sonde huting and reverse ingeneering (1), we vere missing GPS decoding which seems to be implemented here. We would like to participate but we does not speek Deutch. Is there posiibility to switch to english. I think it would also make this software more popular worldwide.

(1) https://brmlab.cz/project/weathersonde/start

Weathex WxR-301D decoding

Hi, our MET department has changed their sondes from DFM to Weathex now. Currently we're capturing wav file using sdrsharp and using your weathex decoder, we are able to decode this offline and not real time. We're trying to capture this using our raspi, using rtl-sdr blog dongle but we don't really know how to go about it.

What we know, the signal is coming in wfm mode. Any clue on how we could using rtl_fm and sox to pipe the wav file to the weathex decoder?

Thanks in advance for your help.

73, de 9M2TPT/Mohd

rawhex input

Is it possible to use the raw file as input for different decoders as rs41mod? There is --rawhex option in rs41mod. But, I couldn't find it in other decoders - m10mod, mXXmod, rs92mod etc.
During sounding, I use option -r to write output to the raw file. And after sounding ends, I decode data to readable data or a JSON file.

License

Hello from a fellow radiosonde enthusist!

I noticed that there doesn't appear to be a license clearly defined for this amazing repository.

For those who'd like to use, incorporate, and/or contribute back to the great work that has been done here with these radiosonde decoders, it'd be a big help if this repository was available under an open source license.

GitHub have some documentation available that guides you through adding a license to an existing repository if this is something you are interested in doing.

Thank you @rs1729 and any other contributors to this project for all your work!

iq_server continues fft scanning mode

I tried to request fft scans in a loop but then my script stopped scanning after some time. Didn't look into the problem but added a continues fft scanning mode. So basically if the fft slot allocated during start is not in continues mode then reuse it, otherwise use another available slot. Solution works stable. Didn't want to create a PR for that but here are changes

flux242/radiosonde@7266605#diff-9c15688c9d0f74763039a4867455fd9d13e543df4a8958fb4ed4da802a6e478e

M10 serial number

I am working on a port of your M10 code for radiosonde_auto_rx and to upload to APRS we need a 9 char identifier and you seem to have some knowledge about M10s serial number (https://github.com/rs1729/RS/blob/master/m10/m10ptu.c#L687) so I wanted to have your input.

From what I understand from your code the first number you generate is the sonde type, a hardware information (803 for ptu and 705 for gtop) the second number is always 2 ? and the last seems to be the serial number of the sonde.
Do you have more knowledge of what theses numbers are ? Are you generating the same serial number as official people have ?

Thank you for your work !

MRZ-H1 uBlox Version

Raising this as a placeholder. It appears there is a new version of the MRZ-H1 which uses a uBlox GPS.
Unsure what the differences in telemetry are, but apparently there is one station with a modified or new decoder (unsure) which is decoding it. Trying to get some more information from them about it.

c34dft input arguments parsing problem

./c34dft --json /dev/stdin
--json konnte nicht geoeffnet werden

Additional question: the dft_detect returns C34C50 for both sonde types. As far as I don't know what sonde type it is I have to start both sondes decoders at the same time:

    DFM9) decoder="tee >($DECODERS_PATH/dfm09mod --ptu --ecc --json /dev/stdin > /dev/stderr) | "$DECODERS_PATH"/dfm09mod --ptu --ecc --json -i /dev/stdin > /dev/stderr";bw=10 ;;
  C34C50) decoder="tee >($DECODERS_PATH/c34dft -d1 --ptu --json /dev/stdin > /dev/stderr) | "$DECODERS_PATH"/c50dft -d1 --ptu --json /dev/stdin > /dev/stderr";bw=19.2 ;;

the same for the DFM sonde because I don't know which one it is DFM9 or DFM6

Q1: can the dfm decoder automatically invert the input signal and then adjust returned id type accordingly?
Q2: would it be possible to distinguish between C34 and C50 by returning C34 and C50 separately from the dft_detect?

or am I missing something?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.