microp11/iridiumlive

Does not work with newer versions of iridium-toolkit

Closed this issue · 21 comments

I have found that IridiumLive does not decode any data if iridium-toolkit is any version newer than this: https://github.com/muccc/iridium-toolkit/tree/66a609925cea623f91fea6c8905b7e9c4848607d. If I revert iridium-toolkit to this version, it works, but it does not work if iridium-toolkit is any newer version.

Hi, many thanks, good to know.
As i will catch up a bit with spare time, i will make the needed changes.
Cheers!

I threw together a a working branch for newer versions of iridium-toolkit by omitting the timestamps from the packet and generating one locally when the packet is received. Just a quick hack to get things working.

Here's a sample of the data I'm pulling in.

IRA: rtl-sdr 000015627.3717 1626301824  90%   0.008 420 DL sat:002 beam:27 pos=(+48.14/-077.01) alt=793 RAI:48 ?00 bc_sb:25 PAGE(tmsi:b0016dbc msc_id:01) PAGE(tmsi:0caa8712 msc_id:01) FILL=8
ITL: rtl-sdr 000015627.3730 1626135168  87%   0.022 432 DL <11> [51.5f.be.d6.b7.6c.c4.81.f9.eb.9b.13.e9.73.90.0d.08.72.c3.90.37.10.c4.d4.7c.30.dd.af.3b.7d.ed.c2] [81.c2.2f.dc.c3.62.d9.a5.6a.60.21.3e.70.cc.a4.47.d5.79.e0.60.57.4b.ce.a8.7d.66.7f.a8.33.19.d8.14] [2f.c1.aa.94.9a.9e.3d.94.49.79.5f.8c.4c.68.f0.3c.c0.fc.64.f7.46.4e.85.9e.25.be.bb.d8.d3.bd.fd.de]
IRA: rtl-sdr 000015897.3681 1626301824  99%   0.016 432 DL sat:002 beam:30 pos=(+48.11/-076.98) alt=796 RAI:48 ?00 bc_sb:18 PAGE(tmsi:b0016dbc msc_id:01) PAGE(tmsi:0caa8712 msc_id:01) FILL=9
IMS: rtl-sdr 000015987.3665 1626468480 100%   0.015 118 DL 00110011111100110011001111110011 odd:110001                     8:A:35 1 c=06687           10000000 01111111111110000000 00010100000000000000 00000000000000000000
ITL: rtl-sdr 000016167.3618 1626135168 100%   0.039 432 DL <11> [51.5f.be.d6.b7.6c.c4.81.f9.eb.9b.13.e9.73.90.0d.08.72.c3.90.37.10.c4.d4.d8.39.e9.df.1b.7d.e8.40] [da.e2.07.dc.53.74.e6.3c.92.62.06.2c.39.4d.1a.16.48.7b.d1.70.af.05.cb.a0.1b.90.37.70.a1.49.dc.22] [0b.50.17.0c.78.d9.39.b2.87.20.ee.2a.0a.e8.b8.75.e6.f8.20.ff.16.eb.9a.f7.4b.9d.72.c9.c1.3d.6d.ca]
IMS: rtl-sdr 000016257.3599 1626468480  99%   0.009 122 DL 00110011111100110011001111110011 odd:110001                     8:A:38 1 c=06687           10000000 01100110110010100000 00000000000000000000 00000000000000000000

I found a way to get things work on Raspberrypi4

  1. get this version of pisdr with preinstalled Gnuradio: https://github.com/luigifcruz/pisdr-image/releases/tag/v4.0.0-refresh.2

Install on SDCard set up ssh and wifi headless

git clone https://github.com/muccc/iridium-toolkit.git
git checkout maint-3.7

mkdir build
cd build
cmake ..
make
sudo make install
sudo ldconfig

  1. git clone https://github.com/muccc/iridium-toolkit.git

git checkout 66a6099

sudo apt-get install python-scipy

git clone https://github.com/microp11/iridiumlive

and follow the tutorial on github

Will fix as soon as I setup an iridium system with latest toolkit. Will need someone to test the fix afterwards.

Or you can grab this version of DragonOS for the Pi4 which has everything preinstalled, tested, and working.

https://sourceforge.net/projects/dragonos-pi64/

However, I'm waiting to see if you can compile a new version based on the fork that removes and replaces the timestamps. I'm going to update the build in DragonOS Focal once either I or someone here builds a new X64 based binary for iridiumlive.

@alphafox02 I will try this version for my Pi tomorrow. I do not see the gr-iridium in the list on dragonos. Shall I install the latest gr-iridium or I need a specific branch?

It’s in the more detailed readme in the file section. I never got around to updating the list on the front page. The Pi64 version has everything in there to include the IridiumLive fork, but I wasn’t sure how to compile it at the time so I stuck network framework and more in to run it. Now I can get around to removing all of that extra stuff since it appears I can compile into one file now.

I notice now though, having upgraded my desktop gr-iridium 3.8 branch to the latest and the iridium-toolkit and using the IridiumLive fork.. I’m not seeing any ring alerts although I see lots of udp messages and satellite broadcasts. So I don’t know if something else has changed and is causing a disconnect in IridiumLive seeing alerts of if it’s something with gr-iridium.

This is what I see, and correct me if I am wrong please:

  1. iridiumlive app compiles currently with .NET and latest visual studio community free without any issues, so albeit we could call it legacy code, the application is still viable
  2. iridiumlive works (I have tested it a few days ago) with the original image of gnuradio, gr-iridium and kit that was used by me during the original development (I still had that image of my ubuntu). So the data from the satellites themselves did not change.
  3. iridiumlive depends on gr-iridium and gr-toolkit that are alive projects and the code changes
  4. gr-iridium itself depends on gnuradio that changes as well
  5. @bigjohn2345 found out first that improvements to gr-iridium broke the iridiumlive parser
  6. @ereinitzhuber created a fix for the parser and for the time difference issue
  7. @Saadi2015 put together a list of software dependencies versions with which the "legacy" app works with no changes.
  8. the instructions of how to install iridiumlive and its chain are obsolete and frustrating to follow

I have used the Dragonos on my pi4 and I was able to get data sent over to a debugger version of iridiumlive I compiled overnight. No data gets displayed but IRA packets still contain geo coordinates:
IRA: u-rtl.sdr 026475094.6199 1626304384 100% 0.006 094 DL sat:036 beam:19 xyz=(+0436,-1501,+0870) pos=(+29.10/-073.80) alt=800 RAI:48 ?00 bc_sb:29
so fixing the parser to at least make the dots appear on the map is not difficult.

Dragonos does not use the latest version of gnuradio which is now 3.10+
gr-iridium was apparently built against gnuradio 3.9+ but still compatible with 3.10+
Python of the kit was updated to the 3+

We can make all the fixes we want to iridiumlive: gnuradio, dragonos or pisdr-image, different linux distros, gr-iridium and the toolkit will continue to evolve and another breakage of the "fixed" iridiumlive is perhaps just a commit away.

This is my suggestion:
I suggest we pick a version of each of the dependencies, binary or source branch, make all the fixes into iridiumlive to make it work for these versions/branches that we chose and create clear instructions on how to install for these particular versions going forward.

Let me know what you think.

image

I have temporarily fix the parser, just to see if a quick fix is viable, as as you see, it works. We just need to ponder on the above, otherwise this fix won't last that long.

Question response, on the Pi, try and sudo make uninstall the gr-iridium in the /usr/src and pull down, checkout, and install the latest 3.8 branch, while it’s not the latest gnuradio I don’t think it should matter as the dev is actively maintaining the 3.8 branch as well as the 3.10. Then pull down the latest iridium-toolkit. Try those two in combo and see if you can pull data into IridiumLive. If so, that’d be great because then your IridiumLive would work and the acars ability would also work. It that proves true, I could then keep a working all around proven working solution in DragonOS. Just a quick thought.

Edit: just realized what you said about the toolkit. I guess you’re right that in one commit it could be made to not work again.

Before installing the gr-iridium on the pi with dragonos I checked the installed gnuradio which is 3.8+
So I have installed the gr-iridium maint-3.8 to keep the compatibility.
Using the latest of toolkit is okay but could break in the future, need to install a particular commit... right I just saw your update.

Okay I’ll go test this evening. I’m also thinking with DragonOS I’ll provide the working solution included. Should someone want to update gr-iridium and or the toolkit, at least they’d still have the working repos as a backup that are known working with IridiumLive.

Will align the iridiumlive with the current version of dragonos which has 3.8+ of gnuradio. Will incorporate @ereinitzhuber changes and fixes as well.
Will use the gr-iridium maint-3.8
Will use the latest commit of iridium-toolkik and will mark the commit used.
Will change the instructions for iridiumlive to indicate the above.
Will build some new binaries.

Also I have some questions for dragonos but I will create an issue with your repo as they do not belong here.

I have updated the repo readme, adding a note at the top to indicate the plan above.

Contact me and I'll answer anything I can about DragonOS. I'll be watching for updates and/or new binaries to test. Once it works, I'll rebuild the ISO with everything included.

I have made all the changes in code. Will commit, push and build for RPi.

Then the readme notes for the particular versions of repos.

Close automatically by the push. Not quite there.

I pulled down your changes on my laptop DragonOS x64 and built the project. Running the latest gr-iridium 3.8 branch and toolkit is showing everything back in business with IridiumLive!

Excellent, just about to rebuilt all binaries, will upload shortly.

Uploaded binaries. Updated the readme.
Thank you so much everyone for all the help.
@bigjohn2345 , @ereinitzhuber , @Saadi2015 and @alphafox02 .