Explorer/RaspberryPi/Wifibroadcast/Integration
Jump to navigation
Jump to search
Wifibroadcast channels:
- channel 1: downlink camera live video
- channel 2: downlink autopilot telemetry
- channel 3: uplink autopilot telemetry
- channel 4: uplink UDP tunnel
- channel 5: downlink UDP tunnel
#Airpi /home/pi/wifibroadcast-svpcom/wfb_tx -K /home/pi/wifibroadcast-svpcom/drone.key -p 1 -u 5600 wlan1 /home/pi/wifibroadcast-svpcom/wfb_tx -K /home/pi/wifibroadcast-svpcom/drone.key -p 2 -u 4242 wlan1 /home/pi/wifibroadcast-svpcom/wfb_rx -K /home/pi/wifibroadcast-svpcom/drone.key -p 3 -u 4243 -c 127.0.0.1 wlan1 /home/pi/wifibroadcast-svpcom/wfb_tx -K /home/pi/wifibroadcast-svpcom/drone.key -p 5 -u 14900 -k 1 -n 2 wlan1 /home/pi/wifibroadcast-svpcom/wfb_rx -K /home/pi/wifibroadcast-svpcom/drone.key -p 4 -u 14901 -c 127.0.0.1 -k 1 -n 2 wlan1
#Groundpi #Update GCS_IP with yours export GCS_IP=192.168.1.46 /home/pi/wifibroadcast-svpcom/wfb_rx -K /home/pi/wifibroadcast-svpcom/drone.key -p 1 -c 127.0.0.1 -u 5600 wlan1 /home/pi/wifibroadcast-svpcom/wfb_rx -K /home/pi/wifibroadcast-svpcom/drone.key -p 2 -u 4242 -c $GCS_IP wlan1 /home/pi/wifibroadcast-svpcom/wfb_tx -K /home/pi/wifibroadcast-svpcom/drone.key -p 3 -u 4243 wlan1 /home/pi/wifibroadcast-svpcom/wfb_tx -K /home/pi/wifibroadcast-svpcom/drone.key -p 4 -u 14800 -k 1 -n 2 wlan1 /home/pi/wifibroadcast-svpcom/wfb_rx -K /home/pi/wifibroadcast-svpcom/drone.key -p 5 -u 14801 -c 127.0.0.1 -k 1 -n 2 wlan1
Camera stream:
#Airpi: input camera, outputs: /tmp/camera1 (shmsrc), port 5600 (wfb_tx) rm /tmp/camera*; \ /usr/bin/raspivid -t 0 -w 640 -h 480 -fps 30/1 -b 3000000 -g 5 -cd H264 -n -fl -ih -pf high -if both -ex sports -mm average -awb horizon -a ENAC -ae 22 -o - \ | gst-launch-1.0 fdsrc \ ! h264parse \ ! video/x-h264,stream-format=byte-stream,alignment=au \ ! tee name=streams \ ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 \ ! rtph264pay name=pay0 pt=96 config-interval=1 \ ! udpsink host=127.0.0.1 port=5600 streams. \ ! shmsink socket-path=/tmp/camera1 wait-for-connection=false sync=false
#GroundPi: input: 5600, outputs: port 5610 (rtst server), fpv_video (displays HDMI) gst-launch-1.0 udpsrc port=5600 \ ! tee name=streams \ ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 \ ! udpsink host=127.0.0.1 port=5610 streams. \ ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 \ ! application/x-rtp, encoding-name=H264,payload=96 \ ! rtph264depay ! video/x-h264,stream-format=byte-stream \ ! fdsink \ | /home/pi/wifibroadcast_osd/fpv_video/fpv_video & /home/pi/gst-rtsp-server-1.14.4/examples/.libs/test-launch \ "\"udpsrc port=5610 do-timestamp=true ! application/x-rtp, encoding-name=H264,payload=96 ! rtph264depay ! video/x-h264,stream-format=byte-stream,alignment=au ! rtph264pay name=pay0 pt=96 config-interval=1\"" "\" "
Telemetry stream:
#Airpi: send to autopilot from port 4243, get from autopilot to port 4242 locally socat -u udp-listen:4243,reuseaddr,fork /dev/ttyAMA0,raw,echo=0,b115200 & socat -u /dev/ttyAMA0,raw,echo=0,b115200 udp-sendto:127.0.0.1:4242 &
#GroundPi: inputs on port 4242, outputs on 4243 #default pprlink ports
Tunnel stream: (ex: ssh 10.0.1.1)
#Airpi: socat TUN:10.0.1.2/24,tun-name=airpituntx,iff-no-pi,tun-type=tun,su=pi,iff-up udp-sendto:127.0.0.1:14900 socat udp-listen:14901 TUN:10.0.1.2/24,tun-name=airpitunrx,iff-no-pi,tun-type=tun,su=pi,iff-up sleep 1 ifconfig airpituntx mtu 1400 up &
#GroundPi: socat -u TUN:10.0.1.1/24,tun-name=groundpituntx,iff-no-pi,tun-type=tun,iff-up udp-sendto:127.0.0.1:14800 socat -u udp-listen:14801 TUN:10.0.1.1/24,tun-name=groundpitunrx,iff-no-pi,tun-type=tun,iff-up sleep 1 ifconfig groundpituntx mtu 1400 up &