From 0 to 6 GHz in 30 minutes bootstrap your SDR Experience!

Similar documents
2 Installing the Software

sdr-setup-notes Documentation HB9FXQ, Frank Werner-Krippendorf

Tutorial: GNU Radio Companion

PYNQ Radio Final Report Team Members: Harveen Kaur, Rajat Gupta, Rohit Kulkarni, Vishwesh Rege

GNU Radio runtime. Reinventing a very fast wheel. Andrej Rode FOSDEM Andrej Rode GNU Radio runtime FOSDEM / 21

Why You Should Not Use Arch

CS197U: A Hands on Introduction to Unix

EECS Software Tools. Lab 2 Tutorial: Introduction to UNIX/Linux. Tilemachos Pechlivanoglou

Having Fun with Social Coding. Sean Handley. February 25, 2010

cget Documentation Release Paul Fultz II

bootmachine Documentation

Zephyr Kernel Installation & Setup Manual

Introduction of Linux

Zero Install. Decentralised cross-platform package management

Baking RDKit on a Pi. - Tips and gotchas. Jan Holst Jensen CEO, Biochemfusion

[2014 Fall] Wireless Networking - Fundamentals and Applications

Singularity: container formats

WFM-RPI. Software for SDR : the WFM-RPI set

The Digital Revolution

TrinityCore Documentation

Koalix ERP. Release 0.2

Overview. What are community packages? Who installs what? How to compile and install? Setup at FSU RCC. Using RPMs vs regular install

Package Management Over Tor

Installation of R Studio. Tushar B. Kute,

Manual Of Virtualbox Additions Ubuntu Server 12.04

I/Q Data Guide v.1. Guide for acquiring I/Q data with the Gnu Radio Framework. Flagstaff, AZ March 5, Edited by.

How To Install Java Manually Linux Ubuntu Bit

GENI Tutorial with tmix Derek O'Neill UNC Chapel Hill

Briefcase Documentation

Android Sdk Install Documentation Eclipse. Ubuntu >>>CLICK HERE<<<

Introduction to the Raspberry Pi AND LINUX FOR DUMMIES

MAKING CONTAINERS EASIER WITH HPC CONTAINER MAKER. Scott McMillan September 2018

Gentoo Linux. Software Freedom Day 2010 Charleston, SC Linux User Group. Presentation by Kevin Bowling

Intro to Linux & Command Line

swiftenv Documentation

Install Vlc Manually Ubuntu

Installing and Using Docker Toolbox for Mac OSX and Windows

Lab00: Software Environment Setup

Overview LEARN. History of Linux Linux Architecture Linux File System Linux Access Linux Commands File Permission Editors Conclusion and Questions

COUCHDB - INSTALLATION

Install and Configure wxwidgets on Ubuntu

R- installation and adminstration under Linux for dummie

How to install Linux or *BSD to USB flash drive (memory stick) using Debian GNU / Linux

coxtactoe Documentation

How To Start Mysql Using Linux Command Line Client In Ubuntu

polymaker Documentation

PixelArt A package to draw pixel-art pictures.

How To Manually Install Software In Linux Mint 13 From Usb

How Not to Write a Block

Tensorflow v0.10 installed from scratch on Ubuntu 16.04, CUDA 8.0RC+Patch, cudnn v5.1 with a 1080GTX

Using the BMP085/180 with Raspberry Pi or Beaglebone Black

MariaDB ColumnStore C++ API Building Documentation

Frédéric Crozat SUSE Linux Enterprise Release Manager

Going to production with snaps and Ubuntu Core

Adafruit's Raspberry Pi Lesson 1. Preparing an SD Card for your Raspberry Pi

Manually Mount Usb Flash Drive Linux Command Line Redhat

Mesos on ARM. Feng Li( 李枫 ),

Briefcase Documentation

How To Start Mysql Use Linux Command Line Client In Ubuntu

Manual File System Check Linux Command Line

How To Manually Install Software In Linux Mint 14 Cinnamon Edition

Ubuntu Remove Manually Install Software From Windows 7 Usb Drive Ubuntu

How To Reinstall Grub In Windows 7 Without Losing Data And Programs

G-WAN. Complete install process for Ubuntu (both for the 32 and the 64 OS versions).

fpm-cookery Documentation

Travis Cardwell Technical Meeting

MRCP. Asterisk Modules. Administrator Guide. Powered by Universal Speech Solutions LLC

GUIDE Development tools for Windows(10) installation... 2

Apache Manually Install Ubuntu Alongside Windows 8

ATSC595 Air Pollution Modelling HYSPLIT Model Quick Guide- OSX, Linux Feb M. Fung

C++ for CMEA II. Kjetil Olsen Lye. September 24, 2015

RedBoard Hookup Guide

Apache Manual Install Ubuntu Php Mysql. Phpmyadmin No >>>CLICK HERE<<<

manifold Documentation

Learn Linux in a Month of Lunches by Steven Ovadia

Package Managers. What are they and why we use them

Code::Blocks Student Manual

COLD WALLET + MASTERNODE SETUP ON LINUX

12.04 (precise Pangolin)

R packages from a Fedora perspective

Setting up my Dev Environment ECS 030

Unzip command in unix

How To Install Java Manually Linux Mint 14 >>>CLICK HERE<<<

How To Manually Install Driver Ubuntu Server On Virtualbox

Towards an Open Source IEEE p Stack

The Rockefeller University I NFORMATION T ECHNOLOGY E DUCATION & T RAINING. VPN Configuration Guide for Unix/Linux

Shell Project Part 1 (140 points)

Install TeamViewer on latest Debian, Ubuntu, Fedora, CentOS Linux quick how to

How To Manually Install Software In Linux Mint 14 Cinnamon From Usb

Engineering Robust Server Software

Setup VirtualBox with Ubuntu bit on Windows7 64bit host. A native installation is of course fine, too. Let updater update.

Ubuntu Install Instructions Mac Usb In Windows 7 Using

Raspberry Pi Using Open CV which Has The Installing,making Programs And Performance

Manual Java For Mac Developer Package

UCRI IEEE Secure Development Conference RAPIDS 2 HS outreach SFS

Table of Contents. PropellerIDE Documentation

IT 341 Introduction to System Administration Project I Installing Ubuntu Server on a Virtual Machine

Building CircuitPython

Uninstalling And Manually Install Vmware Tools Ubuntu Guest

Adafruit's Raspberry Pi Lesson 1. Preparing an SD Card for your Raspberry Pi

Transcription:

From 0 to 6 GHz in 30 minutes bootstrap your SDR Experience! Start from scratch today, hack the EM spectrum tomorrow! Marcus Müller FOSDEM 2017 February 4, 2017

Introduction From theory to practice Engineering in theory Analyze the situation Implement Improve Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 2 / 24

Introduction From theory to practice Engineering in theory Analyze the situation Implement Improve Engineering in Practice Get your tools ready Familiarize with both tools & Problem Implement Improve your Implementation, the tools, the environment Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 2 / 24

Overview Introduction Getting GNU Radio From Idea to Implementation Extending the Tools Conclusion Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 3 / 24

Getting GNU Radio Getting GNU Radio Challenging: Dependencies Platforms Usage with concurrent, different versions Usage in cross-compilation Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 4 / 24

Getting GNU Radio Getting GNU Radio Challenging: Dependencies Python Boost Qt ZeroMQ Thrift... Platforms Usage with concurrent, different versions Usage in cross-compilation Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 4 / 24

Getting GNU Radio Getting GNU Radio Challenging: Dependencies Platforms Linux Fedora / CentOS / RHEL Ubuntu / Mint / Debian Arch Gentoo... OS X / macports Windows* Usage with concurrent, different versions Usage in cross-compilation Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 4 / 24

Getting GNU Radio Getting GNU Radio Challenging: Dependencies Platforms Usage with concurrent, different versions Might want to install bleeding edge dependencies...... might not want to mess up your workstation by installing bleeding edge stuff. Usage in cross-compilation Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 4 / 24

Getting GNU Radio Getting GNU Radio Optimal solution for dependency hell: Well-kept distro packages can t keep N GNU Radio projects N Distros binary packages up-to-date Good luck getting current Thrift e.g. on Ubuntu 14.04LTS Heck, this is a Developers Meeting you re here to build and mend things Offering a safe way to build from Source is a must Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 5 / 24

Getting GNU Radio Getting GNU Radio PyBOMBS Python Build & Overlay Managed Bundle System Manages Recipes & Installs those and their Dependencies Will install the recipes you asked for in a Prefix (think: VirtualEnv) Deals with yum/dnf apt yaourt macports... builds from source if required Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 6 / 24

Getting GNU Radio Getting GNU Radio PyBOMBS It s really easy to install GNU Radio into ~/prefix: sudo pip install pybombs pybombs recipes add gr-recipes git+https://github.com/gnuradio/gr-recipes.git pybombs prefix init ~/prefix -a myprefix -R gnuradio-default To activate that prefix: source ~/prefix/setup env.sh Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 7 / 24

Getting GNU Radio I heard Ecosystem?! CGRAN (Comprehensive GNU Radio Archive Network) has lots of applications and tools other devs shared Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 8 / 24

From Idea to Implementation From Idea to Implementation When we think about Signal Processing Systems, we picture something like: Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 9 / 24

From Idea to Implementation From Idea to Implementation GNU Radio Flow Graphs GNU Radio Companion allows us to represent such logical block diagrams in hardware! Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 10 / 24

From Idea to Implementation From Idea to Implementation GNU Radio Flow Graphs GNU Radio Companion allows us to represent such logical block diagrams in hardware! Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 11 / 24

From Idea to Implementation From Idea to Implementation GNU Radio Flow Graphs Demo? Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 12 / 24

From Idea to Implementation Let s build a Demo! Observing the whole LDP433 spectrum 25 channels, 433.075 MHz to 434.775 MHz channel spacing: 25 khz Modulation: FM receiving and visualizing the whole spectrum demodulation and playback of a single channel Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 13 / 24

From Idea to Implementation Spectrum Visualizer Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 14 / 24

From Idea to Implementation Spectrum Visualizer Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 14 / 24

Extending the Tools Extending the Tools GNU Radio s meant to be extended You can add your own blocks to the library! (Usually) the right way: Write an Out-Of-Tree Module! Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 15 / 24

Extending the Tools Out-Of-Tree Modules self-contained, buildable source tree uses/links against GNU Radio can contain anything from a clever Flow Graph...... to a complete complex application (gr-ieee802-15-4, gr-air-modes,... )! Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 16 / 24

Extending the Tools Bootstrapping Out-Of-Tree Modules Out-Of-Tree Modules (short: OOTs) follow a typical folder structure There s a tool to provide you with that structure: gr modtool! Most important subcommands: gr modtool help: Shows help gr modtool newmod: Make a new OOT gr modtool add: Add a new block to an existing OOT Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 17 / 24

Extending the Tools How do we apply this? Let s go for another hands-on! A speaking clock What? A clock that, every N seconds, says the current time. Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 18 / 24

Extending the Tools How do we apply this? Let s go for another hands-on! A speaking clock What? A clock that, every N seconds, says the current time. How? Using an existing text-to-speech program and python blocks. Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 18 / 24

Extending the Tools How do we apply this? Let s go for another hands-on! A speaking clock What? A clock that, every N seconds, says the current time. How? Using an existing text-to-speech program and python blocks. Why? Yes. Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 18 / 24

Extending the Tools How should it look like? Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 19 / 24

Extending the Tools Using gr modtool gr modtool newmod speakingclock Creating out-of-tree module in./gr-speakingclock...done. >Use gr modtool add to add a new block to this currently empty module. cd gr-speakinggclock gr modtool add GNU Radio module name identified: Enter block type: Language (python/cpp):... source python speakingclock Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 20 / 24

Extending the Tools Putting in the functional code We ve added a python block, so the code is in python/ we locate that file, and change the work() method mkdir build; cd build; cmake..; make; make install Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 21 / 24

Extending the Tools Writing a PyBOMBS recipe Easy: category: common depends: - gnuradio description: This is my OOT gitbranch: master inherit: cmake source: git+https://github.com/myuser/myrepo.git Make a Pull Request against gr-etcetera/gr-recipes, done! Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 22 / 24

Conclusion Wrapping things up GNU Radio can be a beast to set up, but PyBOMBS eases the pain If your problem is easy to visualize as concatenation of signal processing steps, it s probably easy to implement using the GNU RadioCompanion It might happen that there s no block to do what you want, so write your own Blocks live in OOTs, and sharing an OOT is fun&easy Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 23 / 24

Conclusion Useful Links GNU Radio project http://gnuradio.org Guided Tutorials http://tutorials.gnuradio.org CGRAN http://cgran.org PyBOMBS http://github.com/gnuradio/pybombs GNU Radio mailing list discuss-gnuradio@gnu.org Registration & Archive: https://lists.gnu.org/ mailman/listinfo/discuss-gnuradio Marcus Müller (FOSDEM 2017) Bootstrap your SDR Experience February 4, 2017 24 / 24