Can't power the Nano 33 IoT via 5v Buck into VIN pin - headscratcher

Hello,

I've been going in circles trying to figure this out and it's just gotten more confusing. I'm trying to figure out how to power the Nano 33 IoT and an LED strip via a buck converter from a LiPo battery.

Here's the setup:

  • 10s LiPo battery (42V max, 30V min voltage)
  • Pololu D36V28F5 5V, 3.2A Step-Down Voltage Regulator - accepts 50V max, outputs steady 5V (3.2A max)
  • Nano 33 Iot
  • Individually addressable APA102 LED strip, only 7 pixels (less than 1A), takes 5V input
  • Both the Nano and the LED strip take power and ground directly from the pololu converter's output (that was the main intended advantage of this setup). LED strip gets SPI clock and data from the Nano hardware clock and data pins (11, 13).

Here's the behavior I'm seeing:

Test 1: When powering both the Nano 33 IoT (via the main micro usb port) and the LED strip (power from the Nano's VIN, ground from Nano's ground) from a laptop's usb port, everything works as expected. Running an example script (moving rainbow) works perfect.

Test 2: When powering both the Nano 33 IoT (via the main micro usb port) and the LED strip (power from the Nano's 5V out, ground from Nano's ground) from a laptop's usb port, no LEDs on the strip light up at all. Nano's onboard lights work fine.

Test 3: When powering the Nano 33 IoT (via the main micro usb port) from a laptop's usb port, and the LED strip from the power regulator, no LEDs on the strip light up at all. Nano's onboard lights work fine.

Test 4: When powering both the Nano 33 IoT (via the VIN pin) and the LED strip from the power converter, I get a jumpy, frozen rainbow. Touching almost any wire can affect the lighting behavior. I assumed it was a grounding issue, but.. everything is grounded to everything else. The Nano and the LED strip share a ground - that's usually the problem.

Test 5: When powering both the Nano 33 IoT (input into the 5V out pin) and the LED strip from the power converter, no lights at all.

Test 6:When powering both the Nano 33 IoT (via the micro usb port) and the LED strip from the power converter, I get a frozen LED strip rainbow, no updates/movement. Nano's onboard lights work fine.

Test 7: When powering the Nano 33 IoT (input into the 3V3 out pin) and the LED strip from the power converter, everything works perfectly! But this seems like a terrible idea. I'm surprised it hasn't damaged something already.

Using a multimeter, the output at the power converter leads (that plug into the breadboard with the Nano) is a steady 5.1V.

Its possible this is entirely an issue with the SPI clock and data signals to the LED strip, but I don't know why that is, or why the power source affects it.

Any help would be much appreciated!
Thanks

Hi, welcome to the forum.

Pololu has nice and good quality modules.
Arduino Nano 33 IoT: https://store.arduino.cc/arduino-nano-33-iot, there is a schematic.

You should have asked us sooner, because the Arduino Nano 33 IoT has no 5V. Well, sort of.

Can you read the two paragraphs starting with: "To avoid such risk ..." on this page: https://www.arduino.cc/en/Guide/NANO33IoT

I suggest to not use the 5V pin of the Arduino board and not solder the bridge.
Power the board with 5V (from the Pololu module) to VIN. That is safe.
Power also the ledstrip with 5V (from the Pololu module).

You need some kind of level shifting from the output signal to the data_in of the ledstrip.

I will now try to read your long post...
The ledstrip might need: 7 pixels is 7 * 60mA = 420mA. That is no problem for that converter.
Test 1: The ledstrip runs at about 4.5V, so there is no problem with the signal voltage level.
Test 4 and 6: seems like a grounding issue or a signal voltage level issue.
Test 2 and 5: There is no 5V pin. Okay, there is a 5V pin, but that is not connected.
Test 7: o no :astonished: you put 5V on the 3V3 pin ! The horror ! Your Arduino board will be damaged if you have bad luck, or not if you have very good luck. The problem is that parts of the processor might be damaged and other parts might still work. The NINA module might be damaged. You will never know until you run into a problem.

Conclusion: Assume there is no 5V pin, make a good GND, amplify the signal to a 5V signal with a transistor or something else for the ledstrip.

Why not use a second buck converter and power via Vin. Vin Input voltage range to the Arduino is (7-12V). Be sure the grounds are connected and that the buck converters convert the + not the -.

Because the ledstrip needs 5V and the Arduino 33 IoT needs 5V to VIN to run.

Hint:
Vusb-diode-Vin

Did you read somewhere that the minimal voltage is 7V ? That would be wrong.

Yes, I've fully read the main Nano 33 IoT page. I understand the significance of the 33 in its name. I never intended to power the LED strip via the 5V out - it's much easier to power it directly from the buck, but obviously I'm having issues doing that.

At this pt, I'm just trying all options. If I burn something out, so be it, I'll replace it. That's part of learning.

Potentially, yes. Although I've read a few first hand accounts of the strip running just fine off 3v logic. This seems like the most likely problem.

The big hole in this theory is Test 1 - everything runs perfectly off a laptop USB port. If you can explain why a laptop can make this work but a 5v power converter can't, I'll be very happy. The SPI pins should work the same either way.

LMAO, I've done worse. It's not the end of the world. You've got quite the snarky little attitude. I'll test the wifi and the IMU to see if they're still working.

VIN is 4.5-21V for the Nano 33 IoT

The leads soldered to the 5V buck's output go directly to both the LED strip and the Arduino. I find it difficult to believe there's a power or ground issue.

Edit: hmm, unless the excessive EMI created by the buck is screwing with the grounds. Possible

Start at the ledstrip at Pololu, and find the datasheet for the APA102C under the "Resources" tab.
The minimal voltage for a high level for the signals (VIH) is 0.7VDD.
With 5V, that minimal voltage is 3.5V (above 3.3V).
With 4.5V, that minimal voltage is 3.15V (below 3.3V).

There is a diode from VUSB to VIN, so when the power comes from the USB cable, then VIN (after the diode) is only 4.5V. If that is used to power the ledstrip then the minimal high level for the signals is below the 3.3V.

There is probably also a voltage drop in the USB cable, so the voltage to the ledstrip is lower than 4.5V, it might be 4.2 or so. That means the current to the ledstrip is a lot lower than with 5V. Perhaps there is also something wrong with the wiring that makes it less reliable.

If someone else has a weak 5V power supply and long wires, then there will be enough voltage drop to the ledstrip to make it work. You probably have a good strong 5V with good wires.

Do you understand that there is no 5V pin ? There is a hole in the board with some copper around it, but that is not connected to something (only the solder pad).

1 Like

Ahhh, now we're getting somewhere. I am not familiar with the intra-board workings of the 33 IoT.
Excellent point. With enough of a voltage drop, the 3.3V nano logic is enough for the LED strip.

Ignore the 5V pin. It's a red herring. I was never going to use it, never planned on it, don't want it.

1 Like

So in summary, it seems the 3.3v logic on the SPI pins is not enough to control the APA102 strip.

Either i need to get some sort of level shifter to bump the 3.3 to 5v, or swap out the 33 IoT for the plain jane Nano that already operates on 5V logic. I don't think I want to lose all the extra capability, although I might breadboard that setup just to see if there are other bugs.

I appreciate the insights.

Any suggestions on minimum footprint level shifters, 4 channel? (2x led strips)

Some don't like this solution, but here it is: https://hackaday.com/2017/01/20/cheating-at-5v-ws2812-control-to-use-a-3-3v-data-line/.
A diode lowers the voltage of the first one, and the rest should be okay.
In your sketch, you have to skip the first one.
A transistor is easier.

1 Like

Good call. This is looking more and more like a classic "neopixels don't like 3.3V".

image

May give this a shot

Followup -
Same original Nano IoT - wifi works, imu works, sketch uploading works. No damage discovered so far.

Also, the 74AHCT125 Quad Level-Shifter from Adafruit successfully stepped the logic up from 3.3v to 5v and solved the issue.

1 Like

That is a good solution that everyone likes :smiley:

You can add a capacitor to 5V and GND at the begin of the ledstrip (at the end of the wires). About 100µF to 1000µF. Turning a RGB led on is instantly, that causes noise on the power lines.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.