Arduino

Pi Setup

Prepare the SD Card.

I am going to use the latest being Buster desktop only. Download from raspberrypi.org verify and write to the SD card;

// Verify the download 
#shasum -a 256 ~/Downloads/2020-08-20-raspios-buster-armhf.zip 9d658abe6d97f86320e5a0288df17e6fcdd8776311cc320899719aa805106c52  /Users/allen/Downloads/2020-08-20-raspios-buster-armhf.zip 

// Verify the SD card; 
#diskutil list 

// Unmount it; 
#diskutil unmountDisk /dev/disk3 

// copy the image across; 
#sudo dd bs=1m if=~/Downloads/2020-08-20-raspios-buster-armhf-lite.img of=/dev/disk3

Setup the SD card to boot headless.

You can connect the device to USB keyboard and a HDMI screen to continue the install but prefer to run headless. Easy to do just need to create a couple of files.mount the flashed SD card locally.
The Pi4 has a ehternet port so no need to create wpa_supplicant.conf for WiFi however will need to create a file to enable SSH.

 // Mount the SD card and create file in /boot/ called ssh

#touch /Volumes/boot/ssh

Once done unmount the SD card, place in the PI and boot. The device will pickup an IP address via DHCP. So check the router to find the IP address or use

#ssh pi@rasberrypi.local

using pi as the username and raspberry as your password.

Update the install

# cat /etc/os-release

# sudo apt update

# sudo apt dist-upgrade -y

# sudo apt clean

User Setup

Create new user to replace PI and assign to relevant groups. I’ll use adduser. useradd is native binary compiled with the system. But, adduser is a perl script which uses useradd binary in back-end. adduser is more user friendly and interactive than its back-end useradd . There’s no difference in features provided.

adduser allen

Add this new user into the following UNIX groups:

# sudo usermod -a -G adm,dialout,cdrom,sudo,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio,lpadmin allen

Headless VncServer Configuration

If you need to configure accessing the pi with osx’s Screen need to setup on Pi from termional first. Not a lot to do just enable and set password;

# sudo raspi-config > Interface Options > VNC > Enable. Reboot.

Generate the password you wish to use in screen with vncpasswd -service

# sudo vncpasswd -service

Create and edit the following file here: /etc/vnc/config.d/common.custom and enter the following config:

Authentication=VncAuth

Restart the vnc service:

sudo systemctl restart vncserver-x11-serviced

Other parameters you can use with VncServer configs are described here: https://www.realvnc.com/en/connect/docs/server-parameter-ref.html

Create Temp filesystems

Temp FS to save SD wear. tmpfs only uses the memory actually used for files (virtual memory), so if you have 10MB of files in /tmp only 10MB of memory would be used (plus a fixed overhead for each tmpfs filesystem of about 100k). Given the Pi4 as 4G memory

Add the following to /etc/fstab then reboot;

tmpfs /var/tmp tmpfs nodev,nosuid,size=256M 0 0 
tmpfs /tmp tmpfs nodev,nosuid,size=1024M 0 0

Software

Remove packages – avahi-daemon & libnss-mdns

Install

sudo apt install cockpit

RTL2838 device (Realtek RTL2838UHIDIR)

Setup the RTL2838 device. I use the USB 2.0 port because I had problems with the USB 3.0 port from time to time. Install the RTL Drivers from latest source;

sudo apt-get remove rtl-sdr
git clone https://github.com/osmocom/rtl-sdr.git
sudo apt install build-essential cmake usbutils libusb-1.0-0-dev
cd rtl-sdr
mkdir build
cd build
cmake-DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON ../
sudo make install
sudo ldconfig

Check the modules config;

sudo nano /etc/modprobe.d/rtlsdr-blacklist.conf
checking for;
blacklist dvb_usb_rtl28xxu
blacklist rtl2832
blacklist rtl2830
blacklist dvb_usb_rtl2832u
blacklist dvb_usb_v2
blacklist dvb_core

then reboot. Check all went as expected;

  • lsmod
  • rtl_test

finally run;

sudo volk_profile

to calculate the FFT (*) and optimized for the system on which it runs. This will take some time(20 minutes), but will improve graphics performance.(https://hamprojects.files.wordpress.com/2020/09/rpi-part-3-v1.2.pdf)

To enable HF (500 kHz – 28.8 MHz)  – In GQRX the device string would be

rtl=0,direct_samp=4

(https://www.rtl-sdr.com/rtl-sdr-blog-v-3-dongles-user-guide/) –

Setup RTL as APRS iGate using – https://qso365.co.uk/2018/04/updated-guide-to-setting-up-an-aprs-rx-only-igate-using-a-raspberry-pi-rtl-sdr-dongle-and-a-pre-built-image/