注:xFlight主要指betaflight/inav,延伸扩展Ardupilot/PX4-Autopilot。
雅特力AT32芯片在betaflight上的移植2022年已经如火如荼的进展非常不错,详见:atbetaflight
inav和betaflight代码架构上是非常相似的,因此betaflight一旦成功porting,那么inav也就快了。
从目前了解官方分支进展:
也就是说,后续含有AT32芯片的飞控将与inav&betaflight开源特性同步发展,这可是可喜可贺的消息。有消息PX4的移植(PX4-AT32)也已经有了苗头,期望能更快的合入官方分支。
是时候搞一套AT32的时候了,本次计划组一台AT32 F435 Mark4,用于inav/betaflight/px4的验证。
注:主要是一些连接线,螺丝,螺母,备件等
鉴于目前PX4-AT32的固件尚未合入官方主分支,本次将会重点使用inav/betaflight。
AocodaRC F405V2采用的是LQFP64封装的STM32F405RGT6芯片,鉴于STM32F405RGT6 v.s. AT32F435RGT7 Comparison for Flight Controller几乎没有差异。
因此,我们打算直接替换芯片,但是固件得自己DIY,网上资料很多,这里推荐:
至于代码,我们也相应做了clone,修复一些问题:
详细讨论见:Can’t find baro chip, what I have missed? #9399
最终原因:iNav at32 I2C驱动代码初始化有问题,iNav7.0将会修复#9412。
装好以后突然发现,这套电机是正反向的。还好安装的时候顺序没有装错,不幸中的万幸!
一开始不知道,以为摄像头或者图传哪里有问题。最后经过初中物理:光学成像原理思考。发现需要进行手动旋转RunCam镜头进行清晰度调整。
# resource show all
Currently active IO resource assignments:
(reboot to update)
--------------------
A00: SERIAL_TX 4
A01: FREE
A02: SERIAL_TX 2
A03: SERIAL_RX 2
A04: GYRO_CS 1
A05: SPI_SCK 1
A06: SPI_SDI 1
A07: SPI_SDO 1
A08: FREE
A09: SERIAL_TX 1
A10: SERIAL_RX 1
A11: USB
A12: USB
A13: OSD_CS
A14: SWD
A15: FREE
B00: FREE
B01: LED_STRIP
B02: FREE
B03: SPI_SCK 3
B04: SPI_SDI 3
B05: SPI_SDO 3
B06: I2C_SCL 1
B07: I2C_SDA 1
B08: BEEPER
B09: FREE
B10: FREE
B11: FREE
B12: USB_DETECT
B13: SPI_SCK 2
B14: SPI_SDI 2
B15: SPI_SDO 2
C00: FLASH_CS
C01: ADC_CURR
C02: ADC_BATT
C03: FREE
C04: GYRO_EXTI
C05: FREE
C06: MOTOR 1
C07: MOTOR 2
C08: MOTOR 3
C09: MOTOR 4
C10: FREE
C11: FREE
C12: FREE
C13: LED 1
C14: FREE
C15: FREE
D00: FREE
D01: FREE
D02: FREE
D03: FREE
D04: FREE
D05: FREE
D06: FREE
D07: FREE
D08: FREE
D09: FREE
D10: FREE
D11: FREE
D12: FREE
D13: FREE
D14: FREE
D15: FREE
H00: FREE
H01: FREE
H02: FREE
H03: FREE
H04: FREE
H05: FREE
H06: FREE
H07: FREE
H08: FREE
H09: FREE
H10: FREE
H11: FREE
H12: FREE
H13: FREE
H14: FREE
H15: FREE
Currently active Timers:
-----------------------
TIM1: FREE
TIM2: FREE
TIM3:
CH4 : LED_STRIP
TIM4: FREE
TIM5: FREE
TIM8:
CH1 : MOTOR 1
CH2 : MOTOR 2
CH3 : MOTOR 3
CH4 : MOTOR 4
TIM20: FREE
Currently active DMA:
--------------------
DMA1 Channel 1: MOTOR 1
DMA1 Channel 2: MOTOR 3
DMA1 Channel 3: MOTOR 2
DMA1 Channel 4: MOTOR 4
DMA1 Channel 5: SPI_SDO 1
DMA1 Channel 6: SPI_SDI 1
DMA1 Channel 7: SPI_SDO 2
DMA2 Channel 1: LED_STRIP
DMA2 Channel 2: SPI_SDI 2
DMA2 Channel 3: SPI_SDO 3
DMA2 Channel 4: SPI_SDI 3
DMA2 Channel 5: ADC 1
DMA2 Channel 6: FREE
DMA2 Channel 7: FREE
经思路整理,是前面bdshot设置,配置打开了RPM filter功能。但是RPM获取#4电机异常,基于RPM的滤波无法使用。导致解锁无法成功。
以前USB线连着电脑,遥控器可以解锁飞机。目前4.5版本,USB连接电脑,默认无法解锁,提示MSP异常。
配置了GPS RTL功能,但是遥控器开关切换到RTL功能时解锁,就会报这个异常。需要将GPS RTL功能默认关闭,然后进行解锁。
源由:测试、使用下LED stripe功能。
实测:不会操作,经过指点:按照下面顺序进行操作设置,即可。
官方链接:betaflight
按照官网JHEMCU RuiBet Tran-3016W 5.8GHZ 1.6W提供的如下表格进行BF配置
实际效果,无法准确的切换到OSD菜单指定的选项,比如:切到R8频点,实际在F7信号最强;而R8图像扭曲不异常;但是OSD上显示是R8频点;重启BF后,进入菜单,确不显示任何频段,通道信息;笼统的在菜单最上方显示R8,而实际信号在F7。
经厂家技术支持反馈:
经检查
但BF配置软件无法显示GPS相关信息。
拆下来,最后定位问题,GPS模块配置问题,需要重置GPS配置。
目前,仅仅将整机进行了安装和初步配置,经过连续两天的调试,上述10个问题已经获得比较好的解决。
后续推进工作主要有:
1)betaflight试飞
2)inav试飞
3)尝试PX4进行试飞
有兴趣的朋友们,请评论,点赞哦!!!
【1】四轴飞控DIY简明步骤介绍
【2】四轴飞控DIY调试起飞简明步骤
【3】四轴飞控DIY Mark4 - 减震
【4】四轴飞控DIY Mark4 - RTH/GPS Rescure
【5】四轴飞控DIY Mark4 - 整理&参数优化