A year ago, I made a decoder for the AO-40 FEC. While AO-40 has been dead for many years, the same FEC system is used in AO-73 and the rest of the FUNcube satellites. This decoder was later included in gr-satellites and it is currently used in the decoders for AO-73, UKube-1 and Nayif-1.
Now, while thinking about integrating gr-aausat (my AAUSAT-4 decoder OOT module) into gr-satellites and adding a soft Viterbi decoder for AAUSAT-4, I have remembered about this. While the decoder for AAUSAT-4 will have to wait, since I have found a bug in the GNU Radio Viterbi decoder that makes it segfault, I have already added a soft Viterbi AO-40 FEC decoder to the FUNcube decoders in gr-satellites.
How do I make my own satellite descrambler decoder
Download Zip: https://garpprepbacksom.blogspot.com/?wf=2vJlqp
Note that NRZI decoding and G3RUH descrambling commute, since the G3RUH polynomial has an odd number of terms. Therefore, the decoder can also be organized in a different way, with both NRZI decoders at one side (either the input or output) of the descrambler.
Having two NRZI decoders in chain is a really funny concept, so it almost seems as some kind of mistake from the satellite team (most QB50 satellites use standard BPSK or FSK AX.25 packet radio for compatibility). In fact, if we write an NRZI decoder as \(y_n = 1 + x_n + x_n-1\), where \(x_n\) is the input sequence, \(y_n\) is the output sequence and the operations are performed on the finite field \(GF(2)\), then the effect of two NRZI decoders in chain can be written as\[z_n = 1 + y_n + y_n-1 = 1 + x_n + x_n-2,\] which is a rather strange form of differential decoder.
Thanks to Andy for giving me the clue about the extra NRZI decoder, as I would have had a hard time in finding it by myself (although, in retrospective, it is not that difficult to guess it by looking at the descrambled stream and seeing how HDLC 0x7e flags can be obtained from it). I have now added a decoder for PolyITAN-2-SAU to gr-satellites.
In my previous post, I talked about the coding used by the S-NET cubesats and the implementation of my decoder included in gr-satellites. The decoder was still missing a BCH decoder. I have now implemented a BCH decoder and included it in gr-satellites. Here I describe the details of this decoder.
After some really helpful communication with the S-NET team, in particular with Walter Frese, and some exchanges of ideas with Andrei Kopanchuk UZ7HO, who was also working to add an S-NET decoder to his soundmodem, I have finally added a basic S-NET decoder to gr-satellites.
Since then, I have tried to get in contact with the satellite team to see if they could give me any additional information about TY-2 and its companion TY-6 (which uses the same format). Finally, the satellite team have answered me, giving me some details and confirming me that they use the AX100. This has allowed me to finish the decoder. An updated decoder is now available in gr-satellites. Thanks to BI1AEM for his help. Here I look at the specific details of the format used by TY-2.
It will be quite interesting to try to receive K2SAT when it gets launched. As far as I know, this is the first Amateur satellite that has a fast data mode (where fast means anything higher than 50kbaud) with a publicly available decoder. Other Amateur satellites have used fast transmitters in the S-band, but only their team had access the decoder.
In telecommunications and recording, a scrambler (also referred to as a randomizer) is a device that manipulates a data stream before transmitting. The manipulations are reversed by a descrambler at the receiving side. Scrambling is widely used in satellite, radio relay communications and PSTN modems. A scrambler can be placed just before a FEC coder, or it can be placed after the FEC, just before the modulation or line code. A scrambler in this context has nothing to do with encrypting, as the intent is not to render the message unintelligible, but to give the transmitted data useful engineering properties.
Let me briefly describe how the interfaces in gr-satellites currently work. There is a flowgraph for each satellite. This was a decission that I took when the project started, with the goal of making it possible to fine tune decoding parameters (loop bandwiths, etc) for each particular satellite. Currently I am not so sure if this is the best way to do things, since there are several satellites which have very similar flowgraphs, since they use the same radio. Nevertheless, the list of different modes to support is also large. With the exception of a few standard modes (mainly AX.25, and the GOMspace radios, which are quite popular), many satellites implements custom protocols, especially regarding framing and FEC. As a side effect, this makes it easy to distinguish between different satellites when sending telemetry to the SatNOGS server, since each flowgraph has the NORAD id of the satellite.
As I final remark for this kind of reasoning, I find it quite difficult to describe precisely the modem used by some satellite using a few phrases/words (in such a way that someone reading this description could build a decoder for the modem). See the list of satellites in the gr-satellites readme for my try at this.
In a perfect world with unlimited bandwidth and storage, a super-thin SatNOGS Client would only be responsible for controlling the radio and publishing I/Q data to SatNOGS Network. SatNOGS Network would then demodulate and decode the data. Unfortunately, this is not currently feasible since every observation can produce several hundreds of MiB of I/Q. Thus, a compromise was basically made to overcome this restriction: I/Q data is demodulated and decoded (or even re-encoded!) down to the first level that it becomes acceptable to transmit and store over commercial internet connections. For example, I/Q is demodulated down to an AX.25 frame but satellite telemetry is not further decoded since the data is sufficiently small to transmit over the internet. In addition, we try to minimize decoding responsibilities from the clients since they are usually very low on resources which must be available as soon as possible for the next observation. Moving most decoding responsibilities centrally also helps with deployment of new (or maintenance of existing) decoders since no software update on the clients is required. Of course the boundaries on how deep to decode on the client is a little blurred, especially in formats that do not have a very clear OSI layer separation or modulation is somehow dependent or changing on transmitted data. But, AFAIK, these are generally exceptional cases.
???, the output of the application layer decoder is more broad, since most satellites use ad-hoc protocols. Typical examples however are timestamped telemetry channels (voltage, temperature, current, etc.), and images.
10. It is possible for a dishonest individual to install an unauthorized or "pirate" descrambler/converter (one illegally programmed to descramble all programming services) onto the plaintiff's cable television system in order to receive all of Time Warner Cable's scrambled programming services without authorization and/or making payment therefor. As alleged in the Complaint at 18, Pay Per View services typically range in cost from $4.00 to $39.99 per event and are offered throughout the day on a per event basis, while premium services range in cost from $7.00 to $13.00 per month per service. Hence, a "pirate" converter/decoder could conceivably steal hundreds of dollars worth of Time Warner Cable's programming services each month.
*1457 11. There is a nationwide, "black market" industry of various manufacturers, vendors and distributors of "pirate" converter-decoders or descramblers, who market devices and equipment to subscribers of plaintiff's cable television programming services seeking to avoid the payment of subscription fees to view premium and Pay Per View cable programming services.
22. On July 21, 1995, and pursuant to an order of this Court dated July 20, 1995, the United States Marshal for the Southern District of Florida executed a seizure for the business premises of defendant Freedom Electronics located at 1055 N.E. 43rd Street, Fort Lauderdale, Florida. At this location, hundreds of converter-decoders, descramblers and business documents, including sales invoices and computer records yet to be accessed, were seized.
29. Defendants violated 605 and 553 of the Communications Act by manufacturing, modifying, selling and distributing converter-decoders to plaintiff's cable television subscribers, knowing, having reason to know and intending that their devices would be used to intercept and receive cable television services and programming without plaintiff's authorization. The fact that disclaimers were enclosed with the shipments of descramblers which advised customers to contact their local cable television provider and advise it of their purchase and use of the device does not serve to exculpate them from otherwise illegal conduct. Julien, 763 F.2d at 844; Subscription Television of Greater Washington v. Kaufmann, 606 F. Supp. 1540, 1542-3 (D.D.C.1985).[2]
a. Defendants, their agents, employees, affiliates, and those entities and persons controlled directly or indirectly by any of them or acting in their behalf, are hereby preliminarily enjoined from removing, destroying, selling, transferring or modifying in any manner any cable television decoding devices and related equipment, including but not limited to cable television decoders, converters, descramblers, descrambling cubes, converter-decoder combination units, integrated circuits, E proms and circuit boards.
d. Defendants shall forthwith provide plaintiff with an accounting, listing the total number of sales and purchases of cable television decoders, converters, or descramblers made by or on behalf of any of the Defendants to or from any person and/or entity; this accounting shall also include any and all profits, transfers or withdrawals of assets, property or any other funds made by, to and/or between any of the defendants from January 1, 1991 to the present. 2ff7e9595c
Comments