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.

301 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
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"
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
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
if [ -e /run/systemd/system ] ; then
exit 0
Replace With
#if [ -e /run/systemd/system ] ; then
# exit 0
Also comment out the two lines
/sbin/hwclock --rtc=$dev --systz --badyear
/sbin/hwclock --rtc=$dev --systz
Read RTC:
sudo hwclock -r
Set RTC from system time:
sudo hwclock -w
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
MODEM 1200
<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
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
ax25-device $mycall
tx-ok true # transmitter enable defaults to false
#telem-to-is true # set to 'false' to disable
#Secondary interface on external radio
callsign PE1RXF-2
ax25-device PE1RXF-2
tx-ok true
#Third interface (internal LoRa radio)
callsign PE1RXF-3
ax25-device PE1RXF-3
tx-ok true
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
LED = 18 # RaspPi GPIO 18 connects to the LED on the proto shield
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
# 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.
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.