Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jetson ORIN NX在M350上,通过E-PORT无法查看相机视频流 #190

Open
Flying-fat-sloth opened this issue Aug 1, 2024 · 7 comments

Comments

@Flying-fat-sloth
Copy link

你好,我们使用Jetson ORIN NX通过E-port连接了M350。
硬件连接方案为:
(1)E-port的串口通过USB-串口模块连接Jetson ORIN NX的USB接口
(2)Jetson ORIN NX和E-port的type-C接口使用双type-C头的线连接(Jetson ORIN NX的type-C口支持USB Device模式)
参考资料:
(1)官方指导手册
(2) 树莓派4B配置USB device RNDIS 和 BULK
(3)video stream not working in M3TD #180
目前的状态及问题:
(1)按照官方指导配置了所有信息,基于UART的功能都可以验证;
(2)配置了USB bulk,上述参考资料(2)最后给出的验证USB Bulk链路的程序,可以在我们的Jetson ORIN NX上自环收发,如下图
2
(3)基于PSDK中C++工程的nvidia_jetson示例程序, [c] Camera stream view sample - display the camera video stream,无法收到图像数据,现象与上述参考资料(3)描述相同,如下图:
1
通过在示例程序中添加调试输出,发现示例程序在我们选择 [c] Camera stream view sample - display the camera video stream后,程序不仅进行端口信息读取和初始化,还调用了hal_usb_bulk.c文件中的T_DjiReturnCode HalUsbBulk_ReadData(T_DjiUsbBulkHandle usbBulkHandle, uint8_t *buf, uint32_t len)函数,同时程序在 *realLen = read(((T_HalUsbBulkObj *) usbBulkHandle)->ep2, buf, len);
出错或停止。但是,这里的函数与BULK验证程序中几乎完全一致,在那个程序中正常,在这里却不好使。
(4)我们进一步配置编译了C++工程下的maniflod2示例程序,得到了几乎相同的结果。
请问我还能做些什么?或者还有什么环节没有按照要求实现。
谢谢!

@dji-dev
Copy link
Contributor

dji-dev commented Aug 1, 2024

Agent comment from Leon in Zendesk ticket #113494:

尊敬的开发者,

您好,感谢您联系DJI 大疆创新。

很抱歉为您带来不好的体验,请问一下您是否有检查过hal_usb_bulk.h中的配置与您的测试节点是否一致?
您可以使用DjiTest_LiveviewRunSample函数进一步验证,在DjiTest_FpvCameraStreamCallback或DjiTest_PayloadCameraStreamCallback中加入打印,看调用时是否会进入回调函数,如果没有进入回调函数,表明bulk链路还有问题。

感谢您对大疆产品的支持!祝您一切顺利!

Best Regards,
DJI 大疆创新SDK技术支持

°°°

@Flying-fat-sloth
Copy link
Author

您好,我仔细检查了hal_usb_bulk.h中的配置,与测试节点完全一致,且通过测试程序对bulk1和bulk2两个通道均进行了测试。对程序中多个函数进行了输出验证,发现程序成功注册了回调函数并创建了新的线程,但未调用(进入)回调函数,仍无法看到回传画面。
USB数据接收似乎被阻塞在hal_usb_bulk.c的HalUsbBulk_ReadData函数中,没有读到数据。
请问还有可能存在哪些问题?
如果bulk链路还有问题, 应当如何排查?
谢谢!

@dji-dev
Copy link
Contributor

dji-dev commented Aug 5, 2024

Agent comment from Leon in Zendesk ticket #113494:

尊敬的开发者,

您好,感谢您联系DJI 大疆创新。

您还可以检查下VID PID是否为0955 7020,这个有可能会导致异常,您的节点如果测试收发没问题,不排除是飞机硬件异常,您也可以寄回售后团队处检测:
https://repair.dji.com/cn/repair/index
另外请问下您是否有检查过妙算工程中的dji_sdk_config.h文件?看看配置是否有切换过来。您是否还有配置RNDIS?也可以用RNDIS来尝试看是否正常。

感谢您对大疆产品的支持!祝您一切顺利!

Best Regards,
DJI 大疆创新SDK技术支持

°°°

@Flying-fat-sloth
Copy link
Author

感谢帮助,我们已经可以顺利运行demo,看到回传视频了。
我们出现的问题在于必须使用Type-C的OTG线插在E-Port上,再通过USB-A===Type-C的线连接到Jetson ORIN NX的Type-C端口上。
使用双头Type-C直接连接E-Port和Jetson无法接收到数据。
以上,希望可以帮助到其他人。

@dji-dev
Copy link
Contributor

dji-dev commented Aug 6, 2024

Agent comment from Leon in Zendesk ticket #113494:

尊敬的开发者,

您好,感谢您联系DJI 大疆创新。

感谢您的反馈,我们会将您的问题记录,以便能够给更多开发者参考。

感谢您对大疆产品的支持!祝您一切顺利!

Best Regards,
DJI 大疆创新SDK技术支持

°°°

@MrLiuXiangzhen
Copy link

我也遇到了一样的问题,楼主最终是只换了线解决了吗,我用的老版本的NX没有TypeC接口,尝试用OTG中转E-Port也没有解决,PSDK的云台和相机其它功能都正常的

@mingren11
Copy link

我也遇到了同样的问题

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants