Claim Space, the Libre Way, using SDRs
This is a modal window.
Das Video konnte nicht geladen werden, da entweder ein Server- oder Netzwerkfehler auftrat oder das Format nicht unterstützt wird.
Formale Metadaten
Titel |
| |
Serientitel | ||
Anzahl der Teile | 644 | |
Autor | ||
Lizenz | CC-Namensnennung 2.0 Belgien: Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen. | |
Identifikatoren | 10.5446/41204 (DOI) | |
Herausgeber | ||
Erscheinungsjahr | ||
Sprache |
Inhaltliche Metadaten
Fachgebiet | |
Genre |
FOSDEM 2018203 / 644
2
3
5
6
7
8
10
12
16
18
27
29
30
31
32
34
39
46
47
48
55
57
58
61
64
67
76
77
80
85
88
92
93
98
101
105
110
114
115
116
118
121
123
128
131
132
133
134
140
141
142
143
146
147
149
162
164
171
173
177
178
179
181
182
184
185
187
188
189
190
191
192
200
201
202
204
205
206
207
211
213
220
222
224
229
230
231
233
237
241
242
243
250
252
261
265
267
270
276
279
280
284
286
287
288
291
296
298
299
301
302
303
304
305
309
310
311
312
313
316
318
319
322
325
326
327
329
332
334
335
336
337
340
344
348
349
350
354
355
356
359
361
362
364
365
368
369
370
372
373
374
376
378
379
380
382
386
388
389
390
393
394
396
400
401
404
405
406
407
409
410
411
415
418
421
422
423
424
426
427
429
435
436
439
441
447
449
450
451
452
453
454
457
459
460
461
462
464
465
470
472
475
477
478
479
482
483
486
489
490
491
492
493
494
496
497
498
499
500
501
503
506
507
508
510
511
512
513
514
515
517
518
519
522
523
524
525
527
528
534
535
536
538
539
540
541
543
544
545
546
547
548
550
551
553
554
555
559
560
561
564
565
568
570
572
573
574
576
578
579
580
586
587
588
590
593
594
596
597
598
601
603
604
606
607
608
610
613
614
615
616
618
619
621
623
624
626
629
632
633
634
635
636
639
641
644
00:00
Minkowski-MetrikInformationsmanagementGeradeSelbst organisierendes SystemFehlertoleranzMinkowski-MetrikSatellitensystemMultiplikationsoperatorSoftware RadioProjektive EbeneComputeranimationVorlesung/Konferenz
00:25
Workstation <Musikinstrument>SoftwareHardwareOffene MengeFokalpunktSatellitensystemSoftware RadioSchlussregelSurjektivitätWeb SiteNichtlinearer OperatorPROMÄquivalenzklasseVisualisierungRechnernetzDienst <Informatik>MaßstabWürfelOpen SourceWhiteboardARM <Computerarchitektur>QuellcodeDatentransferRahmenproblemDokumentenservert-TestServerMechanismus-Design-TheorieProjektive EbeneSatellitensystemBildschirmfensterMereologieRuhmasseBlackboxHardwareDoppler-EffektSoftwareOpen SourceVisualisierungQuelle <Physik>MultiplikationsoperatorOrbit <Mathematik>UmwandlungsenthalpieCodeSoftware RadioInstantiierungGeschwindigkeitBenutzerbeteiligungKonzentrizitätFlächentheorieQuellcodeCodierung <Programmierung>Nichtlinearer OperatorSkriptspracheSelbst organisierendes SystemOffene MengeKategorie <Mathematik>Service providerFamilie <Mathematik>WhiteboardRahmenproblemLeistung <Physik>TermRechenschieberForcingMehrrechnersystemTabelleWeb SiteEigentliche AbbildungWeb ServicesComputerspielAusdruck <Logik>Quick-SortPhysikalisches SystemProzess <Informatik>ZweiCASE <Informatik>PlastikkarteEndliche ModelltheorieGemeinsamer SpeicherRechter WinkelKonditionszahlTorusMinkowski-MetrikMenütechnikAutorisierungPunktPhysikalischer EffektNummernsystemAggregatzustandNeuroinformatikKlasse <Mathematik>Exogene VariableComputeranimation
08:19
Leistung <Physik>HardwareSoftware RadioDifferenteParametersystemDatentransferRechnernetzVisualisierungPunktspektrumSatellitensystemRechenwerkImpulsWürfelBitrateSpezialrechnerAnalogieschlussBandmatrixVerschlingungKonsistenz <Informatik>CodeOrdnung <Mathematik>TransponderMereologieTransportproblemMessage-PassingVerschiebungsoperatorVorzeichen <Mathematik>GraphVisualisierungSignalverarbeitungKonfigurationsraumEchtzeitsystemSoftwareBildgebendes VerfahrenDatentransferEigentliche AbbildungAnalogieschlussPunktspektrumWort <Informatik>DigitalisierungDatenflussStandardabweichungSoftwareentwicklerBitCodierung <Programmierung>TelekommunikationMusterspracheSatellitensystemSynchronisierungSoftware RadioNummernsystemNichtlinearer OperatorParametersystemOrbit <Mathematik>MultigraphBimodulDatenbankSpieltheorieApp <Programm>VerzeichnisdienstPixelWhiteboardBefehlsprozessorFrequenzSummierbarkeitSoftwaretestFächer <Mathematik>GruppenoperationARM <Computerarchitektur>Güte der AnpassungÜberlagerung <Mathematik>SichtenkonzeptAnaloge SignalverarbeitungMAPPersönliche IdentifikationsnummerQuellcodeMultiplikationsoperatorGraphfärbungSurjektivitätSpeicherabzugInverser LimesMinimumLuenberger-BeobachterGeradeQuadratzahlFigurierte ZahlWiederherstellung <Informatik>AggregatzustandRandverteilungMaskierung <Informatik>Computeranimation
16:13
Freier LadungsträgerSynchronisierungRahmenproblemVorzeichen <Mathematik>Folge <Mathematik>WellenpaketEinfacher RingSynchronisierungComputeranimation
16:37
DigitalfilterSynchronisierungEnergiedichteDifferenteRechnernetzVarianzStichprobeFunktion <Mathematik>CASE <Informatik>SpeicherabzugRahmenproblemSoftware RadioVarianzArithmetisches MittelEnergiedichteNichtlinearer OperatorDatenflussGraphp-BlockVorlesung/Konferenz
18:19
SatellitensystemFilter <Stochastik>ForcingARM <Computerarchitektur>BestimmtheitsmaßComputeranimationDiagramm
18:46
SynchronisierungRahmenproblemFunktion <Mathematik>BaumechanikComputersimulationComputeranimation
19:09
SatellitensystemProzess <Informatik>p-BlockAnalysisComputeranimationDiagramm
19:33
AggregatzustandMIDI <Musikelektronik>Computeranimation
19:57
EinsComputeranimation
20:22
BestimmtheitsmaßRahmenproblemBefehlsprozessorComputeranimationDiagramm
20:45
ImpulsVakuumfluktuationLaufzeitfehlerDatentransferVorwärtsfehlerkorrekturDatenbankInformationInterface <Schaltung>WhiteboardSoftware RadioDigitalfilterElektronische PublikationPunktspektrumDesintegration <Mathematik>BimodulKernel <Informatik>SpeicherabzugSatellitensystemTelekommunikationNichtlinearer OperatorWorkstation <Musikinstrument>SpeicherabzugTermCASE <Informatik>BestimmtheitsmaßFigurierte ZahlGewicht <Ausgleichsrechnung>SystemprogrammMinimumInformationsspeicherungEndliche ModelltheorieEchtzeitsystemNichtlinearer OperatorInformationLie-GruppeHalbleiterspeicherSpieltheorieMetropolitan area networkFokalpunktRahmenproblemSatellitensystemSystemaufrufResultanteMaskierung <Informatik>ForcingSoftwareMinkowski-MetrikZentrische StreckungOffice-PaketPunktspektrumPhysikalismusTeilbarkeitBefehlsprozessorOrdnung <Mathematik>DateiformatStichprobenumfangPolarkoordinatenAlgorithmusp-BlockTelekommunikationSoftware RadioBitBimodulDokumentenserverVideokonferenzCodeInverser LimesIntegralRechter WinkelServerMotion CapturingBandmatrixComputeranimationDiagramm
28:01
TelekommunikationSoftware RadioSatellitensystemNichtlinearer OperatorRechnernetzWorkstation <Musikinstrument>CASE <Informatik>ComputerspielProjektive EbeneSoftware RadioVorlesung/Konferenz
29:18
Flussdiagramm
Transkript: Englisch(automatisch erzeugt)
00:05
Hi again. My name is Manolis. I'm from Libra Space Foundation, a non-profit organization in Greece. Actually, we are a team of space enthusiasts and freaks, and we use SDR as our main way to communicate with satellites or other stuff that we do.
00:26
So, our main project is SATNOX. SATNOX is a network of ground stations that track mainly low-Earth orbit satellites. For those of you who are not familiar with low-Earth orbit satellites, they spin in a high velocity around the Earth,
00:43
in about 400 kilometers above the surface of the sea. So, you have to track them and to compensate the Doppler shift that is there. So, another very interesting feature of our ground station is that we have a network of them.
01:07
So, because we do not have so much time to track it, it's about 15, max 20 minutes, you lose the line of sight with a satellite, so you lose the signal, of course,
01:21
but another ground station in another place in the Earth can continue and track it. So, this is our concept and what we are trying to do. Our tracker costs about 300 to 500 euros, depending on the SDR that you want to use.
01:41
We now support about six or seven different SDR devices. So, this is a tracker. It's completely open source and open hardware. All the schematics are available in our repository on GitLab. Many of the parts are fully printed and all the others are very easily available in the market.
02:05
So, they are cheap and you can build it for yourself. So, it is crowdsource. Of course, every operator who wants to enter the sat-nux project builds his own tracker and he registers it in the network.
02:26
So, until now, all the available software that is out there, it is used in Windows and, of course, most of them are closed source
02:42
and are targeting only specific missions or satellites. Another very common problem with this software is that you cannot parameterize them. They are black boxes and they are operating for a single purpose. So, what we do, we provide new radio decoders for a larger family of lower orbit satellites
03:13
and we give the operator the ability to choose whatever SDR hardware he is willing to pay.
03:22
So, most of ground stations right now, they are using the cheap RTL-SDRs with a simple LNA in front to get a single property. We provide all the web services, so the data that each ground station downloads
03:44
they get uploaded automatically on the web for further visualization. So, based on all, we have an API, so everyone can write some scripts to grab data for a specific satellite in a specific time instance also.
04:00
So, from last year for them, it was a very, very busy year for us. We had the upset launch in space, which was our satellite. I will talk about it in a few slides. We did some very serious hardware and software improvements in the rotator
04:22
and also, as we were growing up, our web servers were completely fried, so we had to update them as well. Also, we were involved with high-power rocketry for the CANSAT project.
04:45
The CANSAT project is an educational contest that students are launching small satellites inside an amateur rocket in about one kilometer height and then the parts are deployed down to the Earth.
05:05
But the high-power rocketry part and the telemetry of the rocket was our project. And in November, we also contribute to the organization, to the organization of the open-source CubeSat workshop with ESA.
05:25
So, what is AppSat? AppSat is the first open-source, completely open-source and open-hardware CubeSat. It was part of the QB50 project. The contributor of this project was the von Karman Institute
05:42
and it was designed to measure the plasma concentration on the atmosphere of the Earth. It was developed by Liberty Space Foundation together with the University of Paris. So, we tried to use as much as possible free software.
06:01
So, for example, the PCB designs were designed in KiCad, the structural and mechanical designs were designed in FreeCad, and all of the designs and the code is available on our GitLab repository. And at April, using an Atlas V rocket and resupply mission to the ISS,
06:24
the satellite traveled to the International Space Station where the astronauts took it. It was placed in a launch tube with a spring behind it. The ports opened and the first one is actually the AppSat satellite.
06:49
And it was zeronized into space. You can see the massive panels of ISS here. So, just after 30 minutes, we were able to receive our telemetry
07:05
by SatNux ground station in USA. So, this is actually a very good example of the benefits of network ground station around the globe.
07:22
Here you can see a CW signal and there are also some FSK frames that were decoded. And as I said before, high power rocketry was another project of LSF. We designed this board that has some sensors on it about g-forces,
07:44
velocity, it has a GPS sensor, temperature sensor, and uses FSK to transmit back-to-Earth data. The decoder was completely based on the radio. So, this is a waterfall of the first launch that we actually do.
08:07
And we missed it. We didn't manage to decode frames during the flight. If you see here, it's a strange phenomenon.
08:21
The g-forces actually did damage to the telemetry board and we had a frequency drift. We had a very steep filter in order to receive it and the frequency drift caused the signal to go outside this spectrum region
08:42
and we get no data. So, this is a team that struggles to find the problem. But using the radio, we have stored the whole IQ of the flight. So, by plotting the waterfall, it was very easy to see that it was a drift.
09:00
So, we just relaxed the low-pass filter that we had and after that, at the second, third, and fourth launch, we were okay and we get telemetry data.
09:20
So, during this year, we have some significant improvements in our sat-nux infrastructure and we managed to parameterize completely all the flow graphs in order to support all the different SDR devices. So, we have made a database with some good and known values,
09:48
for example, a game or something great for its device, for the user piece, for their spy, for their RTL. And when the flow graph is executed on the raspberry
10:00
that runs on its ground station, the flow graph takes automatically the SDR device that it uses and applies a proper configuration regarding the gain and so on.
10:23
But because we have some operators that they use, for example, LNA's or amplifiers, we allow, of course, each of these parameters to be overridden by command line arguments. For every observation, we store the IQ and then we generate a waterfall.
10:47
We convert it to PNG and this waterfall is uploaded to our network. And if the satellite that we are targeting is supported, we choose one of the available real-time decoders in order to decode data.
11:05
If the decoded data are successfully passed some criteria, like, for example, CRC if it's available or it has meaningful data, it also gets uploaded into the network.
11:20
So, what we have right now as far as the automatic decoder concerns, we have a CW decoder, which actually is a Morse code decoder. FSK, FSK1200, it's very common in space missions.
11:42
APT, it's the NOAA image satellites, weather satellites, sorry. FSK9600, DAVE, which is very interesting, is data under voice, it is used in AMSAT satellites. They have some kind of FM transporters to allow amateur operators to speak to each other.
12:06
And they have a very slow speed telemetry transponder below the FM, the voice. So, I think that it is 300 hertz from 0 to 300 hertz, and it is using 8D, 10D encoding.
12:31
And we have right now under development the LRPT, which is also a weather satellite that uses digital imaging,
12:40
and some PSK31 decoders that I believe in a couple of months it will be ready. So, all the decoders are available under the apps directory of the TR Sanux out of three modules. You can go and check them and play with them. So, some words about the CW.
13:04
Surprisingly to me, I didn't find any GNU radio based decoder. So, I started to experiment with one. It was quite hard, I can say, because to me I was coming from digital signal processing and digital telecommunication standards.
13:32
I didn't have perhaps expertise. But with enough experimentation, I ended up using a PLL based solution.
13:42
So, I filtered the spectrum, and the CW is just a sign that goes on and off. And using a PLL, the PLL automatically shifts this sign into the DC. So, they apply a very steep low pass filter, and after doing the mag squared of the signal,
14:12
you can decide if you have a tone or you have an absence of tone. So, it works, pretty well I can say.
14:22
The problem is that the very steep filtering that you have to apply in this part requires more CPU resources. So, the trick is to just perform the summation in many stages, and you're okay.
14:44
You can run this decoder without a problem in the Raspberry Pi. Another interesting decoder is the automatic pixel transmission decoder. It's an analog transmission scheme.
15:01
It uses signals from the NOAA weather satellites that are orbiting the Earth in a polar orbit. It is AM over FM, or at the VHF band. And you can see the spectrum in the left, and the resulting image on the right.
15:25
We use some synchronization patterns that this image has to synchronize the image and get it properly in place. So, about the AX25FSK, as you can see, we also automatically decode the scheme.
15:49
Hopefully, this packet mode has a CRC, so we can check if the data are well decoded. And if yes, we upload the binary data into our network for further visualization.
16:05
In the same manner, there is the lower bitrate FSK. Unfortunately, it has no scrambling, so it's a bit harder to decode properly.
16:20
And it has a very, very, very poor training sequence. So, our main problem here was to get rid of the false alarms. We get too many false alarms because of the one-byte synchronization sequence that we have in front.
16:40
And then we ended up... The problem was to reduce these false alarms because we missed the frames. The problem is that you cannot apply energy detection techniques, especially in our case.
17:05
Because every operator uses its own SDR device, it has its own RF setup. So, somehow we needed to find a way that it is not affected by all these parameters.
17:22
So, the solution came with the idea of observing the quadrature demodulate signal. And when there is noise, the quadrature demodulation block generates a very noisy signal, of course.
17:43
But when there is signal, the quadrature demodulation output is more structured. So, by continuously measuring the mean and the variance of the signal, you can decide if it is signal-free or with actual signal.
18:05
So, to give you an idea of how important this filtering is, I have a flow graph. This is the decoder for the Fox 1B and 1D satellite.
18:29
And I will try to execute it without the filtering.
18:47
So, these tags on the blue signal is actually the false alarms. Because it has only one byte of a frame synchronization word, it is triggering two main false alarms in the quadrature demodulated signal.
19:06
The red one is the output of our filter. So, if you see, when the signal is more structured, because actually the satellite transmits,
19:25
the blue signal comes out of the block and we can further process it. So, right now, I will disable the artificial analysis.
20:07
So, you can see, no false alarms.
20:27
And when the red signal comes, you can see some tags indicating the start and the end of the frame. Another advantage of this filter is that you're blocking the next decoder.
20:45
So, you spare some CPU by doing this. So, this filter can be used on every FSK, MSK, modulator.
21:01
So, if any one of you has the same problem, just go and grab the code. So, what are the real challenges that we face? We have found ourselves that it is very, very difficult to apply filtering,
21:25
especially on small factor PCs like the Raspberry. And there is still poor SIMD support. So, we have tried to use Pine64, for example,
21:43
or the Tinkerboard that has some better neon instructions, but we haven't yet managed to visualize the results in terms of performance and CPU utilization.
22:01
Also, a very big problem, especially in the Raspberry Pi, is the USB communication with the SDR. For example, we cannot get in real-time samples from the S-Pi and CPU utilization.
22:22
Actually, I have seen that the CPU is bottomed there. One core gets 100%. Another very common problem with us is the low SNR. Satellite signals have very low SNR and it is very hard to detect frames in the signal.
22:48
So, if you want to be more accurate or to apply more deep searching on the signal, the CPU goes completely crazy in the Raspberry. So, we have to keep our detection algorithm very, very simple.
23:04
Another great problem is the lack of framing information. Satellite operators, for some strange reasons, do not publish their frame information. So, we cannot easily detect them.
23:22
In most cases, this is done by hunt and by the eye. So, we get the IQ and we demodulate it with the quadrature demodulation block and we try to analyze the resulting bitstream. And, of course, another problem is that we do not have any kind of IQ information.
23:47
It is very, very helpful to have an IQ and apply your algorithms in order to decode.
24:02
But, for now, there is no such database. We plan to build one. So, right now, we store the signal of a capture in an audio way. So, we convert it down to audio and we upload it to the network.
24:24
So, our intention is to store it in the IQ format. But this has many, many problems. For example, storage may be an issue or many of the operators do not want to spend their bandwidth.
24:44
So, we are a bit skeptical about it, but audio format loses information. So, if we want to go to the next step, we should store it in IQ format.
25:02
So, we have seen the CGMF stuff and all the discussion about it. And we are willing to provide all the necessary storage, but we are a small team.
25:23
So, if some of the CGMF community wants to contribute and apply some kind of CGMF integration in our network, we will be glad to cooperate. So, if you are interested, just talk with us.
25:44
And another very interesting feature that we want to apply is the AX25 forwarding of the packets. Because Linux kernel has its own module that can IP forward these kind of packets.
26:07
So, for example, an operator has a listener in the server and when we get AX25 packets, we automatically forward to it.
26:20
So, it will be very helpful for the community. And last but not least, we believe that SDR can drive the next big space thing.
26:43
Using SDR, we have managed to track satellites, to command satellites to get the limit from rockets. So, it is a very good tool and it drastically reduces the cost of a mission.
27:04
Believe me, when we were debugging our satellite, if we have not an SDR expertise, our budget will be 10,000 above it. We spoke with teams that did not have the SDR expertise and they were buying
27:24
very expensive equipment just for sending FSK or getting the spectrum of FSK, which is ridiculous. So, this is all for me. If you are interested, go to the LibreSpace Foundation repository in GitLab.
27:50
Get the code, see the code, comment us or whatever you want. So, thank you. Yeah, we can probably squeeze in one question, like considering the video switchover thing.
28:11
Yes, any questions? So, I have one like, can you like, so who is, how many people are the LibreSpace Foundation and like what's like the funding?
28:23
Most of them are right there. Can you raise your hand? Can you raise your hand? Okay, so. We are about 10 to 12. We are also getting nuked right now on the LibreSpace Foundation. Okay, but like you are a small group and like what about funding, is that like?
28:43
The initial funding was after a Hackaday prize that we won a couple of years ago by applying in a contest with the tracker and the whole SDR staff. So, that was the initial funding and then the upset project came and all of this, nothing else.
29:14
Okay, well thank you again. Thank you.