System information¶
This example shows how to get system information (memory usage, cpu usage and temperature) from the board.
Demo¶
Example script output
Ddr used / total - 0.13 / 414.80 MiB
Cmx used / total - 2.24 / 2.50 MiB
LeonCss heap used / total - 4.17 / 46.41 MiB
LeonMss heap used / total - 2.87 / 27.58 MiB
Chip temperature - average: 38.59, css: 39.81, mss: 37.71, upa: 38.65, dss: 38.18
Cpu usage - Leon CSS: 7.08%, Leon MSS: 1.48 %
----------------------------------------
Ddr used / total - 0.13 / 414.80 MiB
Cmx used / total - 2.24 / 2.50 MiB
LeonCss heap used / total - 4.17 / 46.41 MiB
LeonMss heap used / total - 2.87 / 27.58 MiB
Chip temperature - average: 38.59, css: 39.58, mss: 37.94, upa: 38.18, dss: 38.65
Cpu usage - Leon CSS: 1.55%, Leon MSS: 0.30 %
----------------------------------------
Ddr used / total - 0.13 / 414.80 MiB
Cmx used / total - 2.24 / 2.50 MiB
LeonCss heap used / total - 4.17 / 46.41 MiB
LeonMss heap used / total - 2.87 / 27.58 MiB
Chip temperature - average: 38.94, css: 40.04, mss: 38.18, upa: 39.35, dss: 38.18
Cpu usage - Leon CSS: 0.56%, Leon MSS: 0.06 %
----------------------------------------
Ddr used / total - 0.13 / 414.80 MiB
Cmx used / total - 2.24 / 2.50 MiB
LeonCss heap used / total - 4.17 / 46.41 MiB
LeonMss heap used / total - 2.87 / 27.58 MiB
Chip temperature - average: 39.46, css: 40.28, mss: 38.88, upa: 39.81, dss: 38.88
Cpu usage - Leon CSS: 0.51%, Leon MSS: 0.06 %
----------------------------------------
upa
represents the temperature of the SHAVE blockdss
represents the temperature of the DDR subsystem
Setup¶
Please run the install script to download all required dependencies. Please note that this script must be ran from git context, so you have to download the depthai-python repository first and then run the script
git clone https://github.com/luxonis/depthai-python.git
cd depthai-python/examples
python3 install_requirements.py
For additional information, please follow installation guide
Source code¶
Also available on GitHub
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | #!/usr/bin/env python3 import cv2 import depthai as dai def printSystemInformation(info): m = 1024 * 1024 # MiB print(f"Ddr used / total - {info.ddrMemoryUsage.used / m:.2f} / {info.ddrMemoryUsage.total / m:.2f} MiB") print(f"Cmx used / total - {info.cmxMemoryUsage.used / m:.2f} / {info.cmxMemoryUsage.total / m:.2f} MiB") print(f"LeonCss heap used / total - {info.leonCssMemoryUsage.used / m:.2f} / {info.leonCssMemoryUsage.total / m:.2f} MiB") print(f"LeonMss heap used / total - {info.leonMssMemoryUsage.used / m:.2f} / {info.leonMssMemoryUsage.total / m:.2f} MiB") t = info.chipTemperature print(f"Chip temperature - average: {t.average:.2f}, css: {t.css:.2f}, mss: {t.mss:.2f}, upa: {t.upa:.2f}, dss: {t.dss:.2f}") print(f"Cpu usage - Leon CSS: {info.leonCssCpuUsage.average * 100:.2f}%, Leon MSS: {info.leonMssCpuUsage.average * 100:.2f} %") print("----------------------------------------") # Create pipeline pipeline = dai.Pipeline() # Define source and output sysLog = pipeline.create(dai.node.SystemLogger) linkOut = pipeline.create(dai.node.XLinkOut) linkOut.setStreamName("sysinfo") # Properties sysLog.setRate(1) # 1 Hz # Linking sysLog.out.link(linkOut.input) # Connect to device and start pipeline with dai.Device(pipeline) as device: # Output queue will be used to get the system info qSysInfo = device.getOutputQueue(name="sysinfo", maxSize=4, blocking=False) while True: sysInfo = qSysInfo.get() # Blocking call, will wait until a new data has arrived printSystemInformation(sysInfo) |
Also available on GitHub
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | #include <iostream> // Includes common necessary includes for development using depthai library #include "depthai/depthai.hpp" void printSystemInformation(dai::SystemInformation info) { printf("Ddr used / total - %.2f / %.2f MiB\n", info.ddrMemoryUsage.used / (1024.0f * 1024.0f), info.ddrMemoryUsage.total / (1024.0f * 1024.0f)); printf("Cmx used / total - %.2f / %.2f MiB\n", info.cmxMemoryUsage.used / (1024.0f * 1024.0f), info.cmxMemoryUsage.total / (1024.0f * 1024.0f)); printf("LeonCss heap used / total - %.2f / %.2f MiB\n", info.leonCssMemoryUsage.used / (1024.0f * 1024.0f), info.leonCssMemoryUsage.total / (1024.0f * 1024.0f)); printf("LeonMss heap used / total - %.2f / %.2f MiB\n", info.leonMssMemoryUsage.used / (1024.0f * 1024.0f), info.leonMssMemoryUsage.total / (1024.0f * 1024.0f)); const auto& t = info.chipTemperature; printf("Chip temperature - average: %.2f, css: %.2f, mss: %.2f, upa: %.2f, dss: %.2f\n", t.average, t.css, t.mss, t.upa, t.dss); printf("Cpu usage - Leon CSS: %.2f %%, Leon MSS: %.2f %%\n", info.leonCssCpuUsage.average * 100, info.leonMssCpuUsage.average * 100); printf("----------------------------------------\n"); } int main() { // Create pipeline dai::Pipeline pipeline; // Define source and output auto sysLog = pipeline.create<dai::node::SystemLogger>(); auto xout = pipeline.create<dai::node::XLinkOut>(); xout->setStreamName("sysinfo"); // Properties sysLog->setRate(1.0f); // 1 hz updates // Linking sysLog->out.link(xout->input); // Connect to device and start pipeline dai::Device device(pipeline); // Output queue will be used to get the system info auto qSysInfo = device.getOutputQueue("sysinfo", 4, false); while(true) { auto sysInfo = qSysInfo->get<dai::SystemInformation>(); printSystemInformation(*sysInfo); } return 0; } |
Got questions?
We’re always happy to help with code or other questions you might have.