当飞控的信号端口与我们的需求不符合时,在BetaFlight中可以很方便的使用resource命令重新进行映射,但是在INAV却不行。如果确定使用INAV却有这样的需求该如何呢?
注意,这里说的重新映射,并不能通过mixer解决。mixer是INAV提供的一种重新定义电机序号以及电机种类(无刷电机还是舵机)的修改方式,前提是硬件上的映射是正确的,举个例子,比如S1对应于电机1,那么你可以用mixer把它改为舵机1、2、3等等,但是如果s1本来对应于电机或舵机,但实际上对应的是LED,那么你用mixer是无法进行修改的,即此时的s1定义在固件内就是错误的,那该如何修改呢?
答案只有一种,就是重新编译固件。
这里有一个视频教程:
INAV remapping RESOURCEs in 10 minutes (or add PINIO)
大致方法如下:
在这里 https://github.com/iNavFlight/inav/releases 下载INAV固件的源代码
进入以下目录,寻找自己的飞控固件
重新编译。
具体的编译过程请参看文章内的视频教程:https://www.youtube.com/watch?v=2zElnakFQRU
视频作者给出的编译流程的文字版:
ext used in guide:
copy source to
c:/inav
make your changes/change resource…
windows features
enable windows subsytem for linux
reboot
store
Ubuntu 20_04
Launch Ubuntu admin
sudo apt update
sudo apt-get install git
sudo apt-get install make
sudo apt-get install cmake
sudo apt-get install ruby
cd /mnt/c/inav
mkdir build
cd build
cmake ..
generating done
make MATEKF722
regedit
Find HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Lxss\{GUID}\Flags
Change Flags from 7 to 5
restart
cd /mnt/c/inav
cd build
cmake ..
generating done
make MATEKF722