# Decoding IQ data from rtl\_tcp remotely

**URL:** https://discussions.flightaware.com/t/decoding-iq-data-from-rtl-tcp-remotely/19573
**Category:** ADS-B Flight Tracking
**Created:** [January 19, 2017, 3:41am UTC](https://discussions.flightaware.com/t/decoding-iq-data-from-rtl-tcp-remotely/19573 "2017-01-19T03:41:00Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![khendricks](https://avatars.discourse-cdn.com/v4/letter/k/779978/32.png) [@khendricks](https://discussions.flightaware.com/u/khendricks)
#### Post date: [January 19, 2017, 3:41am UTC](https://discussions.flightaware.com/t/decoding-iq-data-from-rtl-tcp-remotely/19573/1 "2017-01-19T03:41:00Z")

</div>

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](https://github.com/antirez/dump1090/issues/87) but dump1090-fa doesn’t seem to be able to decode anything.

Thanks!

---

<div class="post-metadata">

### Author: ![obj](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/obj/32/118984_2.png) [@obj](https://discussions.flightaware.com/u/obj)
#### Post date: [January 19, 2017, 4:01am UTC](https://discussions.flightaware.com/t/decoding-iq-data-from-rtl-tcp-remotely/19573/2 "2017-01-19T04:01:19Z")

</div>

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

What’s your setup where this is useful?

---

<div class="post-metadata">

### Author: ![khendricks](https://avatars.discourse-cdn.com/v4/letter/k/779978/32.png) [@khendricks](https://discussions.flightaware.com/u/khendricks)
#### Post date: [January 19, 2017, 4:07am UTC](https://discussions.flightaware.com/t/decoding-iq-data-from-rtl-tcp-remotely/19573/3 "2017-01-19T04:07:19Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![abcd567](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/abcd567/32/113769_2.png) [@abcd567](https://discussions.flightaware.com/u/abcd567)
#### Post date: [January 19, 2017, 8:27am UTC](https://discussions.flightaware.com/t/decoding-iq-data-from-rtl-tcp-remotely/19573/4 "2017-01-19T08:27:44Z")

</div>

My RPi’s local IP = 192.168.0.21

```auto

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

```auto

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...

```

.

---

<div class="post-metadata">

### Author: ![obj](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/obj/32/118984_2.png) [@obj](https://discussions.flightaware.com/u/obj)
#### Post date: [January 19, 2017, 1:50pm UTC](https://discussions.flightaware.com/t/decoding-iq-data-from-rtl-tcp-remotely/19573/5 "2017-01-19T13:50:30Z")

</div>

> [@khendricks](#):
>
> 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.

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)

---

<div class="post-metadata">

### Author: ![abcd567](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/abcd567/32/113769_2.png) [@abcd567](https://discussions.flightaware.com/u/abcd567)
#### Post date: [January 22, 2017, 8:50pm UTC](https://discussions.flightaware.com/t/decoding-iq-data-from-rtl-tcp-remotely/19573/6 "2017-01-22T20:50:59Z")

</div>

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

```auto

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](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.

```auto

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

```

[https://c1.staticflickr.com/1/746/32345485211\_e6ffb9d1e1\_o.png](https://c1.staticflickr.com/1/746/32345485211_e6ffb9d1e1_o.png)

---

<div class="post-metadata">

### Author: ![obj](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/obj/32/118984_2.png) [@obj](https://discussions.flightaware.com/u/obj)
#### Post date: [January 22, 2017, 9:02pm UTC](https://discussions.flightaware.com/t/decoding-iq-data-from-rtl-tcp-remotely/19573/7 "2017-01-22T21:02:30Z")

</div>

> [@abcd567](#):
>
> pi@raspberrypi:~ $ rtl\_tcp -a 192.168.0.21 -f 1090000000 -s 2000000

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.

---

<div class="post-metadata">

### Author: ![abcd567](https://sea1.discourse-cdn.com/flex019/user_avatar/discussions.flightaware.com/abcd567/32/113769_2.png) [@abcd567](https://discussions.flightaware.com/u/abcd567)
#### Post date: [January 22, 2017, 10:30pm UTC](https://discussions.flightaware.com/t/decoding-iq-data-from-rtl-tcp-remotely/19573/8 "2017-01-22T22:30:37Z")

</div>

> [@obj](#):
>
> > [@abcd567](#):
> >
> > pi@raspberrypi:~ $ rtl\_tcp -a 192.168.0.21 -f 1090000000 -s 2000000
> 
> 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](https://c1.staticflickr.com/1/555/32346955801_3a2f1ebd60_o.png)

**Dump1090-mutability**

 ![](https://us1.discourse-cdn.com/flex019/uploads/flightaware/original/3X/8/c/8cae5fe6c7bdd6bd100ef46963d5aca0adf0a494.png)
