Something went wrong while trying to load the full version of this site. Try hard-refreshing this page to fix the error.

Can Oak-D-Lite Crash A Raspberry Pi 5?

cycob

While running an Oak-D-Lite, connected to a USB 3 port of a Raspberry Pi5, with depthai-ros "camera.launch.py" publishing an RGB video topic, a MobileNet or YOLO v4 neural net detections topic, and the stereo depth image topic, the Raspberry Pi5 drawing 9.5W on average, drops into a "Powered drawing 0.0 watts" state.

(The Raspberry Pi5 is powered from the USB C power & data port of a Create3 robot spec'd to provide 5v at 3A continuous - 15W.)

During the test, the processor (uptime) load is averaging around 2.0 with 1 minute load as high as 3.8 seen which prior Pi5 CPU load tests have shown to draw 4W for 2.0 load, and 7W at 4.0 load.

Before starting the test, the Pi5 is drawing 4.1W showing a 1m load of 0.1 to 0.37, and 15min ave of 0.16.

Looking at the Oak-D-Lite spec:

Power consumption

Standby: 0.6 W
Running depthai_demo.py: 4 W
Max consumption: 4.5 W

Occasional power spikes of 2W may occur when running videoEncoder and/or Neural Network. OAK-D-Lite can be also powered off of USB3.

Are those "2 W power spikes" included in the "Max consumption: 4.5W" figure?

I don't have a clue how to diagnose these Pi5 crashes.

Running YOLOv4 5W max from USB3 port:
[URL=https://i.imgur.com/uzXOtNb.jpg]

At the Pi5 supply 10.1W max:

Does it mean there is not a power problem if the crash left a core file?

I've been seeing a lot of core files since I started messin' with the Oak-D-Lite.

 file core
core: ELF 64-bit LSB core file, ARM aarch64, version 1 (SYSV), SVR4-style, from '/opt/ros/humble/lib/rclcpp_components/component_container --ros-args --log-leve', real uid: 1000, effective uid: 1000, real gid: 1000, effective gid: 1000, execfn: '/opt/ros/humble/lib/rclcpp_components/component_container', platform: 'aarch64'


cycob

jakaskerl use the (oak-y-adapter)

I hooked the Oak-D-Lite with the oak-y-adapter to a separate 5.1v 2A Pololu supply:

And the setup has not crashed the Pi5.

With this setup, the Oak-D-Lite camera still eventually after 6 minutes in this case has a problem and stops operating correctly:

---
header:
  stamp:
    sec: 1707756330
    nanosec: 103827855
  frame_id: ''
status:
- level: "\0"
  name: 'oak: sys_logger'
  message: System Information
  hardware_id: oak_184430101175A41200_OAK-D-LITE
  values:
  - key: System Information
    value: "System Information: \n  Leon CSS CPU Usage: 67.594\n  Leon MSS CPU Usage: 41.787\n Ddr Memory Usage: 183.537\n Ddr Memory Total: 334..."
---
header:
  stamp:
    sec: 1707756331
    nanosec: 103863193
  frame_id: ''
status:
- level: "\x02"
  name: 'oak: sys_logger'
  message: 'Communication exception - possible device error/misconfiguration. Original message ''Couldn''t read data from stream: ''sys_logger_...'
  hardware_id: oak_184430101175A41200_OAK-D-LITE
  values: []
---


pi@WaLiPi5:~/wali_pi5/c3ws $ cmds/launch_camera.sh 

  11:39:23 up  3:40,  0 users,  load average: 0.09, 0.14, 0.16
LAUNCHING OAK-D-LITE camera.launch.py WITH params/camera.yaml (mobilenet + RGBD)
ros2 launch depthai_ros_driver camera.launch.py camera_model:=OAK-D-LITE params_file:=/home/pi/wali_pi5/c3ws/params/camera.yaml

[INFO] [launch]: All log files can be found below /home/pi/wali_pi5/c3ws/roslogs/2024-02-12-11-39-24-323475-WaLiPi5-2031
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [component_container-1]: process started with pid [2045]
[component_container-1] [INFO] [1707755964.887633203] [oak_container]: Load Library: /opt/ros/humble/lib/librobot_state_publisher_node.so
[component_container-1] [INFO] [1707755964.891281628] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<robot_state_publisher::RobotStatePublisher>
[component_container-1] [INFO] [1707755964.891335684] [oak_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<robot_state_publisher::RobotStatePublisher>
[component_container-1] [INFO] [1707755964.916449382] [oak_state_publisher]: got segment oak
[component_container-1] [INFO] [1707755964.916538642] [oak_state_publisher]: got segment oak-d-base-frame
[component_container-1] [INFO] [1707755964.916550179] [oak_state_publisher]: got segment oak_left_camera_frame
[component_container-1] [INFO] [1707755964.916559567] [oak_state_publisher]: got segment oak_left_camera_optical_frame
[component_container-1] [INFO] [1707755964.916568364] [oak_state_publisher]: got segment oak_model_origin
[component_container-1] [INFO] [1707755964.916577938] [oak_state_publisher]: got segment oak_rgb_camera_frame
[component_container-1] [INFO] [1707755964.916586512] [oak_state_publisher]: got segment oak_rgb_camera_optical_frame
[component_container-1] [INFO] [1707755964.916594808] [oak_state_publisher]: got segment oak_right_camera_frame
[component_container-1] [INFO] [1707755964.916603679] [oak_state_publisher]: got segment oak_right_camera_optical_frame
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/oak_state_publisher' in container 'oak_container'
[component_container-1] [INFO] [1707755964.922364992] [oak_container]: Load Library: /home/pi/wali_pi5/dai_ws/install/depthai_ros_driver/lib/libdepthai_ros_driver.so
[component_container-1] [INFO] [1707755965.012236752] [oak_container]: Found class: rclcpp_components::NodeFactoryTemplate<depthai_ros_driver::Camera>
[component_container-1] [INFO] [1707755965.012310011] [oak_container]: Instantiate class: rclcpp_components::NodeFactoryTemplate<depthai_ros_driver::Camera>
[component_container-1] [INFO] [1707755965.037192839] [oak]: No ip/mxid specified, connecting to the next available device.
[component_container-1] [INFO] [1707755967.275190117] [oak]: Camera with MXID: 184430101175A41200 and Name: 3.1 connected!
[component_container-1] [INFO] [1707755967.276212394] [oak]: USB SPEED: SUPER
[component_container-1] [INFO] [1707755967.297594816] [oak]: Device type: OAK-D-LITE
[component_container-1] [INFO] [1707755967.300376538] [oak]: Pipeline type: RGBD
[component_container-1] [INFO] [1707755967.416167995] [oak]: NN Family: mobilenet
[component_container-1] [INFO] [1707755967.501130792] [oak]: NN input size: 300 x 300. Resizing input image in case of different dimensions.
[component_container-1] [INFO] [1707755967.576460739] [oak]: Finished setting up pipeline.
[component_container-1] [INFO] [1707755968.165226098] [oak]: Camera ready!
[INFO] [launch_ros.actions.load_composable_nodes]: Loaded node '/oak' in container '/oak_container'

OPERATING CORRECTLY FOR 6 MINUTES THEN ...

[component_container-1] [ERROR] [1707756331.103732396] [oak]: No data on logger queue!
[component_container-1] [ERROR] [1707756331.104188378] [oak]: Camera diagnostics error: Communication exception - possible device error/misconfiguration. Original message 'Couldn't read data from stream: 'sys_logger_queue' (X_LINK_ERROR)'

jakaskerl

Hi @cycob
Could you try running some depthai examples without ROS? It does still look like a power issue though, but might be ROS related.

Thanks,
Jaka


kneave

I don't have a solution to your problem but saw similar with the FFC-3P and a Pi 5, a separate 5v source made all the difference there at least.

I'd also suggest checking the output of dmesg to see if any hardware events have occurred. You've not mentioned if you're using an active cooler on the Pi5 as they can get very hot under load, I've had that problem too when a wire stopped the fan spinning and the whole thing shut down. dmesg should give you a hint there though.


cycob

kneave @jakaskerl

suggest checking the output of dmesg to see if any hardware events have occurred. You've not mentioned if you're using an active cooler on the Pi5 as they can get very hot under load,

Checked that - the problem is it gets overwritten by boot so the crashes remain mysterious. The last vcgencmd throttling before the crash was all zeros so no temp, no power issues reported prior to blinking out.

It is looking like separate supply is the key to reliably using the Oak-D-Lite on the Pi5 (with a 3A USB-C supply such as the Create3).

I ran depthai examples for several hours and my depthai-ros full up (even with RTABmap) for an extended period, drawing 3.25W at the camera, with no crashes. There was an occasional "lost message" and some "sync status" issues reported in /diagnostics, but the camera, MobileNet, and depth appeared be working (somewhat - I don't know enough to know how well yet).

The USB-C plug connections to the oak-y-adapter and the oak-y-adapter into the Oak-D-Lite do not give a "solid connection" feeling, and perhaps my success today is due to unplug/replugging all the connections.

BTW, my supply voltage is varying between 5.14v and 5.09v depending on load. I used a really serious USB-C Power Delivery cable (no data wires) from the supply to the Oak-D-Lite which appears to be holding the voltage well under load.

I'm calling this issue solved by separating the power supply.


kneave

Ah, didn't realise it was fully rebooting! Running this should dump everything to a file in that case which you could check after reboot:

dmesg --follow > mydmesg.log

Sounds like power is the culprit but thought I'd put that here in case it helps 🙂