如何自己编译定制betaflight + 给F3硬件 BF321软件加上GPS功能
本帖最后由 ezk 于 2017-10-10 09:13 编辑编译环境设置参考https://github.com/martinbudden/betaflight/blob/master/docs/development/Building%20in%20Windows.md需要软件:Cygwin 和GNU ARM Toolchain
我自己测试用Cygwin 2.881 和gcc-arm-none-eabi-6-2017-q2-update-win32 成功编译BF3.2.1Cygwin下载,下载X8664 还是32 看你自己的电脑https://www.cygwin.com/
在安装Cywin时候要选下面这些选项 Devel/git Devel/git-completion (可选) Devel/make Devel/binutils Editors/vim Editors/vim-common(可选) Shells/mintty (默认选了)默认安装到C:\cygwin64C:\cygwin64\home\windows用户名 目录下就是相当于linux的home目录 所有git下载过来和编译的文件都在里面
接下来下载安装 ARMtool chainhttps://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads下载zip包就行
下载完要添加windows 环境目录添加一个path 里面填下面的东西 C:\gcc-arm-none-eabi-6-2017-q2-update-win32\bin是这个tool chain的解压目录里面的bin 文件夹 %PATH%;C:\gcc-arm-none-eabi-6-2017-q2-update-win32\bin这样编译环境就设置完成了
接下来git下载源文件 和编译
点开桌面的 cygwin64terminal 粘帖git clone https://github.com/betaflight/betaflight.git整个BF的源码就下载到你的C:\cygwin64\home\windows用户名 目录下接下来进入betaflight 目录 输入cdbetaflight接下来输入makeTARGET=BETAFLIGHTF3 就开始编译了 里以BETAFLIGHTF3 作为目标硬件(target)来编译所有的支持目标硬件都罗列在C:\cygwin64\home\windows 用户名\betaflight\src\main\target编译好的hex文件在C:\cygwin64\home\ windows 用户名\betaflight\obj如果编译出错基本上是英文tool chain 那环境变量设置不对
给F3的 BF3.2.1 瘦身或者添加GPS或者其他功能我要GPS不是要回家功能,而是x9d支持数传GPS坐标的功能。这样在齐腰身的草上空随意飞行都不怕丢。飞控可以把实时的坐标传到遥控器上,这样省去大量找飞机的时间。飞机也再也没有丢过。重新编译的固件并不能带来任何性能上的提高。接下来最大的问题来了 BF3.2.1 把F3 MCU的 GPS支持完全给移除了因为Flash/ROM不够用了,好多空间给动态滤波用了。 STM32F303256 Kb Flash/ROM 40Kb SRAM,F303只有256Kb的ROM。这点可以在C:\cygwin64\home\windows用户名\betaflight\src\main\target\common_fc_pre.h里面最后几行看到。
下面我一BETAFLIGHT F3 飞控为例 厦门的FPVmodel造的我先试试强制添加GPS功能 找到C:\cygwin64\home\windows 用户名\betaflight\src\main\target\BETAFLIGHTF3\target.h随便找个地方添加这几行#define GPS#define USE_NAV#define USE_UNCOMMON_MIXERS最终结果编译出错ROM还是不够用 接下来看看那些头文件怎么定义的,其实好多万年不用的功能都可以删掉,例如PWM, LED灯,各种数传协议等等。但是我还是想保留软串口功能。有一台穿越图传支持类似smartaudio配置功能那要留给图传配置用。 上面这3个图是C:\cygwin64\home\windows 用户名\betaflight\src\main\target\common_fc_pre.h的头文件这张图是来自于C:\cygwin64\home\windows 用户名\betaflight\src\main\target\BETAFLIGHTF3\target.h , 可以把ESC 回传RPM这些功能去掉。
把各种协议都干掉终于ROM空间够了,也编译成功。 接下来直接去Chrome把hex文件手动刷进去就行
下面是编译时候2个头文件的配置
这定制版本的固件我只有时间在家里试飞,GPS是保证能用的,硬件只支持betaflight f3这飞控。 这飞控和那些其他淘宝版本的硬件F3不太一样。
jcofee 发表于 2018-4-27 11:56
楼主,麻烦问下,我也按你的方式编辑了刷到飞控里,在 GPS 界面里有显示 8 颗星,但始终无法 3DFix,并且右 ...
没有用过地图 我只需要坐标
3Dfix 需要不少时间 同样用m8n 在pix一般30秒内 bf有的时候一颗电池飞完都没fix
OSD显示速度我没试过 应该没问题
尝试把那些不要的telemetry的define全部注解掉 留下越多define越好
现在github 最新版的又多了好多这类宏定义 =爱好者= 发表于 2018-4-26 14:47
能加上成自动返航就更好了,用F4空间大些
要导航 出门转inav 下一帖讲解X9D的 数传功能
BF的数传和 pix的数传 jkd_405 发表于 2017-10-10 09:34
占坑学习,能否用eclipse for c++
编辑可以
编译不清楚 应该也可以 我不知道如何设置 按照这个方法进行了,配置,但是现在不能进行make。不知什么原因,能否加个微信,指点一下。 兄弟,bf固件,是用的啥语言写的?
怎么用这个调出GPS导航 无名小模 发表于 2018-10-30 20:02
兄弟有文档说明这些参数是干什么的吗,我想把最新的瘦身一下,想用gps
没有 英文理解还是很简单的 高手在民间。
占坑学习,能否用eclipse for c++ 好帖子帮顶了 专业玩法果然6
高手在民间{:1_9:}{:1_9:} 专业!那套中午注释,心血
这个编译完后,怎么将修改的内容更新到gitHub上去呢? 好牛的技术贴,我也搞了一个OMNIBUS的 能加上成自动返航就更好了,用F4空间大些 好文章啊!!!!!!!!!!!!! 楼主,麻烦问下,我也按你的方式编辑了刷到飞控里,在 GPS 界面里有显示 8 颗星,但始终无法 3DFix,并且右边的地图也无法显示。请问还有什么需要注意的么?我只是想在OSD中可以显示飞行的速度相关信息,也可以查询坐标!
好技术支持
学习了,好
这源代码帖子谁有 兄弟有文档说明这些参数是干什么的吗,我想把最新的瘦身一下,想用gps
页:
[1]
2