Blindscan on linux with tbs cards

I also tried what you did just now with no success.

Maybe I'm wrong, but unfortunately, there is no tool to run this type of stream because it is encapsulated. This was not provided by some device manufacturers to decapsulate these streams.

For example, to decode this stream, you need to find the PID, which has several IP addresses, as you see in the TSReader picture. Each of these is a content carrier, and the streams are packaged.

I think unpacking them to play this content is a developer problem.
To be successful, they have to take into account PIDs and IP addresses.
This is one end of the thread that a developer has to run.

Of course, what I'm saying now is the opinion of a user and not a software scientist.:unsure
 
We will not have any success with decoding continuous streams. I recently worked in a company that has to do with the transmission of these things. It was explained to me there that a file containing the user data and all relevant parameters would be sent to the remote site. Only then and of course with the appropriate hardware does the decoding work.
 
We will not have any success with decoding continuous streams. I recently worked in a company that has to do with the transmission of these things. It was explained to me there that a file containing the user data and all relevant parameters would be sent to the remote site. Only then and of course with the appropriate hardware does the decoding work.
There are some famous examples of data being transmitted unencrypted (maritime services), and in the past I discovered streams feeding the entertainment system on planes.

In any case, rather than focusing on what is difficult to get, I would focus on non encrypted video/audio probably for feeds or for re-broadcast (like t2mi).

Something else to try later: there is a multistream somewhere (30W) which has hundreds of streams. On stid135 it is theoretically possible to receive all of them simultaneously with the new code. Not sure what that could be useful for.

The new code also can capture some other things, which are currently only exported through a debugging interface:
Code:
cat /sys/module/dvb_core/demux8/demux
adapter_no=8
dvb_demux=00000000e54e9ac7: fe_feeds=00000000e6b4cb69 default_feeds=00000000f2e19f15 default_stream_id=4
  fe_feeds=00000000e6b4cb69:embedding_pid=-1 isi=-1 feeds.refcount=2
    stid=00000000ca4daa5b bbframes_pid=270 parent_feeds=00000000e6b4cb69 stid.refcount=2
      Streams:
        ISI/PLP:matype:  4:0xd2 5:0xda
        bbf=00000000d8ea0a9f isi=4 upl=188 dfl=5370 issy=0 bbf.refcount=1 emb=00000000ca4daa5b feeds=00000000e7c6a71c
          fe_feeds[isi=4]=00000000e7c6a71c:embedding_pid=270 isi=4 feeds.refcount=1
            No embedded streams
            No output feeds
            Including default feeds
        bbf=000000005ff37264 isi=5 upl=190 dfl=5370 issy=0 bbf.refcount=1 emb=00000000ca4daa5b feeds=00000000e1ecaae0
          fe_feeds[isi=5]=00000000e1ecaae0:embedding_pid=270 isi=5 feeds.refcount=2
            t2mi=00000000a5921592 bbframes_pid=4096 parent_feeds=00000000e1ecaae0 stid.refcount=1
              Streams:
                ISI/PLP:matype:  0:0xf8
                bbf=0000000073358a8a isi=0 upl=188 dfl=6041 issy=10639221 bbf.refcount=1 emb=00000000a5921592 feeds=000000003e6998cb
                  fe_feeds[isi=5][isi=0]=000000003e6998cb:embedding_pid=4096 isi=0 feeds.refcount=2
                    No embedded streams
                    feed=00000000770f2985 pid=8192 type=0 parent_feeds=000000003e6998cb index=0
            No output feeds
    No output feeds
  default_feeds=00000000f2e19f15:embedding_pid=-1 isi=-1 feeds.refcount=1
    No embedded streams
    No output feeds

The interesting bit is
Code:
ISI/PLP:matype:  4:0xd2 5:0xda
which shows that there a 2 streams on this mux (12606V@5.0W) with "matype" 0xd2 and 0xda

The other output maybe difficult to understand, bit it shows that currenly nothing is using
stream 4 ("No embedded streams" and "no output feeds"), whereas something (neumo-dmx) is using stream 5,
and specifically a t2mi mux embedded in pid 4096. It is using the whole mux, because it uses the fake PID 8192
which means "everything"

So this is a complicated case: a multistream embedded by the stid135 chip into a transport stream, which is unpacked
into two transport streams (4 and 5), with one of the streams (5) containing a t2mi transport stream which is embedded in pid 4096.

All of this is with commands
Code:
neumo-tune -ctune -A blind -a 8 -r 1 -U3 -f 12606000 -pV --pls-code=ROOT+16416  --stream-id=4 -b
neumo-dmx -a 8 -d 0 --pid 0x2000 --stid-isi=5 --stid-pid=270 --t2mi-pid=4096 --t2mi-plp=0 > /tmp/stream5.ts
runining in parallel.
The stream can afterwards be viewed in vlc.

It is also possible to download stream 4 and 5 simultaneously while using only one demod, but only on stid135 based cards.
For all other cards, it is possible to download multiple t2mi streams from one demod. neumoDVB already supports the latter
(for amny months now). There are a few (but not many) muxes with more than one t2mi stream.


1.webp
 
I have now been able to patch tvheadend to make use of the new neumodvb drivers. This allows decrypting t2mi multistreams,
for example 11402V@16.0E. First scan the mux as usual. Then add a copy with the same tuning parameters, except that you
add a t2mi pid and a plp id. The screenshots show what the GUI looks like while editing and what it looks like when playing
one of the services.

Currently viewing N1. My sympathy for the Ukraine for fighting dictators and gangsters.

2.webp3.webp
 
I take it you've updated drivers? Or what?
 
"""I have now been able to patch tvheadend to make use of the new neumodvb drivers.""
Nothing released yet, but working fine e.g.on Bosnia-Herzegovina mux and on rai mux on 5.0W
 
This is my first time scanning T2-MI mux with neumoDVB on 11401 V, 17500, 3/4,8PSK. at 16.0E.
I haven't noticed any problems with locking and viewing this package.

I tried with TVHeadend, but as you can see, it failed. Patching would probably accomplish this, but I don't know how.
 

Attachments

  • tvheadend-16.0E_11401 V-no T2Mi pid_2025-02-24_14-12.webp
    tvheadend-16.0E_11401 V-no T2Mi pid_2025-02-24_14-12.webp
    35.8 KB · Views: 42
  • 11401 V_PLP T2-MI_2025-02-24_13-20.webp
    11401 V_PLP T2-MI_2025-02-24_13-20.webp
    134.8 KB · Views: 34
  • 11401 V_ Services TV_PLP T2-MI_2025-02-24_13-20.webp
    11401 V_ Services TV_PLP T2-MI_2025-02-24_13-20.webp
    107.4 KB · Views: 30
  • 11398 V,17500,34,8psk-T@-MI_2025-02-24_13-27.webp
    11398 V,17500,34,8psk-T@-MI_2025-02-24_13-27.webp
    64.1 KB · Views: 43
I have just uploaded the newest version of the drivers: release-1.6

* New demux api to support internal demuxing of bbframes streams (stid135-based cards only) and t2mi streams
(all cards).
* Updated neumodvb api version to 1.6
* Documented neumodvb api version 1.6
* New /sys/module/dvb_core/demuxX/demux and /sys/module/dvb_core/demuxX/dmxdev entries to show the
internal state of demuxing.
* Bug: incorrect unlocking during sleep.
* Bug: pls_code set to 0 when blind-tuning from positioner_dialog.
* Remove some of the confusing mess due to isi/pls_code/mode specification in stream_id in legacy applications.

You can use this with the latest version of the blindscan command line utilities

Or with a patched version of tvheadend
This allows you to view T2MI streams in tvheadend.
 
Hello :)

I hope this is a patched 4.3 tvheadened as 4.2.7 doesnt give me CAM capabilities, i hope this works with arch linux too :) and thanks for your great work

Regards from Slovenia!
 
Yesterday, I have release a driver update. Mainly bug fixes.

I have also updated the blindcan commandloine tools and added a
document explaining how to use these tools together with eti-tools and
dablin-gtk to receive DAB (Digital Audio Broadcast) streams on satellite.


All the ones listed on GitHub - piratfm/eti-tools: ETI conversion software
now work, but all of the guess work on what commands to use is no
longer needed. :->
 
i can report it compiles on Arch Linux with latest zen kernel aswell that is 6.14.10-zen1-1-zen, i just have to get working the tvheadend form you and we are golden :)
 
i can report it compiles on Arch Linux with latest zen kernel aswell that is 6.14.10-zen1-1-zen, i just have to get working the tvheadend form you and we are golden :)
In case you have any specific compilation/installation instructions for arch linux, let me know, so I can add them for other users.
 
In case you have any specific compilation/installation instructions for arch linux, let me know, so I can add them for other users.
I use these dependencies in the Archlinux distro Manjaro (or Arcolinux / EndeavourOS):-

base-devel clang gcc cmake libtool boost boost-lib curl log4cxx libconfig \
wxwidgets-gtk3 freeglut librsvg libexif gobject-introspection expat python-wxpython \
python-configobj python-sip4 python-matplotlib python-jinja python-regex \
python-numpy mpv python-mpv ffmpeg libx11 libglvnd espeak-ng perl perl-proc-processtable \
python-cachetools perl-proc-processtable python-scipy fmt

Needed from Archlinux AUR - libdvbcsa sip4 python-mpl-scatter-density python-fast-histogram. These may build with no input needed if you have access to AUR from the Add/Remove Software GUI. Or use pamac in Terminal.
 
Compared to on windows very few blindscan solutions are available on Linux, so I decided to make my own.
This meant: adapting the kernel drivers, providing a kernel interface and developing some user space command
line and plotting programs to test.

Currently the software supports stid135 based cards (tbs6909x and tbs6903x), and stv091x based cards
(tbs 5927). It provides two functions: 1) creating a spectrum and 2) blindscanning transponders on a satellite.
There is no gui (yet). The code support MIS and PLS scanning.

The stid135 blindcan code takes about 6 minutes to scan all Astra 2 transponders. It uses the chips fft engine
and outputs a high resolution spectrum (100kHz or better) simultaneously. The spectrum is computed first,
then searched for peaks, and then candidate transponders are blind scanned. The spectrum is saved to
a file and the blindscan results are saved in scan-s2 format. If desired, the spectrum can be retrieved without
blind scan as well.

Her is an example spectrum on 5.0W with 100kHz resolution, showing some low symbol rate transponders.
On this satellite all transponders with symbol rate larger than 1MS/s are found. By switching the spectrum
resolution to 50kHz even one or two sub 1MS/s transponders are detected. The spectrum is quite clean
after solving some bugs:
View attachment 131995

The stv091x blindscan code does not compute a spectrum first but rather computes parts of it as needed.
So it does not output a spectrum along with the blindscan, but it can still produce a spectrum
with other command line options. The stv091x seems to handle low symbol rates faster and it can scan down
to 250Mhz (useful for Eshail 2amateur transmissions).


The first working software is now available on github:

The kernel code is located on github: deeptho/linux_media
and is a fork of the tbs driver code.

The user space code is located at at deeptho/blindscan

If you encounter problems, open a ticket on github, but be sure to mention the exact version
of the kernel and user code and of course provide a detailed description of the problem.
This is great! I'm gonna give it a go next week on my 5927. What adaptations did you make to the tbs drivers?
 
In case you have any specific compilation/installation instructions for arch linux, let me know, so I can add them for other users.
i have to refine the scripts i wrote and after everything will be fixed i can share to the world, i dont wanna give halfbaked goods to the world :)
 
Yesterday, I have release a driver update. Mainly bug fixes.

I have also updated the blindcan commandloine tools and added a
document explaining how to use these tools together with eti-tools and
dablin-gtk to receive DAB (Digital Audio Broadcast) streams on satellite.


All the ones listed on GitHub - piratfm/eti-tools: ETI conversion software
now work, but all of the guess work on what commands to use is no
longer needed. :->
Finally, I managed to get the DAB+ NRK to run well with the card 6903xt and the two utilities, neumo-tune / neumo-dmx + eti-tools on Ubuntu 24.04 LTS and kernel 6.8.8.8 :Y
 

Attachments

  • DAB+ NRK with neumo-blindscan & Eti-toolos_2025-06-19_12-03.webp
    DAB+ NRK with neumo-blindscan & Eti-toolos_2025-06-19_12-03.webp
    118.5 KB · Views: 24
Last edited:
Great, the solution with the two controls, tune and demux, to have immediate access to DAB+ is very good and safe.
If it was needed, I also tested at 7.0E on DAB SWR. Bravo

DAB+ also works with tune-s2 and dmx"
 

Attachments

  • 12568 V_DAB SWR_2025-06-19_14-16.webp
    12568 V_DAB SWR_2025-06-19_14-16.webp
    198.1 KB · Views: 23
  • tune-s2 and neumo-dmx_2025-06-19_14-46.webp
    tune-s2 and neumo-dmx_2025-06-19_14-46.webp
    174 KB · Views: 17
Last edited:
Yesterday, I have release a driver update. Mainly bug fixes.

I have also updated the blindcan commandloine tools and added a
document explaining how to use these tools together with eti-tools and
dablin-gtk to receive DAB (Digital Audio Broadcast) streams on satellite.


All the ones listed on GitHub - piratfm/eti-tools: ETI conversion software
now work, but all of the guess work on what commands to use is no
longer needed. :->
To run the DAB+ Metropolitan stream with the neumo-dmx command on 11460 H,the exclamation mark in front of eti-tools must be removed.

The DAB+ RAI stream at 5.0W runs only with the signal provided by neumodvb, and then with the command, ```neumo-dmx -a 6 --pid=301 | eti-tools/fedi2eti 301 239.0.1.11 5001 | ~/dablin/build/src/dablin_gtk``, you can listen to this stream.

I was unable to do this with neumo-tune or tune-s2 although both utilities locked the signal on 12564 V.
 

Attachments

  • DAB+ RAI_neumodvb_neumo-dmx_2025-06-20_09-47.webp
    DAB+ RAI_neumodvb_neumo-dmx_2025-06-20_09-47.webp
    134.1 KB · Views: 8
  • DAB+ Metropolitain_neumo-tune&neumo-dmx_2025-06-20_10-46.webp
    DAB+ Metropolitain_neumo-tune&neumo-dmx_2025-06-20_10-46.webp
    180.1 KB · Views: 7
Back
Top