I am starting a project which will control a small motor, some LED for illumination and read some analog sensors and I need to power it via a solar panel. I am looking for the best option on microcontroller to use but I don't know much about the topic. I need that such microcontroller have 2 analog inputs, 8 digital I/O, at least one interrupt pin, a 16 bit timer would help but an 8 bit timer also would do the job. The speed is not really an issue here but the power consumption is the thing that concerns me the most.

I was watching some ESP32 and I like the fact that they have dual core and are low consumption but I won't use the Wi-Fi module and I just feel that it would be a waste.

For the motor I have a module A4988 Polulu where you just put the pin in low and high. I was thinking about more efficient microcontrollers than Arduino.

I really appreciate suggestions.

  • 1
    Anything ATmega328 based, i.e. Arduino Nano/Micro/Mini without the motor control - or an Arduino Uno with Motor driver shield. Seeing as you specific motor control as a requirement, then the Uno and an appropriate shield is the best bet. Commented Jun 3, 2019 at 18:51
  • 1
    For the motor I have a module a4988 polulu where you just put the pin in low and high. I was thinking more efficient microcontrollers than arduino but for sure I will give it a try Commented Jun 3, 2019 at 19:50
  • 1
    When you say module, do you mean like this? Commented Jun 3, 2019 at 19:53

2 Answers 2


An ATmega328 has three timers, one of which, Timer1, is a 16 bit timer. The Arduino Uno and Nano both use an ATmega328.

As you say that you have a A4988 module,

A4988 module

then an Arduino Uno with a CNC driver shield would be a simple option:

Arduino Uno with CNC shield for A4988 drivers

A smaller option would be an Arduino Nano with a CNC board:

Nano with CNC board

You could power it via a LiPo, using a TP4056 module, which has both Battery (B) and Load (OUT) outputs - there are two types of modules out there, one of which does not not a load output. This is probably what you need

TP4056 modules with load

Your solar panel would connect to the + and - inputs.

Obviously, you would use as many, or few, TP4056 modules as needed, depending on the voltage requirement of the µController. A NodeMCU µController would only need one LiPo and one TP4056, whereas an Arduino Nano/Uno would need two of each. There are the Arduino Pro Micro and Pro Mini that only require 3 V which run at slower clock speeds, which would match your efficiency requirement.

For use with a solar panel, see How to autoregulate a TP4056 for maximum solar power extraction for ideas about that.

  • Out of curiosity: what's the sleep current for the ATmega?
    – jaskij
    Commented Jun 4, 2019 at 6:00

Best ultra low power microcontrollers are the XLP series by Microchip, and the MSP430 series by Texas instruments. The Arduino microcontroller is not famous for being ultra low power, but if you sleep (or use the lowest power modes) much of the time, you can do surprisingly well. A small FPGA can also do pretty well, depending on what you're trying to do, because they tend to run at low voltage, and everything runs in parallel, so you don't necessarily have to use really high clock frequencies.

You should make a power budget, and try to figure out if you can make it work. I can tell you right now, the motors probably are going to be the big energy drain. Also, if you're going solar, it's best to do it in bright uncloudy direct sunshine, otherwise your power generation is not going to be very good. My gut reaction is that you're going to have to go with some kind of battery option, otherwise you're not going to be happy.

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.