Decoding IQ data from rtl_tcp remotely

Hello,

I just got started with piaware and was wondering if it’s possible to process the raw IQ data from rtl_tcp using dump1090 on another machine on the network. From what I’ve googled, it’s hard to come to a conclusion. I attempted doing this but dump1090-fa doesn’t seem to be able to decode anything.

Thanks!

No, there’s no real support for that in dump1090

What’s your setup where this is useful?

I just have a server already running in the house that has a bunch of dockerized stuff running on it. I thought it’d be cool to have the raspberry pi be a dumb raw data forwarder and have the server doing the decoding.

My RPi’s local IP = 192.168.0.21



pi@raspberrypi:~ $ sudo systemctl stop dump1090-mutability

pi@raspberrypi:~ $ rtl_tcp -a 192.168.0.21 -f 1090000000 -s 2000000 &
[1] 2144
pi@raspberrypi:~ $ Found 1 device(s):
  0:  Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Exact sample rate is: 2000000.052982 Hz
Tuned to 1090000000 Hz.
listening...
Use the device argument 'rtl_tcp=192.168.0.21:1234' in OsmoSDR (gr-osmosdr) source
to receive samples in GRC and control rtl_tcp parameters (frequency, gain, ...).


#AFTER STARTING TELNET ON WINDOWS DESKTOP:
client accepted!
ll+, now 1
ll+, now 2
ll+, now 3
ll+, now 4
ll+, now 5
ll+, now 6
ll+, now 7
ll+, now 8
ll+, now 9
ll+, now 10
...............


C:\Windows\System32\cmd.exe



Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Windows\System32>telnet

Welcome to Microsoft Telnet Client

Escape Character is 'CTRL+]'

Microsoft Telnet> open 192.168.0.21 1234
Connecting To 192.168.0.21...

z  }  | Ç }} {~ }~|    }        }{ } Ç Ç~} ~} x xÇ }}Ç~{ Ç  }y Ç  } z} | ~x yzÇÇ { {~  }  }z~r}xy}ÇÇ ~v}~{ z  ÇÇ{ {}~|v
z   yÇyx  |  }   Ç ~ ~~ }w |      zÇ|     |} |}|~}| Ç }| {}  |  }~  ÇÇÇ   }  |} z~ y }w {  |y|{y {Çy wÇ{}~   Ç{ Ç| z  x|
{|Çy{Ç          |    Ç~|} w  Ç~Ç~  w~ zz~|~  Ç Çz|  {|}Ç    ÇuyÇ ~x}zÇ|z } ~~Çz }|Çyy {{ÇÇ~ Çz   z~  v |  Ç~    {z z
Ç   }z }   ~   } |   ~{~v    Ç~w}|}z   ~y  Ç ~}  | ~}  {  ~ {Ç|}yÇÇ }  uÇ Ç  | Çx{|   |v}   z     }  y Ç  ~~  z||~ Ç}zz
Ç  ~~ Ç Çzx| ~yÇ~}Ç}~ Ç{      yÇ|  ~Ç   |}{ Ç       z w}}~Ç y~|y  | {~ }~  { x~ Ç} { | Ç}   z| z }   z| {    Ç ~ x }  |Ç
}Ç}{yzy Ç{~~~Ç|{  ~  { Ç  } | |y~ Ç ~Ç |Çw z {  ~  ~~      ÇÇ ÇÇ{ w|~ ÇÇ}   ÇÇ~|{|y |w |~Ç |  }z}~x    wtwÇ} } y   Ç|~
z  ÇÇy   || Ç  Ç~x }   Ç} Ç Ç |~{~    z    { x | { {Ç}w} }}z ~Çz{    uz   |~} ~ }   ~ ~Ç    v   ~}yy~}~| {zÇ~ } y}{Ç y
Ç|t~| Ç}  Ç|~| ~} }  z}zs Ç ÇÇ     } y  |~  |{Ç   } u} }~    Ç~{Ç y     ~    ~~y v    zÇ~{ }|  ÇÇ y} ~ }~ w  yÇ~  z}  ÇÇ
z~z  Ç  w}wxÇz}ÇÇ | ~ {~w ~ ~   |}  } v {   x }    ÇÇ~| ~|| | }Ç~}  ~ {|    yÇy~x{Ç } }|Ç~Ç Ç  | }~ | ~w  }  Ç}|Ç ~} Ç ~
} Ç|||Ç  {  |wy~z    wwÇ   zÇz|Ç{  Ç ~|}     ÇÇ}  ÇÇz x  ~ ~Ç    ~~~v|z} ~ x |xy }~} }}z {  | z ~  zu~ }{   w ~Ç  } z{
{~Ç | z ~  {v~w|Ç}| }     Çxu~|w             Ç yx |   z  }   yw~  wÇ~y    {  }   Çy    |{u~}y{y }  Ç x   }}y } ÇÇ    Çz~
}z Ç{ x Ç~{ {Ç ~  z{}{z   {Ç{Çv{x  }~     z  { ~y ~|   y}~| y| |ys    Ç}z}~{   ~ | {  Ç  zv ~Ç }  |}t{ Çy{}Ç} ~~~  ||{
| ~  | xy y xÇz | wÇv ~ ~~~}  x } |z Ç}w|      ~ }   Ç}Ç ~ | Ç|   ||  {}z{~    {Ç}}  w Ç} ~ }}~w}Ç } {wÇz    yÇz   |~ {
}Ç Ç  ~z  |~Ç x}|   Çz|ÇÇ  q}  ÇÇ} zz~} }~Ç}} }   Ç |} Ç   Ç|       }}  { { ~ t|{  Ç y} Ç  |~z z }}   {v w{|z |Ç~   z} Ç
~{y { |xzÇ  ~ |Ç{{ uÇxy ~|Çy { ~~  Çy |Ç~Ç~y   ~      ~ |z ||{  y~Çz| Ç   |     }  xÇ{    w  Ç }y      ~ }Ç  ~  zÇ { ~}
Ç    } {    Ç|zy    }    Ç}   ÇÇ   Ç |  ~w} w y|  Ç}}y}  Ç   ~| zÇ {~ z|}}}   | z{   }}{} Ç  }} y Ç| z  ||}}    ~}ry{ y
Ç{ }Ç~ ~     z~xÇ } ~ z  xÇ{{~{|y     | { yÇy|  zÇ|   }    Ç|~  yÇz  | z yz|zy{~ | wyv{x   }}~   ~  ~}   |     Çxv  z}
Ç~  Ç     z  Ç}}zÇÇ  {v  ~~| } u ~{    ~} ~ z|~~   ÇÇ Ç ~{x} z{ {ÇÇ{|  } Ç ~Ç    | Ç ~  Ç}~ z ||  { } }uÇ   Ç|}ywÇx ||y~
{Ç}~ÇÇ} Ç{|}{ x~| ~ {zÇ{u  Ç x || z x}}  ~x v}{}v}y |   } ~x xy }{~~~ wuxu |Ç       Çx Çw |z}}   Ç |~~~ Ç ~ x ÇÇ}~  yÇ
}} ~  ~} z}~||Ç|   {z|z x~ | }{Çw|  }~}z~y}}u}{Ç } z   ~  x     |  Ç}|Ç  z{{   z{  y|}Ç |   ~z  u}{~|  vÇ|Ç  z {} y|{|~
} { v{   { zu | |~}z ~y~ x  { {}~ {yÇy||    }yÇz x}w{y  zx Ç ÇzÇ|  y y} { |Ç}}~ |    z Ç}~Ç~~üüé~~|{é|Çâäçüë{zèéÇ{Çzäz|ü

~üÇ}{ééÇÇ{éy~ü~|}}}|ééàv|~}~ä}àx|äâê}é{}~â|éyÇ|üzzàxà~é{}ÇéäüÇÇ}~é|äâàäyÇÇà~zz~|à|é|åé|}||ü|é|~yé|êÇâ}ü}üé~|}üü}éü~~{çàä

tåéy~{|ÇâzâÇÇ}â}~ÇéçvâââÇyzÇå~Çz}~}àüé}â}}éÇzâÇüå{å|üàâçàüâäx|ä}å~ézÇyÇâ}~üééâ{éà{x}~{âü~åâéâ|~|äÇ~~Ç~yx}{é~|Ç~Ç}{éâ|âéä

}{é{äÄ}ëÇüÇâézääâäéëÇ|~|üÇäé~}üéàtyüüâ}~ÇÇé~~üäv}Çüàç}Ç{~ü}üüÇå~îÇ}ü~~}|}wzw~~é~}üäüä}å~üâàâüÇ}ääâäà~ÇÇ~âäââyäïÇ{üy~wÇwë


#AFTER CLOSING SSH WINDOW OF RPI
Connection to host lost.

Press any key to continue...


.

You can run dump1090 on the Pi and piaware elsewhere if you like, which is closer to that model and a lot cheaper in terms of bandwidth. I am not sure how reliable the Pi’s USB is going to be (which is important for mlat) if you have two copies of the I/Q data running over it at 5MB/s each (the Pi’s ethernet is on the USB bus)

Commands on Source of IQ (RPi #1 with DVB-T Dongle plugged in)



pi@raspberrypi:~ $ sudo systemctl stop piaware
pi@raspberrypi:~ $ sudo systemctl stop dump1090-mutability
pi@raspberrypi:~ $ rtl_tcp -a 192.168.0.21 -f 1090000000 -s 2000000


IQ feed to dump1090-fa (RPi #2) and dump1090-mutability (RPi #3)
RESULT: No output data, only blank table.

https://c1.staticflickr.com/1/458/31654932363_2afe1ec429_o.png

IQ feed to dump1090.exe (MR) on Windows 8 computer
RESULT: dump1090.exe runs for few seconds, displays data of few planes, then stops for unknown reason
worker socket bye
Signal caught, exiting!
comm recv bye
Signal caught, exiting!
all threads dead…

Linux command to Windows 8 computer using MobaXterm running on Windows 8 computer.
No DVB-T Dongle plugged into Windows Desktop.



[user.computer] > nc 192.168.0.21 1234 | ./dump1090.exe --ifile -


https://c1.staticflickr.com/1/746/32345485211_e6ffb9d1e1_o.png

dump1090-fa (and dump1090-mutability) want sample data at 2.4MHz, not 2MHz, so that’s probably why you get no results. Try it at 2.4MHz.

That did it! Thanks Oliver.

One riddle is still unsolved: Why dump1090.exe on Windows crashes after successfully running “./dump1090.exe --ifile -” for few seconds?

Dump1090-fa
https://c1.staticflickr.com/1/555/32346955801_3a2f1ebd60_o.png

Dump1090-mutability