angryeyes-fpv-pilot
v0.1.0
Published
The best FPV pilot in the world
Downloads
2
Readme
Rasbery PI 5 preparing
Initial configuration of Rasberry PI 5:
- Create the image with latest version of RasberryPI OS with enabled SSH and configured WiFi
- Insert the SD to RPI and connect to the power supply at least 3A 5V
- After successful loading of OS scane your local network IPs and find the RPI's one
- Connet to RPI by SSH and check everything works properly
- by
sudo raspi-config
and enable VNC
Configuration of UARTs:
- Update Rasberry PI5 kernel by command
sudo rpi-update y
and reboot - Enable UARTs by adding into the file
/boot/firmware/config.txt
the next lines:[all] enable_uart=1 dtoverlay=uart1-pi5 dtoverlay=uart2-pi5 dtoverlay=uart3-pi5 dtoverlay=uart4-pi5
- Reboot the device
sudo reboot
- Check if UARTs are ready:
pi@pi:~ $ pinctrl 0-15 0: ip pu | hi // ID_SD/GPIO0 = input 1: ip pu | hi // ID_SC/GPIO1 = input 2: no pu | -- // PIN3/GPIO2 = none 3: no pu | -- // PIN5/GPIO3 = none 4: no pu | -- // PIN7/GPIO4 = none 5: no pu | -- // PIN29/GPIO5 = none 6: no pu | -- // PIN31/GPIO6 = none 7: no pu | -- // PIN26/GPIO7 = none 8: a2 pn | hi // PIN24/GPIO8 = TXD3 9: a2 pu | hi // PIN21/GPIO9 = RXD3 10: no pd | -- // PIN19/GPIO10 = none 11: no pd | -- // PIN23/GPIO11 = none 12: a2 pn | hi // PIN32/GPIO12 = TXD4 13: a2 pu | hi // PIN33/GPIO13 = RXD4 14: a4 pn | hi // PIN8/GPIO14 = TXD0 15: a4 pu | hi // PIN10/GPIO15 = RXD0
- If UARTs are not shown you can debug it by commands:
Check if any issues during the boot
dmesg | grep ttyAMA
Expected output
[ 0.000000] Kernel command line: reboot=w coherent_pool=1M 8250.nr_uarts=1 pci=pcie_bus_safe snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 smsc95xx.macaddr=D8:3A:DD:F5:5E:34 vc_mem.mem_base=0x3fc00000 vc_mem.mem_size=0x40000000 console=ttyAMA10,115200 console=tty1 root=PARTUUID=a492c4db-02 rootfstype=ext4 fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles cfg80211.ieee80211_regdom=PL
[ 0.010368] 107d001000.serial: ttyAMA10 at MMIO 0x107d001000 (irq = 15, base_baud = 0) is a PL011 rev2
[ 0.010400] printk: console [ttyAMA10] enabled
[ 0.533487] 1f00030000.serial: ttyAMA0 at MMIO 0x1f00030000 (irq = 125, base_baud = 0) is a PL011 AXI
[ 0.533658] 1f0003c000.serial: ttyAMA3 at MMIO 0x1f0003c000 (irq = 144, base_baud = 0) is a PL011 AXI
[ 0.533792] 1f00040000.serial: ttyAMA4 at MMIO 0x1f00040000 (irq = 145, base_baud = 0) is a PL011 AXI
Check if UARTs enabled in boot configuration
ls -l /dev/ttyAMA*
Expected output
pi@pi:~ $ ls -l /dev/ttyAMA*
crw-rw---- 1 root dialout 204, 65 Apr 9 11:17 /dev/ttyAMA1
crw-rw---- 1 root dialout 204, 74 Apr 9 11:34 /dev/ttyAMA10
crw-rw---- 1 root dialout 204, 66 Apr 9 11:17 /dev/ttyAMA2
crw-rw---- 1 root dialout 204, 67 Apr 9 11:17 /dev/ttyAMA3
crw-rw---- 1 root dialout 204, 68 Apr 9 11:17 /dev/ttyAMA4
!!! Important !!! It should be dialout
type
Check if CPU is right version
lscpu
Expected output
Architecture: aarch64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Vendor ID: ARM
Model name: Cortex-A76
Model: 1
Thread(s) per core: 1
Core(s) per cluster: 4
....
Check if UARTs downloaded properly
dtoverlay -a | grep uart
Expected output
....
uart0
uart0-pi5
uart1
uart1-pi5
uart2
uart2-pi5
uart3
uart3-pi5
uart4
uart4-pi5
uart5
...
Check the UART by making shorcut from TX to RX and running minicom. You should see back all the text you are typing
sudo apt install minicom
minicom --device /dev/ttyAMA2 --baudrate 420000
To back up Rasberry PI image
# To create a backup image from SD card
sudo dd if=/dev/mmcblk0 | gzip -c > /media/pi/hh/angryeyes.img.gz
# To write the image to SD card
gzip -dc ./angryeyes.img.gz | sudo dd bs=4M of=/dev/sda status=progress
Scheme to connect hardware
Python application running
Application runs automatically during the start
To enable in the next code should be added to nano ~/.config/wayfire.ini
.....
[autostart]
influx = sudo influxd > /dev/null 2>&1 &
autopilot = lxterminal -e bash /python/starter.sh
After reboot the terminal should be running and capture and autopilot should react on ELRS TX switchs
Video connetions set up Analog camera -> USB -> miniHDMI -> Analog FC
The scheme to connect is:
After this the video will be sent to Flight controller, which will add OSD information. Finally, you will see on your goggles video from Rassberry Pi 5 + OSD information what is very convenient.
Links to hardware:
Installing and configuring IfluxDB
InfluxDB can write 1000s of metrics per second on Raspberry Pi using 0.7% CPU and 100M memory.
IMPORTANT InfluxDb should have version 1, not 2. if you install influxdb2, it would start asking AUTH, we don't need it now.
This is how it could be installed
curl https://repos.influxdata.com/influxdata-archive.key | gpg --dearmor | sudo tee /usr/share/keyrings/influxdb-archive-keyring.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/influxdb-archive-keyring.gpg] https://repos.influxdata.com/debian stable main" | sudo tee /etc/apt/sources.list.d/influxdb.list
sudo apt update
sudo apt install influxdb
pip3 install influxdb --break-system-packages
Before starting roller, make sure that influxdb is started
sudo influxd &
It might write a qute some logs to stdout, so this could be solved with
sudo influxd > /dev/null 2>&1 &
Influx backup
Create a backup in the portable format
influxd backup -portable /path/to/backup-destination
Restore from a portable backup
influxd restore -portable /path/to/backup-destination
Grafana
Installing Grafana on Windows
Download the latest stable version of Grafana from the official Grafana website: https://grafana.com/grafana/download.
Extract the downloaded ZIP file to a directory of your choice.
Open a command prompt and navigate to the directory where you extracted Grafana.
Run the following command to start Grafana:
./bin/grafana-server.exe
Open a web browser and go to http://localhost:3000 to access the Grafana web interface.
Log in with the default credentials:
- Username: admin
- Password: admin
Follow the on-screen instructions to set a new password for the admin user.
Configure Grafana by adding data sources and creating dashboards.
You can stop Grafana by pressing
Ctrl+C
in the command prompt where it is running.
Configure datasources
Import dashboards
To import Grafana dashboard:
- Go to "New dashboard" and "Import"
- Choose the JSON file from
grafana
folder accordingly - Import your dashboard to your Grafana
- Enjoy to explore the Dashboard