A dual band aprs digipeater with enhanced telemetry capabilities.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

302 lines
6.4 KiB

Raspberry Pi 1e installation
--------
Before 1e boot:
Add "ssh" file In The Boot Partition
"ssh" is empty
--------
Find ip-adres in router and log in via ssh (user: pi, password: raspberry)
Add user and make sure it has the same UID as your other machines (for convenience):
in "/etc/passwd" you cab find the UID of users
Add user:
adduser user_name
Change UID with command:
usermod -u 1001 user_name
Add new user to all the groups 'pi' is also in:
File "/etc/group"
Change all entries. For example: adm:x:4:pi becomes adm_x:username,pi")
Add new user to sudo:
usermod -aG sudo user_name
REBOOT SYSTEEM!
Login as new user and test (don't forget to test sudo!
Remove pi-user:
sudo deluser -remove-home pi
sudo rm -vf /etc/sudoers.d/010_pi-nopasswd
----
SSH loggin without password:
On local-machine (if not already done, check with "ls ~/.ssh/id_*"):
ssh-keygen -t rsa -b 4096
Copy the keu:
ssh-copy-id remote_username@server_ip_address
Log in on remote, now without passworrd
Disable login with password on remote: (optional; don't loose the key!)
open file "/etc/ssh/sshd_config"
Change:
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
Restart ssh deamon:
sudo /etc/init.d/ssh reload
----
Change login schreen by editing the text file "/etc/motd".
Change the "sshd_config" to (if you now get two motd's, change it back to no)
PrintMotd yes
----
Change hostname:
sudo nano /etc/hostname
sudo nano /etc/hosts
---
LOCALE settings
sudo raspi-config
Than Localisation options / change locale (en_US.UTF-8 UTF-8)
and also time-zone
-----
Update system:
sudo apt-get update
sudo apt-get upgrade
---
Apache webserver and php
sudo apt-get install apache2 php
sudo chown www-data:www-data /var/www/html/
sudo usermod -aG www-data marcel
sudo chmod g+w /var/www/html/
install index.html in /var/www/html
---
Add firewall:
sudo apt install ufw
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
sudo ufw status
------
Enable I2C RTC
sudo rapi-config
enable i2c
sudo reboot
sudo apt-get install i2c-tools
sudo i2cdetect -y 1
#68 is RTC
sudo nano /boot/config.txt
dtoverlay=i2c-rtc,ds1307
sudo reboot
sudo i2cdetect -y 1
You should see a wall of text appear, if UU appears instead of 68 then we have successfully loaded in the Kernel driver for our RTC circuit.
Disable fake hardware clock:
sudo apt-get -y remove fake-hwclock
sudo update-rc.d -f fake-hwclock remove
sudo systemctl disable fake-hwclock
sudo nano /lib/udev/hwclock-set
Find
if [ -e /run/systemd/system ] ; then
exit 0
fi
Replace With
#if [ -e /run/systemd/system ] ; then
# exit 0
#fi
Also comment out the two lines
/sbin/hwclock --rtc=$dev --systz --badyear
and
/sbin/hwclock --rtc=$dev --systz
Read RTC:
sudo hwclock -r
Set RTC from system time:
sudo hwclock -w
----
Direwolf:
sudo apt-get install git
sudo apt-get install cmake
sudo apt-get install libasound2-dev
sudo apt-get install libudev-dev
cd ~
cd direwolf
mkdir build && cd build
cmake -DUNITTEST=1 ..
make -j4
make test
sudo make install
make install-conf
edit direwolf.conf:
ADEVICE plughw:1,0
CHANNEL 0
MYCALL MYCALL-0
MODEM 1200
PTT GPIO 18
DCD GPIO 17
TXDELAY 40
TXTAIL 5
AGWPORT 8000
KISSPORT 8001
<REST: leave at default>
Add user to gpio-group:
sudo usermod -aG gpio marcel
----
AX25 support
sudo apt-get install libax25 ax25-apps ax25-tools
sudo nano /etc/ax25/axports
add:
ax0 PE1RXF-1 1200 255 2 144.800 MHz (1200 bps)
ax1 PE1RXF-2 9600 255 2 External radio
ax2 PE1RXF-3 9600 255 2 LoRa radio (internal)
---
APRX software
sudo apt-get install aprx
sudo systemctl enable aprx
add all AX.25 ports in /etc/aprx.conf:
#Main interface on internal radio
<interface>
ax25-device $mycall
tx-ok true # transmitter enable defaults to false
#telem-to-is true # set to 'false' to disable
</interface>
#Secondary interface on external radio
<interface>
callsign PE1RXF-2
ax25-device PE1RXF-2
tx-ok true
</interface>
#Third interface (internal LoRa radio)
<interface>
callsign PE1RXF-3
ax25-device PE1RXF-3
tx-ok true
</interface>
----
gnuplot:
sudo apt install gnuplot
-----
LoRa Module
sudo apt install socat
sudo ufw allow 10001
sudo raspi-config
enable SPI
Install RPi-LoRa-KISS-TNC
nano ./pySX127X/SX127x/board_config.py
change
LED = 18 # RaspPi GPIO 18 connects to the LED on the proto shield
to
LED = 13 # RaspPi GPIO 18 connects to the LED on the proto shield
# Made it GPIO 13, as pin 18 is in use by Direwolf
----
kissattach and kissutil can only be executed as root. But we don't want to enter a password when starting the pe1rxf-scripts as the aprs-server has to work autonomous. We also don't want to run all the scripts as root, because that's a safety risk. The solution is to add the following lines to the sudoers-file:
sudo visudo
marcel ALL = (root) NOPASSWD: /usr/sbin/kissattach
marcel ALL = (root) NOPASSWD: /usr/sbin/kissparms
marcel ALL = (root) NOPASSWD: /usr/bin/socat
marcel ALL = (root) NOPASSWD: /home/marcel/ham/aprs_utuls/carrier_detect_led
---
Install command line calculator
sudo apt-get install bc
----
Install pigpio (for carrier_detect LED)
sudo apt install pigpio
----
Install software from PE1RXF (meezenest.nl/mees):
Start ax.25 interfaces (direwolf and kiss) in crontab of user marcel.
Delay of 60 sec, otherwise direwolf will not start. Probably no sound card module loaded at time crontab is executed:
crontab -l
Add:
# Start APRS server at boot time
@reboot sleep 60 && /home/marcel/ham/start_aprs_server.sh
A default crontab is included in the ham/aprs_utils directory. Two more processes are in there for the custom telemetry.
The web-interface uses php to do some tasks. Make sure that at least the following files and directories can be accessed by user www-data:
ham/aprs_utils/aprs_files_to_transmit/ (rwx)
ham/aprs_utils/aprs_log/ (rwx)
ham/aprs_utils/send_message.sh (rx)
Make a symbolic link from ham/web-interface/ to /var/log/www/html/ and place all web-files in this folder.
MAKE IMAGE OF SD_KAART!
Use the script 'pishrink.sh' to compress the image.
At 1st boot, the image is automatically expanded (or not if you have choosen to to it manually. Than do that with sudo raspi-config.