AlbrechtL / welle.io

A DAB/DAB+ Software Defined Radio (SDR)
https://www.welle.io
Other
625 stars 117 forks source link

ETI bitstream input: alternative method #217

Closed lars18th closed 6 years ago

lars18th commented 6 years ago

Hi @AlbrechtL , @andimik , @mpbraendli , @basicmaster, et all

This is a continuation of #199... (Sorry to reopen this topic, but I have good news!)

As a proof of concept I created a demo for this. See the next two screenshots:

welle io with bbc from eti-ni astra 4 5e realtime raw iq from eti-ni bbc sat 4 5e

As you can imagine, I don't live in the UK. So I can't receive the BBC DAB broadcasts.

What you can see in this screenshots are:

How I can do that?

What I like to demonstrate with this? The ETI-NI format is a viable format for DAB bitstream interchange, between a demodulator and a decoder.

Think now on this: A lot of computation performance it's wasted in generating the IQ samples and decoding them. Will be more efective a direct sharing of the ETI-NI data.

And what you can implement this in Welle.io?

Here the list of used tools:

I hope you will consider this enhancement. :smile: Regards!

lars18th commented 6 years ago

I'd forgotten to say that if necessary I can share some capture of the MPEG-TS with the DAB bitstream encapsulated. In case you don't have access to the sat signal, then you can do the same replaying this capture stream over your network.

Please let me know if you need this capture. Regards.

andimik commented 6 years ago

This file can already been downloaded from http://tipok.org.ua/node/46

andimik commented 6 years ago

And what are the good news? You described what I am doing for around 2 years. Also others in Germany did it and even built a DAB Monitor with it.

lars18th commented 6 years ago

Hi @andimik ,

Great if you're working on "similar" tools! :smile:

This file can already been downloaded from http://tipok.org.ua/node/46

Thank you! But this file is in ETI-NI format. My offer is a capture of the MPEG-TS source. I'll prepare one for sharing with all.

And what are the good news? You described what I am doing for around 2 years

Your user case (to my understanding) is: "generate a RF DAB mux using hardware from an ETI-NI source". This it's right?

But, my user case it's quite different: "decouple the DAB demodulator from the DAB player". So, using any DAB source (RF signal, satellite distribution, etc.) you will generate a ETI-NI bitstream. And this bitstream is then processed by a software DAB player. So the "tuner" doesn't be directly attached to the DAB player.

The challenge in my scenario it's use the ETI-NI bitstream when the source can have errors.

andimik commented 6 years ago

Please consider that satellite feeds are not for consumers, but for professionals like Radio stations or service providers for re-broadcasting. So please feel lucky that these feeds have been discovered and analyzed.

There is no need to implement your wish, you can of course use this workaround with ODR

lars18th commented 6 years ago

This file can already been downloaded from http://tipok.org.ua/node/46

Thank you! But this file is in ETI-NI format. My offer is a capture of the MPEG-TS source. I'll prepare one for sharing with all.

Here it's a dump of 90 seconds in full MPEG-TS format with only pids 1061, 1062 & 1063: http://www.sendspace.com/file/kv7ij3

Please, @andimik , can you share it in your page? I think other users will be interested in testing it. You can also write the command line example to use it: nc -l 0.0.0.0 18081 < ./ts2na -p 1061 -s 12 | ./na2ni 0x0425.ts

Thank you for your help! :smile:

andimik commented 6 years ago

Which page?

lars18th commented 6 years ago

Hi @andimik ,

Which page?

This page: http://tipok.org.ua/node/46 In section "Usage examples". This isn't your blog?

andimik commented 6 years ago

Come on :-(

I think he is called Sergej and he is from Ukraine.

I fear you are just claiming without contributing.

lars18th commented 6 years ago

Come on :-( I think he is called Sergej and he is from Ukraine. I fear you are just claiming without contributing.

Sorry @andimik ! I'm doing the best I can. I'm just someone who likes this hobby, but I have a clear goal.

So far I've done the following:

  1. Read the full specification.
  2. Define an objective.
  3. Prepare a demo.
  4. Code a tool (my "RTL_Mus" patch for fake dongle).
  5. Share my results.

What am I doing wrong? I'm only looking for people who like to contribute in this direction: decouple the DAB demodulator from the DAB decoder using ETI-NI as the interchange format. I'm so sorry if this is bothering you in any way. :cry:

lars18th commented 6 years ago

Hi to all,

To simplify this "brute-force-workaround" to connect any ETI source to any DAB player, here an over simplification (all-in-one) executing this pipeline command:

In this example the ETI source is an MPEG-TS multicast stream in udp://@239.1.1.10:5018 that encapsulates a DAB ETI-NA bitstream in the pid 1061. And the output it's a regular IQ sample server (2048000 Msps with 8bit unsigned ints) in the TCP port 1234.

And you can obtain similar results using other ETI sources. However, you need to have (at time) a clean ETI-NI to input the ODR-DabMod (I'm working on resolve it).

Please, check it! :smile:

andimik commented 6 years ago

How do you tune to the frequency? Seems this is missing in your howto...

lars18th commented 6 years ago

Hi @andimik ,

How do you tune to the frequency? Seems this is missing in your howto...

The "Frequency" it's totally fake in the sense that the DAB player can't change it. So, you can scan in any frequency. Everytime, even if you try to change the frequency in the Player, you will get the same DAB bitstream. This it's a current limitation of this proof-of-concept!

However, if you ask about how to "tune" in the DAB demodulator, in this case my example it's using an streaming from a Satellite link. If you need more info I can explain more.

In any case I'm working on improving this. If you found it interesting, then please comment it! :smile:

lars18th commented 6 years ago

Hi,

Here more info about how to use this "hack" for getting the signal from a real RTL_TCP tuner (or any other SDR compatible receiver). You can generate the ETI-NI bitstream using the "eti-cmdline-*" tool. For example:

./eti-cmdline-rtl_tcp -H 192.168.1.31 -I 1234 -C 5A -G 1 -Q | ./odr-dabmod-next -f /dev/stdout -F u8 | nc -l -k -q -1 0.0.0.0 1234

In this case the output it's the same as in https://github.com/AlbrechtL/welle.io/issues/217#issuecomment-368538927 But here the source it's a RTL_TCP server running in 192.168.1.31:1234. Change it for adapt it to your environment!

But remember: Here you're comming from IQ samples and doing a DAB demodulation, plus another IQ modulation (plus the last IQ demodulation). So, a waste of computation! However, if your DAB source it's handled by a powerful device, then you can send over the network only the ETI-NI bitstream (2Mbps) to multiple clients (even in multicast). And in your client you do run the re-modulation and the final DAB Play (demodulation and decoding). At time, this only saves network bandwith, nothing more!

Note: FYI, I'm working in try to improve the ORD-DabMod to be more robust to errors.

AlbrechtL commented 6 years ago

Great demo. Thanks for documenting! Since there are no more comments I close this issue. But you are welcome to discuss it here more.

lars18th commented 6 years ago

Great demo. Thanks for documenting!

You're welcome!

Since there are no more comments I close this issue. But you are welcome to discuss it here more.

Perhaps you would like to prepare a WIKI entry referring to this topic. I'll continue to working on this.

k-otixxx commented 6 years ago

I have success with Dablin player from Ubuntu to play ETI-NI from enigma2 set top box(from satellite feeds) with eti-tools installed.All satellite DAB feeds(12,5W,4,5E,7E,30E) work form me . I want to use welle.io to test these streams. @lars18th Could you post some examples how to start realtime RTL-TCP server from set top box with eti-tools installed.

lars18th commented 6 years ago

Hi @k-otixxx ,

It's all commented here: https://github.com/AlbrechtL/welle.io/issues/217#issuecomment-368565576

Summarize:

The concept is quite simple: the ETI bitstream is converted (modulated) with the "ODR-DABmod" tool, and the output served as I/Q samples with a "fake" RTL-TCP server.

I hope it helps!

Request to @AlbrechtL : Please write a simple wiki with this info and share it! A lot of users request about it. But the issue is closed. Thank you!

andimik commented 6 years ago

I'm working on improving this.

I'm working in try to improve the ORD-DabMod to be more robust to errors.

I'll continue to working on this.

https://github.com/Opendigitalradio/ODR-DabMod/graphs/contributors

I cannot find your name there...

Where can we find your contributions? I told you some months ago that you're just claiming and this is still true.

k-otixxx commented 6 years ago

@lars18th Thanks a lot!

img_20180712_003207

andimik commented 6 years ago

BTW You can add pics here, no need to use external hosters

lars18th commented 6 years ago

Hi @andimik ,

https://github.com/Opendigitalradio/ODR-DabMod/graphs/contributors I cannot find your name there... Where can we find your contributions? I told you some months ago that you're just claiming and this is still true.

I can't do more. As now I'm very busy with other projects... so all DAB stuff is paused for me. So, as I mentioned before... I hope it helps! :smiley:

AlbrechtL commented 6 years ago

@lars18th

Request to @AlbrechtL : Please write a simple wiki with this info and share it! A lot of users request about it. But the issue is closed. Thank you!

Feel free to write a wiki page at: https://github.com/albrechtl/welle.io/wiki