Transmit digital television signals over Qatar Oscar 100 satellite

La définition de l'image et compression

Now that we have some matter to broadcast, let’s see the settings expected by the Adalm Pluto and PlutoDVB. It integrates an RTMP server (Real-Time Messaging Protocol) which will receive the video stream sent by OBS Studio. It is mainly this server and the very simple way to broadcast the stream to the PlutoDVB that makes all its interest. The easy implementation of Evariste F5OEO’s firmware lies in the simplicity of a “line of parameters” sent from OBS to the Adalm Pluto. Let us see that in detail.

Video stream generation

  1. In the OBS settings (File/Settings), we will indicate the destination of PlutoSDR: In the Stream tab, choose the “Custom…” service.
  2. In the field “Stream key”, in the second line, indicate your callsign with 2 commas. In the first line Server, the RTMP server integrated in the Adalm Pluto will be indicated, as well as all the characteristics of the DATV transmission. Be careful not to forget one of the separating commas. Here is an example.

  3. Now let’s detail the parameters that constitute the line.
  1. The IP address is that of your Pluto. Connected in USB it is If your Pluto is connected to the network, this is of course the IP address of your PlutoSDR on the network. Port 7272 is the default value to be used to transmit the video stream.
  2. The transmission frequency must be chosen in correlation with the bandwidth map of the Qatar Oscar 100 satellite’s wideband transponder and depends on the spectrum occupation and the Symbol Rate width you will be using. On the webSDR of the BATC a free channel is chosen and priority is given to the free narrowband portion. Refer to the rules specified in the chapter ‘QO-100 wideband operating guidelines and bandplan‘.

    Select a free frequency

  3. The mode (usually DVB-S2).
  4. The phase modulation constellation. For DVBS mode, only the QPSK constellation is possible.
  5. The SR is the symbol rate of the transmission. The SR is the main variable that determines the frequency bandwidth of your signal. Pluto DVB accepts from 33 to 2000 kS.
  6. FEC stands for Forward Correction Error. The FEC is a data ratio between the useful data (image, sound) and the data added to the transmission, which are used to a certain extent and according to the criteria of plausibility, to correct errors during decoding, errors caused by the hazards of the transmission. At the time of transmission, data are introduced which enable the receiver to reconstitute the useful information which would have been lost. The FEC can thus take values such as 14 for 1/4, 13=1/3, 25=2/5, 12=1/2, 35=3/5, 23=2/3, 34=3/4, 45=4/5, 56=5/6, 89=8/9, 910=9/10. This is the number of useful bits for the number of transmitted bits, for example: 3/5 corresponds to 3 useful bits for 5 transmitted bits, i.e. 2 used for correction.
  7. Gain is expressed in dBm, the maximum transmit signal is reached by setting the value to 0.
  8. The emission calibration (a maximum amplitude peak) can be generated with the calib value. (first of the optional parameters – not tested by me)
  9. The PCR/PTS delay can be increased if the encoding suffers from a lack of bitrate. We will come back to this in more detail. (optional parameter)
  10. The audio streaming rate can be limited by PlutoDVB (optional parameter). OBS Studio can only broadcast a minimum of 64 kbit/s of audio. It can therefore be interesting to switch to 32kbit/s and to make the video or correction stream benefit from this increased rate.

TS stream to PlutoDVB – Video bitrate

We will now tell OBS Studio the data rate we will send to PlutoDVB (the TS, Transport Stream), the definition of the transmitted image, and the compression encoding of the video stream.

Video bit rate

We will fill the TS (Video Transport Channel – Transport Stream) at a “Fixed Sample Rate” (CBR Constant Bit Rate). The CBR is calculated and depends on the mode (DVB_S, DVB_S2), the chosen constellation (QPSK, 8PSK…), the chosen symbol rate (which itself with the rolloff coefficient, defines the RF bandwidth occupied by your signal).

Calculators are available for calculating the flow rate. I quote here two online flow rate calculators.

Calculation on

Calculation on

For a “classic” DVB-S2 /QPSK transmission, in these tools, choose the constellation (QPSK), indicate that it is DVB-S2, and enter your choice of SymbolRate “width” (333 for example), and choose the FEC. This gives you the Netto TS bitrate value (Netto TS bitrate, or Netto data rate).

This total net bit rate value includes video, audio and also some other DVB “control” data (PMT – Program Map Table, PAT – Program Association Table, SDT – Service Description Table). Of course the largest data is of course the video itself.

To determine the video bit rate (VBR), we take between 60 and 70% of the net bit rate. The most important first step is that the bit rate is not too high. In the following table, you will find in the CBR column, the video bitrate values that I use myself (with the PTR/PTS delay buffer of 800, the default value used by PlutoDVB, and with forcing the audio bitrate to 32 kbps last parameter of the Stream line).

The table gives you the bit rates for a DVB-S2 signal in QPSK. The following pages of the table show the upper SRs.

FECSymbolRate (kS/s)Brut data rateNetto data rateOBS CBR (kbps)Mini MER RX
extremely high (1/4)12525061-2.35
very high (1/3)12525081-1.24
very high (2/5)12525098-0.3
highest (1/2)1252501231
highest (3/5)1252501482.23
normal (2/3)1252501663.1
adequate (3/4)1252501854.03
acceptable (4/5)125250198724.68
low (5/6)125250206785.18
very low (8/9)125250221906.2
very low (9/10)125250223956.42
extremely high (1/4)250500122-2.35
very high (1/3)250500162-1.24
very high (2/5)250500197-0.3
highest (1/2)2505002471
highest (3/5)2505002972.23
normal (2/3)2505003323.1
adequate (3/4)2505003714.03
acceptable (4/5)2505003964.68
low (5/6)2505004122805.18
very low (8/9)2505004426.2
very low (9/10)2505004476.42
extremely high (1/4)333666163-2.35
very high (1/3)333666216-1.24
very high (2/5)333666262-0.3
highest (1/2)3336663292101
highest (3/5)3336663952702.23
normal (2/3)3336664423203.1
adequate (3/4)3336664953804.03
acceptable (4/5)3336665284104.68
low (5/6)3336665484305.18
very low (8/9)3336665884656.2
very low (9/10)3336665954706.42
extremely high (1/4)5001000245-2.35
very high (1/3)5001000324210-1.24
very high (2/5)5001000394270-0.3
highest (1/2)50010004943701
highest (3/5)50010005944752.23
normal (2/3)50010006645403.1
adequate (3/4)50010007436204.03
acceptable (4/5)50010007936654.68
low (5/6)50010008247005.18
very low (8/9)50010008847606.2
very low (9/10)50010008946.42
extremely high (1/4)10002000490370-2.35
very high (1/3)10002000649530-1.24
very high (2/5)10002000789650-0.3
highest (1/2)100020009888301
highest (3/5)10002000118810302.23
normal (2/3)10002000132811403.1
adequate (3/4)10002000148713104.03
acceptable (4/5)1000200015874.68
low (5/6)1000200016485.18
very low (8/9)1000200017686.2
very low (9/10)1000200017886.42

Let’s take the example of this signal: We will transmit a DVBS2 signal in QPSK and at 333 KS (kilo-symbols). We will start with a high correction rate 1/2 (i.e. 50% correction data). The CBR value is 220 kbps.



Let’s report this CBR value in OBS Studio :

  1. Open the Settings panel (from the File menu, or directly from the command button, at the bottom right of the screen)
  2. Select the second line “Stream”
  3. Choose Service “Custom…”Enter the stream command line in the Stream tab to transmit to the satellite.
  4. rtmp://,2408.25,DVBS2,QPSK,333,12,0,nocalib,800,32,

    and the stream key with your callsign enclosed in commas

  5. Select the third line “Output”.
  6. We switch to the output mode to Avanced.
  7. Select the Streaming tab. We will enter the CBR rate
  8. Validate these settings by clicking on OK in the Settings window.
  9. We can switch to the transmit by clicking on the Start streaming command button. To make your first tests, I advise you not to transmit to QO100. After a few seconds, the transmission signal is effective. Note that the same button allows you to stop the transmission.
  10. If the Adalm Pluto is receiving the stream, in the bottom right corner of the OBS Studio window the green light appears.

26 thoughts on “Transmit digital television signals over Qatar Oscar 100 satellite

  1. Christian,

    Congratulations, this is one of the Blog articles I’ve read about how to setup a DATV station for QO-100.

    Thanks for sharing with the community.

    Alex EA4BFK


    Félicitations, c’est l’un des articles de blog que j’ai lu sur la façon d’installer une station DATV pour le QO-100.
    Merci pour avoir partagé avec la communauté.

    Alex EA4BFK

    1. Merci Christian Superbe tuto !! A bientôt sur QO-100
      73 de ON1RC

      Thank you Christian Superb tuto ! See you soon on QO-100
      73 from ON1RC

      1. Bonjour Christian
        Mais quel superbe outil de travail, moi qui suis totalement néophyte dans le mode DATVet dans l’utilisation du logiciel OBS.
        Me voici équipé pour comprendre le fonctionnement et pouvoir parfaire mon installation.
        Félicitations pour la qualité de tes tutos qui sans nul doute vont être un fabuleux tremplin à beaucoup pour créer sa station.

        73 cordialement salutations et au plaisir de te retrouver sur le satellite Q0-100. F3CJ

        Hello Christian
        But what a great tool, I’m a total neophyte in the DATVet mode in the use of OBS software.
        Here I am equipped to understand how it works and to be able to perfect my installation.
        Congratulations for the quality of your tutorials which will undoubtedly be a fabulous springboard for many to create their station.

        73 cordially greetings and I look forward to seeing you on the Q0-100 satellite. F3CJ

  2. Merci beaucoup Christian.
    Des informations très précises et détaillées.
    73 de Aitor F4VTB EB2AT

    Thank you very much, Christian.
    Very precise and detailed information.
    73 of Aitor F4VTB EB2AT

  3. Advertisements
  4. Thanks for the wonderful guide. Very comprehensive. Thanks again for sharing your experiences. With gratitude 73 de Ros i4wrm

    Merci pour le merveilleux guide. Très complet. Merci encore de partager vos expériences. Avec reconnaissance 73 de Ros i4wrm

  5. Bonsoir Christian F5UII,

    Merci pour votre tuto, très instructif. J’ai échangé avec Pascal F4BRF et Nicolas FR4LI au sujet de la modification à base de 2 x 4N35 (montage vu sur le net pour l’ADALM PLUTO).L’idée, une commutation TX/RX pour la partie amplificateur SG-LAB depuis le PLUTO.
    J’aimerai avoir votre avis avisé sur le sujet svp. En vous remerciant par avance.
    Au plaisir de vous lire Christian F5UII.
    73 de Axel FR5GS

    Good evening Christian F5UII,

    Thank you for your tutorial, very informative. I discussed with Pascal F4BRF and Nicolas FR4LI about the modification based on 2 x 4N35 (assembly seen on the net for the ADALM PLUTO) The idea, a TX/RX switching for the SG-LAB amplifier part from the PLUTO.
    I would like to have your opinion on the subject please. Thank you in advance.
    Looking forward to reading you Christian F5UII.
    73 from Axel FR5GS

    1. Oui, le logiciel SDR Console et également le firmware PlutoDVB d’Evariste F5OEO pilotent les sorties GPO0 et GPO1 lorsque l’on passe en émission. On utilise les 2 sorties car toutes les deux passent en émission à la mise sous tension du Pluto pendant environ 5 secondes.
      Commutation émission PTT sur Adalm Pluto SDR
      On trouve deux schémas permettant la commutation PTT, l’un à base d’optocoupleurs, l’autre à base de transistor et relais reed. J’ai choisi de mettre en œuvre la seconde technique, avec double circuit de commutation, permettant d’alimenter distinctement 2 sorties indépendantes. Une commande groupée sera certainement prochainement proposée. Tous les détails sur cette page.
      Il existe une autre solution, mais que je ne conseille pas au vu du risque engagé sur le Pluto. Il s’agit de celle qui consiste à détecter l’activité du bit0 du bus 12 bits du convertisseur numérique /analogique. Pour la curiosité, je vous laisse découvrir cette mise en œuvre de DH1NFJ sur ce site internet (langue allemande).

      Yes, the SDR Console software and also the PlutoDVB firmware of Evariste F5OEO drive the GPO0 and GPO1 outputs when you switch to transmission. Both outputs are used because they both switch to transmission when the Pluto is switched on for about 5 seconds.
      Amplifier PTT control - Adalm pluto SDR
      We find two schematics for PTT switching, one based on optocouplers, the other based on transistor and reed relay. I chose to implement the second technique, with a double switching circuit, allowing to supply separately independent 2 outputs. A grouped order will certainly be proposed soon. All details on this page.
      There is another solution, but which I do not advise in view of the risk involved on the Pluto. It is the one which consists in detecting the activity of bit0 of the 12 bits bus of the digital/analog converter. For curiosity, I let you discover this implementation of DH1NFJ on this website (German language).

      1. Bonsoir Christian,
        Merci pour toutes ces informations. Inscription faite de mon côté pour la prochaine commande groupée (PTT Pluto). 73 de Axel FR5GS

        Good evening, Christian,
        Thank you for all this information. Registration made on my side for the next group order (PTT Pluto). 73 from Axel FR5GS

  6. Advertisements
  7. Christian,

    Congratulations, for great work.

    Thanks for sharing with the community.

    Jose EA3HMJ


    Félicitations, pour votre excellent travail.
    Merci d’avoir partagé avec la communauté.

    Jose EA3HMJ

  8. Bonjour Christian,
    Merci pour vos articles qui nous permettre d’avancer sur la construction de notre deuxième station DATV à l’Ile de la Réunion. Nous sommes actuellement actif sur QO100 en bande étroite.
    La station DATV est en cours de construction en suivant à la lettre votre tuto.

    Nous recherchons un système à base d’Arduino capable de mettre off le PA du SG Lab lors d’un SWR élevé et qui serait capable de faire les mesures de puissance OUT/IN. Ceci en utilisant les points de mesures en tension prévu à cet effet. Avez vous une idée si un Om c’est déjà penché sur la question.
    Par avance merci,
    Nicolas Dhiver

    Hello, Christian,
    Thank you for your articles which will allow us to progress on the construction of our second DATV station in Reunion Island. We are currently active on QO100 in narrowband.
    The DATV station is under construction following your tuto to the letter.

    We are looking for an Arduino based system able to turn off the SG Lab PA at high SWR and which would be able to make OUT/IN power measurements. This by using the voltage measurement points provided for this purpose. Do you have an idea if an Om has already looked into the matter.
    Thank you in advance,
    Nicolas Dhiver

  9. Advertisements
  10. This is a great guide, helped me a lot. Merci!
    Ed PY2RN

    C’est un excellent guide, qui m’a beaucoup aidé. Merci !
    Ed PY2RN

    1. Bonjour Rudy,
      La carte exploite le changement d’état de la voie GP0, et GP1 qui, lui, bloque le passage à l’émission lorsque le Pluto démarre (GP1 actif en même temps que GP0 au démarrage). Elle est compatible avec les logiciels qui font commande le GP0 au passage en émission du pluto. C’est le cas en effet PlutoDVB d’Evarise F5OEO et SDRConsole de Simon G4ELI. Peut être d’autres le propose… ou le proposeront.
      D’après ce qui est indiqué sur le wiki de l’Analog Device, on doit pouvoir ajouter cette instruction (entre autres lignes) pour ajouter la commande automatique de la voie GP0.
      iio_attr -a -D ad9361-phy adi,gpo0-slave-tx-enable 1

      Bons essais. N’hésitez pas à partager vos conclusions ici.
      73 Christian

      Hello, Rudy,
      The board exploits the state change of channel GP0, and GP1 which locks the switch to transmit when the Pluto starts (GP1 active at the same time as GP0 at start up). It is compatible with the software that controls GP0 when the Pluto is transmitting. This is indeed the case of PlutoDVB from Evarise F5OEO and SDRConsole from Simon G4ELI. Maybe others propose it… or will propose it.
      According to the wiki of the Analog Device, it should be possible to add this instruction (among other lines) to add automatic GP0 channel control.
      iio_attr -a -D ad9361-phy adi,gpo0-slave-tx-enable 1

      Good try. Feel free to share your findings here.
      73 Christian

  11. Wonderfull site and good OM thanks for all your time

    GRTZ the Alain ON7ATV

    Site merveilleux et bon OM merci pour tout le temps passé

    GRTZ le Alain ON7ATV

  12. Advertisements
  13. Hi guys,
    thanks for the great tutorial. i have some questions please: software update done, when i enter the IP of my Pluto then i get to the welcome page as described, but the essential tabs : CONTROLLER, ANALYSIS, DONATE are missing, instead there are another one. Do these tools still exist? and where? What mistake am I making?
    Sincerely Peter OE5PLN

    Salut les gars,
    Merci pour ce super tutoriel. J’ai quelques questions s’il vous plaît : la mise à jour du logiciel est faite, quand j’entre l’IP de mon Pluto alors j’arrive à la page de bienvenue comme décrit, mais les onglets essentiels : CONTROLLER, ANALYSIS, DONATE sont manquants, à la place il y en a un autre. Ces outils existent-ils encore ? et où ? Quelle erreur est-ce que je fais ?
    Salutations Peter OE5PLN

    1. Which version 0303 : From the landing page, click on “Let’sgo to PlutoDVB”, then you reach the PlutoDVB with menu :

      1. System (setup.php)
      2. Controller (pluto.php)
      3. Analysis (analysis.php)
      4. Documentation (doc.php)
      5. Credits (credits.php)

      Have fun, 73

      Quelle version 0303 : Depuis la page de démarrage, cliquer sur “Let’sgo to PlutoDVB”, pour atteindre PlutoDVB et son menu :

      1. System (setup.php)
      2. Controller (pluto.php)
      3. Analysis (analysis.php)
      4. Documentation (doc.php)
      5. Credits (credits.php)

      Bon amusement, 73

  14. I have now installed a new firmware , beta for the brave, now it shows me the right page.
    73 de Peter oe5pln

    J’ai maintenant installé un nouveau firmware, beta pour les courageux, maintenant il me montre la bonne page.
    73 de Peter oe5pln

  15. Advertisements
  16. Bonjour Christian,
    Dis moi j’ai un soucis qui me chagrine, car c’est risqué pour le PA.
    J’utilise le firm 0303 + patch pour le Pluto RevD, et lorsque je lance l’interface web, le Pluto part en emission par défaut. J’ai vu qu’il y avait un switch dans le setup, mais ca ne change pas grand chose me semble t il.
    Voilà j’aurai voulu ton avis.
    Mes amities franck f1ssf
    Hello Christian,
    Tell me I have a problem that bothers me, because it is risky for the PA.
    I use the firm 0303 + patch for the Pluto RevD, and when I launch the web interface, the Pluto goes into emission by default. I saw that there was a switch in the setup, but it doesn’t seem to change much.
    Here I would have liked your opinion.
    My friends franck f1ssf

    1. En mode DATV : en stream UDP, c’est le bouton Switch/PTT (F10) de la page Controller, qui fait passer l’émission en route. en stream RTMP, l’émission est automatiquement assuré lors de l’arrivé du flux.
      En mode passant : l’émission est piloté par SDR Console qui change le niveau émission (-40dBm = PTT off) piloté habituellement par SDR Console. détails code source

      Le bouton “Transmission permitted at start-up” doit fonctionner pour le mode DATV.

      In DATV mode in UDP stream, it is the Switch/PTT button (F10) of the Controller page, which switches the transmission on. In RTMP stream, the transmission is automatically assured when the stream arrives.

      In passtrought mode, the transmission is controlled by SDR Console which changes the transmission level (-40dBm = PTT off) usually controlled by SDR Console. code source details
      The “Transmission permitted at start-up” button must operate for the DATV mode.

      1. Salut Christian,
        J’avais pommé le message. Oui je suis bien en UDP stream, et pourtant des que j’accede a l’interface je passe en TX. Alors il est peut être possible, comme j’ai un boitier H265 qui stream en RTMP en permanence, que ce soit cela. Merci pour les precision, je vérifierai ce weekend.
        Et c’est quoi exactement le switch PPT at the startup ?
        73 Franck F1SSF
        Hi Christian
        It’s not conclusive, I cut all the input streams.
        I’m not sure if it’s a good idea to use the same software as the one I’m using now. Thanks for the code, but I didn’t catch it all to be honest. 73 franck f1ssf/42

        1. Salut Christian
          C’est pas concluant, j’ai coupé tous les flux en input.
          Malgres cela il passe en TX sans que je demande aléatoirement. Merci pour le code, mais j’ai pas tout capté pour etre franc. 73 franck f1ssf/42
          Hi Christian
          It’s not conclusive, I cut all the input streams.
          I’m not sure if it’s a good idea to use the same software as the one I’m using now. Thanks for the code, but I didn’t catch it all to be honest. 73 franck f1ssf/42

  17. Hello i have last version firm pluto , and win is 8.1 the soft OBS can not be connected PLUTO, OBS usb connect continuous message connection, disconnection, please one solution
    Bonjour, j’ai la dernière version de pluto, et win 8.1 le soft OBS ne peut pas être connecté à PLUTO, OBS usb connect message continu connexion, déconnexion, s’il vous plaît une solution.

    1. Yiannis,
      You may be streaming in RTMP. Try checking/testing with the flow control is CBR and a lowered flow value.(Parameters / Output / streaming tab)
      vous streamer peut être en RTMP. Essayer de vérifier/tester avec le controle de débit est CBR et une valeur abaissée de débit. (Paramètres / Sortie / Onglet Streaming)

  18. Hi Christian,

    I’m writing an iMac application to control & monitor a remote DATV / QO-100 ground station over my LAN. It’s all but finished, except that I’d don’t know how send configuration commands to the Pluto F5OEO firmware.
    Ultimately, I’d like to also have Pluto return the internal temperatures – which I think can be done via a bash script over SSH. So, perhaps SSH could write to a Pluto file that the F5OEO firmware would pickup.
    Any help you can provide will be very much appreciated. All I have on GitHub so far is a screenshot –
    Sorry to bother you, but you may be my only hope.

    Michael EA7KIR

    Bonjour Christian,
    Je suis en train d’écrire une application iMac pour contrôler et surveiller une station terrestre DATV / QO-100 à distance via mon réseau local. C’est presque terminé, sauf que je ne sais pas comment envoyer des commandes de configuration au firmware Pluto F5OEO.
    En fin de compte, j’aimerais aussi que Pluto renvoie les températures internes – ce qui, je pense, peut être fait via un script bash sur SSH. Donc, peut-être que SSH pourrait écrire dans un fichier Pluto que le firmware F5OEO ramasserait.
    Toute aide que vous pouvez fournir sera très appréciée. Tout ce que j’ai sur GitHub jusqu’à présent est une capture d’écran –
    Désolé de vous déranger, mais vous êtes peut-être mon seul espoir.

    Michael EA7KIR

Leave a Reply

Your email address will not be published. Required fields are marked *