2 ++++Wirelessness! Welcome++++


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../wirelessness/wirelessness.html <-- tools info ~
~                                                                ~
~  [[wirelessness-tools]] <--- tools info editable               ~
~                                                                ~
../wirelessness/ <--- all the stuff              ~
~                                                                ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Day 6 (Tuesday)


Very nice example of capturing and understanding signals
http://www.bastibl.net/reversing-bus-telemetry/


Day 5 (Monday)


Writing on the waterfall spectrum:

both scripts look for a wav file called absurd.wav
edit the #variables (line 29 onwards) to change frequency etc
ether vandalism: ../wirelessness/ethertag.py
slightly improved version: ../wirelessness/parallel.py


15.56 Starting a minestrone with the pads
Use the ../scripts/gettext.py to collect outputs from the pads to be cooked - combined as ingredients.
15.59 - tools.txt
16.01 - taking_care.txt
16.03 - relearn_thinking_through.txt
16.05 - schedule.txt
16.06 - meta-relearn.txt
16.07 - dinner.txt
16.07 - party.txt
16.08 - wirelessness.txt
16.10 - quantification.txt
(( dada engine break ))
16.19 - text_gen.txt 
16.20 - training-common-sense.txt
16.21 - city.txt
16.22 - trinary-logic.txt
16.23 - reroam.txt
16.24 - quotes.txt
modify markov.py -> markovminestrone.py
16.57 run markovminestrone.py -> get etherstrone.txt
Fragment : Minimodem is a traditional Roman soup that consisted mostly of vegetables, such as onions, lentils, cabbage, garlic, broad beans, mushrooms, carrots, asparagus, and turnips. This version is a commandline tool and thus allow piping into/from other tools. This way you can use your built-in speakers as a receiver! No strings attached. The lower the bitrate, the slower you send, the more resilient minimodem is for errors, like ambient noise. Transmit and receive baudrates should match Open two terminals.. 
& share it with to Ludo who transmits ...


Setting up your own FM transmitter on a Raspberry Pi:
   
../wirelessness/IMG_20150825_172710.jpg

    http://www.icrobotics.co.uk/wiki/index.php/Turning_the_Raspberry_Pi_Into_an_FM_Transmitter
    simpler yet,
    copy folder contents from link below to your raspbian home folder:
        http://omattos.com/pifm.tar.gz
    then play with following commands:    

Day 4 (Sunday)


Antenna Safari Walk

http://www.bipt.be/en/operators/radio/frequency-management/frequency-plan/table
../wirelessness/european_frequency_allocations.pdf


Documentation of walk, collections of photographic material:
[[antenna-safari]]

Things discussed during walk:


Recorded this:
   
../wirelessness/frequency-shifting-encoding.png



Day 3 (saturday)


track participant ideas:


 wifi -pretending to be hotspots

transmitting 

long distance data transmission research:
    https://en.wikipedia.org/wiki/Marine_VHF_radio
    https://en.wikipedia.org/wiki/Line-of-sight_propagation
    https://en.wikipedia.org/wiki/Shortwave_radio

modulation demodulation toolchain

more indepth scanning etc, quicker scanning

mapping + (wifi + measuring in the space)

drawing in the waterfall -> like aphex twin

micro fm transmitter building 

absurd machine communication 
                -> transmitting receiving feedbacklooops
                        -> jamming cctvs

"Relearn radio" - try to connect output/raw material from other tracks & transmit 
Use notes from the pad, read them/vocalize or even sing them (karaoke)
TTS Karaoke: ../wirelessness/TweetAndShout/

Check out the Haiku Wifi project : creating poetry with SSID - - > SSID generator ? use it as a narrative feed
(length constraint : max 32 characters)
http://www.sundialtone.com/?p=872
https://github.com/jedahan/haiku-wifi

Check out other "Wifi Art" projects vs "Wifi Guerilla Marketing"
WifiKu (2004) http://www.techkwondo.com/projects/wifiku/ + see results : http://www.techkwondo.com/projects/wifiku/wifiku.051204.txt
Guerilla Wifi : http://guerrillawifi.net/
Guerilla Wifi "ideas" - advertised : https://www.youtube.com/watch?v=1OovHJkTUug
Shadow Wifi : A network of free Wifi that only works in the shadow to prevent skin cancer : https://www.youtube.com/watch?v=rvrH0bsU_Fo

For the walk

random walk ;) collect.
walk -> antenna spotting  infrastructure
relation between antenna + building type
less noticable ones? 

parking 58 near beurs
an's church
brussilia



TRANSMITTING :
** GNURADIO **

setting up an FM transmitter for hackrf/sdr-rtl

first make sure you have gnuradio and osmocom installed

then in gnuradio-companion:
- set the sample_rate to the samplerate of the wav-file you want to transmit

- then tie together:

wav source file -> 
multiply constant (to amplify the signal a bit, value should be between 2 and 20, depending on your audio file, set the mode to float) ->
NBFM transmit:
    audio rate = same as the samplerate of your audio file
    quadrature = 2 * your samplerate
    tau = 75u
    max deviation = 5k
->
rational resampler:
    interpolation = 2M
    decimation = your samplerate
    taps = 
    fractional bw = 0
->
osmocom sink:
    sample rate: 2M
    frequency: 106.5M
    freq. corr: 0
    rf gain: 10
    if gain: 10
    bb gain: 10
    bandwidth: 5k
    
and then run!

see also: ../wirelessness/absurd.grc

For Windows installation: Check: https://www.ruby-forum.com/topic/4419548




**MINIMODEM**
http://www.whence.com/minimodem/

../wirelessness/kamal.png




Over the air:
Minimodem modulates dat ainto audible sound using various modulations (bell, fsk etc). This means you can use your built-in speakers as a transmitter and you microphone as a receiver! No strings attached. The lower the bitrate, the slower you send, the more resilient minimodem is for errors, like ambient noise. Transmit and receive baudrates should match

Open two terminals and test (OSX COMMAND BELOW) :
transmit (-t, baudrate aka bits per second):
minimodem -t 300
receive (-r, baudrate aka bits per second):
minimodem -r 300 -q
Minimodem is a commandline tool and thus allow piping into/from other tools. This way you can transmit not only text but also files, images etc.
Examples:
echo hello | minimodem -t 100 # transmit 'hello' cat SOMEFILE.txt | minimodem -t 100
Transmit webpage:
cat website.html | minimodem -t BAUDRATE
Receive webpage:
minimodem -r BAUDRATE > file.html
PROTIP Put  <meta http-equiv="refresh" content="5"> in html header and see page 'build up'. example:
    ../wirelessness/ascii.html
    
Repeatively transmit message/beacon:


Transmit + Receive image:
    THOUGH: maybe transmit BMP bitmap image and open it in browser with meta-refresh approach?...bmp header might be a problem tho.....
    
    Minimodem is slow if you want to push your data trough the noise.
    Images are BIG!
    Convert the first, for example 100x100 black and white uncompressed image...>
    Instal imagemagick:
sudo apt-get install imagemagick        
        
        WORK IN PROGRESS:
            check: https://en.wikipedia.org/wiki/Netpbm_format
            
    gm convert to raw black and white pgm (use fbi (framebufferimage viewer) to view: sudo fbi -T 0 file.pgm):
    
    
    pgm header example (to anticipate whats coming;) ): 
        P5 (is binary! must be P1 or P2 to be ascii! )
        100 100 (header size)
        255 (256 bw px)
        
    
    


LINUX
sudo apt-get install minimodem

OSX
brew update brew install minimodem*pray*
*im praying but it still doesnt seem to work*
*updating brew does*

Pulseaudio doesnt work on osx, so you cant use minimodem 'in realtime'. You first need to write something to disk and then play it.

transmit message (write minimodem encoded file to disk and play it with afplay):
echo "hello" | minimodem -t 300 -f test.wav | afplay test.wav

receive message (write minimodem encoded file to disk and play it with afplay):
WIP (record audio to disk, decode file: minimodem -t 300 -f YOUR_FILE.wav)
record:
sox -d --channels 1 test.wav 

decode:
minimodem -t 300 -f test.wav

(work in progress: sox -d --channels 1 test.wav -q | minimodem -t 300 -f test.wav)

Day 2


Debian
OSX + Homebrew
Ubuntu x2 x





../wirelessness/Amfm3-en-de.gif


Looking at USB key for television (DVBT)

http://gqrx.dk/ GQRX 

~~~
Other tool: CubicSDR

https://github.com/cjcliffe/CubicSDR/releases

sudo dpkg -i CubicSDR-0.1.3-x64.deb
~~~

OSX:
    GQRX Binary: http://sourceforge.net/projects/gqrx/files/2.2.0/gqrx-2.2.0.dmg/download
    Or  SdrDx, supports a server (realtime decoding?) > http://fyngyrz.com/?p=915
    CubicSDR as well
   
Debian:
     sudo apt-get install gqrx-sdr rtl-sdr
     
     you might also need to install pulse audio if you haven't yet!
     
Windows:
    no GQRX look at: http://sdrsharp.com/
    D. P managed to get SDR sharp running with HackRF not with RTL-SDR though.
    
    for pocsag: http://www.rtl-sdr.com/rtl-sdr-tutorial-pocsag-pager-decoding/
    needs audio piping either through Stereo Mix, which is an option that can be enabled in Recording settings on Windows: http://www.rtl-sdr.com/tutorial-how-to-enable-stereo-mix-in-windows-7/
    or VB Audio Cable, which can be downloaded here: http://vb-audio.pagesperso-orange.fr/Cable/index.htm
    
    Nevertheless  PDW did not run yet. Could not encript any messages.

Ubuntu :
   - direct app paquet manager install :

    - french doc install :
        http://doc.ubuntu-fr.org/gqrx-sdr
       (some trouble here, compiling etc)
    
Ubuntu already has drivers that recognize RTL devices in their original role as DVBT receivers.
This causes crashes for SDR because the wrong drivers are loaded. So blacklist the DVBT drivers to make sure the RTL-SDR drivers are loaded:

From this error : "FATAL: Failed to open rtlsdr device ubuntu" 
Here are commands for the terminal / For ubuntu installation : https://groups.google.com/forum/#!topic/gqrx/4na-dWW3STc
Open a terminal and type: 
Add the following lines to the new file: 
Save and exit using CTRL+X then reboot the computer. 
To confirm you have the drivers (on linux) plug in the device and run:
    dmesg

You should get similar output

[114657.303404] usb 3-1.2: new high-speed USB device number 10 using ehci-pci
[114657.409322] usb 3-1.2: New USB device found, idVendor=0ccd, idProduct=00d3
[114657.409330] usb 3-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[114657.409334] usb 3-1.2: Product: RTL2838UHIDIR <-------------- Look for this
[114657.409338] usb 3-1.2: Manufacturer: Realtek
[114657.409341] usb 3-1.2: SerialNumber: 00000001


Belgium Frequency of interest:
    952 MHz GSM towers (encoded digital data)
    169.625 MHz Pager system (POCSAG encoded digital data)
    
     
Recording and Decoding

Record audio from GQRX, first define an output folder!:

../wirelessness/gqrx-audioout-config1.png




../wirelessness/gqrx-audioout-config2.png



Screenshot from Audacity:
    

../wirelessness/audacity_audio_POCSAG_encoded.png


Screenshotted audio file, recording of Pager message:
    ../wirelessness/onesandzeros.wav

    
    Decoding:
        https://github.com/EliasOenal/multimon-ng
        
        
    Linux:
        
        first :  http://eliasoenal.com/2012/05/24/multimonng/
        comment from
        Graham - January 5, 2015 at 2:17 am
        
        sudo apt-get install libpulse-dev
        
        
        git clone https://github.com/EliasOenal/multimon-ng.git (dependecy = qmake) 
        cd /path/to/multimon-ng
        

is it ok ? confirm ? i don't know, you confirm?
ok ubuntu


    
    OSX:

If you have multimon-ng ready to roll:

LINUX:
install sox (a commandline sound player)
sudo apt-get install sox

then play your recorded sound file with sox and pipe it into multimon-ng. Make sure you select POCSAG1200 protocol (../wirelessness/POCSAG-protocol.pdf) demodulators

sox -t wav my_recoring.wav -esigned-integer -b16 -r 22050 -t raw - | multimon-ng -a POCSAG512 -a POCSAG1200 -a POCSAG2400 - OSX:
    install sox...


Note: if your audiofile is to noisy, it just doesnt work



test file in : ../wirelessness/
direct link : ../wirelessness/gqrx_20150821_104939_169621000_cut.wavhttp://10.9.8.7/wirelessness/gqrx_20150821_104939_169621000_cut.wav
result :
../wirelessness/Capture%20du%202015-08-21%2016:09:06.png


OSX output of ../wirelessness/pocsag_ambulance.wav:

../wirelessness/POCSAG-decoded-output.png


Testfile2:
    ../wirelessness/pocsag_sample.wav
   
../wirelessness/pocsag1200_audacity.png

    
POCSAG1200: Address: 1306201  Function: 0  Numeric: U.5-.6]7[4[U--U.5-.0.-38- 65U.5-4U73491 263U95] 50U95 071301.46939- .69U 5.00000
POCSAG1200: Address: 1306201  Function: 0  Alpha:   +++swion+++P=03+++S=C201339.03181 (2923599)<NUL><NUL>
POCSAG1200: Address: 1306201  Function: 0  Skyper:  ***rvhnm***O</2***R<B1/0228-/2070<US>'1812488(??
POCSAG1200: Address:  119556  Function: 0  Alpha:   Thomas, Joris, Beschikbaarheid status is veranderd naar: onbeschikbaar (2441699

Meaning of the data
'Numeric'
'Alpha' means alphanumeric message, aka ASCII human readble text.
'Skyper' 

In belgium the paging network infrastructure: http://www.astrid.be/templates/content.aspx?id=492&LangType=1033

Multimon also works the other way around, so it allows you to SEND pager messages.....maybe the fastest way to reach an ambulance, police, firetruck or a cab ;0 


Realtime Decoding using netcat

First tune in to your favorite digital encoded signal in gqrx, then pipe the sound into multimon:
Then define a port to stream the data over in GQRX by choosing a port in the network tab of the audiosettings screen;

../wirelessness/gqrx-audioout-config1.png


../wirelessness/gqrx-network-settings.png


LINUX
NC, a little test. Open two terminals..

In the first:
    nc -l -p 5555

in the second:
    echo "test" | nc localhost 5555


 sudo nc -u -l -p 7355  | sox -r 48000 -t raw -b 16 -c 1 -e signed-integer /dev/stdin -r 22050  -t raw -b 16 -c 1 -e signed-integer - | multimon-ng -t raw -c -a  POCSAG1200 -f alpha  /dev/stdin
 
 nc  -u -l -p 7355 | sox -r 48000 -t raw -b 16 -c 1 -e signed-integer  /dev/stdin -r 22050 -t raw -b 16 -c 1 -e signed-integer - | multimon-ng  -t raw -c -a POCSAG512 -a POCSAG1200 -a POCSAG2400 -a SCOPE -f alpha   /dev/stdin 

Command line radio


ubuntu: 
to play 99.3Mhz with a WideFM filter  >> doesnt seem to work?
rtl_fm -f 99.3M -W -s 200000 -r 48000 - | aplay -r 48k -f S16_LEthis does:
rtl_fm -f 99.3M -s 200000 -r 32000 - | play -r 32k -t raw -e signed-integer -b 16 -c 1 -V1 -    
how to visualize though?

first make a 1 minute scan of the spectrum from 88mhz to 110Mhz in 8khz steps and save it as output.csv:
it looks like it is not doing anything, but it actually  silently scanning for one minute

a tool to visualize: https://github.com/keenerd/rtl-sdr-misc/blob/master/heatmap/heatmap.py

python heatmap.py output.csv image.png

Let's scan for the pager frequency:



and plot it as an image:



rtl_fm -f 169.52M -n -s 200000 -r 48000 - | aplay -r 48k -f S16_LE 
 OSX
NC, a little test. Open two terminals..

In the first:
    nc -l 5555

in the second:
    echo "test" | nc localhost 5555

Now for real:
    DOESNT WORK, latest OSX compiled version of GQRX is 2.20 and network streaming is only available in 2.3...
    
    Solution:
        Use only command line tools:




Calibrating the RTL-SDR receiver:
    
https://github.com/steve-m/kalibrate-rtl


OSX:
    git-clone ...
    cd src
    make kal
    
  

    ERROR ./usrp_source.h:28:10: fatal error: 'rtl-sdr.h' file not found
   TODO edit Makefile.am to find the homebrew rtl-sdr.h:
     /usr/local/Cellar/librtlsdr/0.5.3/include/rtl-sdr.h
     
     
Examples of antennas:
    http://www.starantenna.com/
    
links : 
* http://www.satsig.net/pointing/antenna-beamwidth-calculator.htm
* http://www.saveandreplay.com/Antenna_reference_chart.asp
    
    https://rad1o.badge.events.ccc.de/howto:use_hackrf
    
Width of waterfall is an indicator of the slice size of the spectrum
The internal noise of your laptop needs to be as little as possible: put the antenna away from your laptop
88-110 MHz radio frequencies




Day 1


http://roelroscamabbing.nl/post-www/ <--- where we're coming from

what is radio? why is it relevant?
a kind of media-archeological approach

receive radio via software---floss dev
easy..
merge idea of radio with that of data
1s and 0s

tangible example: wireless diff from radio technopolitically (laws/machines with limitations/political barriers)
wireless car key can be recorded and playedback to open car ;)

topics/questions
radio as an infra---->structure: mapping --there are no general maps
what do you map?
spectrum - influenced by what you recieve --->different ways of mapping
antennas
physical places

materials:
    mainly listening
    - eventually there are transmitters
    - antennas
    
plan
- challenging crossovers between tools and methodologies
- command line tools that can be piped
- antenna safari in the city--look around, map antennas, diff kinds (very exotic ones, some examples can be found in ../wirelessness/ )
- 1st day: discuss tools, listen to radio

signals in the air which sound like noises thay are actually digital signals, information (so, decoding processes) 
- how something in the air can be digital?? 
radio waves are physical phoenomenons, as light

questions of infrastructures: towers, physical location and materials 
looking around town for something that is usually overlooked
reconstruction radio infrastructure
questions of size (antennas...) also signifies their use, their meaning in use

http://www.environnement.brussels/thematiques/ondes-et-antennes/ou-sont-les-antennes/carte-des-antennes-emettrices

keys and live cds with tools already installed

Mapping Wifi through long-exposure photography: http://www.nearfield.org/2011/02/wifi-light-painting
Sniffing public WIFI data/urls from passing trains: http://trainwatch.u0d.de/

Legality of listening (IN belgium, only to legal to listen to certain frequencies / services, others are illegal... for privacy reasons)

 
 
 
 


../wirelessness/0-wwwalkie-tttalkie-bao512.gif