Jetson Nano Low Power in C++ program


I have a C++ program that is running continuously. It doesn’t always need to be active so we thought a low power mode would be good. I think I have to use nvpmodel but I saw that nvpmodel only comes with two options on the Nano, which seems to be related to whether or not you use the micro-USB port or the barrel connector. I get that I can create my own config file, but two questions arise:

  1. In making the config file, I’m guessing I would just copy the PARAM DEFINITIONS and then make my own POWER_MODEL DEFINITIONS for my case. Is that correct?

  2. What is the lowest setting the Nano can still operate at? In my case, I will have a gui and 4 cameras open, but I’m not updating the gui or actively processing the camera frames. I am just waiting for a GPIO trigger so the only main process required is waiting on poll() for the sysfs file.

hello warpstar22,

the minimum power consumption of Nano is 5-watts by default.
you may customize nvpmodel configuration files to add a mode definition, please also refer to NVPModel clock configuration table from Supported Modes and Power Efficiency session.
you may still have some trials to reduce the power consumption for your use-case.

My Nano, driving a HDMI output, and with models loaded in RAM but not active, and in MAX-N mode, draws 2.8 Watts while not doing anything (software is in sleep() but the system is on.)

It draws more than that when it wakes up and actually does inference and I/O, but for me, that’s on a duty cycle that doesn’t change the average power draw much.

Actually, even when I change it to 5W power model, and turn off the fan, the power draw at idle doesn’t change much. The “low power mode” seems to be more about limiting the maximum power draw of the system (throttling when trying to exceed it) rather than reducing the amount of power used by an idle-but-on system.

1 Like