案例

NJFE:用于电脑检查的 Soulear 相机协议桥接

在 ESP32-C3 桥接器与 Python 电脑查看器中复用 otoscope 经逆向得到的 i4season/Soulear 协议。作者将实现归功于 Claude Code 辅助,报告把一台 Hopefox Find T 的视频传到 Windows 电脑,并提供录像、方向调整及 LED 控制。

使用条件与局限

  • 输入是相机的 Wi-Fi i4season/Soulear UDP 流量。ESP32-C3 SuperMini 配合文档所列的 0.42 英寸、72×40 SSD1306 OLED,重组 JPEG 帧,并通过自定义 USB CDC 串口将图像与加速度计元数据送入项目提供的 Python 查看器。输出不是 UVC 摄像头接口;文档将相机自身的 USB 口描述为仅供充电。项目没有恢复厂商相机固件或完整配套应用源码。
  • 文档中的构建使用 PlatformIO espressif32 6.11.0、Arduino core 2.0.17 和 U8g2 ^2.35.30。电脑工具需要带 Tkinter 的 Python,以及 pyserial >=3.5、opencv-python >=4.8、NumPy >=1.24、Pillow >=12.3.0。项目报告在 Windows 上测试;这并不确立对所有桌面系统或外观相似耳镜相机的支持。
  • README 与 NOTICE 将数据包格式、命令、帧组装及加速度计/旋转逻辑归功于 rubec 的 rbeilvert/otoscope;该项目说明其逆向了 Soulear 的 libWifiCamera.so。NJFE 报告使用 Claude Code 辅助研究、实现、工具和文档,人类提供硬件、作出决策并进行真机测试。这不代表 Claude 首次发现协议,也不确立 REA 参与;NJFE 未固定其借用的 otoscope 具体修订版本。
  • 作者报告仅测试一台固件为 HKV41B 的 Hopefox Find T,获得 480×480 JPEG、约 17 fps,并支持拍照、MJPG AVI 录像、旋转和 LED 控制。公开查看器的 --test N 模式接收并解码 N 个实时帧,保存最后一张图像并输出帧率,需连接硬件。所审阅源码树没有单独的离线一致性测试样例集。这些报告与源码中的帧检查不确立完整协议兼容性;本合集未运行工具或复现硬件结果。
  • 相机网络仍然开放且未经认证。SECURITY.md 说明桥接器接收 UDP 流量时不验证来源,可能收到注入的图像或回复;串口访问被视为可信,录像以未加密形式保存。本地 USB 桥接没有消除这些相机网络限制。项目将其定位为检查工具,而非用于诊断或治疗的医疗器械。
  • NJFE 在 README、NOTICE 和 REUSE 元数据中声明 GPL-3.0-or-later,并标明协议代码及姿态角计算派生自 GPL otoscope。第三方构建/运行时库保留各自许可证。公开源码审阅不授予厂商软件或图像的使用权;本次未使用专有应用、固件二进制、图像采集数据、设备或上游运行环境。

关于此条目

类型
案例
类别
独立重建案例
关联
独立重建项目
目标
协议

来源复核于

说明已依据一手来源复核;这不代表已运行验证、经过安全审计或确认兼容。

一手来源

  1. https://github.com/WildweaselMS/NJFE/blob/992866c6609f8c813f459ff79840cf04d5883f8e/README.md
  2. https://github.com/WildweaselMS/NJFE/blob/992866c6609f8c813f459ff79840cf04d5883f8e/NOTICE
  3. https://github.com/WildweaselMS/NJFE/blob/992866c6609f8c813f459ff79840cf04d5883f8e/REUSE.toml
  4. https://github.com/WildweaselMS/NJFE/blob/992866c6609f8c813f459ff79840cf04d5883f8e/LICENSE
  5. https://github.com/WildweaselMS/NJFE/blob/992866c6609f8c813f459ff79840cf04d5883f8e/SECURITY.md
  6. https://github.com/WildweaselMS/NJFE/blob/992866c6609f8c813f459ff79840cf04d5883f8e/wifi_scanner/platformio.ini
  7. https://github.com/WildweaselMS/NJFE/blob/992866c6609f8c813f459ff79840cf04d5883f8e/wifi_scanner/tools/requirements.txt
  8. https://github.com/WildweaselMS/NJFE/blob/992866c6609f8c813f459ff79840cf04d5883f8e/wifi_scanner/src_i4season/main.cpp
  9. https://github.com/WildweaselMS/NJFE/blob/992866c6609f8c813f459ff79840cf04d5883f8e/wifi_scanner/tools/viewer.py
  10. https://github.com/WildweaselMS/NJFE/blob/992866c6609f8c813f459ff79840cf04d5883f8e/wifi_scanner/tools/gui.py
  11. https://github.com/rbeilvert/otoscope/blob/d14ac8e368854146ded4f3347614a24539e6696a/README.md
  12. https://github.com/rbeilvert/otoscope/blob/d14ac8e368854146ded4f3347614a24539e6696a/app/src/main/kotlin/dev/rubec/otoscope/stream/i4season/I4seasonProtocol.kt
  13. https://github.com/rbeilvert/otoscope/blob/d14ac8e368854146ded4f3347614a24539e6696a/app/src/main/kotlin/dev/rubec/otoscope/stream/i4season/FrameAssembler.kt