当前位置: 首页 > news >正文

Open FPV VTX开源之第一次出图

Open FPV VTX开源之第一次出图

  • 1. 源由
  • 2. 连线
    • 2.1 飞控
    • 2.2 调试
  • 3. serial
    • 3.1 启动log - uboot
    • 3.2 登录版本 - linux
    • 3.3 获取有线IP
  • 4. ssh - linux
  • 5. PixelPilot出图
  • 6. 总结
  • 7. 参考资料
  • 8. 补充 - 8812AU网卡

1. 源由

在《Open FPV VTX开源之硬件规格及组成》章节中,已经基本介绍了产品组成。

为了让其正常工作,其组合大致有以下几种方式:

  • Open FPV VTX + Ardupilot
  • Open FPV VTX + betaflight
  • Open FPV VTX + inav
  • Open FPV VTX + PX4 //个人来说,用的比较少

为了让其正常工作,在第一次上电之前需要做一些准备工作,本章就是为了这些准备工作编写的。

2. 连线

2.1 飞控

Open FPV VTX  -- toFC -- Flight ControllertoFC:- pin1: VCC(7.4~26V)  ---- FC VBat+- pin2: GND  ------------- FC GND- pin3: UART_RX1  -------- FC OSD_TX1- pin4: UART_TX1  -------- FC OSD_RX1- pin5: GND  ------------- FC GND- pin6: NC

注:选择笔者第一台FPV无人机使用的Holybro Kakute F7 and KAKUTE F7 AIO串口1作为OSD的UART。

2.2 调试

由于DEBUG线是预先做好的,这里就不一一对应做连接,直接从逻辑上进行示意。

Open FPV VTX  -- toDebug --  GND/UART_TX0/UART_RX0 --  USB -- PC Serial Console|+------  TP_LAN/TN_LAN/RP_LAN/RN_LAN  -- Ethernet  -- PC SSHtoDebug:pin1: TP_LANpin2: TN_LANpin3: RP_LANpin4: RN_LANpin5: GNDpin6: UART_TX0pin7: UART_RX0

3. serial

serial环境就是类似PC的BIOS阶段,主要用于低层次升级固件版本,可能会导致变砖。若真的变砖就需要其他JTAG工具,比如:J-Link。

在这里插入图片描述
注:调试版通常情况下串口驱动是默认的,请仔细查看驱动是否正确安装。

3.1 启动log - uboot

U-Boot 2015.01 (Oct 27 2024 - 17:00:58)Version: I6E#34aafa6#
I2C:   ready
DRAM:
WARNING: Caches not enabled
MMC:   MStar SD/MMC: 0
nor_flash_mxp allocated success!!
Flash is detected (0x0709, 0xEF, 0x40, 0x18)
SF: Detected nor0 with total size 16 MiB
MXP found at mxp_offset[2]=0x0000F000, size=0x1000
env_offset=0x40000 env_size=0x10000
Flash is detected (0x0709, 0xEF, 0x40, 0x18)
SF: Detected nor0 with total size 16 MiB
In:    serial
Out:   serial
Err:   serial
Net:   MAC Address 00:00:23:34:45:66
Auto-Negotiation...
AN failLink Status Speed:10 Full-duplex:0
Status Error!
sstar_emac
MMC Device 1 not found
Flash is detected (0x0709, 0xEF, 0x40, 0x18)
SF: Detected nor0 with total size 16 MiB
SF: 2097152 bytes @ 0x50000 Read: OK (cost 421 ms)
##  Booting kernel from Legacy Image at 21000000 ...Image Name:   Linux-4.9.84-ssc338qImage Type:   ARM Linux Kernel Image (uncompressed)Data Size:    2046352 Bytes = 2 MiBLoad Address: 20008000Entry Point:  20008000Verifying Checksum ... OKLoading Kernel Image ... OK
atags:0x20000000Starting kernel ...Booting Linux on physical CPU 0x0
Linux version 4.9.84 (runner@fv-az523-946) (buildroot-gcc-13.3.0) #2 SMP PREEMPT Sat Nov 30 23:43:27 UTC 2024
CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=50c5387d
CPU: div instructions available: patching division code
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
early_atags_to_fdt() success
OF: fdt:Machine model: INFINITY6E SSC012B-S01A
LXmem is 0xffe0000 PHYS_OFFSET is 0x20000000
Add mem start 0x20000000 size 0xffe0000!!!!LX_MEM  = 0x20000000, 0xffe0000
LX_MEM2 = 0x0, 0x0
LX_MEM3 = 0x0, 0x0
EMAC_LEN= 0x0
DRAM_LEN= 0x0
deal_with_reserve_mma_heap memblock_reserve success mma_config[0].reserved_start=
0x26144000cma: Reserved 2 MiB at 0x25e00000
Memory policy: Data cache writealloc
[infinity6e_smp_init_cpus]
percpu: Embedded 13 pages/cpu s21272 r8192 d23784 u53248
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 64992
Kernel command line: console=ttyS0,115200 panic=20 root=/dev/mtdblock3 init=/init mtdparts=NOR_FLASH:256k(boot),64k(env),2048k(kernel),8192k(rootfs),-(rootfs_data) LX_MEM=0xFFE0000 mma_heap=mma_heap_name0,miu=0,sz=0x9E9C000 cma=2M
PID hash table entries: 1024 (order: 0, 4096 bytes)
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 90772K/262016K available (2379K kernel code, 211K rwdata, 1212K rodata, 172K init, 129K bss, 169196K reserved, 2048K cma-reserved)
Virtual kernel memory layout:vector  : 0xffff0000 - 0xffff1000   (   4 kB)fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)vmalloc : 0xd0000000 - 0xff800000   ( 760 MB)lowmem  : 0xc0000000 - 0xcffe0000   ( 255 MB)modules : 0xbf800000 - 0xc0000000   (   8 MB).text : 0xc0008000 - 0xc025af64   (2380 kB).init : 0xc03ad000 - 0xc03d8000   ( 172 kB).data : 0xc03d8000 - 0xc040ce28   ( 212 kB).bss : 0xc040e000 - 0xc042e468   ( 130 kB)
SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
Preemptible hierarchical RCU implementation.Build-time adjustment of leaf fanout to 32.RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
RCU: Adjusting geometry for rcu_fanout_leaf=32, nr_cpu_ids=2
NR_IRQS:16 nr_irqs:16 16
ms_init_main_intc: np->name=ms_main_intc, parent=gic
ms_init_pm_intc: np->name=ms_pm_intc, parent=ms_main_intc
ss_init_gpi_intc: np->name=ms_gpi_intc, parent=ms_main_intc
Find CLK_ven_pll, hook ms_venpll_ops
Find CLK_cpupll_clk, hook ms_cpuclk_ops
arm_arch_timer: Architected cp15 timer(s) running at 6.00MHz (virt).
clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1623fa770, max_idle_ns: 440795202238 ns
sched_clock: 56 bits at 6MHz, resolution 166ns, wraps every 4398046511055ns
Switching to timer-based delay loop, resolution 166ns
console [ttyS0] enabled
Calibrating delay loop (skipped), value calculated using timer frequency.. 12.00 BogoMIPS (lpj=60000)
pid_max: default: 4096 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
CPU0: update cpu_capacity 1024
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x20008240 - 0x2000828c
[infinity6e_boot_secondary]
CPU1: failed to boot: -38
Brought up 1 CPUs
SMP: Total of 1 processors activated (12.00 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
futex hash table entries: 16 (order: -2, 1024 bytes)
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocationsVersion : MVX4##I6E#g#######KL_LX409##[BR:g]#XVMGPIO: probe end[Padmux]reset PAD42(reg 0x103c00:6f; mask0x7) t0 SD1_MODE_2 (org: I2C0_MODE_1)
[Padmux]reset PAD49(reg 0x103c00:60; mask0x180) t0 GPIO (org: EJ_MODE_1)
hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
hw-breakpoint: maximum watchpoint size is 8 bytes.
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
clocksource: Switched to clocksource arch_sys_counter
NET: Registered protocol family 2
TCP established hash table entries: 2048 (order: 1, 8192 bytes)
TCP bind hash table entries: 2048 (order: 3, 40960 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
UDP hash table entries: 128 (order: 0, 6144 bytes)
UDP-Lite hash table entries: 128 (order: 0, 6144 bytes)
NET: Registered protocol family 1
hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available
workingset: timestamp_bits=30 max_order=15 bucket_order=0
squashfs: version 4.0 (2009/01/31) Phillip Lougher
jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
io scheduler noop registered
io scheduler deadline registered (default)
Infinity6e PHY probe, base:fd2a4600
loop: module loaded
libphy: Fixed MDIO Bus: probed
tun: Universal TUN/TAP device driver, 1.6
tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
Mstar_ehc_init version:20180309
ehci monitor start running
Sstar-ehci-1 H.W init
Get power-enable-pad from DTS GPIO(65535)
Titania3_series_start_ehc start
[USB] config miu select [70] [e8] [ef] [ef]
[USB] enable miu lower bound address subtraction
[USB] init squelch level 0x2
[USB] no platform_data, device tree coming
[USB][EHC] dma coherent_mask 0xffffffffffffffff mask 0xffffffffffffffff
BC disable
[USB] soc:Sstar-ehci-1 irq --> 69
Sstar-ehci-1 soc:Sstar-ehci-1: EHCI Host Controller
Sstar-ehci-1 soc:Sstar-ehci-1: new USB bus registered, assigned bus number 1
Sstar-ehci-1 soc:Sstar-ehci-1: irq 69, io mem 0xfd284800
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: EHCI Host Controller
usb usb1: Manufacturer: Linux 4.9.84 ehci_hcd
usb usb1: SerialNumber: mstar
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
i2c /dev entries driver
1f221000.uart0: ttyS0 at MMIO 0x0 (irq = 45, base_baud = 10800000) is a unknown
1f221200.uart1: ttyS1 at MMIO 0x0 (irq = 46, base_baud = 10800000) is a unknown
1f220400.uart2: ttyS2 at MMIO 0x0 (irq = 48, base_baud = 10800000) is a unknown
1f006a00.pm_uart: ttyS3 at MMIO 0x0 (irq = 49, base_baud = 6750000) is a unknown
[MS_PM_INTC] hw:9 -> v:72
[MS_PM_INTC] hw:10 -> v:73
>> [sdmmc] ms_sdmmc_probe
>> [sdmmc_0] Probe Platform Devices
>> [sdmmc_1] Probe Platform Devices
MSYS: DMEM request: [emac0_buff]:0x00000812
MSYS: DMEM request: [emac0_buff]:0x00000812 success, CPU phy:@0x25E4B000, virt:@0xC5E4B000
libphy: mdio: probed
mdio_bus mdio-bus@emac0: /soc/emac0/mdio-bus/ethernet-phy@0 has invalid PHY address
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 0
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 1
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 2
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 3
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 4
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 5
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 6
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 7
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 8
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 9
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 10
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 11
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 12
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 13
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 14
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 15
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 16
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 17
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 18
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 19
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 20
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 21
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 22
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 23
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 24
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 25
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 26
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 27
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 28
==20180309==> hub_port_init 1 #0
Plug in USB Port1
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 29
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 30
mdio_bus mdio-bus@emac0: scan phy ethernet-phy at address 31
[emac_phy_connect][3349] connected mac emac0 to PHY at mdio-bus@emac0:00 [uid=11112222, driver=SStar 10/100 Ethernet Phy]
ms_rtcpwc 1f006800.rtcpwc: rtc core: registered 1f006800.rtcpwc as rtc0
MSYS: DMEM request: [BDMA_FSP_WBUFF]:0x00010040
MSYS: DMEM request: [BDMA_FSP_WBUFF]:0x00010040 success, CPU phy:@0x25E50000, virt:@0xC5E50000
[Ser flash] phys=0x25e50000, virt=0xc5e50000, bus=0x05e50000 len:0x10040
[FSP] Flash is detected (0x0709, 0xEF, 0x40, 0x18) ver1.1
[FSP] 1-1-1 FAST_READ MODE
mtd .name = NOR_FLASH, .size = 0x01000000 (16MiB).erasesize = 0x00010000 .numeraseregions = 0
MXP_PARTS!!
MXP found at mxp_offset[2]=0x0000F000, size=0x1000
5 cmdlinepart partitions found on MTD device NOR_FLASH
Creating 5 MTD partitions on "NOR_FLASH":
0x000000000000-0x000000040000 : "boot"
0x000000040000-0x000000050000 : "env"
0x000000050000-0x000000250000 : "kernel"
0x000000250000-0x000000a50000 : "rootfs"
0x000000a50000-0x000001000000 : "rootfs_data"
MSYS: DMEM request: [AESDMA_ENG]:0x00001000
MSYS: DMEM request: [AESDMA_ENG]:0x00001000 success, CPU phy:@0x25E4C000, virt:@0xC5E4C000
MSYS: DMEM request: [AESDMA_ENG1]:0x00001000
MSYS: DMEM request: [AESDMA_ENG1]:0x00001000 success, CPU phy:@0x25E4D000, virt:@0xC5E4D000
[ms_cpufreq_init] Current clk=796917760
usb 1-1: new high-speed USB device number 2 using Sstar-ehci-1
[i6e][pwm] use ms_pwm->group_data
[NOTICE]pwm-isr(62) success. If not i6e or i6b0, pls confirm it on .dtsi
[MSPI] mspi 0 use dma mode
[MSPI] mspi 1 use dma mode
mstar notify driver install successfully
NET: Registered protocol family 17
[mstar_pm_init] resume_pbase=0x20010FB5, suspend_imi_vbase=0xD0057000
ThumbEE CPU extension supported.
Registering SWP/SWPB emulation handler
Please set rtc timer (hwclock -w)
ms_rtcpwc 1f006800.rtcpwc: setting system clock to 1970-01-01 00:00:01 UTC (1)
OF: fdt:not creating '/sys/firVFS: Mounted root (squashfs filesystem) readonly on device 31:3.
devtmpfs: mounted
This architecture does not have kernel memory protection.
usb 1-1: New USB device found, idVendor=0bda, idProduct=881a
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: 802.11n NIC
usb 1-1: Manufacturer: Realtek
usb 1-1: SerialNumber: 123456
[emac_phy_link_adjust] EMAC Link Down
Seeding 2048 bits without creditrandom: seedrng: uninitialized urandom read (256 bytes read)
ing
Saving 2048 bits of non-creditable seed for next boot
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Sat Nov 30 23:49:39 GMT 2024
Loading kernel modules...
Starting mdev...
Starting network...
udhcpc: started, v1.36.1
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: broadcasting discover
udhcpc: no lease, forking to background
Starting ntpd: OK
Starting dropbear: OK
Starting crond: OK
Loading vendor modules...
OpenIPC: Sensor assigned - imx335
Starting majestic: OK
Starting wifibroadcast service...
Loading modules and wireless driver...
Detected: 88XXau
Loading MAVLink telemetry service...Welcome to OpenIPC
openipc-ssc338q login: This system doesn't provide enough entropy to quickly generate high-quality random numbers.
Installing the rng-utils/rng-tools, jitterentropy or haveged packages may help.
On virtualized Linux environments, also consider using virtio-rng.
The service will not start until enough entropy has been collected.
Using data frames
This system doesn't provide enough entropy to quickly generate high-quality random numbers.
Installing the rng-utils/rng-tools, jitterentropy or haveged packages may help.
On virtualized Linux environments, also consider using virtio-rng.
The service will not start until enough entropy has been collected.
Listen on 14550 for wlan0
Listen on 36991 for management commands
This system doesn't provide enough entropy to quickly generate high-quality random numbers.
Installing the rng-utils/rng-tools, jitterentropy or haveged packages may help.
On virtualized Linux environments, also consider using virtio-rng.
The service will not start until enough entropy has been collected.
Using data frames
This system doesn't provide enough entropy to quickly generate high-quality random numbers.
Installing the rng-utils/rng-tools, jitterentropy or haveged packages may help.
On virtualized Linux environments, also consider using virtio-rng.
The service will not start until enough entropy has been collected.
Listen on 5600 for wlan0
This system doesn't provide enough entropy to quickly generate high-quality random numbers.
Installing the rng-utils/rng-tools, jitterentropy or haveged packages may help.
On virtualized Linux environments, also consider using virtio-rng.
The service will not start until enough entropy has been collected.
Listen on 5801 for wlan0
Listen on 8000 for management commands
Listen on 39786 for management commands

3.2 登录版本 - linux

  • account: root
  • password: 12345
openipc-ssc338q login: root
Password:.d88888b.                             8888888 8888888b.   .d8888b.d88P" "Y88b                              888   888   Y88b d88P  Y88b888     888                              888   888    888 888    888888     888 88888b.   .d88b.  88888b.    888   888   d88P 888888     888 888 "88b d8P  Y8b 888 "88b   888   8888888P"  888888     888 888  888 88888888 888  888   888   888        888    888Y88b. .d88P 888 d88P Y8b.     888  888   888   888        Y88b  d88P"Y88888P"  88888P"   "Y8888  888  888 8888888 888         "Y8888P"888888888                         master+861a97c, 2024-11-30Please help the OpenIPC Project to cover the cost of development andlong-term maintenance of what we believe is going to become a stable,flexible Open IP Network Camera Framework for users worldwide.Your contributions could help us to advance the development and keepyou updated on improvements and new features more regularly.Please visit https://openipc.org/sponsor/ to learn more. Thank you.

3.3 获取有线IP

  • eth0: 192.168.78.100
root@openipc-ssc338q:~# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:00:23:34:45:66inet addr:192.168.78.100  Bcast:192.168.78.255  Mask:255.255.255.0UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1RX packets:11 errors:0 dropped:0 overruns:0 frame:0TX packets:19 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:2563 (2.5 KiB)  TX bytes:2618 (2.5 KiB)Interrupt:60lo        Link encap:Local Loopbackinet addr:127.0.0.1  Mask:255.0.0.0UP LOOPBACK RUNNING  MTU:65536  Metric:1RX packets:137366 errors:0 dropped:0 overruns:0 frame:0TX packets:137366 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1RX bytes:152371625 (145.3 MiB)  TX bytes:152371625 (145.3 MiB)wfb-tun   Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00inet addr:10.5.0.10  P-t-P:10.5.0.10  Mask:255.255.255.0UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1443  Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:500RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)wlan0     Link encap:UNSPEC  HWaddr 1C-A7-70-E8-C6-07-00-00-00-00-00-00-00-00-00-00UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1RX packets:243 errors:0 dropped:1 overruns:0 frame:0TX packets:206893 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:0 (0.0 B)  TX bytes:241732251 (230.5 MiB)

4. ssh - linux

ssh环境就是OpenIPC fpv系统运行环境,应用软件都跑在这个环境下,可以升级软件或者固件。

  • account: root
  • password: 12345
daniel@daniel-nvidia:~$ ssh root@192.168.78.100
The authenticity of host '192.168.78.100 (192.168.78.100)' can't be established.
ECDSA key fingerprint is SHA256:vUfDeNkcP7fS6rXqtTV2cjTt83dXB/kCbKslraLbUGA.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.78.100' (ECDSA) to the list of known hosts.
root@192.168.78.100's password:.d88888b.                             8888888 8888888b.   .d8888b.d88P" "Y88b                              888   888   Y88b d88P  Y88b888     888                              888   888    888 888    888888     888 88888b.   .d88b.  88888b.    888   888   d88P 888888     888 888 "88b d8P  Y8b 888 "88b   888   8888888P"  888888     888 888  888 88888888 888  888   888   888        888    888Y88b. .d88P 888 d88P Y8b.     888  888   888   888        Y88b  d88P"Y88888P"  88888P"   "Y8888  888  888 8888888 888         "Y8888P"888888888                         master+861a97c, 2024-11-30Please help the OpenIPC Project to cover the cost of development andlong-term maintenance of what we believe is going to become a stable,flexible Open IP Network Camera Framework for users worldwide.Your contributions could help us to advance the development and keepyou updated on improvements and new features more regularly.Please visit https://openipc.org/sponsor/ to learn more. Thank you.

5. PixelPilot出图

OpenIPC主要基于wfb-ng软件构建底层加密通信链路,基于该链路进行数据(视频、电传等)传输。

地面端软硬件有很多搭配方式,大体上有以下几种:

  • Android(PixelPilot): 手机/平板/电视盒等
  • Windows PC: fpv4win、openipc-configurator
  • Hi3536
  • Radax 3W/3E
  • Jetson Orin(jetson-fpv)

从购买天空端产品的角度,拿到产品首先要确保快速出图。

  • PixelPilot.apk

或者找厂家要手机端最新的软件,因为这个是最为便捷的方式。

默认配置+厂家配置:

  • Channel: 60
  • 厂家gs.key //请向厂家获取

自拍照
在这里插入图片描述

6. 总结

总的来说,第一次上电、出图并不复杂,但是一定要切记!!!重要的事情说三遍!!!

  • 注意数字图传的正负极!!!
  • 注意数字图传的正负极!!!
  • 注意数字图传的正负极!!!

信号线反了,可以重新调,但是正负极接错了,可是要烧的!!!

不出图时,需要注意的一个关键点:供电电压

  • 图传功率比较大,从设计规格上是3S ~ 6S
  • 换言之可以直接接在动力电池上
  • 有些PDB板/飞控板降压出来的电源可能带不起来

7. 参考资料

【1】Open FPV VTX开源之硬件规格及组成
【2】Open FPV VTX开源之默认MAVLink设置
【3】wfb-ng 开源工程结构&代码框架简明介绍

8. 补充 - 8812AU网卡

笔者采用了一张8812AU的网卡,作为wfb-ng的地面端接受wifi。

在这里插入图片描述
在这里插入图片描述

相关文章:

Open FPV VTX开源之第一次出图

Open FPV VTX开源之第一次出图 1. 源由2. 连线2.1 飞控2.2 调试 3. serial3.1 启动log - uboot3.2 登录版本 - linux3.3 获取有线IP 4. ssh - linux5. PixelPilot出图6. 总结7. 参考资料8. 补充 - 8812AU网卡 1. 源由 在《Open FPV VTX开源之硬件规格及组成》章节中&#xff0…...

R语言在森林生态研究中的魔法:结构、功能与稳定性分析——发现数据背后的生态故事!

森林生态系统结构、功能与稳定性分析与可视化研究具有多方面的重要意义&#xff0c;具体如下&#xff1a; 一、理论意义 ●深化生态学理论 通过研究森林生态系统的结构、功能与稳定性&#xff0c;可以深化对生态系统基本理论的理解。例如&#xff0c;生物多样性与生态系统稳定性…...

qt QLabel QPushButton 控件重写paintEvent后 控件消失

qt 继承自PushButton控件的类 重写paintEvent后 控件消失 解决办法&#xff0c;在paintevent结尾加上这条语句&#xff1a;QPushButton::paintEvent(event); void MyButton::paintEvent(QPaintEvent *event) {QPushButton::paintEvent(event); } 这里QPushButton不能写成Q…...

安全基础-互联网技术基础

互联网技术基础 概述&#xff1a;计算机网络、网络协议、HTTP协议、前端与后端技术、Web服务器、数据库以及浏览器等 目录 互联网技术基础前言一、计算机网络定义二、网络协议和协议分层1.OSI七层模型2.TCP/IP四层模型 三、HTTP协议1、HTTP协议的特点2、HTTP请求3、HTTP响应4、…...

【Rust自学】11.9. 单元测试

喜欢的话别忘了点赞、收藏加关注哦&#xff08;加关注即可阅读全文&#xff09;&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 11.9.1. 测试的分类 Rust把测试分为两类&#xff0c;一个是单元测试&#xff0c;一个是集成…...

了解Node.js

Node.js是一个基于V8引擎的JavaScript运行时环境&#xff0c;它允许JavaScript代码在服务器端运行&#xff0c;从而实现后端开发。Node.js的出现&#xff0c;使得前端开发人员可以利用他们已经掌握的JavaScript技能&#xff0c;扩展技能树并成为全栈开发人员。本文将深入浅出地…...

二十三种设计模式-原型模式

原型模式&#xff08;Prototype Pattern&#xff09;是一种创建型设计模式&#xff0c;它通过拷贝现有的实例来创建新的实例&#xff0c;而不是通过新建实例。这种方式可以避免复杂的构造过程&#xff0c;同时还能保持对象的创建和使用分离&#xff0c;提高系统的灵活性和扩展性…...

蓝桥与力扣刷题(66 加一)

题目&#xff1a; 给定一个由 整数 组成的 非空 数组所表示的非负整数&#xff0c;在该数的基础上加一。 最高位数字存放在数组的首位&#xff0c; 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外&#xff0c;这个整数不会以零开头。 示例 1&#xff1a; 输入…...

Markdown 分级标题

Markdown 分级标题 1. 前言2. 语法详解2.1 SeText风格2.2 Atx风格 3. 使用场景及实例4. 小结5. 其他风格5. 其他文章快来试试吧&#x1f388; Markdown 分级标题 &#x1f448;点击这里也可查看 1. 前言 关于 Markdown 的分级标题&#xff0c;官方给出了如下定义&#xff1a; …...

回归预测 | MATLAB基于RF-Adaboost多输入单输出回归预测

回归预测 | MATLAB基于RF-Adaboost多输入单输出回归预测 目录 回归预测 | MATLAB基于RF-Adaboost多输入单输出回归预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 回归预测 | MATLAB基于RF-Adaboost多输入单输出回归预测。 1.Matlab实现RF-Adaboost随机森林集成学习…...

字符串相关类之可变字符序列:StringBuffer、StringBuilder

前言&#xff1a; 小编最近找了份兼职&#xff0c;时间比较紧张 但不影响继续日更一篇&#xff0c;我们继续一起进步吧&#xff01;&#xff01;&#xff01; 我们一直都是以这样的形式&#xff0c;让新手小白轻松理解复杂晦涩的概念&#xff0c; 把Java代码拆解的清清楚楚&a…...

git提交

基本流程&#xff1a;新建分支 → 分支上开发(写代码) → 提交 → 合并到主分支 拉取最新代码因为当前在 master 分支下&#xff0c;你必须拉取最新代码&#xff0c;保证当前代码与线上同步&#xff08;最新&#xff09;&#xff0c;执行以下命令&#xff1a;bashgit pull orig…...

ceph osd df 输出详解

ceph osd df 命令用于显示 Ceph 集群中各个 OSD&#xff08;对象存储守护进程&#xff09;的详细信息。以下是输出中各列的含义&#xff1a; ID&#xff1a;OSD 的唯一标识符。 CLASS&#xff1a;OSD 所属的设备类别&#xff0c;例如 SSD、HDD 等。 WEIGHT&#xff1a;OSD 的…...

Unity3D实现自定义河流路径或泥石流路径

系列文章目录 untiy工具 文章目录 系列文章目录👉前言👉一、效果如下👉二、编辑效果如下👉三、简单使用Tool👉四、实现水流从上到下流下来的效果👉壁纸分享👉总结👉前言 此工具是一个插件,插件很好用,可以根据地形编辑河流的走向以及宽度,也可以发挥想象编辑…...

【数据结构】双向链表

目录 1. 双向链表 1.1特性 1.2双向链表相关操作 1.3 双向循环链表 1. 双向链表 1.1特性 逻辑结构&#xff1a;线性结构 存储结构&#xff1a;链式存储 操作&#xff1a;增删改查 typedef int datatype; typedef struct node {datatype data; //数据域struct node …...

android进入fastboot

安装windows驱动。android进入fastboot模式后&#xff0c;需要Windows驱动来跟adb通信&#xff0c;所以需要预先安装Windows usb驱动&#xff0c;否则进入fastboot模式后&#xff0c;无法使用adb连接手机。 下载网址&#xff1a;https://developer.android.com/studio/run/win-…...

verilogHDL仿真详解

前言 Verilog HDL中提供了丰富的系统任务和系统函数&#xff0c;用于对仿真环境、文件操作、时间控制等进行操作。&#xff08;后续会进行补充&#xff09; 正文 一、verilogHDL仿真详解 timescale 1ns/1ps //时间单位为1ns&#xff0c;精度为1ps&#xff0c; //编译…...

见微知著:Tripo 开创 3D 生成新时代

关于 VAST VAST 成⽴于 2023 年 3 ⽉,是⼀家致⼒于通⽤ 3D 大模型研发的 AI 公司,公司⽬标是通过打造⼤众级别的 3D 内容创作⼯具,建⽴ 3D 的 UGC 内容平台,让基于 3D 的空间成为⽤户体验、内容表达、提升新质⽣产⼒的关键要素。 2024 年初,VAST 推出数⼗亿参数级别的 3…...

【AI自动化渗透】大模型支持的自动化渗透测试,看蚂蚁和浙大的

参考文章: https://mp.weixin.qq.com/s/WTaO54zRxtNMHaiI1tfdGw 最近&#xff0c;美国西北大学&#xff0c;浙江大学&#xff0c;蚂蚁集团的一些专家学者联手发表了一篇论文&#xff0c;介绍了一个PentestAgent的方案&#xff0c;实现了渗透测试自动化。 01 技术方案 图的字…...

React 中事件机制详细介绍:概念与执行流程如何更好的理解

React 的事件机制是一个非常重要的概念&#xff0c;它涉及到 React 如何处理用户的交互事件。React 的事件系统与传统的 DOM 事件系统有所不同&#xff0c;它在底层使用了事件委托和合成事件&#xff08;Synthetic Events&#xff09;来优化性能。下面&#xff0c;我们将从 Rea…...

时序数据库InfluxDB—介绍与性能测试

目录 一、简述 二、主要特点 三、基本概念 1、主要概念 2、保留策略 3、连续查询 4、存储引擎—TSM Tree 5、存储目录 四、基本操作 1、Java-API操作 五、项目中的应用 六、单节点的硬件配置 七、性能测试 1、测试环境 2、测试程序 3、写入测试 4、查询测试 一…...

解决idea中无法拖动tab标签页的问题

1、按 Ctrl Alt S 打开设置&#xff0c;找到路径 File | Settings | Appearance & Behavior | Appearance 2、去掉勾选 Drag-and-drop with Alt pressed only 即可...

ffplay 命令行 从视频第N帧开始读取 ffmpeg 命令行 提取第N帧图片

ffmpeg中没有直接的命令读取第N帧 但是可以通过 t N/framerate 来获取到具体第N帧的时间 然后用 -ss t进行跳转。 比如帧率&#xff08;frame rate&#xff09;为24fps的视频G:/1/1.mp4文件从第1000帧开始进行播放&#xff0c;先计算出时间为 t 41.66666 ffplay -i G:/1/1.…...

【web靶场】之upload-labs专项训练(基于BUUCTF平台)

前言 该靶场&#xff0c;是通过平台BUUCTF在线评测中的靶场进行的&#xff0c;基于linux搭建的 当然若是想要该靶场&#xff0c;可以采用github上的醒目&#xff0c;点击后面文字即可访问c0ny1/upload-labs: 一个想帮你总结所有类型的上传漏洞的靶场 或者本人分享在网盘中&a…...

HTML5 Audio(音频)

HTML5 Audio(音频) HTML5 的 <audio> 元素是一个重要的革新,它为网页开发者提供了一种简单的方式来嵌入音频内容。在这篇文章中,我们将探讨 HTML5 <audio> 元素的特性、用法、浏览器兼容性,以及如何通过 JavaScript 和 CSS 对其进行控制和定制。 1. HTML5 <…...

go语言学习

字典&#xff08;映射&#xff09;类型 &#xff08;Map&#xff09; 以键值对为元素去存储元素 Map的特点&#xff1a; 键不能重复。 键必须是&#xff08;int,bool,float,string,array&#xff09;这些可以哈希的 &#xff08;如果自定义类型想要作为键&#xff0c;需要自…...

OpenCV相机标定与3D重建(53)解决 Perspective-3-Point (P3P) 问题函数solveP3P()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 根据 3 个 3D-2D 点对应关系找到物体的姿态。 cv::solveP3P 是 OpenCV 中的一个函数&#xff0c;用于解决 Perspective-3-Point (P3P) 问题。该问…...

【西北工业大学主办 | EI检索稳定 | 高H值专家与会报告】2025年航天航空工程与材料技术国际会议(AEMT 2025)

2025 年航天航空工程与材料技术国际会议&#xff08;AEMT 2025&#xff09;将于2025年2月28日至3月2日在中国天津召开。本届会议由西北工业大学主办&#xff0c;由北京航空航天大学、北京理工大学作为支持单位加入&#xff0c;AEIC 学术交流中心协办。 AEMT 2025 旨在汇聚来自全…...

卷积神经02-CUDA+Pytorch环境安装

卷积神经02-CUDAPytorch环境安装 在使用Python进行pytorch的使用过程中遇到各种各样的版本冲突问题&#xff0c;在此进行记录 0-核心知识脉络 1&#xff09;根据自己电脑的CUDA版本安装对应版本的Pytorch&#xff0c;充分的使用GPU性能2&#xff09;电脑要先安装【CUDA ToolKi…...

监听器与RBAC权限模型

目录 1、监听器ServletContextListener1.1、主要用途1.2、接口方法1.3、实现步骤1.4、示例代码1.5、使用场景 2、德鲁伊数据源2.1、主要特性2.2、配置 DruidDataSource 3、RBAC权限模型3.1、什么是RBAC3.2、RBAC 的核心概念3.3、RBAC 的优势3.4、RBAC 的实现步骤 1、监听器Serv…...

根据浏览器的不同类型动态加载不同的 CSS 文件

实现思路&#xff1a; 安装并引入 vue 项目相关的 CSS 文件&#xff1a;首先确保你有为不同浏览器准备了不同的 CSS 文件&#xff08;例如&#xff0c;style-chrome.css&#xff0c;style-firefox.css&#xff0c;style-ie.css 等&#xff09;。 在 index.js 中根据浏览器类型…...

[ComfyUI]接入Google的Whisk,巨物融合玩法介绍

一、介紹​ 前段时间&#xff0c;谷歌推出了一个图像生成工具whisk&#xff0c;有一个很好玩的图片融合玩法&#xff0c;分别提供三张图片,就可以任何组合来生成图片。​ ​ 最近我发现有人开发了对应的ComfyUI插件&#xff0c;对whisk做了支持&#xff0c;就来体验了下&#…...

3DGabor滤波器实现人脸特征提取

import cv2 import numpy as np# 定义 Gabor 滤波器的参数 kSize 31 # 滤波器核的大小 g_sigma 3.0 # 高斯包络的标准差 g_theta np.pi / 4 # Gabor 函数的方向 g_lambda 10.0 # 正弦波的波长 g_gamma 0.5 # 空间纵横比 g_psi np.pi / 2 # 相位偏移# 生成 Gabor 滤…...

一文流:Maven精讲

一文流系列是作者苦于技术知识学了-忘了&#xff0c;背了-忘了的苦恼&#xff0c;决心把技术知识的要点一笔笔✍️出来&#xff0c;一图图画出来&#xff0c;一句句讲出来&#xff0c;以求刻在&#x1f9e0;里。 该系列文章会把核心要点提炼出来&#xff0c;以求掌握精髓&#…...

10.STM32F407ZGT6-内部温度传感器

参考&#xff1a; 1.正点原子 前言&#xff1a; 本笔记的主要目的和意义就是&#xff0c;再次练习ADC的使用。 32.1 内部温度传感器简介 STM32F407 有一个内部的温度传感器&#xff0c;可以用来测量 CPU 及周围的温度(TA)。对于STM32F407 系列来说&#xff0c;该温度传感器在…...

软件测试预备知识④—NTFS权限管理、磁盘配额与文件共享

在软件测试的实际环境搭建与管理过程中&#xff0c;了解和掌握NTFS权限管理、磁盘配额以及文件共享等知识至关重要。这些功能不仅影响系统的安全性和稳定性&#xff0c;还对测试数据的存储、访问以及多用户协作测试有着深远的影响。 一、NTFS权限管理 1.1 NTFS简介 NTFS&am…...

Harry技术添加存储(minio、aliyun oss)、短信sms(aliyun、模拟)、邮件发送等功能

Harry技术添加存储&#xff08;minio、aliyun oss&#xff09;、短信sms&#xff08;aliyun、模拟&#xff09;、邮件发送等功能 基于SpringBoot3Vue3前后端分离的Java快速开发框架 项目简介&#xff1a;基于 JDK 17、Spring Boot 3、Spring Security 6、JWT、Redis、Mybatis-P…...

科研绘图系列:R语言绘制Y轴截断分组柱状图(y-axis break bar plot)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍特点意义加载R包数据下载导入数据数据预处理画图输出总结系统信息介绍 Y轴截断分组柱状图是一种特殊的柱状图,其特点是Y轴的刻度被截断,即在某个范围内省略了部分刻度。这种图表…...

省森林防火应急指挥系统

森林防火形势严峻 我国森林防火形势十分严峻&#xff0c;森林火灾具有季节性强、发现难、成灾迅速等特点&#xff0c;且扑救难度大、影响范围广、造成的损失重。因此&#xff0c;构建森林防火应急指挥系统显得尤为重要。 系统建设模式与架构 森林防火应急指挥系统采用大智慧…...

HTML 迷宫游戏

HTML 迷宫游戏 相关资源文件已经打包成压缩文件&#xff0c;可双击index.html直接运行程序&#xff0c;且文章末尾已附上相关源码&#xff0c;以供大家学习交流&#xff0c;博主主页还有更多Python相关程序案例&#xff0c;秉着开源精神的想法&#xff0c;望大家喜欢&#xff0…...

【面试题】技术场景 4、负责项目时遇到的棘手问题及解决方法

工作经验一年以上程序员必问问题 面试题概述 问题为在负责项目时遇到的棘手问题及解决方法&#xff0c;主要考察开发经验与技术水平&#xff0c;回答不佳会影响面试印象。提供四个回答方向&#xff0c;准备其中一个方向即可。 1、设计模式应用方向 以登录为例&#xff0c;未…...

Autoencoder(李宏毅)机器学习 2023 Spring HW8 (Boss Baseline)

1. Autoencoder 简介 Autoencoder是一种用于学习数据高效压缩表示的人工神经网络。它由两个主要部分组成: Encoder 编码器将输入数据映射到一个更小的、低维空间中的压缩表示,这个空间通常称为latent space或bottleneck。 这一过程可以看作是数据压缩,去除冗余信息,仅保留…...

Python的循环

Python的循环 Python的循环有两种&#xff0c;分别是for…in循环和while循环。 for…in 循环 假设我们要循环输出一个列表里的元素&#xff1a; names [张三,李四,王五] for name in names:print(name)执行这段代码后&#xff0c;会依次打印names的每一个元素&#xff1a;…...

车联网安全--TLS握手过程详解

目录 1. TLS协议概述 2. 为什么要握手 2.1 Hello 2.2 协商 2.3 同意 3.总共握了几次手&#xff1f; 1. TLS协议概述 车内各ECU间基于CAN的安全通讯--SecOC&#xff0c;想必现目前多数通信工程师们都已经搞的差不多了&#xff08;不要再问FvM了&#xff09;&#xff1b;…...

Git | git stash命令详解

关注&#xff1a;CodingTechWork 引言 在日常开发中&#xff0c;使用Git版本控制系统时&#xff0c;可能会遇到需要暂时中断当前工作&#xff0c;去处理其他任务的情况。这时&#xff0c;如果直接切换分支&#xff0c;可能会导致当前的修改未提交而丢失或需要暂时保存修改的状…...

LeetCode hot100-100

287. 寻找重复数 给定一个包含 n 1 个整数的数组 nums &#xff0c;其数字都在 [1, n] 范围内&#xff08;包括 1 和 n&#xff09;&#xff0c;可知至少存在一个重复的整数。假设 nums 只有 一个重复的整数 &#xff0c;返回 这个重复的数 。你设计的解决方案必须 不修改 数组…...

AWS re:Invent 2024 现场实录 - It‘s all about Scale

时隔五年&#xff0c;再度造访美国&#xff0c;也是同样的主题&#xff0c;参加在拉斯维加斯举行的 AWS re:Invent 大会。 会场 从 2012 起第一届开始&#xff0c;每年的 re:Invent 大会都放在拉斯维加斯&#xff0c;主会场也都放在威尼斯人酒店 (Venetian)。有小伙伴好奇这背…...

qt-C++笔记之自定义继承类初始化时涉及到parents的初始化

qt-C笔记之自定义继承类初始化时涉及到parents的初始化 code review! 参考笔记 1.qt-C笔记之父类窗口、父类控件、对象树的关系 2.qt-C笔记之继承自 QWidget和继承自QObject 并通过 getWidget() 显示窗口或控件时的区别和原理 3.qt-C笔记之自定义类继承自 QObject 与 QWidget …...

[微服务]redis数据结构

介绍 我们常用的Redis数据类型有5种&#xff0c;分别是&#xff1a; StringListSetSortedSetHash 还有一些高级数据类型&#xff0c;比如Bitmap、HyperLogLog、GEO等&#xff0c;其底层都是基于上述5种基本数据类型。因此在Redis的源码中&#xff0c;其实只有5种数据类型。 …...

android四大组件之一——Service

目录 一、Service概述 二、生命周期 三、权限 四、进程生命周期 五、组件与绑定Service的通信方式 1.扩展 Binder 类 2.Messenger信使 3.AIDL 七、总结 场景使用区别 一、Service概述 Service 是应用组件&#xff0c;代表一个应用的长时间后台运行的操作&#xff0…...