I have a 12V 20A Solar Charge Controller (which is part of my existing Solar Panel System Setup connected to a 12V Sealed Lead Acid Battery) that I will use to power up some pumps with the help of relays and some sensors. And because its a solar charge controller, the output varies depending on the sun, from 12.1v to 13.8v (I set the Load Reconnect, Load Disconnect, Float Charge etc which technically 12V to 13.8V)

How do I power my Arduino Mega safely in this case?

I am planning on using a separate buck converter that will give my Arduino a fixed 9V from the Solar Charge Controller.

Should I power the Arduino with the buck converter parallel to the same PSU (the 12V 20A Solar Charge Controller) I'm using for the pumps and is it safe that way?


Should I use a 9V battery to separately power the Arduino Mega? and what is the explanation behind the concept of using an external PSU for the Arduino Mega when the total Amperes all in all is not exceeding the limit 20A at all?

  • 2
    I'm no expert in this, but isn't a buck converter holding the set voltage independent of the input, as long as it is high enough (giving it some headroom for working correctly). Then a varying voltage from 12 to 13V should not cause problems.
    – chrisl
    Apr 23, 2021 at 12:59
  • 2
    You didn't mention that you had a 12 volt nominal battery. Maybe because there's a reason why you don't want to use it. I bring this up because typical solar charge controllers of the kind that would normally have something like an 12 VDC nominal lead acid battery bank (perhaps just one battery) attached to them, have their internal electronics powered from the battery bank itself. In other words, most solar charge controllers cannot be used just as live voltage regulator powering a load without also a battery. I just want to make sure you have considered this.
    – timemage
    Apr 23, 2021 at 19:48
  • 1
    20A is the redline on the charge controller. It doesn't output 20A unless the solar panels are delivering >=20A. Apr 23, 2021 at 21:43
  • @timemage, yes i edited my question. thanks for the information. Apr 24, 2021 at 5:43
  • @Harper-ReinstateMonica may load total is lower than 20A, and the pumps and sensors will not turn on at the same time, thats why i want to integrate Arduino in my set up. I used fuses and relays just in case so that my set up will be safe Apr 24, 2021 at 5:48

2 Answers 2


Should I power the Arduino with the buck converter parallel to the same PSU (the 12V 20A Solar Charge Controller) I'm using for the pumps

Yes. However I wouldn't use a 9V buck regulator, but a 5V one and feed it to the 5V pin. That way you bypass the wasteful LDO on the Arduino, and when running from solar every bit of power saving you can muster helps.

and is it safe that way?

Yes, it's safe. As long as the buck regulator you are using is rated for the voltages in question.

  • An Arduino is no load for a solar panel that can provide 20A. So I wouldn't bother the complexity and just use a 12V battery and the on-board converter.
    – PMF
    Apr 23, 2021 at 17:00
  • @PMF is not about the load. It's about the heat with such a massive voltage drop.
    – Majenko
    Apr 23, 2021 at 17:31
  • I see, but wouldn't you have that anyway, even if you use some external DC/DC converter? Or are those more efficient than the onboard one?
    – PMF
    Apr 23, 2021 at 18:03
  • 1
    @PMF They are massively more efficient. The LDO converts the voltage difference into heat. A DC/DC converter chops it up to change the average power throughput.
    – Majenko
    Apr 23, 2021 at 18:07
  • If possible, I would feed the 5V via the USB connector rather than 5V pin, so you can take advantage of the Arduino Mega's PTC fuse.
    – timemage
    Apr 23, 2021 at 19:41

Ok first, you need a battery for all this to work. The solar charge controller won't drive into nothin', that is not what they are designed to do.

Its full name is "solar battery charge controller". Size the battery any way you like, just make sure the charge controller knows what kind it is, so it sets the proper charge curves and doesn't overcharge it/boil it dry/make it catch fire (lithium).

Once you have a battery in the system, paralleling in another battery charger is not a problem, be it wind, AC mains, or another solar CC.

Now, you will need to manage the case where the Arduino calls for the pump to turn on, but the solar panel is not making enough power to successfully power the pump. This will not magically sort itself out.

  • If you did not have a battery, it'll "crow bar". The pump would effectively pull the solar voltage to near zero, which would cause the Arduino to shut down, turning off the pump and causing solar voltage to recover. The Arduino would reboot, try again, and fail again. Repeating. So a crow-bar condition.

  • If you do have a battery, then the Arduino will successfully spin up the pump, but, the solar won't be enough and this will be depleting the battery. If your usage runs the battery flat, see crow-bar above.

  • If you have a battery and the Arduino monitors battery voltage, it can defer operation until the Arduino knows the battery is sufficiently charged for the work needed. At this point you don't need to care if the solar is up, the battery will carry the "buffer". Make sure to shut the load off before the battery is depleted enough to create a crow-bar condition.

Note that if the battery is lead-acid, it should be managed to stay within 60-100% state of charge. Depleting a lead-acid below 60% of max will rapidly age the battery. It probably will be, since they are a happy intersection of "cheap" and "well-supported by every charge controller ever made".

Power to the Arduino itself should be taken as close as possible to the energy source (e.g. battery) — even if that means a long, redundant cable, especially in that case actually. Do not share a supply cable with motors or pumps or other heavy loads!!! I have seen many installations where the startup current of the motor causes enough voltage drop down the shared supply cable to cause the Arduino to lose power and reboot. That is quickly cured by running a redundant V+ and V- power cable just for the Arduino.

  • Thanks for that detailed explanation, im sorry that my scc info was unclear and so i edited my question.. im using thick wires at short distance to prevent voltage drop. i used cable terminals to easily manage the wires of the system. Should i use the same breaker for the main Output of my SCC and parallel my arduino power right there with the pumps(but a different wire for the arduino)? or can i just use the terminals? thanks Apr 24, 2021 at 6:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.