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:
- sudo ./pifm sound.wav 100.0
- ffmpeg -i input.mp3 -f s16le -ar 22.05k -ac 1 - | sudo ./pifm -
- (last one is for mp3s, but couldn't get it to work on my rasppi, instead i used ffmpeg to convert mp3 to wav separately then played resulting file)
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:
- send every 4 sec:
- while true ; do echo -e "hello world" | minimodem -t BAUDRATE ; sleep 4;done
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):
- gm convert -resize 50x50 -colorspace gray -compress none -depth 4 INFILE.jpg OUTFILE.pgm
- transmit image:
- cat OUTFILE.pgm | minimodem -t BAUDRATE
- receive image:
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:
- cd /etc/modprobe.d
- sudo nano no-rtl.conf
Add the following lines to the new file:
- blacklist dvb_usb_rtl28xxu
- blacklist rtl2832
- blacklist rtl2830
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
- GQRX - Record
- Audacity - Edit/Cut interesting bits out of audio AND see binary data (effect > amplify > zoom in =))
- Multimon-ng - demodulator for different digital encodings
- Sox - play and pipe raw files for multimon
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
- mkdir build
- cd build
- qmake ../multimon-ng.pro
- make
- sudo make install
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...
- (proxychains4) brew install sox
- sox -t wav YOURFILE.wav -esigned-integer -b16 -r 22050 -t raw - | multimon-ng -a POCSAG512 -a POCSAG1200 -a POCSAG2400 -
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_LE
this 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:
- rtl_power -f 88M:110M:8k -e 1m 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:
- brew install librtlsdr sox
- LISTEN TO THE RADIO ON OSX
- rtl_fm -M wbfm -f 89.1M | play -r 32k -t raw -e signed-integer -b 16 -c 1 -V1 -
- LISTEN TO PAGERS
- rtl_fm -M wbfm -f 169.650e6 | play -r 32k -t raw -e signed-integer -b 16 -c 1 -V1 -
- REALTIE DECODE WORK IN PROGRESS
- rtl_fm -M wbfm -f 169.650e6 | play -r 32k -t raw -e signed-integer -b 16 -c 1 -V1 - | sox -r 32000 -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 -f alpha /dev/stdin
- rtl_fm -M wbfm -f 169.650e6 | sox -r 32000 -t raw -b 16 -c 1 -e signed-integer /dev/stdin -r 22050 -t raw -b 16 -c 1 -e signed-integer - | multimon-ng -a POCSAG512 -a POCSAG1200 -a POCSAG2400 -
- The rtl_fm -f 169.650e6 is the frequency. This doesnt incorporate error margin/offset of your SDR receiver. See below how to callibrate your device and frequency =)
- rtl_fm doesnt quit on osx and locks up the port, killall doesnt work, only Force Quiting it via Activity Monitor
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)
- / an inventory of experiences
- / an inventory of absences
- / an inventory of questions
- / an inventory of tensions
../wirelessness/0-wwwalkie-tttalkie-bao512.gif