filename -1
DARPA Spectrum Challenge
June 19, 2014
Presenter: Ethan Trewhitt ethan.trewhitt@gtri.gatech.edu
Originally presented by Bob Baxley @ DARPA
2
(competitive tournament)
– Each team gets two radios (a Tx and an Rx)
– Two teams (four radios) will be competing at once
– Team that successfully transmits and receives give data file the fastest wins
(cooperative tournament)
– Four teams operate at once
– Multiple rounds are played in round robin format
– Team’s score for round is the group’s score
– Team with highest sum score after 10 rounds wins
Orbit Testbed
31 Jan : Register Team
Feb : Complete Qualification Hurdles
Mar : Contestants announced
Sep : Preliminary Tournament
Mar 2014 : Final Tournament
DARPA Packet Server
S D D S
3
DARPA Packet Server
S
S
S
D
D
D
4
f c
= 5498MHz
2000
1000
0
0
2000
1000
• Ad-hoc DSC team formed from individuals at GTRI with an interest in SDRs
0
0
• Team background
2000
• Leader: Bob Baxley – Comms theory
• Ethan Trewhitt – Machine learning, SW
• Andy Henshaw – Tactical data links, SW
• Sean Nowlan – Comms, Security, GNURadio
• Jeff Hodges – Comms, SDR (Ettus/DRT/X-Midas)
1000
0
• Brett Walkenhorst – Comms theory
• Ryan Westafer – Propagation physics
• Chris Valenta – RFID, GNURadio/Ettus SDRs
2000
1000
0
0
0
• DSC & GTRI research
• Cognitive radio/sensing/EW
• SDR development
• Communication theory
2000
1000
0
0
2000 4000 6000 8000 x (mm) f c
= 5499MHz
10000 12000 14000
2000 4000 6000 8000 x (mm) f c
= 5500MHz
10000 12000 14000
2000 4000 6000 8000 x (mm) f c
= 5501MHz
10000 12000 14000
2000 4000 6000 8000 x (mm) f c
= 5502MHz
10000 12000 14000
2000
Cognitive Spectrum
Operations Testbed (CSOT)
4000 6000 8000 x (mm)
10000 12000 14000
1500
1000
500
0
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Feb Mar Apr
Date of Commit gr-GTRI GNURadio
Module
1,842 Unique Files
6,405 Commits
Grid Workflow: dsc-code_tx/rx → tmux → gtri_tx/rx.py
Start match: omf exec ssh grid → ssh nodex-y → tmux attach → console output
Most-Changed Files
1: grc/tx_ofdm_diff.grc
2: grc/Makefile
3: grc/rx_wreck.grc
4: gr-GTRI/python/GTRI_wirehair_enc.py
5: gr-GTRI/grc/CMakeLists.txt
6: grc/tx.grc
7: grc/gtri_tx.py
8: grc/rx_wreck_sense.grc
9: gr-GTRI/lib/tx_wreckC_impl.cc
10: grc/tx_inner.grc
USRP N210
SBX
USRP N200
SBX veriton-1
10.50.17.150
veriton-3
10.50.17.235
GTRI SDRL Testbed
USRP B210 aspire-4
10.50.17.107
GTRI
Router
Lab Router
Kill match: tmux kill-session aspire-2
10.50.17.???
USRP B210 veriton-2
10.50.17.241
veriton-4
10.50.17.249
USRP N210
SBX
USRP N200
SBX aspire-3
10.50.17.106
aspire-1
10.50.17.???
1: Signal Structure
Preamble
Sense
Window
Ns Ns N N
Symbol
N
…
N
2: Synchronization
Correlation over time
…
One Burst = One or more Packets (1452 raw bytes/packet)
255 RS symbols
K symbols
255 RS symbols
K symbols
255 RS symbols
K symbols
File Server Packet 1440 Bytes
255 RS symbols
K symbols
…
…
255 RS symbols
K symbols
One Coded Packet
{6,7,8,9,11,12} RS blocks/packet
One Raw Packet K=
{121,132,162,182,20
8,242}
WH 8 bytes
CR
C
3: Sensing
4: Wirehair erasure code
Start with the uncoded vector of packets: 𝒙 ∈ 𝐹
𝑄×1
2
8
Transmit that vector and then create linear combination of x and transmit those too: (Do this forever) 𝒚 ∈ 𝐹
∞×1
2
8
𝑨 ∈ 𝐹
∞×𝑄
2
8 𝒚 =
𝑨𝒙 =
=
One Burst Ns+s
Tx encodes waveform type in s to signal to the Rx. 𝑠 ∈ {0,3,6,9, … }
Tx receives transmissions and correlates to find the sense window. This is 600 zero samples immediately after the preamble
Rx a subset of the
Tx rows
If A is invertible, solve for x; if not, collect more symbols and try again: 𝒚
𝑅
𝑨
𝑅
= 𝒙 = =
COOP (mostly-open loop): Ramblin ’
• 64-carrier OFDM;54 occupied carriers
• Data is differentially encoded across
OFDM symbols;
• Each stream is an independent packet
• 54 parallel decoders at Rx
• Average 22 FFTs during sense window to estimate occupancy
• Carriers are dynamically nulled based on threshold; retransmit nulled
• Symbol-wise scaling to maximize SNDR
• 20s max speed; game rate is 33s
COMP (closed loop): Wreck
• Spreading-based waveform: each symbol is N = {2,3, … , 21} samples long
• Data is differentially encoded in {4,8}-PSK
• Adapt over ten spreading/coding rates
• Tx signals current rate by changing spacing in preamble
• Rx runs 10 decoders in parallel
• Fractional delay estimation/correction
• Rx calculates performance (PER, Sync quality); reasons about adaptation
• Sends feedback to change rate
• Adapts Rx antenna/gain
• We start in a middle-speed state; bestcase speed is 47s
Fast time: GR blocks at sample rate ( custom and canned blocks
)
Slow time (20Hz): asynchronous function probes for adaptation ( all custom)
• Competitive Mode: Second Place!
• Our waveform adapted well, becoming more aggressive when possible, falling back to robust when jammed
• Effectively jammed many competitors by using entire band
• Cooperative Mode:
• Effectively transmitted without colliding with other teams
• Retransmitted dropped packets
• Only team to complete our file in all matches
• Eliminated in first round due primarily to quirks in opposing teams’ approaches