BetaFlight 固件功能定制

October 20, 2019 分类:随便写写

警告
某些功能组合起来可能会导致编译失败。禁用某些功能可能会导致飞行不稳定或使您的穿越机根本无法解锁。在启用/禁用某些功能之前,请确保您知道自己在做什么。
“我有一些F3飞控板,他们没坏,还挺好用的,我还想接着用。”没问题,通过自行编译固件,现在你可以接着用你的F3来享受高级功能所带来的性能提升了,只需要使固件体积小于F3飞控板载闪存大小即可。
为了确保你知道启用/禁用的功能的意义,在下方列出功能详细信息:(基于BF4.0)

USE_ACC //启用加速度计,关闭则无法使用自稳半自稳模式
USE_ACRO_TRAINER //启用新手训练模式,对于经验老道的飞手来说可以关闭
USE_ABSOLUTE_CONTROL //启用绝对控制,启用后会略微影响手感,不建议开启
USE_BARO //启用气压计
USE_BLACKBOX //启用黑盒子,如果飞控板没有黑盒子而你又不想用的话建议禁用
USE_CAMERA_CONTROL //启用摄像头控制功能,如果摄像头不支持则建议禁用
USE_GPS //启用GPS,如果你不用GPS则建议禁用
USE_GPS_NMEA //启用GPS NMEA协议
USE_GPS_UBLOX //启用GPS UBLOX协议
USE_GPS_RESCUE //启用GPS救援功能
USE_HOTT_TEXTMODE //启用HOTT文字模式
USE_I2C //启用此,则可使用I2C外置传感器
USE_MULTI_GYRO //用于配置多陀螺仪,如果是单陀螺仪飞控,建议关闭
USE_LAUNCH_CONTROL //启用起飞控制模式
USE_LED_STRIP //启用LED灯带模式
USE_LED_STRIP_STATUS_MODE //LED灯带状态灯模式,若无特殊需要建议关闭
USE_PINIO //启用PINIO功能,用于配置True PitMode
USE_PINIOBOX //启用PINIOBOX功能,依赖上一条
USE_RCDEVICE //使用RunCam设备,若无则建议禁用
USE_RUNAWAY_TAKEOFF //启用起飞防暴走功能,若无特殊需求建议开启
USE_RX_LINK_QUALITY_INFO //用于计算RSSI和LQ,若不需要可禁用
USE_SERVOS //启用舵机功能,若无特殊需要建议禁用
USE_SMART_FEEDFORWARD //启用智能前馈功能,建议禁用
USE_UNCOMMON_MIXERS //启用则可使用不常见的混控模式,例如三轴、Y4和六轴等USE_VARIO //适用于有多的传感器GPS
USE_BRUSHED_ESC_AUTODETECT //启用有刷电机自动检测模式,常见用于有刷空心杯
USE_CLI //启用CLI命令行模式,最好开启
USE_SERIAL_PASSTHROUGH //允许通过串口向其他设备刷写固件,禁用则无法通过飞控更改
USE_TASK_STATISTICS //启用系统负载统计功能,建议开启
USE_GYRO_REGISTER_DUMP //陀螺仪上拉电阻,保持默认即可
USE_IMU_CALC //IMU传感器计算,如果需要飞自稳或启用其他调用IMU状态信息的则建议开启USE_PPM //允许使用PPM接收机
USE_GYRO_OVERFLOW_CHECK //使用陀螺仪溢出检测功能,ICM陀螺仪必开
USE_YAW_SPIN_RECOVERY //使用反自旋功能,建议开启
USE_DSHOT_DMAR //使用DMAR来驱动Dshot
USE_SERIALRX_CRSF //使用CRSF遥控信号输入
USE_SERIALRX_IBUS //使用IBUS遥控信号输入
USE_SERIALRX_SBUS //使用SBUS遥控信号输入
USE_SERIALRX_SPEKTRUM //使用SPEKTRUM遥控信号输入,SPEKTRUM的最新协议
USE_SERIALRX_SUMD //使用SUMD遥控信号输入,SPEKTRUM的协议
USE_SERIALRX_SUMH //使用SUMH遥控信号输入,SPEKTRUM的协议
USE_SERIALRX_XBUS //使用XBUS遥控信号输入,JR的遥控协议
USE_SERIALRX_FPORT //使用Fport信号输入,Frsky的最新协议
USE_SERIALRX_JETIEXBUS //使用JETIEXBUS信号输入,Jeti的协议
USE_TELEMETRY //开启回传功能
USE_TELEMETRY_FRSKY_HUB //FPORT协议的回传
USE_TELEMETRY_SMARTPORT //FRSKY的X模式的回传
USE_TELEMETRY_CRSF //黑羊Crossfire的回传
USE_TELEMETRY_SRXL //SPEKTRUM的回传
USE_TELEMETRY_HOTT //HOTT的回传
USE_TELEMETRY_LTM //由iNav开发的轻量级回传
USE_TELEMETRY_IBUS //IBUS的回传
USE_TELEMETRY_IBUS_EXTENDED //IBUS扩展回传
USE_TELEMETRY_JETIEXBUS //JETIEXBUS的回传
USE_TELEMETRY_MAVLINK //MAVLINK的回传USE_CMS //启用OSD CMS菜单
USE_EXTENDED_CMS_MENUS //启用OSD CMS扩展菜单
USE_MSP_DISPLAYPORT //启用MSP显示功能,常见于外接OLED屏幕,可以关闭
USE_MSP_OVER_TELEMETRY //启用MSP回传功能,可以关闭
USE_VIRTUAL_CURRENT_METER //启用虚拟电流计,常见于需要在Configurator内自行配置电流计参数的电流传感器
USE_VTX_COMMON //启用图传常用功能,如果图传不受飞控控制则建议关闭,下同
USE_VTX_CONTROL //启用图传控制功能
USE_VTX_SMARTAUDIO //配置SMARTAUDIO协议
USE_VTX_TRAMP //配置TRAMP协议
USE_ESC_SENSOR //启用ESC传感器功能,如电调没有此功能则建议关闭
USE_ESC_SENSOR_INFO //启用ESC传感器配置功能,同上
USE_ESC_SENSOR_TELEMETRY //启用ESC回传功能,同上
USE_SERIAL_4WAY_BLHELI_BOOTLOADER //启用四路BLheli电调烧录功能,建议开启
USE_GYRO_LPF2 //启用第二级陀螺仪低通滤波,建议开启
USE_DYN_LPF //启用动态低通滤波,建议开启
USE_D_CUT //启用D_Cut功能,在后续版本中更新为D_MIN,建议开启
USE_THROTTLE_BOOST //启用油门增压功能,建议开启
USE_INTEGRATED_YAW_CONTROL //启用现代化偏航控制功能,建议开启
USE_ITERM_RELAX //启用Iterm释放功能,建议开启
USE_RC_SMOOTHING_FILTER //启用遥控信号平滑功能,建议开启
USE_THRUST_LINEARIZATION //启用油门线性化功能,建议开启
USE_TPA_MODE //启用多TPA模式,允许衰减PD或单独衰减D,建议开启
USE_PWM //允许使用PWM信号输入和输入
USE_HUFFMAN //启用霍夫曼编码功能,保持默认即可
USE_BOARD_INFO //启用飞控板详细信息写入功能,可以关闭
USE_RTC_TIME //在控制回路中使用真实时间,保持默认即可
USE_RX_MSP //使用MSP作为RX信号输入,可视情况决定启用/禁用
USE_CRSF_CMS_TELEMETRY //允许通过遥控器调用CRSF脚本来调用CMS菜单
USE_DASHBOARD //启用飞行统计功能,即飞行结束后上锁所显示的统计页面,若有OSD则建议开启
USE_GYRO_DLPF_EXPERIMENTAL //启用实验性的陀螺仪Dterm低通滤波功能,如无特殊需求建议关闭
USE_OSD //启用OSD功能,若无OSD芯片则建议关闭
USE_OSD_OVER_MSP_DISPLAYPORT //允许OSD通过MSP显示到外接OLED上,可以禁用
USE_OSD_ADJUSTMENTS //启用OSD飞行中实时调试功能
USE_OSD_PROFILES //启用OSD多页面功能
USE_OSD_STICK_OVERLAY //在OSD内显示摇杆位置
USE_SENSOR_NAMES //使用自定义传感器名称
USE_SIGNATURE //使用电子签名,可以关闭
USE_ESCSERIAL_SIMONK //允许通过串口为SIMONK电调进行刷写操作
USE_CMS_FAILSAFE_MENU //当Failsafe触发时显示FAILSAFE菜单,可以开启
USE_TELEMETRY_SENSORS_DISABLED_DETAILS //允许在飞行统计数据上显示回传传感器信息,保持默认即可

Typecho出现数据库错误

January 17, 2019 分类:随便写写

前几天突然发现我的树莓派数据库服务器挂了,想来是多次插拔移动硬盘导致意外重启,损坏了文件,表现为数据库无法运行,后来扒日志修复了。今天又突然发现租用的数据库也报错了,但查看数据库运行良好。想起来运营商发的邮件来,他们更新了管理套件相应的也会更新服务器环境。登陆phpadmin查看,是比较新的php7.1,数据库扩展有了变化,修改config.nic文件里的$db = new Typecho_Db('Mysql', 'xx_');为“$db = new Typecho_Db('Pdo_Mysql', 'xx_'); 就好了。基本上遇到问题都不必惊慌,查log和搜索总能解决的。当然了,定时备份总没有坏处。

我的GIGABYTE Brix BLPD-5005折腾记录

December 17, 2018 分类:随便写写

早买早享受,晚买真特么便宜。899元入手了技嘉Brix BLPD-5005,J东PLUS会员849元。大陆版不含INTEL AC3168无线网卡,尽管卖家送了一个2.4G的单频网卡,但是怎么够用呢,2.4G严重污染的今天我宁可它只支持5.8G。所以又淘宝了一个intel 9260AC A+E Key,结果只能识别到蓝牙。被服务员误导了,见图

Screenshot_20181216-161435.png

实际等我收到机器发现:

IMG_20181216_165227730.jpg

不得不重新购入9560AC,KEY E接口。满网找不到这款机器的使用分享,也没主板接口图,这也是我写这篇文的原因。目前看来在支持CNVI的主板上还是要选9560,不要选9260. 9560和9260区别是硬件接口不同,一个ekey 一个ae key,技术方面9560是cnvi技术,而9260则不是,其它参数则完全一致。难道cnvi是不向下兼容的吗?还是只限于9260这款不兼容呢?毕竟有一个完全相同规格的9560? 如果你知道请告知。迫击炮9260ac只有蓝牙intel9560ac兼容的平台

在闲鱼买到两条戴尔机器升级换下来的4G镁光DDR2666(淘宝的低价镁光倒不都是假货但是双面的老产品);HP EX900 256G Nvme券后价259块,不买对不起卖家。

IMG_20181216_122402113.jpg

总体上,除了WIFI CARD出了岔子,整个采购过程还是比较满意的~ 卖家也都没有因为做活动而发用过的产品(ORZ,以前买过一个京东自营的飞利浦空气炸锅,显示最后一台,结果东西被用过。所以我遇到京东自营搞大幅活动而且最后一台的情况都是忽略,换货倒是爽快的。这也是二手东一个特色吧。)

IMG_20181215_112940662.jpg


如果你查看技嘉官方网站无论国际版还是国内版,都会得到这样的参数:

平台最大支持8G内存,固态硬盘支持 M.2 slot (2280_storage) PCIe X2/SATA
WIFI卡支持 PCIe M.2 NGFF 2230 A-E key slot occupied by the WiFi+BT card

而实际上它不仅支持Nvme SSD也支持更快的E KEY Intel 9560ac。关于内存,我没测试,记得某个淘宝店说过16G没问题。但,你得先更新BIOS。官网产品页下载: 官网

下载下来解压缩得到F3_BIOS文件夹,把它放到你的U盘里,以防万一使用FAT32格式分区。由于此时我的硬盘是空的,开机会自动引导到自带的SHELL下,像是这样SHELL>,而在它的上方会显示你插入的U盘盘符,如图,我的被识别为fs0(数字零不是字母欧).

IMG_20181215_132813628.jpg

在SHELL>下输入fs0:回车,然后进入F3_BIOS文件夹(cd空格F3_BIOS回车),再输入FLASH.NSH回车就开始刷新BIOS了,此刻不要乱动,它大概需要几分钟的时间,直到自动重启就代表成功了(它开机本来就慢所以重启黑屏几秒别害怕)。如图(可能比你的多了几个文件同,那是我干的,不用理会,当时想用界面模式刷新,但是明显这个办法更快捷方便):

IMG_20181215_132857365.jpg

IMG_20181215_132916774.jpg

这个BIOS没有特别需要设置的,这时可以愉快地做系统了。

等等,如果你想挑战一下手动分区,然后用DISM++加载镜像做系统的话,可能不会那么的愉快,但我会在下一篇详细写出。

如何用diskpart为win10分区并使用DISM++装系统

December 17, 2018 分类:随便写写

*这一篇可以作为上一篇的续集也可以单独阅读。
如果你有一个单独的WIN10系统优盘请忽略,因为你选择安装盘的时候它会自动为你划分分区。如果你有一个国产的PE优盘,也可以用图形界面的磁盘工具分区。而如果你就是喜欢命令行,可以像我一样。我是出于对国产PE的不信任,做了一个微软官方的PE优盘,它是不带传统桌面的,启动完毕只有一个SHELL窗口,但却可以运行DISM++这种图形界面的软件,包括技嘉的BIOS刷新工具图形版。也许有时间我会做一个自己的带桌面的PE优盘。那现在就先这样吧。*

在shell下直接输入diskpart回车,就可以运行diskpart。你也可以从国产pe的开始菜单里打开shell窗口。

diskpart>

一个win10的分区基本上如下图所示,有点linux分区的意思了。所以也不要怀疑给SSD分区会不会降低磁盘性能,你看,win10本来就是多分区的。你只需要保证分区4K对齐就行了。

dep-win10-partitions-uefi.png

<1> EFI分区,又叫系统分区(System)或ESP,它最小要求机械盘100M,而固态要求最小是260M,必须为fat32格式(fat32分区要求必须至少包含65527个簇,原生4K盘,每簇按4K,4K*65527=256MB). 这东西大了用处不大。

<2> 随后的MSR分区称作微软保留空间它是16M,在win10看不见但你用diskpart可以看到。

<3> 然后是windows分区,随后你可以分一个自己的DATA分区.建议不分区,另外的D盘实在想要可以在win下磁盘管理“压缩卷”分出来。

<4> 最后是恢复分区recovery简称RE。

如果你不关心这些,那直接输命令吧。每输完一行是需要回车的,如遇错误请仔细检查字母,另外windows不区分大小写。

假设你已经运行了diskpart,得到如下指示
diskpart>

你需要依次输入:

select disk 0 //也可以缩写为sel disk 0,只有一个主硬盘的情况下就是数字0,不放心可以打list disk确认盘号

convert gpt //把此磁盘设定为GPT分区表

create partition efi size=260 //创建了一个EFI分区,大小为260M.

format quick fs=fat32 label="System" //格式化了刚创建的EFI,格式为FAT32。卷标System

assign letter="S" //设定盘符为S

create partition msr size=16 //创建了微软保留分区,大小16M

create partition primary //创建了一个之后会成为C盘的主分区

shrink minimum=500 //为最后的recovery区留500M,也可以加大比如1G.或者你想多分一个区的话,这个数字将是硬盘总大小减去你想为C盘准备的大小的数值,比如我的256G-100=156,156*1000=160000,输入minimum=160000

format quick fs=ntfs label="Windows" //快速格式化它为ntfs分区,卷标Windows

assign letter="W" //后面重启电脑会自动分配它为C盘。

如果你想多分一个区开始:
==========================可选分区开始
create partition primary //这一行是选择性的,如果你不要D盘这行就不要输

shrink minimum=500 //为最后一个区准备500M或者更大,如果不要D盘不要输因为上面输过了

format quick fs=ntfs label="Data" //你可以自己命名,就是D盘卷标。如果不要不要输

assign letter="D" //你要的D盘结束了
==========================可选分区结束

create partition primary //创建了一个即将成为RE分区的主分区

format quick fs=ntfs label="Recovery tools" //快速格式化了RE分区并分配卷标

assign letter="R" //分配盘符

set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac" //RE必须的ID,要不然它只是普通分区

gpt attributes=0x8000000000000001 //标记为不让系统给它分配盘符

list volume //回车,显示卷列表

exit //回车,退出

分区结束,重启电脑,让盘符C正确识别出来。不重启也可以,自己控制。

现在可以愉快地装系统了。 使用DISM++安装系统


如果你连DISM++都不想用,那就用命令行的DISM来,微软官方:用DISM命令行安装系统

假设在命令行x:\windows\system32>

输入命令
Dism /apply-image /imagefile:"N:\Images\my-windows-partition.wim" /index:1 /ApplyDir:C:\
//注意N:的部分修改成你自己的wim文件路径,就是从系统镜像ISO中提取出的install.wim,最后的C:如果你没重启应该改为上面我们设置的w:,如不确定可以用diskpart查看list partition

这样无法引导,需要在EFI建立基本的引导:进入刚才dism apply-image安装好的windows文件夹,假设进入c:\windows\system32

c:\windows\system32>bcdboot C:\Windows /l zh-cn 此时已经可以引导了,重启电脑就可以等待系统初始化完成了

延申设置:更进一步设置RE分区


引用:

  1. 微软官方DISKPART为WIN10分区的链接

How to use arduino UNO Flash BLHELI to a turnigy plush 18a esc

July 10, 2017 分类:随便写写

I wish I had pc programming skills, then I could reprogram my brushless ESCs to the brushed ESCs.
After I flashed a mod hex of an older plush 30a ESC(with the different MCU. https://launchpad.net/brushed) to my plush 18a but failed.

In order to save my poor ESC, I used BLHELISuite to do this:
Open BlheliSuite, "Make interfaces", make "Arduino 4way-interface", for "SiLabs C2" interface.

Then select "Interfaces" to " SiLabs C2(4way-IF)

Use 3 wires to connect between UNO and ESC, owsilprog-arduino-uno-scheme-02-wp.jpg
Turnigy Plush 25A_30A front.jpg

Then the ESC can be rewritten.
There is a little trick with wire connect, just connect the black wire to GND pin on ESC cable.