Repository navigation
SatMe PC DATV
← SatMe-PC guide · October 2026
QO-100's wide band (or any frequency the receiver covers): receive DVB-S / DVB-S2 with a MiniTiouner, an ADALM-PLUTO, a bladeRF or a SatMe-Node near the antenna; see the ground station's wide band beside your own reception; your own spectrum from an SDR on the same LNB; judge the quality, point the dish (huge MER, trend, tone), the history, the level and the beacon calibration; subtitles (their display, spoken translation, a summary of the station received) and callsigns read in the picture; transmit in DVB-S2 or DVB-S (free slots, signal summary, encoder test, live clock, gain ramp and calibrated power), indoor test, station card and chat in the stream.
Where: DATV workspace (key 3) › Réception sub-tab (the others: Émission, Qualité, Sous-titres). At the top of the tab: the picture, its status, Pointage (pointing), Émis | Reçu (sent | received) and Schéma (diagram).
The DATV tab receives DVB-S / DVB-S2 on QO-100's wide band (or any frequency the receiver covers). The picture is sized to the window, with the lock, MER, MODCOD, the margin and its verdict, and the station's card beside it; Réception, Émission, Qualité and Sous-titres are sub-tabs.

Three receivers, chosen in the Réception card:
-
MiniTiouner (tuner and demodulator on USB), driven by LongMynd, BATC's free program. SatMe runs it apart, as it runs rtl_tcp: build it, then give its path on the page (or put it in the
PATH). Its LNB supply stays off unless chosen (13 V or 18 V), with a warning. On Linux a udev rule lets LongMynd open it — LongMynd's own file misses the Pro TS2 (USB nameMiniTiouner_Pro_TS2); this one covers them all, then unplug and plug it in again:echo 'SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", ATTRS{product}=="MiniTiouner*", MODE:="0666"' | sudo tee /etc/udev/rules.d/60-satme-minitiouner.rules sudo udevadm control --reload-rules && sudo udevadm triggerPlugged in, the MiniTiouner also shows as two serial ports (
/dev/ttyUSB…): never choose them as the rig's or the rotator's port. -
ADALM-PLUTO or bladeRF 2.0 with SatMe's own DVB-S2 demodulator (written from ETSI EN 302 307-1): carrier search on the spectrum, matched filter with clock recovery, PLHEADER search, carrier recovery on pilots or by decision, LDPC and BCH decoding, transport packets checked. QPSK and 8PSK, normal and short frames, with or without pilots. The SDR tab lends its board for the time of the reception and takes it back after; a board receiving DATV is refused to the transmitters. Lock is given up after 8 failed frames in a row.
-
A SatMe-Node next to the antenna (below).
What the tab shows: the beacon (10491.5 MHz, 1.5 MS/s), the narrow channels, 125 to 2000 kS/s; the LNB's oscillator (9750 MHz by default) and Caler sur le signal (calibrate on the signal) to correct it on the beacon; lock (DVB-S / DVB-S2), MER, MODCOD, carrier and offset, service and provider, the constellation live. The picture in the page (H.264 or H.265, the players restarted when a station changes its coding), the sound on the PC, the same stream in VLC, and recording to a .ts file.
Locking more surely (MiniTiouner):
- Essayer aussi: other symbol rates (3 at most) that LongMynd tries in turn when the chosen rate finds nothing, each for 5 s — 10 s at 250 kS/s and below, 20 s at 125 kS/s and below, those rates being slower to lock —, then back to the first; it stays on the one that locks (like BATC Ryde's scan presets). Taken at the next Recevoir, passed on to the SatMe-Node (an older node ignores them and receives at the chosen rate only). The rate locked on is used for the quality, the stations heard and the report.
- Relance automatique (ticked by default): LongMynd gone by itself in the middle of a reception (USB link, MiniTiouner reset) is started again after 3 s, then 10 s, then 30 s — never when it says it cannot find the MiniTiouner or has no access to it; a picture frozen while locked with the stream flowing: the players are started again (20 s at least between two).
-
LongMynd settings and decoding (Reception card, folded): the search width (
-S: ±1.5 × the rate by default, or 1, 0.6, 0.4 × the rate — narrower keeps LongMynd off a neighbour, but the LO must be right), the wait without packets before starting again (-r: auto, or 10, 20, 30 s, useful for a low rate alone, slower to lock), and tolerant decoding (ffmpeg and ffplay drop damaged packets, ignore errors instead of stopping on them and guess the lost parts of a picture: less grey and fewer blocks on a weak signal). Search and wait are taken at the next Recevoir and passed to the SatMe-Node (an older node ignores them).
Receiving, step by step (Réception card):
- Récepteur (receiver): MiniTiouner (LongMynd), ADALM-PLUTO or bladeRF 2.0. Où (where): sur ce PC (on this PC), or Changer (change) for a SatMe-Node (its address and its code, Associer (pair)).
- Ciel (MHz) (sky frequency) (Balise (beacon): 10491.500 MHz at 1500 kS/s), or a Canal (channel) of the band plan; the rate in kS/s (125 to 2000).
- OL du LNB (MHz) (LNB oscillator) (9750 by default); once the beacon is locked, Caler sur le signal corrects the oscillator.
- MiniTiouner Entrée (input) A (top) or B (bottom); Alim. LNB (LNB supply): coupée (off, the default), 13 V (V) or 18 V (H) — only if nothing else powers the LNB (a warning says so).
- Son sur ce PC (sound on this PC), Flux TS en UDP vers (TS stream over UDP to) (127.0.0.1:9080), Vumètre et volume (level meter and volume), Accord par UDP (tuning by UDP) (collapsed).
-
Recevoir (receive); Arrêter (stop), Enregistrer (record: the stream as
.ts), Photo (the picture as PNG), VLC (the same stream in VLC).
Below: Stations entendues (stations heard; one click goes back to one) and the Salon de la bande large (wide-band chat; afficher, show). The received picture is enlarged with ⛶ or a double click.
The MiniTiouner works best close to the LNB. A SatMe-Node is SatMe on a small computer there — a Raspberry Pi (a Pi 3 is enough for the MiniTiouner: the node only receives) — driven over the network by SatMe-PC and by the phone (QO-100 screen → DATV: the same controls, the picture through the phone's own decoder, full screen with a touch; the wide band's stations, chosen with a touch, when the ground station's spectrum is ticked). The phone and SatMe-PC take from the node its calibrated oscillator, its input and the LNB supply in use: changing station, from either, no longer cuts the LNB the node feeds; a restarted SatMe-PC finds a receiving node by itself. It runs LongMynd, or SatMe's DVB-S2 demodulator with a Pluto or a bladeRF; its status and the transport stream (0.3 to 2 Mbit/s) come to the PC, which shows, plays and records them as if the receiver were plugged into it.
Installing it on the Pi: Installing SatMe-Node on a Raspberry Pi — three commands, about ten minutes on a Pi 3. The script installs Java, builds LongMynd, lets it open the MiniTiouner (udev), and starts the satme-noeud service (satme --noeud, port 8090). At its first start the node draws a six-digit code, shown at the end of the installation (to see it again: journalctl -u satme-noeud | grep Code). In SatMe-PC, DATV tab, Changer: the node's address and its code, Associer. The PC keeps the key the node gave it: either can restart. An empty address goes back to the receiver on the PC. Without its key the node only says what it is; its LNB supply stays off unless chosen.
The node is not only for DATV. Suggested wiring, with a twin-output LNB:
- output 1 → MiniTiouner, which powers the LNB with 18 V (horizontal polarisation, wide-band DATV);
- output 2 → a bias tee (DC block on the board side) → bladeRF: the tee powers that output with 13 V (vertical, the narrow band), the board only gets the RF;
- the bladeRF on a USB 3 port (blue) of a Raspberry Pi 4 or 5; a Pluto can replace it, and/or transmit.
Montage proposes this wiring as soon as a paired node reports a MiniTiouner and an SDR.

The node's SDR as this PC's receiver. On the node's page (opened on the node), in Station › SatMe-Node, or in SatMe-PC's SDR tab: the board lent as the SDR (bladeRF or Pluto), independent of the DATV one — MiniTiouner and bladeRF receive at the same time. In the SDR tab, receiver « SDR du SatMe-Node »: it works everywhere a board plugged in here does (QO-100 cockpit, waterfall, FT8, beacon calibration and lock, recording). The node tunes its board as the PC asks (frequency, gain, correction), brings the stream down to the chosen rate in half-band steps (1.058 MS/s: the whole narrow-band transponder, about 34 Mbit/s, a cable is advised; 529 or 265 kS/s for a slow network), and sends it over one connection: a header (rate, centre, format), numbered and timestamped frames (lost frames are counted). Network gone: the reception waits, says why, and resumes by itself.
The node's transmitter. Station › SatMe-Node › « Émettre par le SatMe-Node » (transmit through the SatMe-Node; off by default): DATV and SSTV (FM or SSB) transmissions go out through the node's transmitter (Pluto or bladeRF, the same kind as the transmitter chosen here). SatMe-PC modulates as usual and applies all its rules (confirmation, callsign, bands, duration, ceiling, beacon loop); the node adds its own:
-
« émission autorisée sur ce node » (transmission allowed on this node), off by default, can be ticked only on the node itself (its page opened on the Raspberry Pi, or through a tunnel
ssh -L 18090:localhost:8090 pi@nodethenhttp://localhost:18090); unticking it stops a transmission at once; choosing another transmitter board from SatMe-PC unticks it too; - its bands (144–146, 430–440, 1240–1300, 2300–2450 MHz), its maximum duration and its own gain ceiling;
- a watchdog: nothing from SatMe-PC for 1.5 s (samples or « toujours là », still there), or the connection closed, and the transmission stops;
- never a board that is already receiving (lent SDR, DATV).
One controller for transmitting. This PC's page, the same page opened from another machine (remote mode, password), later the phone: all go through SatMe-PC's same routes and rules. One client holds the transmission at a time; everyone sees who, since when, what (the header's TX light); STOP is always possible from anywhere. Only the holding client's « toujours là » counts: from another machine, a link lost for more than 2 s stops the transmission, and the session's first transmission asks for one more confirmation.
Its page. Station › SatMe-Node (also the Suivi tab's small card, the status bar's Node chip and Ctrl+K) reads the node every 3 s: the Pi's temperature and throttling (vcgencmd), load, memory, microSD free space, network and I/Q stream throughput, USB boards and their speed (a bladeRF on USB 2 is flagged), each service's state and client, the last log lines, its version against this SatMe-PC's (with the update commands when the node is older). There too: each board's role (DATV receiver, SDR receiver, transmitter — one board never receives and transmits at once), « Utiliser comme récepteur SDR » (use as SDR receiver), and stopping a service, stopping the node's transmission, or restarting SatMe on the node (only when its systemd service restarts it; the Pi itself stays up).

Restarting or switching off the Pi. Services › Redémarrer le Pi (restart the Pi) / Éteindre le Pi (switch off the Pi), each after a confirmation saying what stops. The node first stops everything — the transmission (if it transmits, the dialog offers to stop it; otherwise it refuses), DATV reception (LongMynd, and the LNB supply), the SDR stream, boards let go —, writes its settings, answers, then runs systemctl reboot or poweroff. After a restart the page shows « redémarrage… » (restarting), finds the node again by itself and says when it is back (after 3 min it warns: power, network). Switched off, it is shown éteint (off), with no alarm, read every 30 s only: it can only be switched on again on site (power removed and restored). Only for a node run by its systemd service, with the right the installer gives it (/etc/sudoers.d/satme-noeud, those two commands only); without it the page says to run the installer again. Also on the node's own page opened on the Pi; never on the page served by the phone.
The phone, next. It will go through SatMe-PC (its remote mode), not straight to the node: one set of transmit rules, one controller, the 2 s watchdog. The node only takes one transmit client at a time and keeps its own guards. These routes answer without doing anything when the phone serves the page.
Where: the Spectre de la bande large — station sol, par Internet (pas ma réception) box (wide-band spectrum — ground station, over the Internet, not my reception) under the picture (Détails ▾: the list of signals, the watch, a taller spectrum), off by default: the QO-100 ground station's public spectrum of the wide band (10490.5 – 10499.5 MHz, 4 frames a second), read over the Internet while the option is on and the tab open. It is not what your own dish receives: carriers show there even with the dish mis-pointed.
-
My reception over it, in purple (legend Station sol (Internet) / Ma réception (MiniTiouner)): the MiniTiouner gives no spectrum, only its state and MER where it listens. Locked, a bar at the frequency and width found, as high above the noise as its MER (≈ C/N, drawn as (C+N)/N on the ground station's dB scale); searching or stopped, hatching « rien reçu ici » (nothing received here). One line compares both, e.g. « Balise : +8,2 dB à la station sol · chez moi : MER 5,9 dB (seuil QPSK 4/5 4,7 dB) » or « chez moi : rien (recherche) — la balise est là : vérifier pointage / polarisation / LNB ». The phone (DATV screen) shows the same.
-
The signals found, each with its width rounded to the nearest symbol rate, its level against the beacon, and the station's name once read (service name, station card or callsign in the picture; kept 24 h for that frequency and rate).
-
Click a signal: the MiniTiouner tunes to it (same oscillator, same input).
-
Veille (watch): the occupied channels in turn, held while locked, an optional recording named after the station; any tuning by hand stops it.
-
In the QO-100 cockpit too: Bande large DATV — station sol, par Internet, off by default, shows the same band under the narrow transponder; a click on a signal tunes the DATV receiver. The connection stays open only while one of the two tabs shows it.


Mon spectre — SDR sur la même tête (répartiteur), unticked by default: your own wide band, seen by the SDR tab's receiver (an RTL-SDR through rtl_tcp, an ADALM-PLUTO, a bladeRF, or the SatMe-Node's SDR) connected by a splitter on the same LNB as the MiniTiouner (its IF, 740 to 750 MHz with a 9750 MHz LO). The 9 MHz are swept in a few steps (five at 2.4 MS/s for an RTL-SDR), about once a second, and shown on the ground station's scale (its trace in grey over it when shown): signals are found the same way, their rate estimated from their width, and a click tunes the MiniTiouner to one. Nothing is opened without the box; the receiver is held only while the DATV tab is open, and refused while the SDR tab receives with it. When the beacon does not show, or not where the MiniTiouner finds it, a warning says so (the SDR is not on the same LNB, its gain, its ppm correction). The splitter must pass the LNB supply to one output only. Bande simulée (essai): a made-up band, to see it without hardware.
Without an SDR, the MiniTiouner cannot stand in for an analyser: LongMynd has to be restarted for every tuning (one to two seconds, plus its wait), and its AGC level measures the tuner's whole band (some 10 MHz); a sweep would be slow, blurred, and would cut the reception.
Each off until chosen in the Réception card.
-
Vumètre et volume: the sound is decoded by SatMe (ffmpeg to 48 kHz stereo PCM) instead of ffplay, played on the PC's sound output at the chosen volume (0 to 200 %, applied at once), its left and right levels (« M » when both channels are the same) with the peak held 1.5 s. Écouter ici (listen here) › Son DATV also sends it to the browser, with its own volume.
-
Salon de la bande large: the ground station's public chat (BATC), read only until you write: nothing is sent without a click on Envoyer, the nick is the station's callsign (set just before the first message), one message every 3 s at most; without a callsign it stays read only. Messages show latest on top, under the input box (the same for the chat lines of the station card and of the transmitted stream). Rapport writes the usual reception report into the box (« SigReport: callsign - D margin (MER dB) - rate Ks - frequency »), to read over and send. No online DATV reception report service is reachable today: the page says so (« service indisponible ») and nothing else is sent.
-
Accord par UDP: another program asks for a tuning by a text datagram, on the chosen port (9997 by default), from this PC only — or from the local network, when SatMe-PC runs with
--reseauand the box is ticked. Receive only: nothing is ever answered nor transmitted, the LNB supply stays as it is, one request every 2 s at most (10 a minute), the same one asked again while receiving restarts nothing. Two formats:FREQ=10494750;SR=1500;OL=9750000;ENTREE=A [GlobalMsg],Freq=10491500,Offset=9750000,Srate=1500,FPlug=AThe first: the sky frequency in kHz (or in MHz with a point:
FREQ=10494.75), the symbol rate in kS/s, the LNB's oscillator in kHz and the input A or B optional (kept otherwise). The second, common among DATV tools: Freq in kHz, Offset the oscillator in kHz (0: Freq is already the intermediate frequency), Srate in kS/s; its other keys (supply, 22 kHz…) are ignored. For example:echo -n 'FREQ=10494750;SR=333' | nc -u -w1 127.0.0.1 9997.
Where: DATV › Qualité sub-tab. It says whether the picture is good, and why:
- The margin (D), big and coloured (the "D" of the chat's reports, as on Ryde): the MER against the MODCOD's quasi-error-free threshold (EN 302 307-1), with a plain verdict ("Image parfaite"…).
- Tiles: packets received against expected (from the PCR), continuity errors and missing packets, transport errors and sync losses, error correction (LDPC, BCH), whole DVB-S2 frames lost, the video and audio decoders' errors, the tables seen (PAT, PMT, SDT, PCR) and the stream's null share.
- Four curves over 2 minutes (MER, margin, packets, continuity errors), the PIDs table, the constellation. When the receiver holds our own transmission, packets sent against received.
-
Pointage (button at the top of the DATV tab, or straight to
http://<address>:8090/pc?pointage=1, on the phone too): a full-screen view readable from a distance — the MER very large (coloured by the margin), the D margin, the trend (▲ better / ▼ worse than 5 s ago, steady within ±0.15 dB), the best reached (and when; Max à zéro to start again), the estimated level, a curve of the last 2 minutes, and a tone whose pitch follows the MER (an octave per 3 dB, higher = better; unlocked: low beeps), started by its button. Unlocked, the state says so in red (« DÉCROCHÉ depuis 12 s »). The reminder: the beacon alone is the reference, one touch-up at a time, then wait 5 s. Marquer une retouche notes it in the history (« azimut + », « tête 5 mm vers l'avant »…). - History (Quality sub-tab): MER, D margin and level, a point every 10 s (the median), over 10 min, 1 h, 6 h or 24 h, the time unlocked in red, and marks: station changed, stop, LO calibrated, touch-ups. To see the effect of rain, of the transponder's activity, of each touch-up. Kept in memory while SatMe runs.
- Level (≈ dBm, indicative): from the tuner's two AGCs after the measurements BATC published (G8GKQ), on MiniTioune's and Portsdown's scale — −70 to −35: good; below, the tuner is at full gain (LNB unpowered, a cable, a splitter); above, its LNA's gain is cut. It measures some 10 MHz noise included: for checking the chain, not for pointing (the MER is).
- Calage auto sur la balise (Reception card, unticked by default): locked on the beacon (DVB-S2, 1500 kS/s, held 5 s), the offset measured gives the LNB's real LO — the LNB's and the MiniTiouner's crystal errors together, the same for every station —, followed slowly (the median of the last half minute) with its drift in kHz/h, always shown. Ticked, that LO is taken at the next tuning (LongMynd is not retuned while running), when off by more than 3 kHz and less than 600 kHz (beyond, it is not the beacon) and the measure is less than 6 h old; the history marks it.
Where: DATV › Sous-titres sub-tab: Sous-titres : le son reçu écrit sous l'image (Phonie → texte) (subtitles: the received sound written under the picture), avec la traduction (français) (with the translation, French), sous-titres en français : la traduction seule sur l'image (subtitles in French: only the translation on the picture), Lire les indicatifs dans l'image (read the callsigns in the picture). All off until ticked.
- Sous-titres: the received sound (its first audio track, decoded by ffmpeg) goes to voice to text; over the picture as TV subtitles: each over cut into cues of two lines at most (by sentence, then by clause, the two lines balanced), each shown for a time that grows with its length (1.5 to 7 s, paced on the over's duration), the language's flag, and the translation under it cut into as many pieces. Nothing is cut off: the font follows the picture's width (full screen too) and shrinks until everything fits, never below a readable size (beyond that, the line wraps). When late, the latest over comes first. The history is in the sub-tab, latest on top (no scrolling; reading further down, new ones come above without moving what you read), with callsign chips filling the log in mode DATV.
-
Callsigns read in the picture: every 3 s while locked, the latest frame read by tesseract (
sudo apt install tesseract-ocr); a callsign is shown once read twice, look-alike signs repaired (A/4, O/0…), checked against the service name, the station card and the log. Its QRZ.com record (name, town, country, locator with distance and bearing, LoTW / eQSL, photo) is looked up by SatMe-PC, kept 7 days, at most one request every 5 s. Callsigns follow the station: another frequency, another service name (SDT) or a lost lock puts them away, and so does five minutes without being read again. Each says "vu à l'instant" (read within the last 20 s, the only case where it is written over the picture) or "vu il y a 3 min" (greyed); those put away are under Vus avant (folded, with frequency and service, 12 at most). - Noter le QSO: QO-100 or DATV terrestre by the frequency received, mode DATV (ATV in ADIF), the MER as report, name and QTH from QRZ when blank.
- Affichage des sous-titres (folded under the Subtitles box, set per browser): the area's width (40 to 100 % of the picture), the number of lines (1 to 4, 2 by default), the line length (20 to 90 signs, about 3 to 15 words), the size (auto, fitted to the picture, or small / medium / large / very large, as a share of the picture's width), the duration (shorter to much longer) and Plus de texte (4 lines, 90 % wide, longer lines, the two previous cues kept above, paler). Each change shows a preview on the picture; Par défaut resets them. Whatever the setting, nothing is cut off: the text shrinks, then wraps.
- 🔊 Traduction parlée (off by default): each received over's translation said by voice to text's synthetic voice (Piper, else eSpeak NG, speech-dispatcher or the browser's voice), with settings of its own: the voice (by the voice heard, or chosen), its volume, and how much the original sound is lowered while it speaks (70 % by default, brought back smoothly). Only the translation is said (an over in your own language is not repeated): tick "avec la traduction". It never talks over itself: one over waits at most, the latest, and an over more than 20 s late is not said. It plays where the DATV sound plays: this PC's speaker (the sound lowered when SatMe plays it, "Vumètre et volume" box; played by ffplay it cannot be) and the browser listening to it ("Écouter ici" › DATV sound, which lowers its own sound); DATV sound off: this PC's speaker. Works when reception goes through a SatMe-Node. No voice installed: the card says so and leads to Réglages › Phonie → texte › Traduction parlée. Receive only: never transmitted.
- Résumé (under the card): for the station received (and the previous ones, folded), who (callsigns heard 🎙, read in the picture 🖼, in the service name 📡), the reports ("5/9", MER, margin in dB), the locators, the gear named (Pluto, MiniTiouner, dish and its size, amplifier and its power…), frequencies and symbol rates, and up to five key sentences, in your language when the over is translated. Made on this PC, without Internet or a language model (the installed voice-to-text engine has none), updated with each over. Copier puts the summary as text on the clipboard; Noter le QSO fills the DATV contact (callsign, locator, report) without saving it. Check it: the transcript can be wrong.
Where: DATV › Émission sub-tab (Émission · ADALM-PLUTO card).
The DATV tab's Émission sub-tab sends a DVB-S2 (or DVB-S) signal to QO-100's wide band transponder with an ADALM-PLUTO or a bladeRF 2.0 (a HackRF One only for indoor and dummy-load tests). SatMe makes the DVB-S2 itself (EN 302 307-1: QPSK at every rate, 8PSK 3/5 to 9/10, normal or short frames, pilots, roll-off 0.35 / 0.25 / 0.20); ffmpeg makes the picture into a transport stream at exactly the rate the MODCOD carries (-muxrate, null packets filling it), H.264 or H.265, the service's name and provider being the station's callsign.
Transmitting, step by step (Émission card, top to bottom):
- Émetteur (transmitter): ADALM-PLUTO, bladeRF 2.0 or HackRF One (tests only); Détecter (detect) reads the board without transmitting anything.
- Norme (standard: DVB-S2 or DVB-S), MODCOD, trames courtes (short frames), pilotes (pilots), kS/s, roll-off.
- Canal of the band plan, a free slot from Créneaux ↓ (from the ground station's spectrum), or the Montée (MHz) (uplink); the signal summary gives the MER receivers need, Tester l'encodeur checks the machine keeps up (nothing is transmitted).
- Source: Mire SatMe + indicatif (SatMe test card + callsign), Mire animée (vidéo de test, bip) (animated test card: test video, beep), Horloge en direct (live clock), Image fixe (still image), Fichier vidéo (en boucle) (video file, looped), Caméra (camera); H.264 or H.265; son (sound). Parcourir… (browse) for the image or the video; Prévisualiser (preview).
- Incrustation sur l'image (overlay on the picture; collapsed); Carte de visite dans le flux (station card in the stream; collapsed: QTH, power, antenna, message, Retour NB (narrow-band talkback)).
- Gain TX (dB) (−1 / +1), Durée (min) (duration); or Test sur charge (dummy-load test) / Essai en intérieur (indoor test) (below).
- ÉMETTRE (transmit), then confirm. ARRÊT (stop), Esc or the header's TX stop everything. While transmitting: the gain ramp ▼ / ■ / ▲ (and Reprendre, the power calibrated for this rate), the chat (Enter), Adapter le MODCOD à la réception (adapt the MODCOD to the reception).
- Norme: DVB-S2, or DVB-S (EN 300 421: energy dispersal, RS(204,188), I=12 interleaver, K=7 code punctured 1/2 to 7/8, QPSK) for receivers that read only that. Same station card; MODCOD adaptation stays DVB-S2.
-
The picture: SatMe's test card with the callsign, an animated test card (a moving picture over the bars, a beep each second), a live clock (a dial whose second hand moves, the UTC time and date, callsign and locator, a beep each second: delay and smoothness seen at a glance), a still image, a video file looped, or a camera (
/dev/video…, listed only until a transmission starts). -
Parcourir…: the PC's folders (home, removable media, SatMe's
datv-sources), read only, with thumbnails; files sent from the browser (500 MB at most) are kept indatv-sources. Prévisualiser makes one picture with the same command, nothing transmitted. - Incrustation (overlay; off by default): callsign, locator, a free line, the UTC time and the SatMe mark, in a corner or a strip, over the picture.
- Émis | Reçu: while transmitting, the picture sent is shown beside the picture received back from QO-100 (one under the other on a narrow screen), whichever sub-tab is open; under the first the MODCOD, frequency and rate, under the second the lock, the MER and whether it is our own signal. The picture sent is decoded by SatMe-PC, at a low priority, from a copy of the stream going to the modulator (5 small pictures a second, only while a page looks at it): nothing more is transmitted, the stream sent never waits. With the UTC time overlaid, the gap between the two clocks is the round trip's delay. The title's button separates or joins them. Reception only: nothing changes.
- Enlarge: ⛶ at the bottom right of each picture, or a double click; ⛶, a double click or Esc to come back (Esc also stops every transmission, as everywhere on the page). Not transmitting, the browser's full screen; while transmitting, the picture fills the window with an ARRÊT button (the browser's full screen would keep Esc for itself).
- Créneaux ↓ (slots): the band plan's channels at this symbol rate (14 narrow ones 500 kHz apart at 333 kS/s and below, the wide ones at 1000 and 1500 kS/s), green free, red busy (with the callsign when known) on the ground station's spectrum, cyan our own signal, hatched when they touch the beacon or leave the transponder, grey without a spectrum. A click on a free slot sets the transmit frequency (nothing is sent); a busy or forbidden one is refused. The same marks show under the wide band spectrum while the Émission sub-tab is open, and the ÉMETTRE confirmation says whether the channel is free or busy. While transmitting, our signal is marked « TX · callsign » there.
- Signal summary: standard, MODCOD, downlink frequency, symbol rate, the MER receivers need (EN 302 307-1's threshold, or EN 300 421's for DVB-S; allow 1 to 2 dB more for a real receiver), the codec, the picture's size and frame rate, the sound, and the video's share of the stream.
- Tester l'encodeur (encoder test): a few seconds of a test picture coded by ffmpeg to nothing, at this symbol rate and MODCOD's picture size and video rate, in software H.264 and H.265 and with the hardware encoders ffmpeg lists (NVENC, Quick Sync, AMF; not in the demonstration). The result (× real time) is kept per rate and MODCOD; SatMe recommends H.265 when it keeps up with a margin, else H.264, else a lower rate — Passer en H.265 / H.264 applies it. A fast hardware encoder is named, but SatMe still codes in software. Never while transmitting, no camera opened.
- Rampe (while transmitting, Pluto and bladeRF): ▼ Descendre lowers the gain 3 dB a second down to −60 dB, ▲ Monter raises it 1 dB every 2 s up to the gain calibrated for this rate (else the gain set), ■ Stop holds it. Going up stops at once when the loop says too strong; each step goes through the same caps as a gain typed in.
- Power calibrated per rate: when the MiniTiouner loop sees our signal 1 to 6 dB under the beacon for 10 s at the same gain, that gain is remembered for this symbol rate (« non calibrée pour 333 kS/s » otherwise). Reprendre puts it back in the field (stopped) or ramps up to it (transmitting); Oublier forgets it. Never applied by itself.
- Adapter le MODCOD à la réception (off by default): while our own signal comes back (service or station card in our callsign), SatMe chooses the most efficient MODCOD of the allowed range whose threshold stays 2 dB under the MER — down quickly when the margin falls or packets are lost, up slowly after 20 s of spare margin, waiting 8 s after each change for the receiver to relock, taking the most robust one if the loop is lost. Frequency, symbol rate and power are never touched; a lower power is suggested on QO-100, never applied.

The station. PC —USB— Pluto TX port → band-pass filter → power amplifier → feed (2.4 GHz uplink). Reception check: dish, LNB → MiniTiouner (Réception). A board transmitting does not receive (the SDR tab refuses it), and the other way round; DATV and SSTV transmissions exclude each other.
| kS/s | samples per symbol | Pluto rate |
|---|---|---|
| 125 | 17 | 2.125 MS/s |
| 250 | 9 | 2.25 MS/s |
| 333 | 7 | 2.331 MS/s |
| 500 | 5 | 2.5 MS/s |
| 1000 | 3 | 3 MS/s |
| 1500 / 2000 | 2 | 3 / 4 MS/s |
The bladeRF keeps at least 4 samples per symbol. A symbol rate or MODCOD not offered is refused, never silently replaced.
First test: into a load, never into the antenna. Pluto TX → 30 dB attenuator (or more) → MiniTiouner input (its tuner covers 2.4 GHz directly: Ciel = the uplink frequency, LNB oscillator 0, LNB supply off). Tick Test sur charge (any frequency, gain held at −40 dB or below, a red warning), choose 333 kS/s QPSK 2/3, ÉMETTRE, confirm: the MiniTiouner should lock on DVB-S2 with the callsign as service and the test card as picture. Only then the amplifier and the dish.
The rules, built into the code.
- Only on the operator's action: ÉMETTRE then a confirmation; never at startup, never taken back from the settings (only the parameters are kept).
- A callsign (Réglages › Ma station) before anything is sent.
- On the air, the whole occupied band (Rs × (1 + α)) between 2403.000 and 2410.000 MHz uplink: clear of the beacon (uplink 2402.0 MHz, its band ending near 2402.9 MHz), up to the band plan's last channel (10499.25 MHz down, 2409.75 MHz up). The channel list is the band plan's; the one the MiniTiouner holds is marked busy.
- Duration: 10 min by default, 30 min at most, then it stops by itself.
- It stops by itself when the board stops taking samples or is pulled out, when the samples come late too often, when ffmpeg stops, when the page has been silent for 15 s (closed tab, lost network), and when SatMe-PC closes.
- At every stop the Pluto's TX oscillator is powered down first; at the start it stays down until the first samples are in. Should the Pluto be unreachable at that moment, the page says so: unplug it.
- TX gain (an attenuation, 0 dB = full power): Pluto −30 dB by default, bladeRF −50 dB, never above the maximum set in Réglages (−10 dB by default).
- Closed loop: the receiver's MER on our own signal against the beacon's (measured beforehand, Balise button): if we are not at least 1 dB under the beacon, a warning, and the gain is stepped down 1 dB every 5 s until we are. It never steps back up by itself.
Réglages › Poste et rotor › ADALM-PLUTO: the maximum TX gain, and Couper l'oscillateur d'émission du Pluto quand SatMe s'en sert en réception (power down the Pluto's TX oscillator when SatMe uses it for reception; off by default). A Pluto switched on leaves its TX oscillator running (2450 MHz by default): ticked, SatMe powers it down each time it starts receiving with the Pluto.
Essai en intérieur (Pluto, bladeRF or HackRF): two small antennas a few metres apart, indoors, to see the whole chain work before any dish.
- A real radio emission: for a licensed radio amateur, under the callsign (service name and test card), with an orange warning in the card.
- Only in amateur bands the MiniTiouner covers, the whole occupied band inside: 23 cm 1240–1300 MHz or 13 cm 2300–2450 MHz. 1255 MHz by default; 1260–1300 MHz is shared with radionavigation satellites and 2400–2450 MHz with Wi-Fi (the card says so).
- Minimum power: Pluto and bladeRF at −40 dB at most; the HackRF with its amplifier off and VGA ≤ 20 dB.
- 5 min by default, 10 min at most, then it stops by itself. The QO-100 closed loop is not used.
The receiving side. The card gives the MiniTiouner's settings for the test: Ciel = the transmit frequency, LNB oscillator 0, the same symbol rate, LNB supply off — Régler la réception (set up the reception) fills them in (without starting). With an antenna on the MiniTiouner's input the LNB supply must be off, or its 13/18 V go into the antenna. A Pluto or bladeRF can receive instead, with SatMe's demodulator.
First indoor test, step by step. Callsign set (Réglages › Ma station). HackRF (or Pluto) TX → small 23 cm antenna; receiver input → another small antenna, 2–3 m away. Card: Émetteur HackRF One, Détecter; tick Essai en intérieur, 1255 MHz, 333 kS/s, QPSK 2/3, test card, VGA 0 dB (Pluto: −40 dB or lower), 5 min. Régler la réception, then Recevoir in the Réception card (LNB supply off). ÉMETTRE, confirm: the receiver should lock on DVB-S2, the callsign as service. No lock: raise the VGA a few dB, or bring the antennas closer.
While transmitting, SatMe slips a station card into the transport stream, and the chat typed in the Émission card (a line of 140 characters at most, one every 2 s; typing never transmits: the chat only rides on a transmission already started). They take the place of null packets: the rate is unchanged, so are the picture and sound, and a receiver that does not know them ignores them. On reception the DATV tab shows the received station's card (flag, locator, distance and bearing, message, software; marked when it is already in the log), its chat lines as bubbles, and Noter le QSO. Receiving one's own signal ticks one's lines ✓✓ reçu (received). The card is switched off under Carte de visite dans le flux.
Talkback on the narrow band. The Émission card also announces where the station listens for answers on the narrow band transponder (Retour NB, in MHz, SSB or CW): by default the QO-100 cockpit's frequency when the rig is there. On reception the station's card shows « Retour en BLU : 10 489,xxx » (talkback in SSB) and Écouter le retour (listen to the talkback): the QO-100 cockpit opens, the narrow band receiver tunes there and Phonie → texte is switched on when installed. A talkback announced on the emergency frequency is flagged, never tuned by itself.
The format, for anyone who wants to read or send it:
-
PID 0x1F00, MPEG private sections (ISO/IEC 13818-1, long form:
section_syntax_indicator1,private_indicator1, MPEG-2 CRC-32 at the end); one section per group of packets, the first withpayload_unit_startandpointer_field0, the last padded with 0xFF. The PMT is left unchanged. -
table_id 0xE5: card (
table_id_extension0,version_numberchanges with the content), repeated every 2 s. table_id 0xE6: chat line (table_id_extension= 16-bit sequence number), sent 5 times 1 s apart; the receiver drops duplicates by callsign and sequence. - Payload:
SATM, a format byte (1), then TLV fields (1-byte tag, 1-byte length, UTF-8 value of 255 bytes at most). Tags: 0x01 callsign (required), 0x02 locator, 0x03 name, 0x04 QTH, 0x05 power, 0x06 antenna, 0x07 software, 0x08 transmit frequency (kHz, in digits), 0x09 MODCOD, 0x0A symbol rate (kS/s), 0x0B message, 0x0C talkback frequency on QO-100's narrow band transponder (downlink in Hz, in digits), 0x0D its mode (USBorCW), 0x20 chat text. An unknown tag is skipped; a format byte ≥ 0x80 announces an incompatible layout: the section is ignored.
SatMe · free software (GPL-2.0-or-later) · Source code · Issues · 73 de F4IOZ
SatMe
🇬🇧 English
- Home
- Why SatMe
- Installation
- Getting started
- Passes and tracking
- Orbital elements
- Rig control (CAT)
- Audio recording
- SSTV
- METEOR pictures
- Pass journal
- APRS
- Logbook
- Locators and skeds
- QO-100
- SatMe-PC
- Install SatMe-PC
- SatMe-Node (Raspberry Pi)
- Extensions
- SatMe GP server
- What's new
- FAQ
- Privacy
🇫🇷 Français
- Accueil
- Pourquoi SatMe
- Installer SatMe
- Premiers pas
- Passages et suivi
- Éléments orbitaux
- Pilotage du poste (CAT)
- Enregistrement audio
- Images SSTV
- Images METEOR
- Journal des passages
- APRS
- Carnet de trafic
- Locators et skeds
- QO-100
- SatMe-PC
- Installer SatMe-PC
- SatMe-Node (Raspberry Pi)
- Extensions
- Serveur GP SatMe
- Nouveautés
- FAQ
- Confidentialité