Coder Social home page Coder Social logo

microp11 / iridiumlive Goto Github PK

View Code? Open in Web Editor NEW
48.0 9.0 10.0 1.46 MB

web visualizer for gr-iridium frames

License: GNU General Public License v3.0

C# 42.67% HTML 35.31% JavaScript 5.54% CSS 15.92% Python 0.56%
blazor iridiumlive gr-iridium iridium-toolkit iridium-satellites

iridiumlive's Introduction

IridiumLive

Welcome to IridiumLive!

IridiumLive is a Blazor server application which allows for the real-time vizualization of the iridium satellites as they pass above your location.

It is another tool which allows for the visualization of live data coming from gr-iridium. Will not work without it.

You install the application in your local network, and use the browser to interact with it.

Setup

Binaries: https://github.com/microp11/iridiumlive/releases

To build/run from source you need dotnet version 3.1.* installed, then run:

git clone https://github.com/microp11/iridiumlive
cd iridiumlive
cd IridiumLive
dotnet run

At this time the following ports have been hard coded:

 7777: IridiumLive server port,
15007: udp port for receiving data from gr-iridium and iridium-toolkit.

If the ports cannot be bound to, use:

lsof -i :7777
lsof -i :15007

to find out what's attached to these port(s).

You could use:

lsof -ti :7777 | xargs --no-run-if-empty kill -9

to forcefully clear out the port as part of your pre-start routine.

The data will be provided by your personal install of gr-iridium and iridium-toolkit (see gr-iridium and iridium-toolkit). See bottom of page for quick instructions.

  1. On the same machine as gr-iridium download and extract the python udp transmitter udp-for-il.py. Please install in the same folder as gr-iridium.
  2. Depending of your intended OS target, download and extract the appropriate IridiumLive archive. There is no installation needed, simply extract in a folder of its own. You can extract either on the same machine or to a different one.
  3. In the udp-for-il.py script, the server_address (192.168.2.10) denotes the machine where IridiumLive is installed. Modify it accordingly. This address is also where you will open your browser to later on:
...
import socket

ap = ("192.168.2.10", 15007)
sk = socket.socket(family=socket.AF_INET, type=socket.SOCK_DGRAM)
def sendOverUdp(line):
...
  1. Change the center frequency of the gr-iridium decoder to include the Ring Alert band as described at min 9 in the Stefan “Sec” Zehl, schneider during their presentation at The Eleventh HOPE (2016): Iridium Satellite Hacking.
  2. Instantiate the iridium receiver and pipe through decoder, filter and udp transmitter adapting the following command line:
user@computer:~/gr-iridium$ iridium-extractor --offline --multi-frame examples/hackrf.conf | ~/iridium-toolkit/iridium-parser.py -p /dev/stdin /dev/stdout | python udp-for-il.py
  1. Only continue to next step if you see udp lines being transmitted:
191
1576397118 | i:  68/s | i_avg:  19/s | q:    0 | q_max:    7 | o: 106/s | ok:  63% | ok:  43/s | ok_avg:  51% | ok:      32064 | ok_avg:   9/s | d: 0
1576397119 | i:  67/s | i_avg:  19/s | q:    0 | q_max:    6 | o: 103/s | ok:  64% | ok:  43/s | ok_avg:  51% | ok:      32108 | ok_avg:   9/s | d: 0
1576397120 | i:  58/s | i_avg:  19/s | q:    0 | q_max:    5 | o:  91/s | ok:  57% | ok:  33/s | ok_avg:  51% | ok:      32142 | ok_avg:   9/s | d: 0
1576397121 | i:  69/s | i_avg:  19/s | q:    0 | q_max:    4 | o: 115/s | ok:  61% | ok:  42/s | ok_avg:  51% | ok:      32185 | ok_avg:   9/s | d: 0
169
173
191
169 <- the length of one blob sent over UDP
173
191
169
  1. Run IridiumLive.
  2. Set up time accurately on the gr-iridium machine!
  3. Open any browser at http://server_address:7777 and enjoy!

Credits

Disclaimer

This was my first .NET Core web app. Blazor on top of it. Be merciless and gentle!

Screenshot

Quick install on gr-iridium and iridium-toolkit for Rapberry Pi

The following has been tested on RPi 400 with https://sourceforge.net/projects/dragonos-pi64/
Currently DragonOs contains gnuradio 3.8+
Use the following to have your gr-iridium aligned with these versions:

git clone -b maint-3.8 https://github.com/muccc/gr-iridium.git
cd gr-iridium
mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

git clone https://github.com/muccc/iridium-toolkit.git
git checkout -b local-branch-from-commit e173069f43189ee7dfca2875f56ac284e74b17e4

iridiumlive's People

Contributors

microp11 avatar paul-maxan 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iridiumlive's Issues

Iridium live not displaying any information

I am using latest builds of iridium-live and iridium-toolkit. all changes were made to udp-for-il is running and sending data over udp. The same verified using wireshark. But, iridium-live is not showing any data. Anyone who knows the workaround?

Known deficiencies and new ideas/requests (add please!)

  1. The time is incorrect, see Iridium epoch changes.
  2. If the network fails, blazor cannot in all situations recover.
  3. Add user settings for location, draw a symbol on the map as well, something like ------o------ so we know where the middle is.
  4. Add a live graph distribution of incoming blobs.
  5. Add authentication.
  6. Add custom settings.
  7. Rx quality as heatmap? Then select/deselect sat trails vs sat focus.

Coordinates wrong value

Now new problem coordinates are calculated incorrectly, e.g. 49.21N as 4921 N and 7.01 E as 701 E. Where is the mistake?grts radioman1511

Fix the polling mechanism

Most likely the polling mechanism implemented is incorrect in the current server context. It looks like when a tab is closed by the user (and not by navigating to another page). This needs be further investigated and the right mechanism implemented, perhaps a pooling starting at the user level in JS.

Originally posted by @microp11 in #1 (comment)

live page no data

fail : microsoft. entity framework core. database. command[20102]

No red or blue dots on the Map

I found there are no red or blue dots on the live map of the iridiumlive local website (localhost:7777). The centre frequency of gr-iridium was set at 1626.0MHz with 2MHz bandwidth, and the UDP was successfully connected.
github

openstreetmap not displayed

openstreetmap not displayed on the website . i start the application with followed commands:
1 cd iridiumlive
2 cd IridiumLive
3 dotnet run
Is that right?
grts radioman1511

Altitude

blue dots indicate signal activity in ground vecinity in km or m ? What is correct? grts radioman1511. Happy new year.

Coordinates 2

Under Debian 9 and 10 the program does not work properly (coordinates wrong), if I start and debug in terminal with kdbg IridiumLive what a miracle, it works and the marker is set correctly, I don't know what the error is. Without the debugger kdbg it´s not work . The parser works well and the Udp packets it´s right. grts radioman1511
IridiumLive.zip

Mac Build?

Is it possible to get a mac build or, can I help you get it built?

Timing vs. OS

The current mechanism for refreshing the page is timer based polling. The queries are terrible (tens or hundreds of ms) and on the RPi 1 second refresh rate is way too fast. If you want to run the app on a RPi please recompile with 10s refresh rate, not the 1 second as current NYE pre-release version is.

runtime error

getting following error when attempting to run:

~/iridiumlive/IridiumLive/bin/Debug/netcoreapp3.1/IridiumLive: relocation error: ~/iridiumlive/IridiumLive/bin/Debug/netcoreapp3.1/IridiumLive: symbol __pthread_key_create version GLIBC_2.2.5 not defined in file libpthread.so.0 with link time reference

I'm using all new build of dotnet, gr-iridium, and iridiumtoolkit. Any ideas?

Add user location

Add user settings for location, draw a symbol on the map as well, something like ------o------ so we know where the middle is.
Allow location editing.

can't get it to work

Hi, I must be stupid because I have been trying to run this for the past two hours and haven't figured it out yet. First, I don't think the UDP transmission is correct, I get something like this:

iridium-extractor --offline --multi-frame examples/rtl-sdr.conf | ~/iridium-toolkit/iridium-parser.py -p /dev/stdin /dev/stdout | python udp-for-il.py

1712365249 | srr: 98.2% | i_avg: 1/s | q_max: 0 | i_ok: 0% | o: 0/s | ok: 0% | ok: 0/s | ok_avg: 0% | ok:
1712365250 | srr: 103.1% | i_avg: 1/s | q_max: 1 | i_ok: 0% | o: 1/s | ok: 0% | ok: 0/s | ok_avg: 0% | ok:
1712365251 | srr: 99.8% | i_avg: 1/s | q_max: 3 | i_ok: 40% | o: 9/s | ok: 40% | ok: 1/s | ok_avg: 1% | ok:
1712365252 | srr: 98.2% | i_avg: 1/s | q_max: 1 | i_ok: 0% | o: 6/s | ok: 0% | ok: 0/s | ok_avg: 1% | ok:

I also wasn't able to set my location in the webui, I changed the timezone and locals which are now showing correctly but the small dot is still in the US.

I know that I didn't provide much information but I don't really know what I could as I'm kind of lost.

Thanks in advance

Captzdaure

Capturfgzefe

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.