BNO086 I2C 模块测试源码 V1.7

本包是 CYD ESP32-2432S028R + ST7789 的测试源码快照，固件标识
BNO086_MODULE_TEST_V1.7。默认构建环境为 cyd_st7789；cyd_ili9341 仅作备用。
程序上电创建独立 AUTO 会话；AUTO 标签不是芯片唯一序列号。
人工 START 标签会结束当前 AUTO，再建立独立会话；不同会话不得合并结论。

内容：src 三个源文件、platformio.ini、模块日志采集.py、必要项目内依赖与原许可证。
未包含 Flash 备份、预编译固件、构建缓存、串口实测日志、个人路径或本机配置。
项目源码和依赖从本次快照逐文件原样复制；配套本说明为公开版新增文件。

构建（只编译）：
安装 PlatformIO Core 后，在本包根目录执行：
    pio run -e cyd_st7789
platformio.ini 固定 espressif32 6.13.0 / Arduino-ESP32 2.0.17；初次构建需具备相应工具链。
本公开包已核验复制哈希和ZIP完整性；不声称对本包重新编译或执行过硬件测试。

日志工具：Python 3 + pyserial 3.5。
    python -m pip install -r requirements.txt
    python 模块日志采集.py --list-ports
人工核对目标板和端口后，替换下面的 COMx 与 M001：
    python 模块日志采集.py --port COMx --module M001 --output ./logs
采集工具不自动选择端口、不刷写。先核对固件身份，再输入 start。
开新轮后静置20秒，按工具/程序 READY 提示逐轴 x/y/z；流观察至少60秒，再 finish、quit。
未收到FINISH的轮次要标记未完整收尾。每块模块独立贴签、断电换接、新建记录。

接线配置和边界见“接线与使用范围.txt”。本包未包含FZZ。网站已接入修正后的六线软件映射；GPIO19实体焊脚及实物接线仍待确认。
所有端口与文件位置必须由使用者明确指定；本包不包含特定用户设备或数据。

新版官方说明与源码注释：本项目V1.7采用INT配合读取，当前所含SparkFun适配库按INT/RST方式工作。
CEVA《BNO08X Datasheet》v1.17已更新早期轮询说明，不能把本项目实现写成芯片的一般轮询限制。
src/main.cpp内“BNO086 does not support I2C polling without INT”是保留的历史注释，
不作为通用芯片能力结论；该注释应按新版官方资料理解。本包不修改V1.7源代码或程序行为。
后续由固件负责人纠正源注释后，应重新打包并更新主源码SHA-256。

测试范围：I2C通信、持续数据与静置/运动粗测。OBSERVED不是计量或全性能认证。
已有项目记录含REVIEW/INCOMPLETE，不能把当前示例写为三只模块全部正常/全部通过。
精选实测视频仅展示其中一只模块的连续拿起、转动、放回及屏幕响应。
本包不包含视频，不把其他固件版本/会话的日志数字叠加到该视频。

第三方源码及许可证见THIRD_PARTY_NOTICES.txt。保留原始版权和许可证文字。
本包不为项目原创源码另行指定未授权的新许可证。


网站补充说明（2026-10-04）
SAMPLE.g_dps 和屏幕角速度为°/s；STILL_RESULT.gyro_norm_peak_rads 与 MOTION_RESULT.axis_gyro_peak_rads 为rad/s。
最新软件图六线已修正为SDA27/SCL22/INT35/RST19，与V1.7一致；六端点六线重开验证通过。GPIO19/RST实体焊脚未确认；GPIO35/INT有背面P3位置证据，但前视虚拟点不是焊点坐标。软件修正没有验证实际接线。
V1.7 run7012DC1D-0001流68.390秒零通信/报告序列异常，静置COARSE_WINDOW，三轴NOT_RUN、overall INCOMPLETE。最后run4B9E7573-0001为20.475秒快照，静置REVIEW、overall REVIEW、三轴未做且未FINISH。完整阶段和计量性能均不能写为通过。

本网站继续使用原统一V1.7源码ZIP，未重新打包；ZIP内关于FZZ待核的说明是打包时状态，当前软件映射以网页及配套逻辑映射为准。

网站补充：首次运行与LCD（2026-10-05）
推荐唯一组合：CYD ESP32-2432S028R / ST7789，V1.7，cyd_st7789。解压后打开BNO086_I2C_Test_V1.7这一层，直接含platformio.ini、src、lib。VS Code安装PlatformIO IDE后打开此文件夹，在cyd_st7789/General/Build编译；pio run -e cyd_st7789。核物理目标COM、关闭端口占用后，用户自行pio run -e cyd_st7789 --target upload --upload-port COMx（将COMx换为实际端口）。本次网页工作没有编译公开包、刷写或占串口。
包内SparkFun BNO08x 1.0.6修补副本、TFT_eSPI 2.5.43、U8g2_for_TFT_eSPI 1.7.0保留；平台espressif32 6.13.0 / Arduino-ESP32 2.0.17。
按同版背面照片丝印，CN1照片左到右GND/IO22/IO27/3V3；P3为GND/IO35/IO22/IO21，INT接IO35，IO21是背光。顺序只适用于该照片方向，不换成前视插头顺序。RST接已核电气身份的GPIO19，但本板实体TF焊点未确认，不能猜九触点。断电核六线，移除SD卡。
V1.7上电自动创建AUTO并采集。LCD A三轴m/s²含重力，G三轴°/s，RPY为融合朝向角度取整；Hz A/G/Q为最近约一秒有效更新率，Valid是累计报告数；LCD约500ms更新，与传感报告率不同。OLD代表未收到或500ms未有效更新；FINISH后保留结束画面，不能当作实时采集。
Still OK只表示静置粗测；XYZ -未做/O完成且满足窗口/!完成未满足；必须READY后串口启动运动阶段。TESTING只是活动中，没有把静置CHECK自动改成通过。程序没有LCD校准等级栏，没有显式交互校准或保存校准命令。
真实V1.txt 68.390秒通信指定异常0，但SH2估计时间诊断49/2/2另记非零，整体INCOMPLETE/XYZ未做；最后20.475秒摘要REVIEW，后续test_ms22956样本Valid1437/1112/1112，未收到FINISH。不把一次通信观察写成三只/全部功能通过。
日志工具必须显式指定 --output ./logs；如不能用python命令，可在Windows用py -3。先 --list-ports，再人工核目标端口；上传/监视/日志采集不能同时占同一串口。
详细逐项图解和排错见网站BNO086原页面；真实日志选摘与来源行号为网页单独附件，不改原统一ZIP。


## 2026-10-07 在线烧录更新

模块SKU01954；RST GPIO19采用用户确认的SKU02753 microSD Sniffer DAT0/DO引出，不插SD卡，不启用SD功能。源码ZIP保留V1.7原字节和历史说明。在线烧录复用已验证的ESP32 classic / 4MB / ST7789固件，四部分地址为0x1000、0x8000、0xE000、0x10000，完整合并镜像从0x0写入。网页先核SHA-256，写后核设备MD5；烧录覆盖原程序与分区，需自行备份。本次未连接或烧录实际板卡，完整XYZ仍未完成。
