SOLVED: Power problem, not reset problem.

OK, I think I have this figured out, but it’s going to take some minor surgery to confirm, so before I do that I’d like to see if I’m on the right track.

I have an ProMini clone, 16MHz 5V. It’s plugged into a custom board driving a PCA9685 PWM controller (which in turn drives a batch of servo motors) via the Wire (I2C) interface. There’s also a LocoNet interface connected to pins 6 and 8. Normal operation is to listen to the LocoNet, and move the servos in response to received messages.

I connect my Mac to the serial interface (specifically the 6-pin interface across the short end of the board) using a FTDA usb/serial cable. In normal operation, though, the board is stand-alone and powered via the VCC pin by the 5V supply of a hefty regulated power supply. Just for good measure, I’m toggling the P13 LED every second for a heartbeat.

Here’s the problem (finally). As long as the serial cable is plugged in to the Mac, the Arduino works normally. If I unplug the serial interface, though, it appears to randomly (and rapidly) reset itself over and over (based on the erratic blinking of the LED and the semi-random changes in the servos).

My diagnosis is that despite the 10K pull-up on the schematic, the reset is floating and I need an external pull-up on the reset pin.

Am I on the right track here? Is there something else I should consider?

Are you sure the 5volt supply is 'clean'.
Connect a big cap (1000uF or so) on the VCC and ground pins of the ProMini, and see if it makes a difference.

Even small servos could draw >=1Amp every time they start moving.
How many servos, and how big is the supply.
Leo..

8 9G servos connected. Power supply is the CPU power from a 400W ATXv2

I haven't put it on a scope, but I can't imagine it's loaded down with just 8A of power... I'm also fairly certain that at most two servos at a time should be triggering.

I suppose I can test that by disconnecting most/all of the servos...

TwinDad:
My diagnosis is that despite the 10K pull-up on the schematic, the reset is floating and I need an external pull-up on the reset pin.

Am I on the right track here? Is there something else I should consider?

The DTR pin on the serial interface should also be connected to reset on the Pro Mini via a capacitor, so when this serial lead is plugged into the the Pro Mini reset in pin (DTR) 'floats' in any case. In other words the serial lead is actually designed not to act as a reset line pullup.

You could just trace the components and check if the required components are there, but it sounds more like some sort of power problem.

What happens if you cut (remove) the wires of the Mac connection, one after another? Have the Gnd wire disconnected last. Which is the wire that causes the failure to occur when removed?

PROBLEM SOLVED ... or at least ARDUINO EXONERATED

This was a lesson in "never assume your power supply is good".

Something on the power bus is drawing the voltage down to about 2.1V. When I plug in the serial port, it is providing 5V to the Arduino, so everything works. Without the serial port, for whatever reason, my supply is only delivering 2V.

If I unplug the bus from the supply, it gives me 5.1V ... If I unplug the servo board and leave everything else connected, it still drops to 4.3V

Which in itself is a bit odd... this servo controller I'm debugging SHOULD be the only thing drawing more than processing power from the bus. I am really surprised that even the servo driver load would pull the supply so far out of regulation without shutting it down completely.

Anyway, the problem is clearly not with the Arduino itself, but rather with the power supply. I appreciate the debugging advice, your suggestions helped me pinpoint where the problem was coming from very quickly.

The process from here should be fairly straightforward... unplug ALL of the boards from the bus, check the voltage, then (assuming it is 5V unloaded) start adding boards back one at a time until I find either the offender or the limiting number of loads. It will be tedious, but it's a hobby. I've got nothing but time.

THANK YOU

If your supply provides more than one output voltage, it may work only if all outputs are properly loaded. If so, use a single voltage power supply instead, which should provide that voltage across the entire current range.

Further resolution...

I had included a 3-amp PTC resettable fuse in line with the 5V output going to my Arduinos... that fuse is getting REALLY HOT.

So what I'm pretty certain is happening is that the PTC is "tripping", resulting in a high resistance (PTCs don't actually open like traditional fuses) under the current load... which leads to the lowered output voltage. This would also explain why the PSU isn't shutting down... it is still seeing a "normal" load.

I've taken one intermediate step... my Arduino code now shuts off the control output to the servos if they haven't been commanded to change position for more than 3 seconds. This should be OK operationally speaking, and it brought the supply voltage back up to 4.5V. If needed I'll power them up once a minute or so and reset the positions to be sure.

Second step will be to take more accurate load current measurements and either replace the PTC with a higher current one or remove it entirely and rely on the PSU's internal overcurrent control. In fact, I should be able to estimate the current load by using the voltage at the load side of the PTC and its resistance spec when tripped.

I think it's about time to see a complete, properly presented schematic / block diagram of your setup.
Always a good thing to have before troubleshooting !

It sounds like there is a current path that you haven't anticipated.
(Of course it could be a dicky PSU - but let's prove it.)

Hi,

Power supply is the CPU power from a 400W ATXv2

What is its 5V output rated at?
You need more than a PTC you need a real fuse, rated about 50% above the current drawn by your project.

As you have found a cycling PTC produces problems and if you have an overload will not permanently disconnect your project from the massive 5v supply you have.

It may have permanently damaged the device that is causing the overload.

I find CPU power supplies hopeless when it come to highly dynamic loads.
Also they are cheap and built for one thing, CPU and peripheral loads.

Can you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png?
Reverse engineer your project to draw your circuit, this way you will be drawing any wiring faults.

Thanks.. Tom.. :slight_smile: