@Don J: The better solution would be to replace IC1 with another FET like T1 and drive it's gate with an inverted version of the T1 gate drive.

I wish I could get you and Ivan in the same room together -- he was just in my office waving the circuit diagrams around saying almost exactly the same thing -- he suggests replacing IC1 with a depletion mode FET (he suggested IXTH16N10D2) -- plus we no longer need to add the resistor in parallel on the resistor divider, but we do have to cut a couple of traces and add a couple of wires.

Personally, for simplicity, I'm just going to keep our existing solution and say that I will always have the Arduino powered from my external 5V supply -- and occasionally I may also plug in the USB cable for programming purposes, but never to power the board.

The simpleset solution I came up with is to replace IC1 with a Schottky Diode instead of the jumper. This would allow the USB to power +5V at 5V, however the external supply would power +5V at a few tenths below 5V. But at least +5V would not have the ripple.

The better solution would be to replace IC1 with another FET like T1 and drive it's gate with an inverted version of the T1 gate drive. This would require an inverter (which could be a small signal BJT or another FET), and may need a pull-down on VIN... more parts, but a better overall solution. Still need to spec out the parts and packaging (which can be fun... :-)

Max, Thanks for the response and the waveforms, they are about what I expected. I have been noodling on this also, but don't have any good answers yet either.

I think you can use this circuit with just the USB connected as long as you are not relying on the 5V supply for anything other than feeding the 3.3V regulator. The 3.3V regulator should tolerate this oscillation and maintain the 3.3V supply within range.

I hope Ivan doesn't lose any sleep this weekend, and I'm sure he'll come up with a clever solution, I just hope I can beat him to it :-)

@Don J: Max, I'm concerned about this circuit operating from USB power only...

Arrggghhh! We hang our heads in shame. It turns out you are correct. Things are not as we would wish them to be.

We powered up the Arduino Mega (with our modifications) using only the USB power. Here's an image of the output from the comparator, and here's an image of the +5V supply rail as being supplied by the USB cable with the transistor turning on and off. As you can see, the +5V rail is oscillating between around 4.5V and 4.7V with a frequency of ~2.6KHz (sad face).

The Arduino itself tolerates this -- the default "Blinky LED" sketch works just fine (which is what lulled me into a false sense of security) -- but it's not possible to predict how well any shields would tolerate this.

On the bright side, everything is rock solid when powered by the external 5V supply, which was the main point of this exercise -- also, things work as planned if both the main supply and the USB cable are connected (in which case the main supply is the power source; the USB is used only for data).

So I just have to remember not to connect these boards only to the USB cable. Having said this, Ivan is taking this very personally -- he just went off muttering to himself that he's going to ponder this problem over the weekend, so once again, watch this space LOL

If you want to reprogram the Arduino all that you have to do is to disconnect the regulated 5V power from the POWER:5V pin, plug in the USB and reprogram. This would also necessitate removing any shields that you have connected, if they're relying on more than the 500mA you can suck from USB (or plug in a wall-wart if you don't-want/can't disconnect easily from the rest of your system).

The only thing that you can't do with the completely unmodified setup that I described is to use serial output back across the USB cable to the PC. That relies on the USB being connected, so perhaps *that* you can't do in situ for reasons that you cite. But even that could be worked-around by using a simple USB-TTL converter and just connecting RX, TX and GND that you can get from eBay sub-$10. These typically use CP2102s, PL2303s or (for $1-2 more) the oft-used FT232RLs. Of course, if you're fly enough to still have an RS-232 port, it's even cheaper because that's just a MAX232, and a DB-9.

Once again, I'm unsure if this solution carries over the ChipKit boards because I haven't looked into those. It should have been a requirement since BYO5V is fairly widely used for USB-untethered Arduino projects, so IMO it's a high-want feature.

I believe that some PoE sheilds are essentially BYO5V, as they knock-down 48V through a switching regulator and inject their 5V output through their shield pin down into the Arduino. Alternatively, they could drop to 7-12V and use POWER:VIN instead, relying on the baseboard's LREG to provide the 5V (similar to the wall-wart case). I've seen PoE PDE power interfaces that do either (12V PoE output into POWER:VIN or 5V into POWER:5V).

@ewertz: My premise was exactly the one that you stated -- that you wanted to eliminate all of the cables and rely just on the perfectly good 26A/5V supply. Was that not the whole point...?!?!?

Well yes -- that's true -- when the system is deployed I want all the sub units to run off a single 5V/26A supply.

However -- even when everything is connected up, I might still want to connect a USB cable to one of the microcontroller boards in order to upload a new program (in which case I want the board to use the USB for data and continue using the external supply for power).

It's also conceivable that I might want to remove a microcontroller board from the system and take it to my work bench and power it just using a USB cable -- I think that's where "Don J" is saying a problem may occur.

I can, of course, always ensure that I have an external power supply plugged in -- which would remove any problem -- but now I want to check it out on a 'scope with just USB power to see if it works or not...

@Don J: Max, I'm concerned about this circuit operating from USB power only...

We did consider this, and we decided that the RC time constants associated with the resistor divider and capacitor C12 ... along with the three capacitors associated with the voltage regulator -- along with the hysteresis assocuiated with IC7 -- would mean that things would work as we wished.

But now you have us wanting to be able to answer you definitively, so I'll bring the Arduino back into the office tomorrow (it's currently at home) and we'll put it on a 4-channel 'scope and capture the waveforms ... watch this space...

Datasheets.com Parts Search

185 million searchable parts
(please enter a part number or hit search to begin)

My Mom the Radio StarMax MaxfieldPost a commentI've said it before and I'll say it again -- it's a funny old world when you come to think about it. Last Friday lunchtime, for example, I received an email from Tim Levell, the editor for ...

A Book For All ReasonsBernard Cole1 CommentRobert Oshana's recent book "Software Engineering for Embedded Systems (Newnes/Elsevier)," written and edited with Mark Kraeling, is a 'book for all reasons.' At almost 1,200 pages, it ...