xFlight开源飞控之AT32F435计划

96 篇文章 45 订阅

1. 源由

注: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的验证。

2. 材料清单

2.1 结构件

  1. 5寸机架(Mark4) x 1 (套)
  2. 硅胶减震 x 8 (个)
  3. VTX天线 + 915天线 + GPS(含compass) 打印件 x 1 (个)

2.2 动力件

  1. 2205 - 2300kv motor x 4 (个)
  2. 4合1电调 Bluejay, bdshot
  3. 5寸桨叶 x 1 (套)
  4. 3S-4S电池 x 1 (个)

2.2 电子件

  1. F435V2飞控 AocodaRC F405V2 + AT32F435 x 1 (个)
  2. 915ELRS接收机 x 1 (个)
  3. BZ251 GPS x 1 (个)
  4. JHEMCU 5.8G 40H 1.6W VTX x 1 (个)
  5. RunCam 19x19mm 摄像头 x 1 (个)
  6. LED + Buzzer集成板 x 1 (个)

2.3 天线

  1. 915天线 x 1 (T型天线)
  2. VTX天线 x 1 (棒状天线)
  3. IPX 转SMA的天线转接线 x 1 (打印件上固定棒棒天线)

2.4 附件

注:主要是一些连接线,螺丝,螺母,备件等

3. 固件准备

鉴于目前PX4-AT32的固件尚未合入官方主分支,本次将会重点使用inav/betaflight。

AocodaRC F405V2采用的是LQFP64封装的STM32F405RGT6芯片,鉴于STM32F405RGT6 v.s. AT32F435RGT7 Comparison for Flight Controller几乎没有差异。

因此,我们打算直接替换芯片,但是固件得自己DIY,网上资料很多,这里推荐:

至于代码,我们也相应做了clone,修复一些问题:

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

注:相关BF配置工具要用最新的,如果后续涉及增加或者修改,可以参考: Artery AT32F435/7 DFU and VCP support #3259

4. 整机

4.1 接线图

在这里插入图片描述

4.2 外观

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

5. 问题汇总

5.1 【已解决】iNav固件无法找到Baro芯片

详细讨论见:Can’t find baro chip, what I have missed? #9399

最终原因:iNav at32 I2C驱动代码初始化有问题,iNav7.0将会修复#9412

5.2 【已解决】正反电机问题

装好以后突然发现,这套电机是正反向的。还好安装的时候顺序没有装错,不幸中的万幸!

5.3 【已解决】摄像头图像模糊

一开始不知道,以为摄像头或者图传哪里有问题。最后经过初中物理:光学成像原理思考。发现需要进行手动旋转RunCam镜头进行清晰度调整。

5.4 【已解决】ESC 电机 bdshot异常

在这里插入图片描述
初步怀疑原因:#4号电机有DMA资源,ESC电调问题。

# 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

实测:ATbetaflight 4.3.2 bdshot 正常

在这里插入图片描述

# 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_MISO 1
A07: SPI_MOSI 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_MISO 3
B05: SPI_MOSI 3
B06: I2C_SCL 1
B07: I2C_SDA 1
B08: BEEPER
B09: FREE
B10: FREE
B11: FREE
B12: FREE
B13: SPI_SCK 2
B14: SPI_MISO 2
B15: SPI_MOSI 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 2
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
E02: FREE

Currently active Timers:
-----------------------
TIM1: FREE
TIM2: FREE
TIM3:
    CH4 : LED_STRIP
TIM4: FREE
TIM5: FREE
TIM8:
    CH1 : DSHOT_BITBANG 3
TIM20: FREE

Currently active DMA:
--------------------
DMA1 Channel 1: DSHOT_BITBANG 3
DMA1 Channel 2: ADC 1
DMA1 Channel 3: SPI_MOSI 1
DMA1 Channel 4: SPI_MISO 1
DMA1 Channel 5: SPI_MOSI 2
DMA1 Channel 6: SPI_MISO 2
DMA1 Channel 7: SPI_MOSI 3
DMA2 Channel 1: LED_STRIP
DMA2 Channel 2: SPI_MISO 3
DMA2 Channel 3: FREE
DMA2 Channel 4: FREE
DMA2 Channel 5: FREE
DMA2 Channel 6: FREE
DMA2 Channel 7: FREE

注:官网上也有这个问题 VCP hangs on AT32 while getting dma list of valid resource #13138

2024-04-05 rootcause:未设置bitbang的问题。

# set dshot_bitbang = ON
# save

5.5 【已解决】RPM filter异常,无法解锁

经思路整理,是前面bdshot设置,配置打开了RPM filter功能。但是RPM获取#4电机异常,基于RPM的滤波无法使用。导致解锁无法成功。

5.6 【已解决】MSP异常,无法解锁

以前USB线连着电脑,遥控器可以解锁飞机。目前4.5版本,USB连接电脑,默认无法解锁,提示MSP异常。

5.7 【已解决】RESCURE_SW异常,无法解锁

配置了GPS RTL功能,但是遥控器开关切换到RTL功能时解锁,就会报这个异常。需要将GPS RTL功能默认关闭,然后进行解锁。

5.8 【已解决】LED Strip功能无法使用

源由:测试、使用下LED stripe功能。
实测:不会操作,经过指点:按照下面顺序进行操作设置,即可;参考链接
官方链接:betaflight
在这里插入图片描述

5.9 【已解决】Tramp切换VTX参数无效

按照官网JHEMCU RuiBet Tran-3016W 5.8GHZ 1.6W提供的如下表格进行BF配置

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
实际效果,无法准确的切换到OSD菜单指定的选项,比如:切到R8频点,实际在F7信号最强;而R8图像扭曲不异常;但是OSD上显示是R8频点;重启BF后,进入菜单,确不显示任何频段,通道信息;笼统的在菜单最上方显示R8,而实际信号在F7。

经厂家技术支持反馈:

  • 短按是调通道(对应蓝灯, 1- 8 共8次)
  • 长按2秒是调组别 (对应绿灯, A-B-E-F-R, 共5次)
  • 长按5秒是调功率 (对应红灯,25-200-400-800-1.6W, 共5次)
  • 长按10秒以上,是打开11个禁止USA频道。
  • 默认不输出禁止USA频道: 5705, 5685, 5665, 5885, 5905, 5880, 5658, 5695, 5732, 5880, 5917

5.10 【已解决】GPS芯片未发现

经检查

  1. 磁力计找到,证明5V上电正常
  2. 串口连接正确:GPS_TX ==> FC_RX,GPS_RX⇒ FC_TX

但BF配置软件无法显示GPS相关信息。

在这里插入图片描述拆下来,最后定位问题,GPS模块配置问题,需要重置GPS配置。
在这里插入图片描述

5.11 【官网】Betaflight 4.5版本磁力计&气压计问题

一直想用最新的BF4.5官网版本,经过各种折腾,还是差临门一脚,结果交代在这里了。

硬件没问题,问题是4.5可能有BUG。

在这里插入图片描述

6. 总结 & 后续

目前,仅仅将整机进行了安装和初步配置,经过连续两天的调试,上述10个问题已经获得比较好的解决。

后续推进工作主要有:

1)betaflight试飞
2)inav试飞
3)尝试PX4进行试飞

有兴趣的朋友们,请评论,点赞哦!!!

【1】Betaflight 4.5 + Aocoda-RC F405V2 + AT32F435 Mark4 试飞初步总结
【2】ATFlight 4.3.2 + Aocoda-RC F405V2 + AT32F435 Mark4 试飞后续

7. 参考资料

【1】四轴飞控DIY简明步骤介绍
【2】四轴飞控DIY调试起飞简明步骤
【3】四轴飞控DIY Mark4 - 减震
【4】四轴飞控DIY Mark4 - RTH/GPS Rescure
【5】四轴飞控DIY Mark4 - 整理&参数优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值