├── GNU Radio ZMQ Receivers ├── gr_3.10_zmq_nbfm_rx.grc ├── gr_3.10_zmq_usb_rx.grc ├── gr_3.7_zmq_nbfm_rx.grc ├── gr_3.7_zmq_usb_rx.grc ├── gr_3.8_zmq_nbfm_rx.grc ├── gr_3.8_zmq_usb_rx.grc ├── gr_3.9_zmq_nbfm_rx.grc └── gr_3.9_zmq_usb_rx.grc ├── LICENSE └── README.md /GNU Radio ZMQ Receivers/gr_3.10_zmq_nbfm_rx.grc: -------------------------------------------------------------------------------- 1 | options: 2 | parameters: 3 | author: Corey 4 | catch_exceptions: 'True' 5 | category: '[GRC Hier Blocks]' 6 | cmake_opt: '' 7 | comment: '' 8 | copyright: '' 9 | description: '' 10 | gen_cmake: 'On' 11 | gen_linking: dynamic 12 | generate_options: qt_gui 13 | hier_block_src_path: '.:' 14 | id: zmq_nbfm_rx 15 | max_nouts: '0' 16 | output_language: python 17 | placement: (0,0) 18 | qt_qss_theme: '' 19 | realtime_scheduling: '' 20 | run: 'True' 21 | run_command: '{python} -u {filename}' 22 | run_options: prompt 23 | sizing_mode: fixed 24 | thread_safe_setters: '' 25 | title: ZMQ NBFM Receiver 26 | window_size: (1000,1000) 27 | states: 28 | bus_sink: false 29 | bus_source: false 30 | bus_structure: null 31 | coordinate: [0, 4] 32 | rotation: 0 33 | state: enabled 34 | 35 | blocks: 36 | - name: ip 37 | id: variable 38 | parameters: 39 | comment: '' 40 | value: '"sdr.rfhackers.com"' 41 | states: 42 | bus_sink: false 43 | bus_source: false 44 | bus_structure: null 45 | coordinate: [272, 4] 46 | rotation: 0 47 | state: enabled 48 | - name: out_file 49 | id: variable 50 | parameters: 51 | comment: '' 52 | value: '"zmq_nbfm_rx_" + port + ".wav"' 53 | states: 54 | bus_sink: false 55 | bus_source: false 56 | bus_structure: null 57 | coordinate: [512, 4.0] 58 | rotation: 0 59 | state: enabled 60 | - name: port 61 | id: variable 62 | parameters: 63 | comment: '' 64 | value: '"6556"' 65 | states: 66 | bus_sink: false 67 | bus_source: false 68 | bus_structure: null 69 | coordinate: [416, 4.0] 70 | rotation: 0 71 | state: enabled 72 | - name: samp_rate 73 | id: variable 74 | parameters: 75 | comment: '' 76 | value: '96000' 77 | states: 78 | bus_sink: false 79 | bus_source: false 80 | bus_structure: null 81 | coordinate: [168, 4] 82 | rotation: 0 83 | state: enabled 84 | - name: analog_nbfm_rx_0 85 | id: analog_nbfm_rx 86 | parameters: 87 | affinity: '' 88 | alias: '' 89 | audio_rate: '48000' 90 | comment: '' 91 | max_dev: 5e3 92 | maxoutbuf: '0' 93 | minoutbuf: '0' 94 | quad_rate: samp_rate 95 | tau: 75e-6 96 | states: 97 | bus_sink: false 98 | bus_source: false 99 | bus_structure: null 100 | coordinate: [464, 100] 101 | rotation: 0 102 | state: enabled 103 | - name: audio_sink_0 104 | id: audio_sink 105 | parameters: 106 | affinity: '' 107 | alias: '' 108 | comment: '' 109 | device_name: '' 110 | num_inputs: '1' 111 | ok_to_block: 'True' 112 | samp_rate: '48000' 113 | states: 114 | bus_sink: false 115 | bus_source: false 116 | bus_structure: null 117 | coordinate: [672, 124] 118 | rotation: 0 119 | state: enabled 120 | - name: blocks_wavfile_sink_0 121 | id: blocks_wavfile_sink 122 | parameters: 123 | affinity: '' 124 | alias: '' 125 | append: 'False' 126 | bits_per_sample1: FORMAT_PCM_16 127 | bits_per_sample2: FORMAT_PCM_16 128 | bits_per_sample3: FORMAT_VORBIS 129 | bits_per_sample4: FORMAT_PCM_16 130 | comment: '' 131 | file: out_file 132 | format: FORMAT_WAV 133 | nchan: '1' 134 | samp_rate: samp_rate 135 | states: 136 | bus_sink: false 137 | bus_source: false 138 | bus_structure: null 139 | coordinate: [704, 240.0] 140 | rotation: 0 141 | state: disabled 142 | - name: low_pass_filter_0 143 | id: low_pass_filter 144 | parameters: 145 | affinity: '' 146 | alias: '' 147 | beta: '6.76' 148 | comment: '' 149 | cutoff_freq: 5e3 150 | decim: '1' 151 | gain: '1' 152 | interp: '1' 153 | maxoutbuf: '0' 154 | minoutbuf: '0' 155 | samp_rate: samp_rate 156 | type: fir_filter_ccf 157 | width: 1e3 158 | win: window.WIN_HAMMING 159 | states: 160 | bus_sink: false 161 | bus_source: false 162 | bus_structure: null 163 | coordinate: [256, 76] 164 | rotation: 0 165 | state: enabled 166 | - name: qtgui_sink_x_0 167 | id: qtgui_sink_x 168 | parameters: 169 | affinity: '' 170 | alias: '' 171 | bw: samp_rate 172 | comment: '' 173 | fc: '0' 174 | fftsize: '1024' 175 | gui_hint: '' 176 | maxoutbuf: '0' 177 | minoutbuf: '0' 178 | name: '"RX from " + ip + ":" + port' 179 | plotconst: 'True' 180 | plotfreq: 'True' 181 | plottime: 'True' 182 | plotwaterfall: 'True' 183 | rate: '10' 184 | showports: 'True' 185 | showrf: 'False' 186 | type: complex 187 | wintype: window.WIN_BLACKMAN_hARRIS 188 | states: 189 | bus_sink: false 190 | bus_source: false 191 | bus_structure: null 192 | coordinate: [256, 260] 193 | rotation: 0 194 | state: enabled 195 | - name: zeromq_sub_source_0 196 | id: zeromq_sub_source 197 | parameters: 198 | address: '"tcp://"+ip+":"+port' 199 | affinity: '' 200 | alias: '' 201 | bind: 'False' 202 | comment: '' 203 | hwm: '-1' 204 | key: '' 205 | maxoutbuf: '0' 206 | minoutbuf: '0' 207 | pass_tags: 'False' 208 | timeout: '100' 209 | type: complex 210 | vlen: '1' 211 | states: 212 | bus_sink: false 213 | bus_source: false 214 | bus_structure: null 215 | coordinate: [16, 108] 216 | rotation: 0 217 | state: enabled 218 | 219 | connections: 220 | - [analog_nbfm_rx_0, '0', audio_sink_0, '0'] 221 | - [analog_nbfm_rx_0, '0', blocks_wavfile_sink_0, '0'] 222 | - [low_pass_filter_0, '0', analog_nbfm_rx_0, '0'] 223 | - [zeromq_sub_source_0, '0', low_pass_filter_0, '0'] 224 | - [zeromq_sub_source_0, '0', qtgui_sink_x_0, '0'] 225 | 226 | metadata: 227 | file_format: 1 228 | -------------------------------------------------------------------------------- /GNU Radio ZMQ Receivers/gr_3.10_zmq_usb_rx.grc: -------------------------------------------------------------------------------- 1 | options: 2 | parameters: 3 | author: Corey 4 | catch_exceptions: 'True' 5 | category: '[GRC Hier Blocks]' 6 | cmake_opt: '' 7 | comment: '' 8 | copyright: '' 9 | description: Upper Sideband Receiver 10 | gen_cmake: 'On' 11 | gen_linking: dynamic 12 | generate_options: qt_gui 13 | hier_block_src_path: '.:' 14 | id: zmq_usb_rx 15 | max_nouts: '0' 16 | output_language: python 17 | placement: (0,0) 18 | qt_qss_theme: '' 19 | realtime_scheduling: '' 20 | run: 'True' 21 | run_command: '{python} -u {filename}' 22 | run_options: prompt 23 | sizing_mode: fixed 24 | thread_safe_setters: '' 25 | title: ZMQ USB Receiver 26 | window_size: (1000,1000) 27 | states: 28 | bus_sink: false 29 | bus_source: false 30 | bus_structure: null 31 | coordinate: [0, 4] 32 | rotation: 0 33 | state: enabled 34 | 35 | blocks: 36 | - name: ip 37 | id: variable 38 | parameters: 39 | comment: '' 40 | value: '"sdr.rfhackers.com"' 41 | states: 42 | bus_sink: false 43 | bus_source: false 44 | bus_structure: null 45 | coordinate: [280, 4] 46 | rotation: 0 47 | state: enabled 48 | - name: out_file 49 | id: variable 50 | parameters: 51 | comment: '' 52 | value: '"zmq_usb_rx_"+port+".wav"' 53 | states: 54 | bus_sink: false 55 | bus_source: false 56 | bus_structure: null 57 | coordinate: [472, 4.0] 58 | rotation: 0 59 | state: enabled 60 | - name: port 61 | id: variable 62 | parameters: 63 | comment: '' 64 | value: '"6556"' 65 | states: 66 | bus_sink: false 67 | bus_source: false 68 | bus_structure: null 69 | coordinate: [384, 4] 70 | rotation: 0 71 | state: enabled 72 | - name: samp_rate 73 | id: variable 74 | parameters: 75 | comment: '' 76 | value: '96000' 77 | states: 78 | bus_sink: false 79 | bus_source: false 80 | bus_structure: null 81 | coordinate: [184, 4] 82 | rotation: 0 83 | state: enabled 84 | - name: analog_agc2_xx_0 85 | id: analog_agc2_xx 86 | parameters: 87 | affinity: '' 88 | alias: '' 89 | attack_rate: 1e-1 90 | comment: '' 91 | decay_rate: 50e-6 92 | gain: '1.0' 93 | max_gain: '1' 94 | maxoutbuf: '0' 95 | minoutbuf: '0' 96 | reference: '0.8' 97 | type: complex 98 | states: 99 | bus_sink: false 100 | bus_source: false 101 | bus_structure: null 102 | coordinate: [720, 124] 103 | rotation: 0 104 | state: enabled 105 | - name: audio_sink_0 106 | id: audio_sink 107 | parameters: 108 | affinity: '' 109 | alias: '' 110 | comment: '' 111 | device_name: '' 112 | num_inputs: '1' 113 | ok_to_block: 'True' 114 | samp_rate: '48000' 115 | states: 116 | bus_sink: false 117 | bus_source: false 118 | bus_structure: null 119 | coordinate: [1120, 156] 120 | rotation: 0 121 | state: enabled 122 | - name: band_pass_filter_0 123 | id: band_pass_filter 124 | parameters: 125 | affinity: '' 126 | alias: '' 127 | beta: '6.76' 128 | comment: '' 129 | decim: '2' 130 | gain: '1' 131 | high_cutoff_freq: '3000' 132 | interp: '1' 133 | low_cutoff_freq: '300' 134 | maxoutbuf: '0' 135 | minoutbuf: '0' 136 | samp_rate: samp_rate 137 | type: fir_filter_ccf 138 | width: '500' 139 | win: window.WIN_HAMMING 140 | states: 141 | bus_sink: false 142 | bus_source: false 143 | bus_structure: null 144 | coordinate: [520, 100] 145 | rotation: 0 146 | state: enabled 147 | - name: blocks_complex_to_real_0 148 | id: blocks_complex_to_real 149 | parameters: 150 | affinity: '' 151 | alias: '' 152 | comment: '' 153 | maxoutbuf: '0' 154 | minoutbuf: '0' 155 | vlen: '1' 156 | states: 157 | bus_sink: false 158 | bus_source: false 159 | bus_structure: null 160 | coordinate: [928, 160] 161 | rotation: 0 162 | state: enabled 163 | - name: blocks_wavfile_sink_0 164 | id: blocks_wavfile_sink 165 | parameters: 166 | affinity: '' 167 | alias: '' 168 | append: 'False' 169 | bits_per_sample1: FORMAT_PCM_16 170 | bits_per_sample2: FORMAT_PCM_16 171 | bits_per_sample3: FORMAT_VORBIS 172 | bits_per_sample4: FORMAT_PCM_16 173 | comment: '' 174 | file: out_file 175 | format: FORMAT_WAV 176 | nchan: '1' 177 | samp_rate: samp_rate 178 | states: 179 | bus_sink: false 180 | bus_source: false 181 | bus_structure: null 182 | coordinate: [1104, 264.0] 183 | rotation: 0 184 | state: disabled 185 | - name: low_pass_filter_0 186 | id: low_pass_filter 187 | parameters: 188 | affinity: '' 189 | alias: '' 190 | beta: '6.76' 191 | comment: '' 192 | cutoff_freq: 5e3 193 | decim: '1' 194 | gain: '1' 195 | interp: '1' 196 | maxoutbuf: '0' 197 | minoutbuf: '0' 198 | samp_rate: samp_rate 199 | type: fir_filter_ccf 200 | width: 1e3 201 | win: window.WIN_HAMMING 202 | states: 203 | bus_sink: false 204 | bus_source: false 205 | bus_structure: null 206 | coordinate: [304, 108] 207 | rotation: 0 208 | state: enabled 209 | - name: qtgui_sink_x_0 210 | id: qtgui_sink_x 211 | parameters: 212 | affinity: '' 213 | alias: '' 214 | bw: samp_rate 215 | comment: '' 216 | fc: '0' 217 | fftsize: '1024' 218 | gui_hint: '' 219 | maxoutbuf: '0' 220 | minoutbuf: '0' 221 | name: '"RX from " + ip + ":" + port' 222 | plotconst: 'True' 223 | plotfreq: 'True' 224 | plottime: 'True' 225 | plotwaterfall: 'True' 226 | rate: '10' 227 | showports: 'True' 228 | showrf: 'False' 229 | type: complex 230 | wintype: window.WIN_BLACKMAN_hARRIS 231 | states: 232 | bus_sink: false 233 | bus_source: false 234 | bus_structure: null 235 | coordinate: [272, 292] 236 | rotation: 0 237 | state: enabled 238 | - name: zeromq_sub_source_0 239 | id: zeromq_sub_source 240 | parameters: 241 | address: '"tcp://"+ip+":"+port' 242 | affinity: '' 243 | alias: '' 244 | bind: 'False' 245 | comment: '' 246 | hwm: '-1' 247 | key: '' 248 | maxoutbuf: '0' 249 | minoutbuf: '0' 250 | pass_tags: 'False' 251 | timeout: '100' 252 | type: complex 253 | vlen: '1' 254 | states: 255 | bus_sink: false 256 | bus_source: false 257 | bus_structure: null 258 | coordinate: [32, 140] 259 | rotation: 0 260 | state: enabled 261 | 262 | connections: 263 | - [analog_agc2_xx_0, '0', blocks_complex_to_real_0, '0'] 264 | - [band_pass_filter_0, '0', analog_agc2_xx_0, '0'] 265 | - [blocks_complex_to_real_0, '0', audio_sink_0, '0'] 266 | - [blocks_complex_to_real_0, '0', blocks_wavfile_sink_0, '0'] 267 | - [low_pass_filter_0, '0', band_pass_filter_0, '0'] 268 | - [zeromq_sub_source_0, '0', low_pass_filter_0, '0'] 269 | - [zeromq_sub_source_0, '0', qtgui_sink_x_0, '0'] 270 | 271 | metadata: 272 | file_format: 1 273 | -------------------------------------------------------------------------------- /GNU Radio ZMQ Receivers/gr_3.7_zmq_nbfm_rx.grc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Mon Aug 3 16:31:24 2020 5 | 6 | options 7 | 8 | author 9 | Corey 10 | 11 | 12 | window_size 13 | 14 | 15 | 16 | category 17 | [GRC Hier Blocks] 18 | 19 | 20 | comment 21 | 22 | 23 | 24 | description 25 | 26 | 27 | 28 | _enabled 29 | True 30 | 31 | 32 | _coordinate 33 | (0, 4) 34 | 35 | 36 | _rotation 37 | 0 38 | 39 | 40 | generate_options 41 | qt_gui 42 | 43 | 44 | hier_block_src_path 45 | .: 46 | 47 | 48 | id 49 | zmq_nbfm_rx 50 | 51 | 52 | max_nouts 53 | 0 54 | 55 | 56 | qt_qss_theme 57 | 58 | 59 | 60 | realtime_scheduling 61 | 62 | 63 | 64 | run_command 65 | {python} -u {filename} 66 | 67 | 68 | run_options 69 | prompt 70 | 71 | 72 | run 73 | True 74 | 75 | 76 | sizing_mode 77 | fixed 78 | 79 | 80 | thread_safe_setters 81 | 82 | 83 | 84 | title 85 | ZMQ NBFM Receiver 86 | 87 | 88 | placement 89 | (0,0) 90 | 91 | 92 | 93 | variable 94 | 95 | comment 96 | 97 | 98 | 99 | _enabled 100 | True 101 | 102 | 103 | _coordinate 104 | (272, 4) 105 | 106 | 107 | _rotation 108 | 0 109 | 110 | 111 | id 112 | ip 113 | 114 | 115 | value 116 | "sdr.rfhackers.com" 117 | 118 | 119 | 120 | variable 121 | 122 | comment 123 | 124 | 125 | 126 | _enabled 127 | True 128 | 129 | 130 | _coordinate 131 | (376, 4) 132 | 133 | 134 | _rotation 135 | 0 136 | 137 | 138 | id 139 | port 140 | 141 | 142 | value 143 | "6556" 144 | 145 | 146 | 147 | variable 148 | 149 | comment 150 | 151 | 152 | 153 | _enabled 154 | True 155 | 156 | 157 | _coordinate 158 | (168, 4) 159 | 160 | 161 | _rotation 162 | 0 163 | 164 | 165 | id 166 | samp_rate 167 | 168 | 169 | value 170 | 96000 171 | 172 | 173 | 174 | analog_nbfm_rx 175 | 176 | audio_rate 177 | 48000 178 | 179 | 180 | alias 181 | 182 | 183 | 184 | comment 185 | 186 | 187 | 188 | affinity 189 | 190 | 191 | 192 | _enabled 193 | True 194 | 195 | 196 | _coordinate 197 | (464, 100) 198 | 199 | 200 | _rotation 201 | 0 202 | 203 | 204 | id 205 | analog_nbfm_rx_0 206 | 207 | 208 | max_dev 209 | 5e3 210 | 211 | 212 | maxoutbuf 213 | 0 214 | 215 | 216 | minoutbuf 217 | 0 218 | 219 | 220 | quad_rate 221 | samp_rate 222 | 223 | 224 | tau 225 | 75e-6 226 | 227 | 228 | 229 | audio_sink 230 | 231 | alias 232 | 233 | 234 | 235 | comment 236 | 237 | 238 | 239 | affinity 240 | 241 | 242 | 243 | device_name 244 | 245 | 246 | 247 | _enabled 248 | True 249 | 250 | 251 | _coordinate 252 | (672, 124) 253 | 254 | 255 | _rotation 256 | 0 257 | 258 | 259 | id 260 | audio_sink_0 261 | 262 | 263 | num_inputs 264 | 1 265 | 266 | 267 | ok_to_block 268 | True 269 | 270 | 271 | samp_rate 272 | 48000 273 | 274 | 275 | 276 | low_pass_filter 277 | 278 | beta 279 | 6.76 280 | 281 | 282 | alias 283 | 284 | 285 | 286 | comment 287 | 288 | 289 | 290 | affinity 291 | 292 | 293 | 294 | cutoff_freq 295 | 5e3 296 | 297 | 298 | decim 299 | 1 300 | 301 | 302 | _enabled 303 | True 304 | 305 | 306 | type 307 | fir_filter_ccf 308 | 309 | 310 | _coordinate 311 | (256, 76) 312 | 313 | 314 | _rotation 315 | 0 316 | 317 | 318 | gain 319 | 1 320 | 321 | 322 | id 323 | low_pass_filter_0 324 | 325 | 326 | interp 327 | 1 328 | 329 | 330 | maxoutbuf 331 | 0 332 | 333 | 334 | minoutbuf 335 | 0 336 | 337 | 338 | samp_rate 339 | samp_rate 340 | 341 | 342 | width 343 | 1e3 344 | 345 | 346 | win 347 | firdes.WIN_HAMMING 348 | 349 | 350 | 351 | qtgui_sink_x 352 | 353 | bw 354 | samp_rate 355 | 356 | 357 | alias 358 | 359 | 360 | 361 | fc 362 | 0 363 | 364 | 365 | freqchangevar 366 | None 367 | 368 | 369 | comment 370 | 371 | 372 | 373 | affinity 374 | 375 | 376 | 377 | _enabled 378 | True 379 | 380 | 381 | fftsize 382 | 1024 383 | 384 | 385 | _coordinate 386 | (256, 260) 387 | 388 | 389 | gui_hint 390 | 391 | 392 | 393 | _rotation 394 | 0 395 | 396 | 397 | id 398 | qtgui_sink_x_0 399 | 400 | 401 | maxoutbuf 402 | 0 403 | 404 | 405 | minoutbuf 406 | 0 407 | 408 | 409 | name 410 | "RX from " + ip + ":" + port 411 | 412 | 413 | plotconst 414 | True 415 | 416 | 417 | plotfreq 418 | True 419 | 420 | 421 | plottime 422 | True 423 | 424 | 425 | plotwaterfall 426 | True 427 | 428 | 429 | showports 430 | True 431 | 432 | 433 | showrf 434 | False 435 | 436 | 437 | type 438 | complex 439 | 440 | 441 | rate 442 | 10 443 | 444 | 445 | wintype 446 | firdes.WIN_BLACKMAN_hARRIS 447 | 448 | 449 | 450 | zeromq_sub_source 451 | 452 | address 453 | "tcp://"+ip+":"+port 454 | 455 | 456 | alias 457 | 458 | 459 | 460 | comment 461 | 462 | 463 | 464 | affinity 465 | 466 | 467 | 468 | _enabled 469 | True 470 | 471 | 472 | _coordinate 473 | (16, 108) 474 | 475 | 476 | _rotation 477 | 0 478 | 479 | 480 | hwm 481 | -1 482 | 483 | 484 | id 485 | zeromq_sub_source_0 486 | 487 | 488 | type 489 | complex 490 | 491 | 492 | maxoutbuf 493 | 0 494 | 495 | 496 | minoutbuf 497 | 0 498 | 499 | 500 | pass_tags 501 | False 502 | 503 | 504 | timeout 505 | 100 506 | 507 | 508 | vlen 509 | 1 510 | 511 | 512 | 513 | analog_nbfm_rx_0 514 | audio_sink_0 515 | 0 516 | 0 517 | 518 | 519 | low_pass_filter_0 520 | analog_nbfm_rx_0 521 | 0 522 | 0 523 | 524 | 525 | zeromq_sub_source_0 526 | low_pass_filter_0 527 | 0 528 | 0 529 | 530 | 531 | zeromq_sub_source_0 532 | qtgui_sink_x_0 533 | 0 534 | 0 535 | 536 | 537 | -------------------------------------------------------------------------------- /GNU Radio ZMQ Receivers/gr_3.7_zmq_usb_rx.grc: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Mon Aug 3 16:40:24 2020 5 | 6 | options 7 | 8 | author 9 | Corey 10 | 11 | 12 | window_size 13 | 14 | 15 | 16 | category 17 | [GRC Hier Blocks] 18 | 19 | 20 | comment 21 | 22 | 23 | 24 | description 25 | Upper Sideband Receiver 26 | 27 | 28 | _enabled 29 | True 30 | 31 | 32 | _coordinate 33 | (0, 4) 34 | 35 | 36 | _rotation 37 | 0 38 | 39 | 40 | generate_options 41 | qt_gui 42 | 43 | 44 | hier_block_src_path 45 | .: 46 | 47 | 48 | id 49 | zmq_usb_rx 50 | 51 | 52 | max_nouts 53 | 0 54 | 55 | 56 | qt_qss_theme 57 | 58 | 59 | 60 | realtime_scheduling 61 | 62 | 63 | 64 | run_command 65 | {python} -u {filename} 66 | 67 | 68 | run_options 69 | prompt 70 | 71 | 72 | run 73 | True 74 | 75 | 76 | sizing_mode 77 | fixed 78 | 79 | 80 | thread_safe_setters 81 | 82 | 83 | 84 | title 85 | ZMQ USB Receiver 86 | 87 | 88 | placement 89 | (0,0) 90 | 91 | 92 | 93 | variable 94 | 95 | comment 96 | 97 | 98 | 99 | _enabled 100 | True 101 | 102 | 103 | _coordinate 104 | (280, 4) 105 | 106 | 107 | _rotation 108 | 0 109 | 110 | 111 | id 112 | ip 113 | 114 | 115 | value 116 | "sdr.rfhackers.com" 117 | 118 | 119 | 120 | variable 121 | 122 | comment 123 | 124 | 125 | 126 | _enabled 127 | True 128 | 129 | 130 | _coordinate 131 | (384, 4) 132 | 133 | 134 | _rotation 135 | 0 136 | 137 | 138 | id 139 | port 140 | 141 | 142 | value 143 | "6556" 144 | 145 | 146 | 147 | variable 148 | 149 | comment 150 | 151 | 152 | 153 | _enabled 154 | True 155 | 156 | 157 | _coordinate 158 | (184, 4) 159 | 160 | 161 | _rotation 162 | 0 163 | 164 | 165 | id 166 | samp_rate 167 | 168 | 169 | value 170 | 96000 171 | 172 | 173 | 174 | analog_agc2_xx 175 | 176 | attack_rate 177 | 1e-1 178 | 179 | 180 | alias 181 | 182 | 183 | 184 | comment 185 | 186 | 187 | 188 | affinity 189 | 190 | 191 | 192 | decay_rate 193 | 50e-6 194 | 195 | 196 | _enabled 197 | True 198 | 199 | 200 | _coordinate 201 | (720, 124) 202 | 203 | 204 | _rotation 205 | 0 206 | 207 | 208 | gain 209 | 1.0 210 | 211 | 212 | id 213 | analog_agc2_xx_0 214 | 215 | 216 | max_gain 217 | 1 218 | 219 | 220 | maxoutbuf 221 | 0 222 | 223 | 224 | minoutbuf 225 | 0 226 | 227 | 228 | reference 229 | 0.8 230 | 231 | 232 | type 233 | complex 234 | 235 | 236 | 237 | audio_sink 238 | 239 | alias 240 | 241 | 242 | 243 | comment 244 | 245 | 246 | 247 | affinity 248 | 249 | 250 | 251 | device_name 252 | 253 | 254 | 255 | _enabled 256 | True 257 | 258 | 259 | _coordinate 260 | (1120, 156) 261 | 262 | 263 | _rotation 264 | 0 265 | 266 | 267 | id 268 | audio_sink_0 269 | 270 | 271 | num_inputs 272 | 1 273 | 274 | 275 | ok_to_block 276 | True 277 | 278 | 279 | samp_rate 280 | 48000 281 | 282 | 283 | 284 | band_pass_filter 285 | 286 | beta 287 | 6.76 288 | 289 | 290 | alias 291 | 292 | 293 | 294 | comment 295 | 296 | 297 | 298 | affinity 299 | 300 | 301 | 302 | decim 303 | 2 304 | 305 | 306 | _enabled 307 | True 308 | 309 | 310 | type 311 | fir_filter_ccf 312 | 313 | 314 | _coordinate 315 | (520, 100) 316 | 317 | 318 | _rotation 319 | 0 320 | 321 | 322 | gain 323 | 1 324 | 325 | 326 | high_cutoff_freq 327 | 3000 328 | 329 | 330 | id 331 | band_pass_filter_0 332 | 333 | 334 | interp 335 | 1 336 | 337 | 338 | low_cutoff_freq 339 | 300 340 | 341 | 342 | maxoutbuf 343 | 0 344 | 345 | 346 | minoutbuf 347 | 0 348 | 349 | 350 | samp_rate 351 | samp_rate 352 | 353 | 354 | width 355 | 500 356 | 357 | 358 | win 359 | firdes.WIN_HAMMING 360 | 361 | 362 | 363 | blocks_complex_to_real 364 | 365 | alias 366 | 367 | 368 | 369 | comment 370 | 371 | 372 | 373 | affinity 374 | 375 | 376 | 377 | _enabled 378 | True 379 | 380 | 381 | _coordinate 382 | (928, 160) 383 | 384 | 385 | _rotation 386 | 0 387 | 388 | 389 | id 390 | blocks_complex_to_real_0 391 | 392 | 393 | maxoutbuf 394 | 0 395 | 396 | 397 | minoutbuf 398 | 0 399 | 400 | 401 | vlen 402 | 1 403 | 404 | 405 | 406 | low_pass_filter 407 | 408 | beta 409 | 6.76 410 | 411 | 412 | alias 413 | 414 | 415 | 416 | comment 417 | 418 | 419 | 420 | affinity 421 | 422 | 423 | 424 | cutoff_freq 425 | 5e3 426 | 427 | 428 | decim 429 | 1 430 | 431 | 432 | _enabled 433 | True 434 | 435 | 436 | type 437 | fir_filter_ccf 438 | 439 | 440 | _coordinate 441 | (304, 108) 442 | 443 | 444 | _rotation 445 | 0 446 | 447 | 448 | gain 449 | 1 450 | 451 | 452 | id 453 | low_pass_filter_0 454 | 455 | 456 | interp 457 | 1 458 | 459 | 460 | maxoutbuf 461 | 0 462 | 463 | 464 | minoutbuf 465 | 0 466 | 467 | 468 | samp_rate 469 | samp_rate 470 | 471 | 472 | width 473 | 1e3 474 | 475 | 476 | win 477 | firdes.WIN_HAMMING 478 | 479 | 480 | 481 | qtgui_sink_x 482 | 483 | bw 484 | samp_rate 485 | 486 | 487 | alias 488 | 489 | 490 | 491 | fc 492 | 0 493 | 494 | 495 | freqchangevar 496 | None 497 | 498 | 499 | comment 500 | 501 | 502 | 503 | affinity 504 | 505 | 506 | 507 | _enabled 508 | True 509 | 510 | 511 | fftsize 512 | 1024 513 | 514 | 515 | _coordinate 516 | (272, 292) 517 | 518 | 519 | gui_hint 520 | 521 | 522 | 523 | _rotation 524 | 0 525 | 526 | 527 | id 528 | qtgui_sink_x_0 529 | 530 | 531 | maxoutbuf 532 | 0 533 | 534 | 535 | minoutbuf 536 | 0 537 | 538 | 539 | name 540 | "RX from " + ip + ":" + port 541 | 542 | 543 | plotconst 544 | True 545 | 546 | 547 | plotfreq 548 | True 549 | 550 | 551 | plottime 552 | True 553 | 554 | 555 | plotwaterfall 556 | True 557 | 558 | 559 | showports 560 | True 561 | 562 | 563 | showrf 564 | False 565 | 566 | 567 | type 568 | complex 569 | 570 | 571 | rate 572 | 10 573 | 574 | 575 | wintype 576 | firdes.WIN_BLACKMAN_hARRIS 577 | 578 | 579 | 580 | zeromq_sub_source 581 | 582 | address 583 | "tcp://"+ip+":"+port 584 | 585 | 586 | alias 587 | 588 | 589 | 590 | comment 591 | 592 | 593 | 594 | affinity 595 | 596 | 597 | 598 | _enabled 599 | True 600 | 601 | 602 | _coordinate 603 | (32, 140) 604 | 605 | 606 | _rotation 607 | 0 608 | 609 | 610 | hwm 611 | -1 612 | 613 | 614 | id 615 | zeromq_sub_source_0 616 | 617 | 618 | type 619 | complex 620 | 621 | 622 | maxoutbuf 623 | 0 624 | 625 | 626 | minoutbuf 627 | 0 628 | 629 | 630 | pass_tags 631 | False 632 | 633 | 634 | timeout 635 | 100 636 | 637 | 638 | vlen 639 | 1 640 | 641 | 642 | 643 | analog_agc2_xx_0 644 | blocks_complex_to_real_0 645 | 0 646 | 0 647 | 648 | 649 | band_pass_filter_0 650 | analog_agc2_xx_0 651 | 0 652 | 0 653 | 654 | 655 | blocks_complex_to_real_0 656 | audio_sink_0 657 | 0 658 | 0 659 | 660 | 661 | low_pass_filter_0 662 | band_pass_filter_0 663 | 0 664 | 0 665 | 666 | 667 | zeromq_sub_source_0 668 | low_pass_filter_0 669 | 0 670 | 0 671 | 672 | 673 | zeromq_sub_source_0 674 | qtgui_sink_x_0 675 | 0 676 | 0 677 | 678 | 679 | -------------------------------------------------------------------------------- /GNU Radio ZMQ Receivers/gr_3.8_zmq_nbfm_rx.grc: -------------------------------------------------------------------------------- 1 | options: 2 | parameters: 3 | author: Corey 4 | category: '[GRC Hier Blocks]' 5 | cmake_opt: '' 6 | comment: '' 7 | copyright: '' 8 | description: '' 9 | gen_cmake: 'On' 10 | gen_linking: dynamic 11 | generate_options: qt_gui 12 | hier_block_src_path: '.:' 13 | id: zmq_nbfm_rx 14 | max_nouts: '0' 15 | output_language: python 16 | placement: (0,0) 17 | qt_qss_theme: '' 18 | realtime_scheduling: '' 19 | run: 'True' 20 | run_command: '{python} -u {filename}' 21 | run_options: prompt 22 | sizing_mode: fixed 23 | thread_safe_setters: '' 24 | title: ZMQ NBFM Receiver 25 | window_size: '' 26 | states: 27 | bus_sink: false 28 | bus_source: false 29 | bus_structure: null 30 | coordinate: [0, 4] 31 | rotation: 0 32 | state: enabled 33 | 34 | blocks: 35 | - name: filename 36 | id: variable 37 | parameters: 38 | comment: '' 39 | value: '"zmq_nbfm_port_"+port+".bin"' 40 | states: 41 | bus_sink: false 42 | bus_source: false 43 | bus_structure: null 44 | coordinate: [456, 4.0] 45 | rotation: 0 46 | state: true 47 | - name: ip 48 | id: variable 49 | parameters: 50 | comment: '' 51 | value: '"sdr.rfhackers.com"' 52 | states: 53 | bus_sink: false 54 | bus_source: false 55 | bus_structure: null 56 | coordinate: [272, 4] 57 | rotation: 0 58 | state: enabled 59 | - name: port 60 | id: variable 61 | parameters: 62 | comment: '' 63 | value: '"6556"' 64 | states: 65 | bus_sink: false 66 | bus_source: false 67 | bus_structure: null 68 | coordinate: [376, 4] 69 | rotation: 0 70 | state: enabled 71 | - name: samp_rate 72 | id: variable 73 | parameters: 74 | comment: '' 75 | value: '96000' 76 | states: 77 | bus_sink: false 78 | bus_source: false 79 | bus_structure: null 80 | coordinate: [168, 4] 81 | rotation: 0 82 | state: enabled 83 | - name: analog_nbfm_rx_0 84 | id: analog_nbfm_rx 85 | parameters: 86 | affinity: '' 87 | alias: '' 88 | audio_rate: '48000' 89 | comment: '' 90 | max_dev: 5e3 91 | maxoutbuf: '0' 92 | minoutbuf: '0' 93 | quad_rate: samp_rate 94 | tau: 75e-6 95 | states: 96 | bus_sink: false 97 | bus_source: false 98 | bus_structure: null 99 | coordinate: [464, 100] 100 | rotation: 0 101 | state: enabled 102 | - name: audio_sink_0 103 | id: audio_sink 104 | parameters: 105 | affinity: '' 106 | alias: '' 107 | comment: '' 108 | device_name: '' 109 | num_inputs: '1' 110 | ok_to_block: 'True' 111 | samp_rate: '48000' 112 | states: 113 | bus_sink: false 114 | bus_source: false 115 | bus_structure: null 116 | coordinate: [672, 124] 117 | rotation: 0 118 | state: enabled 119 | - name: blocks_file_sink_0 120 | id: blocks_file_sink 121 | parameters: 122 | affinity: '' 123 | alias: '' 124 | append: 'False' 125 | comment: '' 126 | file: filename 127 | type: float 128 | unbuffered: 'False' 129 | vlen: '1' 130 | states: 131 | bus_sink: false 132 | bus_source: false 133 | bus_structure: null 134 | coordinate: [672, 188.0] 135 | rotation: 0 136 | state: disabled 137 | - name: low_pass_filter_0 138 | id: low_pass_filter 139 | parameters: 140 | affinity: '' 141 | alias: '' 142 | beta: '6.76' 143 | comment: '' 144 | cutoff_freq: 5e3 145 | decim: '1' 146 | gain: '1' 147 | interp: '1' 148 | maxoutbuf: '0' 149 | minoutbuf: '0' 150 | samp_rate: samp_rate 151 | type: fir_filter_ccf 152 | width: 1e3 153 | win: firdes.WIN_HAMMING 154 | states: 155 | bus_sink: false 156 | bus_source: false 157 | bus_structure: null 158 | coordinate: [256, 76] 159 | rotation: 0 160 | state: enabled 161 | - name: qtgui_sink_x_0 162 | id: qtgui_sink_x 163 | parameters: 164 | affinity: '' 165 | alias: '' 166 | bw: samp_rate 167 | comment: '' 168 | fc: '0' 169 | fftsize: '1024' 170 | gui_hint: '' 171 | maxoutbuf: '0' 172 | minoutbuf: '0' 173 | name: '"RX from " + ip + ":" + port' 174 | plotconst: 'True' 175 | plotfreq: 'True' 176 | plottime: 'True' 177 | plotwaterfall: 'True' 178 | rate: '10' 179 | showports: 'True' 180 | showrf: 'False' 181 | type: complex 182 | wintype: firdes.WIN_BLACKMAN_hARRIS 183 | states: 184 | bus_sink: false 185 | bus_source: false 186 | bus_structure: null 187 | coordinate: [256, 260] 188 | rotation: 0 189 | state: enabled 190 | - name: zeromq_sub_source_0 191 | id: zeromq_sub_source 192 | parameters: 193 | address: '"tcp://"+ip+":"+port' 194 | affinity: '' 195 | alias: '' 196 | comment: '' 197 | hwm: '-1' 198 | maxoutbuf: '0' 199 | minoutbuf: '0' 200 | pass_tags: 'False' 201 | timeout: '100' 202 | type: complex 203 | vlen: '1' 204 | states: 205 | bus_sink: false 206 | bus_source: false 207 | bus_structure: null 208 | coordinate: [16, 108] 209 | rotation: 0 210 | state: enabled 211 | 212 | connections: 213 | - [analog_nbfm_rx_0, '0', audio_sink_0, '0'] 214 | - [analog_nbfm_rx_0, '0', blocks_file_sink_0, '0'] 215 | - [low_pass_filter_0, '0', analog_nbfm_rx_0, '0'] 216 | - [zeromq_sub_source_0, '0', low_pass_filter_0, '0'] 217 | - [zeromq_sub_source_0, '0', qtgui_sink_x_0, '0'] 218 | 219 | metadata: 220 | file_format: 1 221 | -------------------------------------------------------------------------------- /GNU Radio ZMQ Receivers/gr_3.8_zmq_usb_rx.grc: -------------------------------------------------------------------------------- 1 | options: 2 | parameters: 3 | author: Corey 4 | category: '[GRC Hier Blocks]' 5 | cmake_opt: '' 6 | comment: '' 7 | copyright: '' 8 | description: Upper Sideband Receiver 9 | gen_cmake: 'On' 10 | gen_linking: dynamic 11 | generate_options: qt_gui 12 | hier_block_src_path: '.:' 13 | id: zmq_usb_rx 14 | max_nouts: '0' 15 | output_language: python 16 | placement: (0,0) 17 | qt_qss_theme: '' 18 | realtime_scheduling: '' 19 | run: 'True' 20 | run_command: '{python} -u {filename}' 21 | run_options: prompt 22 | sizing_mode: fixed 23 | thread_safe_setters: '' 24 | title: ZMQ USB Receiver 25 | window_size: '' 26 | states: 27 | bus_sink: false 28 | bus_source: false 29 | bus_structure: null 30 | coordinate: [0, 4] 31 | rotation: 0 32 | state: enabled 33 | 34 | blocks: 35 | - name: filename 36 | id: variable 37 | parameters: 38 | comment: '' 39 | value: '"zmq_usb_port_"+port+".bin"' 40 | states: 41 | bus_sink: false 42 | bus_source: false 43 | bus_structure: null 44 | coordinate: [464, 4.0] 45 | rotation: 0 46 | state: true 47 | - name: ip 48 | id: variable 49 | parameters: 50 | comment: '' 51 | value: '"sdr.rfhackers.com"' 52 | states: 53 | bus_sink: false 54 | bus_source: false 55 | bus_structure: null 56 | coordinate: [280, 4] 57 | rotation: 0 58 | state: enabled 59 | - name: port 60 | id: variable 61 | parameters: 62 | comment: '' 63 | value: '"6556"' 64 | states: 65 | bus_sink: false 66 | bus_source: false 67 | bus_structure: null 68 | coordinate: [384, 4] 69 | rotation: 0 70 | state: enabled 71 | - name: samp_rate 72 | id: variable 73 | parameters: 74 | comment: '' 75 | value: '96000' 76 | states: 77 | bus_sink: false 78 | bus_source: false 79 | bus_structure: null 80 | coordinate: [184, 4] 81 | rotation: 0 82 | state: enabled 83 | - name: analog_agc2_xx_0 84 | id: analog_agc2_xx 85 | parameters: 86 | affinity: '' 87 | alias: '' 88 | attack_rate: 1e-1 89 | comment: '' 90 | decay_rate: 50e-6 91 | gain: '1.0' 92 | max_gain: '1' 93 | maxoutbuf: '0' 94 | minoutbuf: '0' 95 | reference: '0.8' 96 | type: complex 97 | states: 98 | bus_sink: false 99 | bus_source: false 100 | bus_structure: null 101 | coordinate: [720, 124] 102 | rotation: 0 103 | state: enabled 104 | - name: audio_sink_0 105 | id: audio_sink 106 | parameters: 107 | affinity: '' 108 | alias: '' 109 | comment: '' 110 | device_name: '' 111 | num_inputs: '1' 112 | ok_to_block: 'True' 113 | samp_rate: '48000' 114 | states: 115 | bus_sink: false 116 | bus_source: false 117 | bus_structure: null 118 | coordinate: [1120, 156] 119 | rotation: 0 120 | state: enabled 121 | - name: band_pass_filter_0 122 | id: band_pass_filter 123 | parameters: 124 | affinity: '' 125 | alias: '' 126 | beta: '6.76' 127 | comment: '' 128 | decim: '2' 129 | gain: '1' 130 | high_cutoff_freq: '3000' 131 | interp: '1' 132 | low_cutoff_freq: '300' 133 | maxoutbuf: '0' 134 | minoutbuf: '0' 135 | samp_rate: samp_rate 136 | type: fir_filter_ccf 137 | width: '500' 138 | win: firdes.WIN_HAMMING 139 | states: 140 | bus_sink: false 141 | bus_source: false 142 | bus_structure: null 143 | coordinate: [520, 100] 144 | rotation: 0 145 | state: enabled 146 | - name: blocks_complex_to_real_0 147 | id: blocks_complex_to_real 148 | parameters: 149 | affinity: '' 150 | alias: '' 151 | comment: '' 152 | maxoutbuf: '0' 153 | minoutbuf: '0' 154 | vlen: '1' 155 | states: 156 | bus_sink: false 157 | bus_source: false 158 | bus_structure: null 159 | coordinate: [928, 160] 160 | rotation: 0 161 | state: enabled 162 | - name: blocks_file_sink_0 163 | id: blocks_file_sink 164 | parameters: 165 | affinity: '' 166 | alias: '' 167 | append: 'False' 168 | comment: '' 169 | file: filename 170 | type: float 171 | unbuffered: 'False' 172 | vlen: '1' 173 | states: 174 | bus_sink: false 175 | bus_source: false 176 | bus_structure: null 177 | coordinate: [1120, 220.0] 178 | rotation: 0 179 | state: disabled 180 | - name: low_pass_filter_0 181 | id: low_pass_filter 182 | parameters: 183 | affinity: '' 184 | alias: '' 185 | beta: '6.76' 186 | comment: '' 187 | cutoff_freq: 5e3 188 | decim: '1' 189 | gain: '1' 190 | interp: '1' 191 | maxoutbuf: '0' 192 | minoutbuf: '0' 193 | samp_rate: samp_rate 194 | type: fir_filter_ccf 195 | width: 1e3 196 | win: firdes.WIN_HAMMING 197 | states: 198 | bus_sink: false 199 | bus_source: false 200 | bus_structure: null 201 | coordinate: [304, 108] 202 | rotation: 0 203 | state: enabled 204 | - name: qtgui_sink_x_0 205 | id: qtgui_sink_x 206 | parameters: 207 | affinity: '' 208 | alias: '' 209 | bw: samp_rate 210 | comment: '' 211 | fc: '0' 212 | fftsize: '1024' 213 | gui_hint: '' 214 | maxoutbuf: '0' 215 | minoutbuf: '0' 216 | name: '"RX from " + ip + ":" + port' 217 | plotconst: 'True' 218 | plotfreq: 'True' 219 | plottime: 'True' 220 | plotwaterfall: 'True' 221 | rate: '10' 222 | showports: 'True' 223 | showrf: 'False' 224 | type: complex 225 | wintype: firdes.WIN_BLACKMAN_hARRIS 226 | states: 227 | bus_sink: false 228 | bus_source: false 229 | bus_structure: null 230 | coordinate: [272, 292] 231 | rotation: 0 232 | state: enabled 233 | - name: zeromq_sub_source_0 234 | id: zeromq_sub_source 235 | parameters: 236 | address: '"tcp://"+ip+":"+port' 237 | affinity: '' 238 | alias: '' 239 | comment: '' 240 | hwm: '-1' 241 | maxoutbuf: '0' 242 | minoutbuf: '0' 243 | pass_tags: 'False' 244 | timeout: '100' 245 | type: complex 246 | vlen: '1' 247 | states: 248 | bus_sink: false 249 | bus_source: false 250 | bus_structure: null 251 | coordinate: [32, 140] 252 | rotation: 0 253 | state: enabled 254 | 255 | connections: 256 | - [analog_agc2_xx_0, '0', blocks_complex_to_real_0, '0'] 257 | - [band_pass_filter_0, '0', analog_agc2_xx_0, '0'] 258 | - [blocks_complex_to_real_0, '0', audio_sink_0, '0'] 259 | - [blocks_complex_to_real_0, '0', blocks_file_sink_0, '0'] 260 | - [low_pass_filter_0, '0', band_pass_filter_0, '0'] 261 | - [zeromq_sub_source_0, '0', low_pass_filter_0, '0'] 262 | - [zeromq_sub_source_0, '0', qtgui_sink_x_0, '0'] 263 | 264 | metadata: 265 | file_format: 1 266 | -------------------------------------------------------------------------------- /GNU Radio ZMQ Receivers/gr_3.9_zmq_nbfm_rx.grc: -------------------------------------------------------------------------------- 1 | options: 2 | parameters: 3 | author: Corey 4 | catch_exceptions: 'True' 5 | category: '[GRC Hier Blocks]' 6 | cmake_opt: '' 7 | comment: '' 8 | copyright: '' 9 | description: '' 10 | gen_cmake: 'On' 11 | gen_linking: dynamic 12 | generate_options: qt_gui 13 | hier_block_src_path: '.:' 14 | id: zmq_nbfm_rx 15 | max_nouts: '0' 16 | output_language: python 17 | placement: (0,0) 18 | qt_qss_theme: '' 19 | realtime_scheduling: '' 20 | run: 'True' 21 | run_command: '{python} -u {filename}' 22 | run_options: prompt 23 | sizing_mode: fixed 24 | thread_safe_setters: '' 25 | title: ZMQ NBFM Receiver 26 | states: 27 | bus_sink: false 28 | bus_source: false 29 | bus_structure: null 30 | coordinate: [0, 4] 31 | rotation: 0 32 | state: enabled 33 | 34 | blocks: 35 | - name: ip 36 | id: variable 37 | parameters: 38 | comment: '' 39 | value: '"sdr.rfhackers.com"' 40 | states: 41 | bus_sink: false 42 | bus_source: false 43 | bus_structure: null 44 | coordinate: [272, 4] 45 | rotation: 0 46 | state: enabled 47 | - name: port 48 | id: variable 49 | parameters: 50 | comment: '' 51 | value: '"6556"' 52 | states: 53 | bus_sink: false 54 | bus_source: false 55 | bus_structure: null 56 | coordinate: [376, 4] 57 | rotation: 0 58 | state: enabled 59 | - name: samp_rate 60 | id: variable 61 | parameters: 62 | comment: '' 63 | value: '96000' 64 | states: 65 | bus_sink: false 66 | bus_source: false 67 | bus_structure: null 68 | coordinate: [168, 4] 69 | rotation: 0 70 | state: enabled 71 | - name: analog_nbfm_rx_0 72 | id: analog_nbfm_rx 73 | parameters: 74 | affinity: '' 75 | alias: '' 76 | audio_rate: '48000' 77 | comment: '' 78 | max_dev: 5e3 79 | maxoutbuf: '0' 80 | minoutbuf: '0' 81 | quad_rate: samp_rate 82 | tau: 75e-6 83 | states: 84 | bus_sink: false 85 | bus_source: false 86 | bus_structure: null 87 | coordinate: [464, 100] 88 | rotation: 0 89 | state: enabled 90 | - name: audio_sink_0 91 | id: audio_sink 92 | parameters: 93 | affinity: '' 94 | alias: '' 95 | comment: '' 96 | device_name: '' 97 | num_inputs: '1' 98 | ok_to_block: 'True' 99 | samp_rate: '48000' 100 | states: 101 | bus_sink: false 102 | bus_source: false 103 | bus_structure: null 104 | coordinate: [672, 124] 105 | rotation: 0 106 | state: enabled 107 | - name: low_pass_filter_0 108 | id: low_pass_filter 109 | parameters: 110 | affinity: '' 111 | alias: '' 112 | beta: '6.76' 113 | comment: '' 114 | cutoff_freq: 5e3 115 | decim: '1' 116 | gain: '1' 117 | interp: '1' 118 | maxoutbuf: '0' 119 | minoutbuf: '0' 120 | samp_rate: samp_rate 121 | type: fir_filter_ccf 122 | width: 1e3 123 | win: window.WIN_HAMMING 124 | states: 125 | bus_sink: false 126 | bus_source: false 127 | bus_structure: null 128 | coordinate: [256, 76] 129 | rotation: 0 130 | state: enabled 131 | - name: qtgui_sink_x_0 132 | id: qtgui_sink_x 133 | parameters: 134 | affinity: '' 135 | alias: '' 136 | bw: samp_rate 137 | comment: '' 138 | fc: '0' 139 | fftsize: '1024' 140 | gui_hint: '' 141 | maxoutbuf: '0' 142 | minoutbuf: '0' 143 | name: '"RX from " + ip + ":" + port' 144 | plotconst: 'True' 145 | plotfreq: 'True' 146 | plottime: 'True' 147 | plotwaterfall: 'True' 148 | rate: '10' 149 | showports: 'True' 150 | showrf: 'False' 151 | type: complex 152 | wintype: window.WIN_BLACKMAN_hARRIS 153 | states: 154 | bus_sink: false 155 | bus_source: false 156 | bus_structure: null 157 | coordinate: [256, 260] 158 | rotation: 0 159 | state: enabled 160 | - name: zeromq_sub_source_0 161 | id: zeromq_sub_source 162 | parameters: 163 | address: '"tcp://"+ip+":"+port' 164 | affinity: '' 165 | alias: '' 166 | comment: '' 167 | hwm: '-1' 168 | key: '' 169 | maxoutbuf: '0' 170 | minoutbuf: '0' 171 | pass_tags: 'False' 172 | timeout: '100' 173 | type: complex 174 | vlen: '1' 175 | states: 176 | bus_sink: false 177 | bus_source: false 178 | bus_structure: null 179 | coordinate: [16, 108] 180 | rotation: 0 181 | state: enabled 182 | 183 | connections: 184 | - [analog_nbfm_rx_0, '0', audio_sink_0, '0'] 185 | - [low_pass_filter_0, '0', analog_nbfm_rx_0, '0'] 186 | - [zeromq_sub_source_0, '0', low_pass_filter_0, '0'] 187 | - [zeromq_sub_source_0, '0', qtgui_sink_x_0, '0'] 188 | 189 | metadata: 190 | file_format: 1 191 | -------------------------------------------------------------------------------- /GNU Radio ZMQ Receivers/gr_3.9_zmq_usb_rx.grc: -------------------------------------------------------------------------------- 1 | options: 2 | parameters: 3 | author: Corey 4 | catch_exceptions: 'True' 5 | category: '[GRC Hier Blocks]' 6 | cmake_opt: '' 7 | comment: '' 8 | copyright: '' 9 | description: Upper Sideband Receiver 10 | gen_cmake: 'On' 11 | gen_linking: dynamic 12 | generate_options: qt_gui 13 | hier_block_src_path: '.:' 14 | id: zmq_usb_rx 15 | max_nouts: '0' 16 | output_language: python 17 | placement: (0,0) 18 | qt_qss_theme: '' 19 | realtime_scheduling: '' 20 | run: 'True' 21 | run_command: '{python} -u {filename}' 22 | run_options: prompt 23 | sizing_mode: fixed 24 | thread_safe_setters: '' 25 | title: ZMQ USB Receiver 26 | states: 27 | bus_sink: false 28 | bus_source: false 29 | bus_structure: null 30 | coordinate: [0, 4] 31 | rotation: 0 32 | state: enabled 33 | 34 | blocks: 35 | - name: ip 36 | id: variable 37 | parameters: 38 | comment: '' 39 | value: '"sdr.rfhackers.com"' 40 | states: 41 | bus_sink: false 42 | bus_source: false 43 | bus_structure: null 44 | coordinate: [280, 4] 45 | rotation: 0 46 | state: enabled 47 | - name: port 48 | id: variable 49 | parameters: 50 | comment: '' 51 | value: '"6556"' 52 | states: 53 | bus_sink: false 54 | bus_source: false 55 | bus_structure: null 56 | coordinate: [384, 4] 57 | rotation: 0 58 | state: enabled 59 | - name: samp_rate 60 | id: variable 61 | parameters: 62 | comment: '' 63 | value: '96000' 64 | states: 65 | bus_sink: false 66 | bus_source: false 67 | bus_structure: null 68 | coordinate: [184, 4] 69 | rotation: 0 70 | state: enabled 71 | - name: analog_agc2_xx_0 72 | id: analog_agc2_xx 73 | parameters: 74 | affinity: '' 75 | alias: '' 76 | attack_rate: 1e-1 77 | comment: '' 78 | decay_rate: 50e-6 79 | gain: '1.0' 80 | max_gain: '1' 81 | maxoutbuf: '0' 82 | minoutbuf: '0' 83 | reference: '0.8' 84 | type: complex 85 | states: 86 | bus_sink: false 87 | bus_source: false 88 | bus_structure: null 89 | coordinate: [720, 124] 90 | rotation: 0 91 | state: enabled 92 | - name: audio_sink_0 93 | id: audio_sink 94 | parameters: 95 | affinity: '' 96 | alias: '' 97 | comment: '' 98 | device_name: '' 99 | num_inputs: '1' 100 | ok_to_block: 'True' 101 | samp_rate: '48000' 102 | states: 103 | bus_sink: false 104 | bus_source: false 105 | bus_structure: null 106 | coordinate: [1120, 156] 107 | rotation: 0 108 | state: enabled 109 | - name: band_pass_filter_0 110 | id: band_pass_filter 111 | parameters: 112 | affinity: '' 113 | alias: '' 114 | beta: '6.76' 115 | comment: '' 116 | decim: '2' 117 | gain: '1' 118 | high_cutoff_freq: '3000' 119 | interp: '1' 120 | low_cutoff_freq: '300' 121 | maxoutbuf: '0' 122 | minoutbuf: '0' 123 | samp_rate: samp_rate 124 | type: fir_filter_ccf 125 | width: '500' 126 | win: window.WIN_HAMMING 127 | states: 128 | bus_sink: false 129 | bus_source: false 130 | bus_structure: null 131 | coordinate: [520, 100] 132 | rotation: 0 133 | state: enabled 134 | - name: blocks_complex_to_real_0 135 | id: blocks_complex_to_real 136 | parameters: 137 | affinity: '' 138 | alias: '' 139 | comment: '' 140 | maxoutbuf: '0' 141 | minoutbuf: '0' 142 | vlen: '1' 143 | states: 144 | bus_sink: false 145 | bus_source: false 146 | bus_structure: null 147 | coordinate: [928, 160] 148 | rotation: 0 149 | state: enabled 150 | - name: low_pass_filter_0 151 | id: low_pass_filter 152 | parameters: 153 | affinity: '' 154 | alias: '' 155 | beta: '6.76' 156 | comment: '' 157 | cutoff_freq: 5e3 158 | decim: '1' 159 | gain: '1' 160 | interp: '1' 161 | maxoutbuf: '0' 162 | minoutbuf: '0' 163 | samp_rate: samp_rate 164 | type: fir_filter_ccf 165 | width: 1e3 166 | win: window.WIN_HAMMING 167 | states: 168 | bus_sink: false 169 | bus_source: false 170 | bus_structure: null 171 | coordinate: [304, 108] 172 | rotation: 0 173 | state: enabled 174 | - name: qtgui_sink_x_0 175 | id: qtgui_sink_x 176 | parameters: 177 | affinity: '' 178 | alias: '' 179 | bw: samp_rate 180 | comment: '' 181 | fc: '0' 182 | fftsize: '1024' 183 | gui_hint: '' 184 | maxoutbuf: '0' 185 | minoutbuf: '0' 186 | name: '"RX from " + ip + ":" + port' 187 | plotconst: 'True' 188 | plotfreq: 'True' 189 | plottime: 'True' 190 | plotwaterfall: 'True' 191 | rate: '10' 192 | showports: 'True' 193 | showrf: 'False' 194 | type: complex 195 | wintype: window.WIN_BLACKMAN_hARRIS 196 | states: 197 | bus_sink: false 198 | bus_source: false 199 | bus_structure: null 200 | coordinate: [272, 292] 201 | rotation: 0 202 | state: enabled 203 | - name: zeromq_sub_source_0 204 | id: zeromq_sub_source 205 | parameters: 206 | address: '"tcp://"+ip+":"+port' 207 | affinity: '' 208 | alias: '' 209 | comment: '' 210 | hwm: '-1' 211 | key: '' 212 | maxoutbuf: '0' 213 | minoutbuf: '0' 214 | pass_tags: 'False' 215 | timeout: '100' 216 | type: complex 217 | vlen: '1' 218 | states: 219 | bus_sink: false 220 | bus_source: false 221 | bus_structure: null 222 | coordinate: [32, 140] 223 | rotation: 0 224 | state: enabled 225 | 226 | connections: 227 | - [analog_agc2_xx_0, '0', blocks_complex_to_real_0, '0'] 228 | - [band_pass_filter_0, '0', analog_agc2_xx_0, '0'] 229 | - [blocks_complex_to_real_0, '0', audio_sink_0, '0'] 230 | - [low_pass_filter_0, '0', band_pass_filter_0, '0'] 231 | - [zeromq_sub_source_0, '0', low_pass_filter_0, '0'] 232 | - [zeromq_sub_source_0, '0', qtgui_sink_x_0, '0'] 233 | 234 | metadata: 235 | file_format: 1 236 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2020, rfhs 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. Neither the name of the copyright holder nor the names of its 17 | contributors may be used to endorse or promote products derived from 18 | this software without specific prior written permission. 19 | 20 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 21 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 23 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 24 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 26 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 27 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 28 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # rfctf-sdr-tools 2 | 3 | ## GNU Radio ZMQ Receivers 4 | 5 | These ZMQ receivers can be opened in GNUradio and used to modify a signal into a visible and audible format. The virtual machines used for the virtual wifi *can* be used, but performance will be poor. If possible, it is recommended to use Gnuradio on your local computer for better performance. 6 | 7 | https://zeromq.org/ 8 | 9 | The server is sdr.rfhackers.com ports 6550-6570. By modifying the 'port' variable, you can access each of the different challenges. 10 | 11 | **Note:** If you're on a low bandwidth connection, it's recommended to save the IQ stream to a file first, then decode the information from the file. There is a file sink in 3.8 and a wav file sink in 3.10. They are disabled by default, right click and enable to save to a file and use in your favorite program. 12 | --------------------------------------------------------------------------------