User Tools

Site Tools


flight:adsb-server-writeup

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
flight:adsb-server-writeup [2023/04/27 19:49] – [readsb configuration change] 2m0iigflight:adsb-server-writeup [2023/05/08 16:20] (current) – [graphs1090] 2m0iig
Line 40: Line 40:
   * [[https://github.com/wiedehopf/tar-1090|tar1090]] (web front-end)   * [[https://github.com/wiedehopf/tar-1090|tar1090]] (web front-end)
   * [[https://github.com/wiedehopf/mlat-server-sync-map|mlat-server-sync-map]] (displays web-based MLAT sync information map/data tables)   * [[https://github.com/wiedehopf/mlat-server-sync-map|mlat-server-sync-map]] (displays web-based MLAT sync information map/data tables)
-  * Feeder setup scripts for easy installation by users (named however you want, well clone these from elsewhere and modify them and the other software along the way). This consists of [[https://github.com/wiedehopf/readsb|readsb]] and [[https://github.com/wiedehopf/mlat-client|mlat-client]]+  * Feeder setup scripts for easy installation by users (named however you want, we'll clone these from elsewhere and modify them and the other software along the way). This consists of [[https://github.com/wiedehopf/readsb|readsb]] and [[https://github.com/wiedehopf/mlat-client|mlat-client]]
  
 I found it easier to clone all of these repos and push my own changes so that we had a single source for everything that could be replicated if needed in the future with minimal effort. I found it easier to clone all of these repos and push my own changes so that we had a single source for everything that could be replicated if needed in the future with minimal effort.
Line 104: Line 104:
 RECEIVER_OPTIONS="" RECEIVER_OPTIONS=""
 DECODER_OPTIONS="--write-json-every 1" DECODER_OPTIONS="--write-json-every 1"
-NET_OPTIONS="--net --net-only --net-ingest --net-heartbeat 60 --net-ro-size 1250 --net-ro-interval 0.05 --net-bi-port 30004 --net-sbs-in-port 32006 --net-receiver-id"+NET_OPTIONS="--net --net-only --net-ingest --net-heartbeat 60 --net-ro-size 1250 --net-ro-interval 0.05 --net-bi-port 30004 --net-receiver-id ---tar1090-use-api --net-api-port unix:/run/readsb/api.sock"
 JSON_OPTIONS="--json-location-accuracy 2 --write-receiver-id-json" JSON_OPTIONS="--json-location-accuracy 2 --write-receiver-id-json"
 </code> </code>
  
-You'll need to make some edits, remove some things and add some things. In reality any of the options can go into any of the four fields, but it helps to keep them somewhat organised. With this config we're enabling:+You'll need to make some edits, remove some things and add some things. In reality any of the options can go into any of the four fields, but it helps to keep them somewhat organised. With this config we're:
  
-  * network port for Beast data from feeders, 30004 +  * Enabling a network port for Beast data from feeders, 30004 
-  * Network mode only, and marking the process as an ingest node+  * Enabling network mode only, and marking the process as an ingest node
   * Removing ALL RTL-SDR configuration options   * Removing ALL RTL-SDR configuration options
   * Passing receiver IDs to the map for tracking how many are receiving a particular plane   * Passing receiver IDs to the map for tracking how many are receiving a particular plane
   * Disabling the maximum range beyond which a signal will be discarded, which isn't needed for an aggregator if you think about it   * Disabling the maximum range beyond which a signal will be discarded, which isn't needed for an aggregator if you think about it
-  * Specify a port for an API, so tar1090 can use that instead of manually reading the data from disk (better performance)+  * Specifying a port for an API, so tar1090 can use that instead of manually reading the data from disk (better performance)
  
 You can find out everything does in the --help - there are many options. Then we can restart readsb: You can find out everything does in the --help - there are many options. Then we can restart readsb:
Line 238: Line 238:
 The key thing here is to have the mlat-server running and listening for data on a specific port (which we'll configure feeders to send to later). 31090 is the default for this. The calculated positions and results need sending onto the aggregator readsb process so they show up on the aggregated map, and so the server readsb needs setting up to expect an input with this data on the right port, which can be any free port on your server. The key thing here is to have the mlat-server running and listening for data on a specific port (which we'll configure feeders to send to later). 31090 is the default for this. The calculated positions and results need sending onto the aggregator readsb process so they show up on the aggregated map, and so the server readsb needs setting up to expect an input with this data on the right port, which can be any free port on your server.
  
-After this server side work you should also configure your feeder clients to send MLAT data to the server, and also have them forward any MLAT results sent back from your MLAT server to your website's ADS-B client and the local feeder readsb client, so that they can be passed on to the local readsb process and show up on a feeder's local map. You need to choose a port for this on feeders' local systems that doesn't conflict with the same port on ANY other aggregator website.+After this server side work you should also configure your feeder clients to send MLAT data to the server, and also have them forward any MLAT results sent back from your MLAT server to your website's ADS-B client and the local feeder readsb client, so that they can be passed on to the local readsb process and show up on a feeder's local map. You need to choose a port for this on feeders' local systems that doesn't conflict with the same port used on users' systems by ANY other aggregator website.
  
 ==== MLAT Server ==== ==== MLAT Server ====
Line 254: Line 254:
 ==== readsb configuration change ==== ==== readsb configuration change ====
  
-Now we need to let readsb know to open a port to receive these calculated positions. In /etc/default/readsb change the --net-sbs-in-port from 0 to 1 more than the one you specified in the mlat-server configuration.+Now we need to let readsb know to open a port to receive these calculated positions. In /etc/default/readsb change the --net-sbs-in-port from 0 to 1 less than the one you specified in the mlat-server configuration. The various ingest ports will be assigned from that one going up and the next one along is the MLAT results port. Odd way of doing it, but that was suggested by the software author
  
 Restart the readsb service. Restart the readsb service.
 ==== MLAT Client ==== ==== MLAT Client ====
  
-We're gonna fill in that MLATSERVER line now, along with a few other things. Inside MLATSERVER enter the "server_hostname:31090" that you set up your server on earlier. After the UAT_INPUT line add the following:+We're gonna fill in that MLATSERVER line now, along with a few other things. Inside MLATSERVER enter the "server_hostname:31090" that you set up your mlat-server on earlier. After the UAT_INPUT line add the following:
  
 <code> <code>
Line 270: Line 270:
 Results 2 and 3 seem redundant (edit: 3 seems to be ADSB Exchange related...), but the first one connects to your local readsb process and sends on any MLAT results, and the last line is used as a connection between your website's MLAT client and ADS-B client. The ADS-B tracker experience is very much based on data pipelines with all sorts of interconnections, and the diagram further back up the page shows most of them. Results 2 and 3 seem redundant (edit: 3 seems to be ADSB Exchange related...), but the first one connects to your local readsb process and sends on any MLAT results, and the last line is used as a connection between your website's MLAT client and ADS-B client. The ADS-B tracker experience is very much based on data pipelines with all sorts of interconnections, and the diagram further back up the page shows most of them.
  
-So, make changes to your client, push them to your repo, and then let your feeders loose on it to reinstall everything and set up MLAT.+RESULTS4 therefore needs to be set to the port you picked earlier that doesn't conflict with any other aggregator website'MLAT results port.
  
-Now restart all of the services or rebootwhateverand make sure everything is running.+One other thing we **have** to do is tell the mlat-client where to look for your site's UUID when it's being compiled by a user. This is best done by cloning the mlat-client repo and then changing the "mlat-client" file in the root of it. Here'the relevant line105: 
 + 
 +<code> 
 +uuid_path = [ '/usr/local/share/xxxx/xxxx-uuid', '/boot/xxxx-uuid'
 +</code> 
 + 
 +Change the right bits to your client's install folder in /usr/local/share/ 
 + 
 +So, make changes to your clients, push them to your repos, and then let your feeders loose on them to reinstall everything including MLAT.
  
 That's it! You're done! When you have enough positional data you'll get MLAT tracks on your aggregator website, plus that data will be sent back to your feeders. That's it! You're done! When you have enough positional data you'll get MLAT tracks on your aggregator website, plus that data will be sent back to your feeders.
Line 281: Line 289:
 This one is easy peasy. Use the install script on the graphs1090 repo to install it: https://github.com/wiedehopf/graphs1090 This one is easy peasy. Use the install script on the graphs1090 repo to install it: https://github.com/wiedehopf/graphs1090
  
-Then change any configuration options you like, and maybe edit the index.html to get rid of any of the graphs you don't want. Gain would be good to use as it is totally useless, for example. Then restart the service and make sure your ngnix config has a line pointing to the right place to make it accessible.+Then change any configuration options you like, and maybe edit the index.html to get rid of any of the graphs you don't want. Gain would be good to lose as it is totally useless, for example. Then restart the service and make sure your ngnix config has a line pointing to the right place to make it accessible.
 ==== MLAT sync map and table ==== ==== MLAT sync map and table ====
  
 ==== Stats API ==== ==== Stats API ====
flight/adsb-server-writeup.1682624940.txt.gz · Last modified: 2023/04/27 19:49 by 2m0iig