Giter Site home page Giter Site logo

projecthorus / radiosonde_auto_rx Goto Github PK

View Code? Open in Web Editor NEW
468.0 59.0 122.0 14.64 MB

Automatically Track Radiosonde Launches using RTLSDR

License: GNU General Public License v3.0

Python 28.22% Shell 0.10% C 57.59% Perl 0.28% CSS 1.33% JavaScript 2.56% HTML 7.50% C++ 2.21% Dockerfile 0.12% Makefile 0.10%

radiosonde_auto_rx's Introduction

auto_rx logo

Automatic Radiosonde Receiver Utilities

Please refer to the auto_rx wiki for the latest information.

This project is built around rs1279's RS demodulators, and provides a set of utilities ('auto_rx') to allow automatic reception and uploading of Radiosonde positions to multiple services, including:

Auto-RX's Web Interface provides a way of seeing the live status of your station, and also a means of reviewing and analysing previous radiosonde flights. Collected meteorological data can be plotted in the common 'Skew-T' format.

Radiosonde Support Matrix

Manufacturer Model Position Temperature Humidity Pressure XDATA
Vaisala RS92-SGP/NGP ✔️ ✔️ ✔️ ✔️ ✔️
Vaisala RS41-SG/SGP/SGM ✔️ ✔️ ✔️ ✔️ (for -SGP) ✔️
Graw DFM06/09/17 ✔️ ✔️ ✔️
Meteomodem M10 ✔️ ✔️ ✔️ Not Sent
Meteomodem M20 ✔️ ✔️ ✔️ ✔️ (For some models)
Intermet Systems iMet-4 ✔️ ✔️ ✔️ ✔️ ✔️
Intermet Systems iMet-54 ✔️ ✔️ ✔️ Not Sent
Lockheed Martin LMS6-400/1680 ✔️ Not Sent
Meisei iMS-100 ✔️ ✔️ ✔️ Not Sent
Meisei RS11G ✔️ ✔️ ✔️ Not Sent
Meteo-Radiy MRZ-H1 (400 MHz) ✔️ ✔️ ✔️ Not Sent
Meteosis MTS01 ✔️ ✔️ Not Sent

Support for other radiosondes may be added as required - please send us sondes to test with! If you have any information about telemetry formats, we'd love to hear from you (see our contact details below).

Improvements from the upstream RS codebase will be merged into this codebase when/where appropriate. A big thanks to rs1729 for continuing to develop and improve these decoders, and working with us to make auto_rx decode all the radiosondes!

Updates

This software is under regular development. Please update regularly to get bug-fixes and improvements!

Please consider joining the Google Group to receive updates on new software features: https://groups.google.com/forum/#!forum/radiosonde_auto_rx

Presentations

Contacts

Licensing Information

All software within this repository is licensed under the GNU General Public License v3. Refer this repositories LICENSE file for the full license text.

Radiosonde telemetry data captured via this software and uploaded into the Sondehub Database system is licensed under Creative Commons BY-SA v2.0. Telemetry data uploaded into the APRS-IS network is generally considered to be released into the public domain.

By uploading data into these systems (by enabling the relevant uploaders within the station.cfg file) you as the user agree for your data to be made available under these licenses. Note that uploading to Sondehub is enabled by default.

radiosonde_auto_rx's People

Contributors

argilo avatar astrotaka avatar bismurphy avatar daniestevez avatar darksidelemm avatar dbrooke avatar drid avatar fsphil avatar gm-stack avatar hsmade avatar icalik avatar jiri-pinkava avatar lukeprior avatar mastmees avatar paulschulz avatar pinkavaj avatar piter-ns avatar rs1729 avatar shenki avatar slomusti avatar snh avatar theskorm avatar trgosk avatar viproz 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  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

radiosonde_auto_rx's Issues

Move to pub sub model

If we use something like mqtt we could seperate the components out and allow switching of various parts a little easier for better flexibility in user workflows and integrations.

Non return to scan on failure of Almanac or Emperis download

Mark,

My home station has been working very well until internet shaping came into effect.
Ping timeouts , DNS lookup timeouts.
I have found my system twice now in a "RS92 detect" mode but gone now further.
Almanac and Empheris dowload failure modes are indicated when gps_grabber.py is run.
System remains at "RS92 dectect" and does not fall back to frequency scan.
//
I shall also look closely at how to updgrade rather than a clean install

Regards Andrew VK4TEC

ASCII ART frequency scan

Is it possible to show in ascii art something like this to show the results of the freq scan ?

400.05 ** ( 36 )
401.00 ** ( 36 )
401.05 ********************** ( 78 )
402.00 ** ( 37 )

Giving a sort of pseudo spectrum analyser

Andrew Rich VK4TEC

Check for presence of binaries on startup.

Currently we don't check if the required binaries (rs_detect, the various demods, etc) exist on startup.
This can lead to some odd bugs where everything appears to run smoothly, but sondes are not detected.

We need a function (probably in autorx.utils) that checks these binaries are available, and exits immediately if they are not there.

Replay from wav file

I am not sure how this is achievable.

I would like to make a recording in SDR# in WAV format and then be able to pick that file up my the radiosonde_auto_rx processing scripts.

The idea being that you could go to a hill and record a great pass in wav and then come home and replay or use for demos at radio clubs.

You would have to be sure that you are not connected to the net to allow false packets to pass.

This enhancement would be handy for testing new features and additions, not withstanding having a live radio sonde or a test radio sonde.

I am not sure if the GPS will not work as it is not real time with respect to the empheris data

Andrew VK4TEC

Configuration parsing needs to be done better

Every time we add a config variable we break backwards compatibility with users.

We should probably use the configparser library to have a sensible default file and then read in the users config.

We should also configure a command line arg to read in another config file

Check if Habitat Payload doc exists before creating one.

Currently exporting payload telemetry out of Habitat is difficult, because each new payload document created for a given callsign supersedes the previous one. As a result, you need to export telemetry from multiple payload IDs to obtain a complete flight.

It would be better if auto_rx checks to see if there is a payload document that matches the current callsign before creating a new document. This way we should end up with (hopefully) a single payload document, which can be used to export payload telemetry.

This is going to require digging through Habitat as to how we query payload documents, and then filtering them by callsign.

Display old log to the web server page.

Add to the local web page the possibility to read the old log (text and / or cartography).
(if possible...!!!)
Or find a way to convert log in .kml format to read it later (or without internet conection)

Receive more than one sonde signal at once

As a user I would like to receive multiple sondes at once when BoM have a failed launch and need to use another frequency

We should be able to multiplex rtl_fm to receive multiple sondes at once. It might be hard to do detection though.

don't log as python

adding the following to auto_rx.service logs as auto_rx rather than python

SyslogIdentifier=auto_rx

Payload Position Sanity Check

We often see ridiculous jumps in position on RS92 sondes, due to bad calculated positions. Short of fixing the position calculation code (urghhhh), a simpler solution is to have some kind of filter on the position data.
Options include:

  • Discard if change in position is too great (dangerous if we get a bad position as the first packet)
  • Discard if greater than a certain radius from the receiver location (probably better)

Both of these options can result in limiting the capabilities of this receiver system, but it's probably better than spamming the tracker with bad positions. A radius of 1000km would reasonably cover all radiosonde flights, and limit most of the bad positions.

ImportError: No module named crcmod

i get this error, any idea how to fix?

a@a:~/radiosonde_auto_rx/auto_rx$ python auto_rx.py
Traceback (most recent call last):
File "auto_rx.py", line 22, in
from autorx.habitat import HabitatUploader
File "/home/a/radiosonde_auto_rx/auto_rx/autorx/habitat.py", line 8, in
import crcmod
ImportError: No module named crcmod

Linux a 4.10.0-35-generic #39~16.04.1-Ubuntu SMP Wed Sep 13 09:02:42 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2

Text file dumpto log file for kml preparation ( to generate a kml )

Enhancement Request:

I would like to create and append to a text file whilst the RadioSonde is being received

If possible the filename would be called ".log" where is the radiosonde id N123456.log for example

The log file would contain N123456.log :-

date,time,id,lat,lon,speed, ( any other fields available )
date,time,id,lat,lon,speed, ( any other fields available )
date,time,id,lat,lon,speed, ( any other fields available )
date,time,id,lat,lon,speed, ( any other fields available )
date,time,id,lat,lon,speed, ( any other fields available )

The idea being that a user can use perl or phython to scan for /auto_rx/*.log

And parse and create kml files. As needed.

For the purpose of

  1. Displaying high res tracks of the radio sonde path ( as APRS is only sent xx seconds )
  2. For creating coverage maps in google earth
  3. For modelling antenna patterns based on location and signal strength

Either hard coded or an option flag on auto_rx.py

Cheers

Andrew VK4TEC

Enhancement Request: Specify APRS server

I would like to be able to direct the APRS data towards a defined server.

Either rotate.aprs.net or say UI_VIEW ( 192.168.1.14 )

This is to allow access and to APRS stream being sent.

This is believe is hard coded and round robins.

Andrew

Multiple data strings from the same Sonde should be in one file

Last night I had the first auto_rx results from a sonde 60 - 100 km away from me.

I see 4 items in the log with the same sonde serial number each containing one single string of data.

Guess it would be better if those go in one file together ?

Thanks,
Ben

-rw-r--r-- 1 debian debian 82 Jan 4 00:03 20180104-000305_M4530114_RS41_403900.log
-rw-r--r-- 1 debian debian 83 Jan 4 00:29 20180104-002941_M4530114_RS41_403900.log
-rw-r--r-- 1 debian debian 83 Jan 4 00:35 20180104-003549_M4530114_RS41_403900.log
-rw-r--r-- 1 debian debian 83 Jan 4 00:39 20180104-003918_M4530114_RS41_403900.log

Graw DFM06/09 Support

Add support for the Graw DFM06/DFM09 Radiosondes.
Big thanks to OZ1SKY for supplying a DFM09 to develop with!

Support for AirSpy Mini ( airspy_rx instead of rtl_fm )

Hi Mark,

I have an AirSpy Mini I would like to utilise for this instead of an RTL-SDR

Airspy mini uses a tool called "airspy_rx" instead of "rtl_fm"

airspy_rx -r /dev/stdout -f 401.500 ( produces data to stdout )

airspy mini can do 3 MSPS or 6 MSPS

I think you are just using rtl_fm and rtl_power ?

The options are shown below for airspy_rx

Do you think you could do me hack, My radio sondes are on 401.500 MHz

airspy_info reveals

airspy_lib_version: 1.0.9

Found AirSpy board 1
Board ID Number: 0 (AIRSPY)
Firmware Version: AirSpy MINI v1.0.0-rc9-0-ga56adfd 2016-06-12
Part ID Number: 0x6906002B 0x00000030
Serial Number: 0x644064DC324645CD
Supported sample rates:
6.000000 MSPS
3.000000 MSPS
Close board 1

//

airspy_rx v1.0.5 23 April 2016
Usage:
-r : Receive data into file
-w Receive data into file with WAV header and automatic name
This is for SDR# compatibility and may not work with other software
[-s serial_number_64bits]: Open device with specified 64bits serial number
[-p packing]: Set packing for samples,
1=enabled(12bits packed), 0=disabled(default 16bits not packed)
[-f frequency_MHz]: Set frequency in MHz between [24, 1900] (default 900MHz)
[-a sample_rate]: Set sample rate
[-t sample_type]: Set sample type,
0=FLOAT32_IQ, 1=FLOAT32_REAL, 2=INT16_IQ(default), 3=INT16_REAL, 4=U16_REAL, 5=RAW
[-b biast]: Set Bias Tee, 1=enabled, 0=disabled(default)
[-v vga_gain]: Set VGA/IF gain, 0-15 (default 5)
[-m mixer_gain]: Set Mixer gain, 0-15 (default 5)
[-l lna_gain]: Set LNA gain, 0-14 (default 1)
[-g linearity_gain]: Set linearity simplified gain, 0-21
[-h sensivity_gain]: Set sensitivity simplified gain, 0-21
[-n num_samples]: Number of samples to transfer (default is unlimited)
[-d]: Verbose mode

-- Andrew VK4TEC --

build.sh warnings

reset_usb.c: In function ‘main’:
reset_usb.c:21:2: warning: implicit declaration of function ‘close’ [-Wimplicit-function-declaration]
close(fd);
^~~~~
rs_main41.c:20:5: warning: data definition has no type or storage class
option_csv = 0;
^~~~~~~~~~
rs_main41.c:20:5: warning: type defaults to ‘int’ in declaration of ‘option_csv’ [-Wimplicit-int]
rs_main92.c:20:5: warning: data definition has no type or storage class
option_csv = 0; // Print output as CSV
^~~~~~~~~~
rs_main92.c:20:5: warning: type defaults to ‘int’ in declaration of ‘option_csv’ [-Wimplicit-int]
Done!

Add skip option

If the software detects a probe, the decoder remains attached to this probe.
But as there are many probes in the air it would be good if the decoder could jump to the next probe after a few seconds.

Create payload document for each sonde

To make tracking of multiple sondes at once easier we should create a payload per sonde.

Example call to create payload.

curl 'http://habitat.habhub.org/habitat/' -H 'Content-Type: application/json' --data-binary '{"type":"payload_configuration","name":"YMMLSONDE4","time_created":"2018-01-01T09:50:20+11:00","metadata":{"description":"Bureau of Met Radiosonde, Melbourne, Second Launch"},"transmissions":[{"frequency":401500000,"modulation":"RTTY","mode":"USB","encoding":"ASCII-8","parity":"none","stop":2,"shift":350,"baud":50,"description":"DUMMY ENTRY, DATA IS VIA radiosonde_auto_rx"}],"sentences":[{"protocol":"UKHAS","callsign":"YMMLSONDE4","checksum":"crc16-ccitt","fields":[{"name":"sentence_id","sensor":"base.ascii_int"},{"name":"time","sensor":"stdtelem.time"},{"name":"latitude","sensor":"stdtelem.coordinate","format":"dd.dddd"},{"name":"longitude","sensor":"stdtelem.coordinate","format":"dd.dddd"},{"name":"altitude","sensor":"base.ascii_int"},{"name":"speed","sensor":"base.ascii_float"},{"name":"temperature_external","sensor":"base.ascii_float"},{"name":"humidity","sensor":"base.ascii_float"},{"name":"comment","sensor":"base.string"}],"filters":{"post":[{"filter":"common.invalid_location_zero","type":"normal"}]},"description":"radiosonde_auto_rx to Habitat Bridge"}]}'

Logging of individual sonde information.

The move to having auto_rx running constantly under systemd means that the log file now contains data for all sondes.
It would perhaps be useful to have a per-sonde log file saved somewhere.

auto_rx mobile : GPS updates to LOC

I have at home a static auto_rx.py box that works well and shows up as a tower.
I have in my car an iPhone and iPad running HAB HUB.

I can get my iphone to send a chase car location.

Might involve some work

I am currently sending my APRS location to rotate.aprs.net using a perl script and a GPS/GLONASS on USB /dev/ttyUSB0

Suggestion:

For an all in one solution for the auto_rx Pi3, how hard would it be to add a dynamic ( changing ) location based on GPS on board the Pi and send a chase car from the auto_rx suite

Andrew

Control Rotctld Rotator

Hamlib's rotctld is fairly easy to communicate with. It would be useful to add an option to calculate azimuth/elevations and push these to rotctld as a means of pointing a rotator.

Config file additions:

  • User home location in the config file (lat/long/alt - we have some of this already)
  • rotctld hostname/port option in config file
  • Rotator 'home' position, for use on startup, and whenever the system goes back into scan mode.

Better Radiosonde callsign filtering.

Corrupt callsigns occur fairly regularly with RS92s, and somewhat less regularly with RS41s.

At a minimum, we should be checking for

  • Zero-length callsigns (Which end up showing as 'RS_' on the tracker)
  • Callsigns with invalid characters (i.e. anything other than a capital letter and 7 digits)

Ideally we should be looking deeper into the rs92 and rs41 decoders, and figuring out why invalid callsigns are being passed to us in the first place!

log_power.csv missing on initial build

New install

/home/pi/radiosonde_auto_rx/auto_rx/log_power.csv missing

touch /home/pi/radiosonde_auto_rx/auto_rx/log_power.csv fixed it
sudo chmod 777 /home/pi/radiosonde_auto_rx/auto_rx/ log then shows scanning happening

Andrew

RTLSDR Gain Issues

Currently the rtlsdr_gain setting is essentially ignored.

Fix this so it is used correctly.

Ephemeris data Backup Option

We should look at allowing a 'last resort' source for ephemeris data, in case the CDDIS servers go down.
This could simply be a URL that gets curl'd if the FTP servers can't be accessed. We should do some basic sanity checking of the gathered data before using it though. This would open the door to using a 'local' source of ephemeris data, gathered using something like this: https://github.com/darksidelemm/ublox_ephemeris

Port to Python 3

We should really be ditching Python 2.7 wherever possible.

A lot of this code should 'just work' under Python 3, but there will be a few gotchas, like various imports, and wherever we're dealing with reading stdout (bytes vs strings)

Critical info captured in log files ( Habitat ID )

Mark,

I am working on a HTML GUI , and making logs available via apache web server

Could you please add the HABITAT ID for example "VK4TEC_HOME" to system.log

INFO: Habitat Listener: Listener information uploaded. Perhaps LAT and LON ?

My LAT LON
My Habitat ID
Sonde ID
Sonde Lat / Lon
Sonde Height
GPS Almanac attained
GPS Ephemeis attained

Example log files being cut at the moment

Soon to be replaced with MySQL HTML GUI

http://59.167.159.165/

//

20180405-064906_system.log:2018-04-05 06:50:31,810 INFO:Habitat Listener: Created a payload document for RS_N1143473
20180405-065243_system.log:2018-04-05 06:54:01,016 INFO:Habitat Listener: Created a payload document for RS_N1143473
20180405-065639_system.log:2018-04-05 06:58:00,932 INFO:Habitat Listener: Created a payload document for RS_N1143473
20180405-121918_system.log:2018-04-05 17:09:01,662 INFO:Habitat Listener: Created a payload document for RS_N1033720
20180405-121918_system.log:2018-04-05 23:20:01,517 INFO:Habitat Listener: Created a payload document for RS_N1333230
20180406-114022_system.log:2018-04-06 11:40:25,166 INFO:Habitat Listener: Listener information uploaded.
20180406-114022_system.log:2018-04-06 17:10:58,978 INFO:Habitat Listener: Listener information uploaded.
20180406-114022_system.log:2018-04-06 17:11:31,106 INFO:Habitat Listener: Created a payload document for RS_N1033662
20180406-114022_system.log:2018-04-06 18:48:18,829 INFO:Habitat Listener: Listener information uploaded.
20180406-114022_system.log:2018-04-06 18:52:02,883 INFO:Habitat Listener: Listener information uploaded.
20180406-114022_system.log:2018-04-06 18:54:41,607 INFO:Habitat Listener: Listener information uploaded.
20180406-114022_system.log:2018-04-06 23:18:52,717 INFO:Habitat Listener: Listener information uploaded.
20180406-114022_system.log:2018-04-06 23:19:31,051 INFO:Habitat Listener: Created a payload document for RS_N1033651

Make APRS uploader not be hacky.

The current APRS upload implementation is a bit of a hack, and just pushes objects into APRS-IS, without any proper path information. It also connects, and immediately disconnects.

An updated APRS-IS uploader should:

  • Log in and stay logged in (will need to apply some sort of filtering to avoid getting lots of APRS-IS data)
  • Optionally upload a home station position.
  • Include timestamps correctly.
  • Actually be compliant with the APRS spec: http://www.aprs.org/doc/APRS101.PDF
  • Upload packets in a format compatible with radiosondy.info's APRS-IS server.

Station Log

I can see an advantage in keeping a simple station log

On acquisition or sonde , "Detected Sonde type xx "

Append to a station.log

date,time,type,id,freq
date,time,type,id,freq
date,time,type,id,freq
date,time,type,id,freq

Perhaps on "sonde lock" an entry could be added

This would assist in presenting a simple running log of sondes received for house keeping

Andrew

Package as deb?

We could probably make this a debian package that users could install

pip install of flask etc. requires python-setuptools

Suggest adding python-setuptools to the apt-get install line in 3.1 of the wiki page.

Found during a fresh install on a 2018-06-27-raspbian-stretch-lite image so it's possible a full image includes python-setuptools but it shouldn't harm to add it anyway.

Can we split the sonde logs and the system logs

In preparing a parse file for generating kml from sonde files, i had to distinguish between system and sonde log files.

The only way I could to see to do this was a foreach on /log/RS.log

Can we go for these two directories for logging to seperate out the sonde / system logs

/log/sonde
/log/system

This would seperate out the sonde log files from the system ones.

Enabling ease for future enhancements , by not having to filter system from sonde files.

Cheers

Andrew VK4TEC

Spur removal

We should be able to make a black list of spurs

Move RS to a submodule

This project should focus specifically on auto_rx and just use a submodule version of RS. This will need to a seperate repo with the JSON patches included and instructions updated on how to pull down submodule.

log file directory permissions on new build

Apr 05 05:48:17 VK4TEC_HOME systemd[1]: auto_rx.service: Service hold-off time over, scheduling restart.
Apr 05 05:48:17 VK4TEC_HOME systemd[1]: Stopped auto_rx.
Apr 05 05:48:17 VK4TEC_HOME systemd[1]: Started auto_rx.
Apr 05 05:48:17 VK4TEC_HOME auto_rx[3347]: Traceback (most recent call last):
Apr 05 05:48:17 VK4TEC_HOME auto_rx[3347]: File "/home/pi/radiosonde_auto_rx/auto_rx/auto_rx.py", line 881, in
Apr 05 05:48:17 VK4TEC_HOME auto_rx[3347]: logging.basicConfig(format='%(asctime)s %(levelname)s:%(message)s', filename=datetime.datetime.utcnow().strftime("log/%Y%m%d-%H%M%S_system.log"), level=logging_level)
Apr 05 05:48:17 VK4TEC_HOME auto_rx[3347]: File "/usr/lib/python2.7/logging/init.py", line 1547, in basicConfig
Apr 05 05:48:17 VK4TEC_HOME auto_rx[3347]: hdlr = FileHandler(filename, mode)
Apr 05 05:48:17 VK4TEC_HOME auto_rx[3347]: File "/usr/lib/python2.7/logging/init.py", line 913, in init
Apr 05 05:48:17 VK4TEC_HOME auto_rx[3347]: StreamHandler.init(self, self._open())
Apr 05 05:48:17 VK4TEC_HOME auto_rx[3347]: File "/usr/lib/python2.7/logging/init.py", line 943, in _open
Apr 05 05:48:17 VK4TEC_HOME auto_rx[3347]: stream = open(self.baseFilename, self.mode)
Apr 05 05:48:17 VK4TEC_HOME auto_rx[3347]: IOError: [Errno 13] Permission denied: '/home/pi/radiosonde_auto_rx/auto_rx/log/20180405-054817_system.log'
Apr 05 05:48:17 VK4TEC_HOME systemd[1]: auto_rx.service: Main process exited, code=exited, status=1/FAILURE
Apr 05 05:48:17 VK4TEC_HOME systemd[1]: auto_rx.service: Unit entered failed state.
Apr 05 05:48:17 VK4TEC_HOME systemd[1]: auto_rx.service: Failed with result 'exit-code'.
Apr 05 05:48:20 VK4TEC_HOME systemd[1]: auto_rx.service: Service hold-off time over, scheduling restart.
Apr 05 05:48:20 VK4TEC_HOME systemd[1]: Stopped auto_rx.
Apr 05 05:48:20 VK4TEC_HOME systemd[1]: Started auto_rx.
Apr 05 05:48:21 VK4TEC_HOME auto_rx[3357]: Traceback (most recent call last):
Apr 05 05:48:21 VK4TEC_HOME auto_rx[3357]: File "/home/pi/radiosonde_auto_rx/auto_rx/auto_rx.py", line 881, in
Apr 05 05:48:21 VK4TEC_HOME auto_rx[3357]: logging.basicConfig(format='%(asctime)s %(levelname)s:%(message)s', filename=datetime.datetime.utcnow().strftime("log/%Y%m%d-%H%M%S_system.log"), level=logging_level)
Apr 05 05:48:21 VK4TEC_HOME auto_rx[3357]: File "/usr/lib/python2.7/logging/init.py", line 1547, in basicConfig
Apr 05 05:48:21 VK4TEC_HOME auto_rx[3357]: hdlr = FileHandler(filename, mode)
Apr 05 05:48:21 VK4TEC_HOME auto_rx[3357]: File "/usr/lib/python2.7/logging/init.py", line 913, in init
Apr 05 05:48:21 VK4TEC_HOME auto_rx[3357]: StreamHandler.init(self, self._open())
Apr 05 05:48:21 VK4TEC_HOME auto_rx[3357]: File "/usr/lib/python2.7/logging/init.py", line 943, in _open
Apr 05 05:48:21 VK4TEC_HOME auto_rx[3357]: stream = open(self.baseFilename, self.mode)
Apr 05 05:48:21 VK4TEC_HOME auto_rx[3357]: IOError: [Errno 13] Permission denied: '/home/pi/radiosonde_auto_rx/auto_rx/log/20180405-054821_system.log'
Apr 05 05:48:21 VK4TEC_HOME systemd[1]: auto_rx.service: Main process exited, code=exited, status=1/FAILURE
Apr 05 05:48:21 VK4TEC_HOME systemd[1]: auto_rx.service: Unit entered failed state.
Apr 05 05:48:21 VK4TEC_HOME systemd[1]: auto_rx.service: Failed with result 'exit-code'.

Create kml from sonde log files

Creating` kml files from /log/*RS*

Outputs to /var/www/html/radiosondes.kml

( you can pick this up from google earth with a refresh )

Please see Andrew for latest "sonde_to_kml.pl"

A

Adding an LED to the Pi3 to indicate RX

Without a screen it is quite hard to guage when a Radio Sonde lock has happened.

When i was working on a GPS/GLONASS tracker I found it handy to have a couple of LED's on the GPIO

I would like to add this functionality to indacate a SONDE LOCK

A Blue LED might be used to indicate RadioSone lock.

Here is the code I used to the GPS logger.

This is "flash LED" code but there is no reason why the GPIO cant be turned ON and OFF with RX

If unused, this should have no affect on people not using the GPIO indicator.

It would all value and make the project more attractive

#!/usr/bin/python
import RPi.GPIO as GPIO ## Import GPIO library
import time
GPIO.setmode(GPIO.BOARD) ## Use board pin numbering
GPIO.setup(7, GPIO.OUT) ## Setup GPIO Pin 7 to OUT
GPIO.output(7,True) ## Turn on GPIO pin 7
time.sleep(1)
GPIO.output(7,False);

Lock up on RX RS41

Mark,

I have seen this twice now. And it might have something to do with the migration to RS41

I get a valid decode and then it just stays in that state and does not drop back to scanning.

system log tail

2018-04-29 00:13:24,359 INFO:Attempting sonde detection on 401.570 MHz
2018-04-29 00:13:29,430 INFO:Attempting sonde detection on 401.170 MHz
2018-04-29 00:13:34,497 WARNING:Search attempt failed, 5 attempts remaining. Waiting 10 seconds.
2018-04-29 00:13:44,546 INFO:Running frequency scan.
2018-04-29 00:14:05,243 INFO:Performing scan on 3 frequencies (MHz): [ 401.57 401.17 401.96]
2018-04-29 00:14:05,245 INFO:Attempting sonde detection on 401.570 MHz
2018-04-29 00:14:10,323 INFO:Attempting sonde detection on 401.170 MHz
2018-04-29 00:14:15,417 INFO:Attempting sonde detection on 401.960 MHz
2018-04-29 00:14:20,499 WARNING:Search attempt failed, 4 attempts remaining. Waiting 10 seconds.
2018-04-29 00:14:30,590 INFO:Running frequency scan.
2018-04-29 00:14:51,316 INFO:Performing scan on 4 frequencies (MHz): [ 401.57 401.17 401.48 402.76]
2018-04-29 00:14:51,316 INFO:Attempting sonde detection on 401.570 MHz
2018-04-29 00:14:56,388 INFO:Attempting sonde detection on 401.170 MHz
2018-04-29 00:15:01,492 INFO:Attempting sonde detection on 401.480 MHz
2018-04-29 00:15:04,601 INFO:Detected a RS41!
2018-04-29 00:15:04,692 INFO:Starting decoding of RS41 on 401.480 MHz
< lock up >

service log

-- Logs begin at Thu 2016-11-03 17:16:42 UTC. --
Apr 29 00:15:34 vk4tec_home auto_rx[597]: response = self._open(req, data)
Apr 29 00:15:34 vk4tec_home auto_rx[597]: File "/usr/lib/python2.7/urllib2.py", line 447, in _open
Apr 29 00:15:34 vk4tec_home auto_rx[597]: '_open', req)
Apr 29 00:15:34 vk4tec_home auto_rx[597]: File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
Apr 29 00:15:34 vk4tec_home auto_rx[597]: result = func(*args)
Apr 29 00:15:34 vk4tec_home auto_rx[597]: File "/usr/lib/python2.7/urllib2.py", line 1228, in http_open
Apr 29 00:15:34 vk4tec_home auto_rx[597]: return self.do_open(httplib.HTTPConnection, req)
Apr 29 00:15:34 vk4tec_home auto_rx[597]: File "/usr/lib/python2.7/urllib2.py", line 1198, in do_open
Apr 29 00:15:34 vk4tec_home auto_rx[597]: raise URLError(err)
Apr 29 00:15:34 vk4tec_home auto_rx[597]: urllib2.URLError: <urlopen error [Errno 101] Network is unreachable>

tail sonde log

2018-04-29T00:00:25.000,N3710968,5467,-27.17505,153.75113,15740.9,-71.4,RS41,401.480
2018-04-29T00:00:26.000,N3710968,5468,-27.17510,153.75146,15744.9,-71.4,RS41,401.480
2018-04-29T00:00:28.000,N3710968,5470,-27.17519,153.75213,15758.9,-71.4,RS41,401.480
2018-04-29T00:00:29.000,N3710968,5471,-27.17523,153.75247,15763.3,-71.3,RS41,401.480
2018-04-29T00:00:30.000,N3710968,5472,-27.17527,153.75280,15770.1,-71.2,RS41,401.480
2018-04-29T00:00:31.000,N3710968,5473,-27.17532,153.75314,15776.6,-71.2,RS41,401.480
2018-04-29T00:00:32.000,N3710968,5474,-27.17537,153.75347,15780.9,-71.2,RS41,401.480
2018-04-29T00:00:33.000,N3710968,5475,-27.17541,153.75381,15787.5,-71.2,RS41,401.480
2018-04-29T00:00:34.000,N3710968,5476,-27.17546,153.75414,15793.5,-71.2,RS41,401.480
2018-04-29T00:00:35.000,N3710968,5477,-27.17551,153.75448,15797.9,-71.3,RS41,401.480

Looks like a network not reachable error ?

Andrew

Add RTLSDR Product/Device ID Lookup Table.

It's come to my attention that there are RTLSDRs out there with 'weird' product/device IDs.
i.e.:
Bus 001 Device 004: ID 1d19:1102 Dexatek Technology Ltd. DK mini DVB-T Dongle
Bus 001 Device 005: ID 0ccd:00b3 TerraTec Electronic GmbH NOXON DAB/DAB+ Stick

These devices don't get picked up by find_rtlsdr: https://github.com/projecthorus/radiosonde_auto_rx/blob/master/auto_rx/autorx/utils.py#L385

There's probably a list of known IDs in the rtl-sdr source we can pull in and check against instead of doing the current check for 'RTL283*' that we do now.

Add bearing/range

Add bearing/range between "home location" and "sonde location" on the web server page.
(fake example in the attached image)
screenshot at 2018-07-09 08 11 20

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.