Problem with powering Jetson Nano with 5V, 3A pins from the J41 expansion headers

Hello, I’m working with a Jetson Nano 4GB, jetpack 4.6.2 on a Turtlebot3 robot. When I power the Jetson nanos with the micro B USB charger, everything works fine. For using it on the robots, I’m powering it by stepping down the 12V power from an OpenCR board to 5V using these buck converters, and then plugging in two 5V, 3A dupont wires into the J41 pins 2, and 4 to provide 5V at 6A (30W). Both robots use a realsense D435i camera plugged into the Jetson Nano via USB, and I expect to get images in ROS2 by using SSH to connect my computer to the jetsons and running a script while I run the robots. I make sure to measure the voltage coming out at the dupont wires going into the J41 pins to make sure they’re 5V and the voltage isn’t dropping from the step-down converter to the end of the dupont wires. For some reason, this setup works on one of the robots, but not the other.

The only difference between the two robots is that the one that does work uses an m.2 WiFi antenna, and the one that doesn’t uses this WiFi dongle plugged into the USB port, where I tried looking, but can’t find any datasheet for its power consumption.

There are varying degrees of issues I’m running into the robot using the WiFi dongle, which are explained below:

  • Using the 12V 5A SMPS to power the OpenCR board, the nano turns on but seems to have insufficient performance for my tasks:
    • I constantly get the error message “System throttled due to Over-current” when I’m connecting the Jetson to a screen with HDMI. When turning on, I also noticed a lot of soctherm: OC ALARM 0x00000001 errors on bootup.
    • When I run a script which uses the D435i camera with a ROS2 node, a certain topic that publishes the IMU is at a lower frequency than it should be. It should be at 400Hz, but publishes at around 165-200Hz
  • When using the 11.1V 1800mAh battery to power the OpenCR, the green light on the nano stays on but it doesn’t seem to turn on (using HDMI, it doesn’t turn on), and ssh won’t work
    • soctherm: OC ALARM 0x00000001 constantly seen in bootup screen before seemingly not turning on (despite green light still being on)

For the robot that works, I can just plug in the battery, boot it up, and run everything fine (such as the IMU being published at 400Hz as I mentioned above).

From here, I tried using jtop to get the stats on the voltage and current on the board, and increased the voltage coming out of the buck converter (as shown in rows 3-4), and summarized results in the table below. The script is what runs the realsense camera in ROS2 to collect data. All used power mode at 10W (MAXN). When connecting to HDMI, the peripherals I connected to are: WiFi dongle, realsense d435i, keyboard, and mouse (although I assume the last 2 have trivial power consumption)

| Power Source    | Script Running? | Volt (multimeter)     | Volt (jtop) | POM_5V_IN | POM_5V_CPU | Current   | IMU frequency |
|-----------------|-----------------|-----------------------|-------------|-----------|------------|-----------|---------------|
| OpenCR via SMPS | No              | 5.08-5.10 (both pins) | 4.5-4.6V    | 2.4-2.5W  | 603-677mW  | 502-520mA | N/A           |
| OpenCR via SMPS | Yes             | 5.08-5.10 (both pins) | 4.5-4.6V    | 3.4W      | 1.4W       | 768-880mA | 165-200Hz     |
| OpenCR via SMPS | No              | 5.25V (both pins)     | 4.7-4.8V    | 2.4-2.5W  | 603-677mW  | 502-520mA | N/A           |
| OpenCR via SMPS | Yes             | 5.25V (both pins)     | 4.7-4.8V    | 3.1-3.7W  | 1.1-1.8W   | 712-800mA | 380-400Hz     |
  • Noting that voltage could be increased to 5.25V from here, I adjusted the buck converter to reach that amount and tried again (bottom two rows), and note that IMU frequencies are essentially where I want them to be
  • Other tendencies: I noticed better performance when removing the WiFi dongle. It also increased the IMU frequency before I increased the voltage to 5.25V.
  • These tests are from running in the GUI with an HDMI, but I also noticed the voltage given from jtop dropped to about 4.5V when connecting via SSH and running the scripts
  • As reference, for the robot that works, I couldn’t use jtop but I used the command sudo cat /sys/bus/i2c/drivers/ina3221x/6-0040/iio:device0/in_voltage0_input and voltage was around 4.9V, from SSH, using a battery. The measurement at the end of the dupont wires were about 5V, so there wasn’t a large discrepancy in voltage between the multimeter measurements and what the board shows. I also used the same command above for the robot that doesn’t work, and voltage is similar to what jtop returns.
  • Even with the improved performance by increasing voltage, I still get the “System throttled due to Over-current” message constantly in the GUI.

From above, increasing voltage works well when powering the OpenCR board with SMPS, but once I use the 11.1V battery, it doesn’t work. It measures around 5.15V at the end of the dupont wires (compared to 5.25V when using SMPS). When I connected to HDMI, it would constantly show soctherm: OC ALARM 0x00000001 constantly seen in the bootup screen, then the screen goes black, but the Jetson Nano is apparently still on because its green LED is still on. I’ve tried booting up multiple times and only got it to successfully boot up once, where after I connected via SSH and tried to run the script, it completely turned off the Jetson (green LED flashed before going off).

Other than the above, I test using the micro-B USB, and everything works completely fine, as it shows 4.9V constantly and IMU frequency is 400Hz all the time. I wanted to know if there’s any advice to proceed. Considering the extra power needed from the WiFi dongle and slightly less voltage coming from the battery, I was thinking of increasing the voltage coming out of the buck converter even more, but I don’t think that would be safe. As mentioned, the only difference between the robots that work/doesn’t work is the WiFi dongle, and that the wires going into the buck converter for the working robot are thicker (I noticed from answers like here, thicker wires may provide a more stable power source). Sorry if this is a long post as I’m relatively new to working with this board and managing all the wiring and peripherals appropriately. I also wanted to know if using a battery to the 5V-4A barrel jack could be a solution.

EDIT 1: I realize when I turned up the voltage to 5.40V, performance actually did improve on battery power: I can successfully SSH to it, run the script, and get reasonable IMU frequency around 360-380Hz. When I checked jtop, it said power was coming in at 4.9V. I was wondering if I could proceed with this, or if this is dangerous and could damage the board? I’m thinking jtop is giving the reliable values of voltage and current, but I don’t want to pursue this further until I know it’s safe to do so.

Dupont wires are not designed to carry large currents, and many prefabricated ones have very thin copper strands (or even copper-coated iron strands). You really should use the barrel connector to power your system. Use 0.5mm^2 or better cables for power supplies.

fchk

1 Like

Hi, please try DC Jack supply. If that works well, then it is your power supply issue thru J41 pins. Usually, the normal way of power supply should be DC Jack or USB, not the J41 pins.

1 Like

Hello Trumany, thank you for your reply,

Do you have any recommended 5V-4A batteries/battery holders for a mobile robot? I looked at the power supply list and from NVIDIA’s internally verified 3rd party components list, all the power supplies connect to an outlet.

From the forums, I mostly see recommendations to use power banks, such as from here, where the first one is used on the jetbot, but only powers micro-USB. The second one can power the barrel-jack, but costs US$90 (about $129 in Canadian dollars), and I need to power multiple robots at once.

Best,

Hello fchkjwlsq, thank you for your reply.

I’m not experienced with wiring, but would 0.5m^2 correspond to 20AWG? And to safely connect them to the expansion headers, can I crimp them to dupont connectors?

Thanks,

Yes, 0.5mm^2 is about 20AWG.

Won’t work. The dupont connectors are not designed for these cables, and they won’t be able to carry the load either.
Use the round barrel connector. Example:

This plug is designed for 6 Amps. This is more than enough for the SODIMM style modules.

Thank you, I will take a look at this connector. From the looks of it, it looks difficult to solder. I could only find this link when trying to find out how to solder it and it’s difficult to see polarity.

Are there any recommendations for pre-soldered plugs that match these specs? For example, a quick search on amazon finds these at the same dimensions (2.1mmx5.5mm) and has it rated at 5V and was wondering if that was sufficient.

Thanks,

It’s fairly easy after you understand how it’s supposed to work.

The center hole is positive, the outer shell is negative.

Thanks, I’ll consider these as they seem like the cheapest options. If I were to consider pre-soldered ones, would I just need to check the rated voltage/current and the diameter sizes?

Of course, yes. The range of cable assemblies with this barrel plug size (OD=5.5mm, ID=2.1mm) ranges from 24AWG (very common) to 18 AWG (not so common).