The best FPV pilot in the world
npm install angryeyes-fpv-pilotsudo raspi-config and enable VNC
sudo rpi-update y and reboot
/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:
$3
dmesg | grep ttyAMA
$3
`
[ 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
`
$3
ls -l /dev/ttyAMA*
$3
`
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
$3
lscpu
$3
`
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
....
`
$3
dtoverlay -a | grep uart
$3
`
....
uart0
uart0-pi5
uart1
uart1-pi5
uart2
uart2-pi5
uart3
uart3-pi5
uart4
uart4-pi5
uart5
...
`
$3
`
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
!RPI5 + Level Converter + RX
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:
!Video Connection Scheme
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:
- Analog to USB Converter
- Mini HDMI to HDMI cable
- HDMI to Analog converter
- Level Convertor
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
$3
influxd backup -portable /path/to/backup-destination
$3
influxd restore -portable /path/to/backup-destination
Grafana
Installing Grafana on Windows
1. Download the latest stable version of Grafana from the official Grafana website: https://grafana.com/grafana/download.
2. Extract the downloaded ZIP file to a directory of your choice.
3. Open a command prompt and navigate to the directory where you extracted Grafana.
4. Run the following command to start Grafana:
`
./bin/grafana-server.exe
`
5. Open a web browser and go to http://localhost:3000 to access the Grafana web interface.
6. Log in with the default credentials:
- Username: admin
- Password: admin
7. Follow the on-screen instructions to set a new password for the admin user.
8. Configure Grafana by adding data sources and creating dashboards.
9. You can stop Grafana by pressing Ctrl+C in the command prompt where it is running.
Configure datasources
!To create an InfluxDB datasource 1
!To create an InfluxDB datasource 2
Import dashboards
To import Grafana dashboard:
- Go to "New dashboard" and "Import" !here
- Choose the JSON file from grafana` folder accordingly !json