You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Luxonis OAK-D S2 PoE:SDK构建的独立应用烧录问题求助

解决Luxonis OAK-D S2 PoE SDK应用烧录与DeviceBootloader冲突问题

核心冲突原因是:OakCamera()会自动完成设备连接、启动流程,占用设备资源;而dai.DeviceBootloader()要求设备处于未启动状态(UNBOOTED/BOOTLOADER/FLASH_BOOTED),二者无法同时操作设备。以下是两种可行解决方案:

方案1:直接用DepthAI API构建Pipeline(推荐)

绕过SDK的OakCamera()自动初始化逻辑,直接用底层API构建Pipeline,避免设备被提前占用,再通过Bootloader烧录:

import depthai as dai

# 1. 手动构建Pipeline(和SDK逻辑一致,但不触发设备连接)
pipeline = dai.Pipeline()

# 添加节点示例(根据你的SDK应用逻辑替换)
cam_rgb = pipeline.create(dai.node.ColorCamera)
cam_rgb.setBoardSocket(dai.CameraBoardSocket.CAM_A)
cam_rgb.setResolution(dai.ColorCameraProperties.SensorResolution.THE_1080_P)

xout_rgb = pipeline.create(dai.node.XLinkOut)
xout_rgb.setStreamName("rgb")
cam_rgb.video.link(xout_rgb.input)

# 2. 获取Bootloader并烧录
# 确保设备处于Bootloader模式(可通过断电重启或命令行工具触发)
bl = dai.DeviceBootloader.getFirstAvailableDevice()
# 烧录独立应用
bl.flash(bl.getFlashConfig(), pipeline)

方案2:基于SDK构建Pipeline后释放设备再烧录

如果必须用SDK的OakCamera()构建Pipeline,需确保完全释放设备资源后再调用Bootloader:

from depthai_sdk import OakCamera
import depthai as dai

# 1. 用SDK构建Pipeline,避免自动启动设备
with OakCamera(start=False) as oak:
    # 添加你的SDK组件逻辑
    color_cam = oak.create_camera("color", resolution="1080p")
    # 获取SDK生成的底层Pipeline
    pipeline = oak.pipeline

# 2. 手动将设备切换到Bootloader模式
# 方式1:断电重启设备
# 方式2:用命令行工具执行:luxonis-device-tool reboot bootloader

# 3. 执行烧录
bl = dai.DeviceBootloader.getFirstAvailableDevice()
bl.flash(bl.getFlashConfig(), pipeline)

关键注意事项

  • 烧录前必须确保设备处于Bootloader状态,若出现X_LINK_DEVICE_NOT_FOUND,优先检查设备是否在Bootloader模式下。
  • 禁止在OakCamera()的上下文(with块)内调用DeviceBootloader,必须等OakCamera完全释放资源后再操作。
  • SDK的OakCamera更适合实时调试运行,独立应用烧录建议直接用底层DepthAI API构建Pipeline,减少不必要的设备占用冲突。

内容的提问来源于stack exchange,提问作者Craftonix - AA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 03:58:25