Browse Source

Usability improvements, auto install script

tags/v1.0
Nico Rey 4 years ago
parent
commit
3ea3f66d2b
13 changed files with 186 additions and 6 deletions
  1. +1
    -0
      .gitignore
  2. +0
    -1
      METEOR.md
  3. +2
    -2
      README.md
  4. +1
    -0
      common.sh
  5. +168
    -0
      install.sh
  6. BIN
      medet_arm
  7. +3
    -0
      modprobe.d/rtlsdr.conf
  8. +4
    -0
      predict.qth
  9. +2
    -1
      schedule.sh
  10. +1
    -0
      schedule_iss.sh
  11. +2
    -1
      schedule_meteor.sh
  12. +2
    -1
      schedule_sat.sh
  13. BIN
      wxtoimg-armhf-2.11.2-beta.deb

+ 1
- 0
.gitignore View File

@@ -0,0 +1 @@
predict/

+ 0
- 1
METEOR.md View File

@@ -10,4 +10,3 @@ Currently, the satellite is using 137.1Mhz as the center frequency, Wide-FM @ 12
3. Use artlav's [medet_arm](https://github.com/artlav/meteor_decoder) to generate a decoded dump and then a false color image
4. Use dbdexter's [meteor_rectify](https://github.com/dbdexter-dev/meteor_rectify) to correct the visible deformation on Meteor images (wrong aspect ratio)
1. I made [some changes](rectify.py) to rectify to export to compressed JPG and remove some prints


+ 2
- 2
README.md View File

@@ -10,8 +10,8 @@ Most of the code and setup stolen from: [Instructables](https://www.instructable
- [Wiki](https://github.com/reynico/raspberry-noaa/wiki) is updated!
- Audio files are stored on a RAMFS partition. Happen to had some glitches on image reception

### Manual work
- See [Wiki's install and config page](https://github.com/reynico/raspberry-noaa/wiki/Initial-installation-and-configuration) for information
### Install
There's an [install.sh](install.sh) script that does everything at once. If in doubt, see the [Wiki's install and config page](https://github.com/reynico/raspberry-noaa/wiki/Initial-installation-and-configuration).

### Important notes
- I tried to run this on a Raspberry PI Zero Wifi, no luck. Seems like it's too much load for the CPU. Running on a Raspberry PI 2+ is ok. See [Wiki's hardware notes page](https://github.com/reynico/raspberry-noaa/wiki/Hardware-notes).


+ 1
- 0
common.sh View File

@@ -4,6 +4,7 @@
# set -x

. ~/.noaa.conf
. "${NOAA_HOME}"/common.sh

declare -A levels=([DEBUG]=0 [INFO]=1 [WARN]=2 [ERROR]=3)
log_level=${LOG_LEVEL}


+ 168
- 0
install.sh View File

@@ -0,0 +1,168 @@
#!/bin/bash
set -e

RED=$(tput setaf 1)
GREEN=$(tput setaf 2)
YELLOW=$(tput setaf 3)
BLUE=$(tput setaf 4)
BOLD=$(tput bold)
RESET=$(tput sgr0)

die() {
>&2 echo "${RED}error: $1${RESET}" && exit 1
}

log() {
echo "$*"
}

log_done() {
echo " ${GREEN}✓${RESET} $1"
}

log_running() {
echo " ${YELLOW}*${RESET} $1"
}

success() {
echo "${GREEN}$1${RESET}"
}

### Verify cloned repo
if [ ! -e "$HOME/raspberry-noaa" ]; then
die "Is https://github.com/reynico/raspberry-noaa cloned in your home directory?"
fi

### Install required packages
log_running "Installing required packages..."
sudo apt update -yq
sudo apt install -yq predict \
python-setuptools \
ntp \
cmake \
libusb-1.0 \
sox \
at \
nginx \
libncurses5-dev \
libncursesw5-dev \
python3-pip
sudo pip3 install numpy
log_done "Packages installed"

### Blacklist DVB modules
if [ -e /etc/modprobe.d/rtlsdr.conf ]; then
log_done "DVB modules were already blacklisted"
else
sudo cp modprobe.d/rtlsdr.conf /etc/modprobe.d/rtlsdr.conf
log_done "DVB modules are blacklisted now"
fi

### Install RTL-SDR
if [ -e /usr/local/bin/rtl_fm ]; then
log_done "rtl-sdr was already installed"
else
log_running "Installing rtl-sdr from osmocom..."
(
cd /tmp/
git clone https://github.com/osmocom/rtl-sdr.git
cd rtl-sdr/
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON
make
sudo make install
sudo ldconfig
cd /tmp/
sudo cp ./rtl-sdr/rtl-sdr.rules /etc/udev/rules.d/
)
log_done "rtl-sdr install done"
fi

### Install WxToIMG
if [ -e /usr/local/bin/xwxtoimg ]; then
log_done "WxToIMG was already installed"
else
log_running "Installing WxToIMG..."
sudo dpkg -i wxtoimg-armhf-2.11.2-beta.deb
log_done "WxToIMG installed"
fi

### Install default config file
if [ -e "$HOME/.noaa.conf" ]; then
log_done "$HOME/.noaa.conf already exists"
else
cp ".noaa.conf" "$HOME/.noaa.conf"
log_done "$HOME/.noaa.conf installed"
fi

if [ -e "$HOME/.predict/predict.qth" ]; then
log_done "$HOME/.predict/predict.qth already exists"
else
cp "predict.qth" "$HOME/.predict/predict.qth"
log_done "$HOME/.predict/predict.qth installed"
fi

### Install meteor_demod
if [ -e /usr/bin/meteor_demod ]; then
log_done "meteor_demod was already installed"
else
log_running "Installing meteor_demod..."
(
cd /tmp
git clone https://github.com/dbdexter-dev/meteor_demod.git
cd meteor_demod
make
sudo make install
)
log_done "meteor_demod installed"
fi

### Install medet_arm
if [ -e /usr/bin/medet_arm ]; then
log_done "medet_arm was already installed"
else
log_running "Installing medet_arm..."
sudo cp medet_arm /usr/bin/medet_arm
sudo chmod +x /usr/bin/medet_arm
log_done "medet_arm installed"
fi

### Cron the scheduler
crontab -l | grep -q "raspberry-noaa"
if [ $? -eq 0 ]; then
log_done "Crontab for schedule.sh already exists"
else
cat <(crontab -l) <(echo "1 0 * * * /home/pi/raspberry-noaa/schedule.sh") | crontab -
log_done "Crontab installed"
fi

### Setup Nginx
sudo cp nginx.cfg /etc/nginx/sites-enabled/default
(
sudo mkdir -p /var/www/wx
sudo chown -R www-data:www-data /var/www/wx
sudo usermod -a -G www-data pi
sudo chmod 775 /var/www/wx
)
sudo systemctl restart nginx

### Setup ramFS
cat /etc/fstab | grep -q "ramfs"
if [ $? -eq 0 ]; then
log_done "ramfs already setup"
else
sudo mkdir -p /var/ramfs
cat fstab | sudo tee -a /etc/fstab > /dev/null
log_done "Ramfs installed"
fi
set +e
sudo mount -a
set -e
sudo chmod 777 /var/ramfs

success "Install (almost) done! Let's do some configuration"
echo "
1. Edit $HOME/.noaa.conf
2. Edit $HOME/.predict/predict.qth and set lat/lon data
"

BIN
medet_arm View File


+ 3
- 0
modprobe.d/rtlsdr.conf View File

@@ -0,0 +1,3 @@
blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830

+ 4
- 0
predict.qth View File

@@ -0,0 +1,4 @@
raspberry
<< your latitude>>
<< your longitude >>
<<sea level meters >>

+ 2
- 1
schedule.sh View File

@@ -1,7 +1,8 @@
#!/bin/bash

## import common lib
. ~/common.sh
. ~/.noaa.conf
. "${NOAA_HOME}"/common.sh

wget -qr http://www.celestrak.com/NORAD/elements/weather.txt -O "${NOAA_HOME}"/predict/weather.txt
wget -qr http://www.celestrak.com/NORAD/elements/amateur.txt -O "${NOAA_HOME}"/predict/amateur.txt


+ 1
- 0
schedule_iss.sh View File

@@ -4,6 +4,7 @@
# set -x

. ~/.noaa.conf
. "${NOAA_HOME}"/common.sh
SAT_MIN_ELEV=10

PREDICTION_START=$(/usr/bin/predict -t "${NOAA_HOME}"/predict/amateur.tle -p "${1}" | head -1)


+ 2
- 1
schedule_meteor.sh View File

@@ -1,7 +1,8 @@
#!/bin/bash

## import common lib
. ~/common.sh
. ~/.noaa.conf
. "${NOAA_HOME}"/common.sh

PREDICTION_START=$(/usr/bin/predict -t "${NOAA_HOME}"/predict/weather.tle -p "${1}" | head -1)
PREDICTION_END=$(/usr/bin/predict -t "${NOAA_HOME}"/predict/weather.tle -p "${1}" | tail -1)


+ 2
- 1
schedule_sat.sh View File

@@ -1,7 +1,8 @@
#!/bin/bash

## import common lib
. ~/common.sh
. ~/.noaa.conf
. "${NOAA_HOME}"/common.sh

# $1 = Satellite Name
# $2 = Frequency


BIN
wxtoimg-armhf-2.11.2-beta.deb View File


Loading…
Cancel
Save