We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Claim Space, the Libre Way, using SDRs

00:00

Formale Metadaten

Titel
Claim Space, the Libre Way, using SDRs
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
Herausgeber
Erscheinungsjahr
Sprache

Inhaltliche Metadaten

Fachgebiet
Genre
29
48
Vorschaubild
52:23
116
173
177
Vorschaubild
24:07
182
206
222
Vorschaubild
48:23
287
326
329
Vorschaubild
25:09
349
356
Vorschaubild
26:14
361
Vorschaubild
51:22
373
Vorschaubild
25:25
407
411
423
Vorschaubild
10:54
449
450
Vorschaubild
24:27
451
Vorschaubild
27:12
453
459
Vorschaubild
34:41
475
Vorschaubild
18:23
489
Vorschaubild
40:10
496
503
Vorschaubild
12:30
515
Vorschaubild
05:10
523
525
Vorschaubild
19:53
527
538
Vorschaubild
25:25
541
Vorschaubild
25:08
565
593
596
635
639
Minkowski-MetrikInformationsmanagementGeradeSelbst organisierendes SystemFehlertoleranzMinkowski-MetrikSatellitensystemMultiplikationsoperatorSoftware RadioProjektive EbeneComputeranimationVorlesung/Konferenz
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
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
Freier LadungsträgerSynchronisierungRahmenproblemVorzeichen <Mathematik>Folge <Mathematik>WellenpaketEinfacher RingSynchronisierungComputeranimation
DigitalfilterSynchronisierungEnergiedichteDifferenteRechnernetzVarianzStichprobeFunktion <Mathematik>CASE <Informatik>SpeicherabzugRahmenproblemSoftware RadioVarianzArithmetisches MittelEnergiedichteNichtlinearer OperatorDatenflussGraphp-BlockVorlesung/Konferenz
SatellitensystemFilter <Stochastik>ForcingARM <Computerarchitektur>BestimmtheitsmaßComputeranimationDiagramm
SynchronisierungRahmenproblemFunktion <Mathematik>BaumechanikComputersimulationComputeranimation
SatellitensystemProzess <Informatik>p-BlockAnalysisComputeranimationDiagramm
AggregatzustandMIDI <Musikelektronik>Computeranimation
EinsComputeranimation
BestimmtheitsmaßRahmenproblemBefehlsprozessorComputeranimationDiagramm
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
TelekommunikationSoftware RadioSatellitensystemNichtlinearer OperatorRechnernetzWorkstation <Musikinstrument>CASE <Informatik>ComputerspielProjektive EbeneSoftware RadioVorlesung/Konferenz
Flussdiagramm
Transkript: Englisch(automatisch erzeugt)
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.
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,
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.
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,
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.
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.
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.
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
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
and we give the operator the ability to choose whatever SDR hardware he is willing to pay.
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
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.
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
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.
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.
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.
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
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.
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,
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.
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
by SatNux ground station in USA. So, this is actually a very good example of the benefits of network ground station around the globe.
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,
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.
And we missed it. We didn't manage to decode frames during the flight. If you see here, it's a strange phenomenon.
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
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.
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.
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,
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
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.
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.
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.
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.
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.
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.
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.
And we have right now under development the LRPT, which is also a weather satellite that uses digital imaging,
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.
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.
I didn't have perhaps expertise. But with enough experimentation, I ended up using a PLL based solution.
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,
you can decide if you have a tone or you have an absence of tone. So, it works, pretty well I can say.
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.
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.
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.
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.
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.
In the same manner, there is the lower bitrate FSK. Unfortunately, it has no scrambling, so it's a bit harder to decode properly.
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.
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.
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.
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.
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.
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.
And I will try to execute it without the filtering.
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.
The red one is the output of our filter. So, if you see, when the signal is more structured, because actually the satellite transmits,
the blue signal comes out of the block and we can further process it. So, right now, I will disable the artificial analysis.
So, you can see, no false alarms.
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.
So, you spare some CPU by doing this. So, this filter can be used on every FSK, MSK, modulator.
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,
especially on small factor PCs like the Raspberry. And there is still poor SIMD support. So, we have tried to use Pine64, for example,
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.
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.
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.
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.
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.
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.
It is very, very helpful to have an IQ and apply your algorithms in order to decode.
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.
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.
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.
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.
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.
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.
So, for example, an operator has a listener in the server and when we get AX25 packets, we automatically forward to it.
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.
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.
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
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.
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.
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?
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?
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.
Okay, well thank you again. Thank you.