diff --git a/acatcher/convert_audio.sh b/acatcher/convert_audio.sh
new file mode 100755
index 0000000..2f0733c
--- /dev/null
+++ b/acatcher/convert_audio.sh
@@ -0,0 +1,9 @@
+#!/bin/sh
+# Signed 16 bit Little Endian, Rate 22050 Hz, Mono
+#
+# use "play" command to play back audio
+
+INFILE="$1"
+OUTFILE="$INFILE.wav"
+#sox -r 44100 -e unsigned -b 8 -c 1 <RAW_FILE> <TARGET_FILE>
+sox -r 22050 -e signed -b 16 -L -c 1 "$1" "$OUTFILE"
diff --git a/acatcher/mkacatcher_cpp.sh b/acatcher/mkacatcher_cpp.sh
new file mode 100755
index 0000000..fd21af1
--- /dev/null
+++ b/acatcher/mkacatcher_cpp.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+NUM=0
+while read FOO; do
+  if ! echo $FOO | grep -q ^#; then
+    HOST="`echo $FOO | cut -d\| -f3`"
+    MAC="`echo $FOO | cut -d\| -f1 | tr '[A-Z]' '[a-z]'`"
+    IP="`echo $FOO | cut -d\| -f2`"
+    if ! echo $HOST | egrep -q "(server|spare)"; then
+      >&2 echo found host $HOST mac $MAC ip $IP num $NUM
+      HEX="`echo "obase=16; $NUM" | bc | tr '[A-Z]' '[a-z]'`"
+      echo "\"[$HEX] $HOST\","
+      NUM=$((NUM+1))
+    elif echo $HOST | grep -q server; then
+      >&2 echo found server at ip $IP
+      echo $IP > SERVERIP
+    fi
+  fi
+done < $HOME/Dropbox/CAMS > acatcher.cxx.inc
diff --git a/acatcher/mkhosts.sh b/acatcher/mkhosts.sh
new file mode 100755
index 0000000..92805ed
--- /dev/null
+++ b/acatcher/mkhosts.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+NUM=0
+while read FOO; do
+  if ! echo $FOO | grep -q ^#; then
+    HOST="`echo $FOO | cut -d\| -f3`"
+    MAC="`echo $FOO | cut -d\| -f1 | tr '[A-Z]' '[a-z]'`"
+    IP="`echo $FOO | cut -d\| -f2`"
+    if ! echo $HOST | egrep -q "(server|spare)"; then
+      >&2 echo found host $HOST mac $MAC ip $IP num $NUM
+      echo "$HOST|$MAC|$IP|$NUM"
+      NUM=$((NUM+1))
+    elif echo $HOST | grep -q server; then
+      >&2 echo found server at ip $IP
+      echo $IP > SERVERIP
+    fi
+  fi
+done < $HOME/Dropbox/CAMS > HOSTS
diff --git a/acatcher/provision_streamers.sh b/acatcher/provision_streamers.sh
new file mode 100755
index 0000000..b8e4a37
--- /dev/null
+++ b/acatcher/provision_streamers.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+NUM=0
+while read FOO; do
+  if ! echo $FOO | grep -q ^#; then
+    HOST="`echo $FOO | cut -d\| -f3`"
+    MAC="`echo $FOO | cut -d\| -f1 | tr '[A-Z]' '[a-z]'`"
+    IP="`echo $FOO | cut -d\| -f2`"
+    if ! echo $HOST | egrep -q "(server|spare)"; then
+      >&2 echo provisining host $HOST mac $MAC ip $IP num $NUM
+      ssh pi@$HOST "if [ ! -d \$HOME/.ssh ]; then mkdir \$HOME/.ssh; fi; echo `cat $HOME/.ssh/id_rsa.pub` >> \$HOME/.ssh/authorized_keys; chmod 700 \$HOME/.ssh; chmod 644 \$HOME/.ssh/authorized_keys"
+      for FILE in HOSTS SERVERIP stream.sh set_hostname.sh v4lcap.c; do scp $FILE pi@$HOST:$FILE; done
+      ssh pi@$HOST "make v4lcap"
+      ssh pi@$HOST "bash set_hostname.sh"
+      ssh pi@$HOST "sudo reboot"
+      NUM=$((NUM+1))
+    elif echo $HOST | grep -q server; then
+      >&2 echo found server at ip $IP
+      echo $IP > SERVERIP
+    fi
+  fi
+done < $HOME/Dropbox/CAMS
diff --git a/acatcher/start_streamers.sh b/acatcher/start_streamers.sh
new file mode 100755
index 0000000..04197b9
--- /dev/null
+++ b/acatcher/start_streamers.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+NUM=0
+while read FOO; do
+  if ! echo $FOO | grep -q ^#; then
+    HOST="`echo $FOO | cut -d\| -f3`"
+    MAC="`echo $FOO | cut -d\| -f1 | tr '[A-Z]' '[a-z]'`"
+    IP="`echo $FOO | cut -d\| -f2`"
+    if ! echo $HOST | egrep -q "(server|spare)"; then
+      >&2 echo starting up host $HOST mac $MAC ip $IP num $NUM
+      ssh pi@$HOST "screen -dm bash stream.sh"
+      NUM=$((NUM+1))
+    elif echo $HOST | grep -q server; then
+      >&2 echo found server at ip $IP
+      echo $IP > SERVERIP
+    fi
+  fi
+done < $HOME/Dropbox/CAMS
diff --git a/acatcher/start_watcher.sh b/acatcher/start_watcher.sh
new file mode 100755
index 0000000..f36926d
--- /dev/null
+++ b/acatcher/start_watcher.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+echo "*** NOTE wait a few then run fix_windows.sh in a different wimdow ***"
+./acatcher | (aplay -t raw -c 1 -f S16_LE -r 22050 > /dev/null 2> /dev/null)
diff --git a/acatcher/stop_streamers.sh b/acatcher/stop_streamers.sh
new file mode 100755
index 0000000..823b917
--- /dev/null
+++ b/acatcher/stop_streamers.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+NUM=0
+while read FOO; do
+  if ! echo $FOO | grep -q ^#; then
+    HOST="`echo $FOO | cut -d\| -f3`"
+    MAC="`echo $FOO | cut -d\| -f1 | tr '[A-Z]' '[a-z]'`"
+    IP="`echo $FOO | cut -d\| -f2`"
+    if ! echo $HOST | egrep -q "(server|spare)"; then
+      >&2 echo killing host $HOST mac $MAC ip $IP num $NUM
+      ssh pi@$HOST "screen -X quit"
+      NUM=$((NUM+1))
+    elif echo $HOST | grep -q server; then
+      >&2 echo found server at ip $IP
+      echo $IP > SERVERIP
+    fi
+  fi
+done < $HOME/Dropbox/CAMS
