I'm trying to make a ATmega328 run on a breadboard.

I am stuck on deciding if I need a reset switch.

Do I need one? Can I just unplug and plug in the battery instead? If I do need one, how would I go about doing this?

  • 4
    \$\begingroup\$ You don't have enough information for us to answer. Whether a reset switch is desirable depends entirely on what your application is. \$\endgroup\$ – whatsisname Aug 22 '14 at 16:55
  • 1
    \$\begingroup\$ @IronApe Completely powering down the controller will reset it. You can get away without a reset switch, most likely. Are you going to program the controller in-circuit through a connector? \$\endgroup\$ – Nick Alexeev Aug 22 '14 at 17:01
  • 2
    \$\begingroup\$ No, you don't. But its a breadboard, so if you decide you need a "reset switch" at some point for greater convenience, that is as easy as finding a random piece of wire to momentarily ground the reset pin. \$\endgroup\$ – Chris Stratton Aug 22 '14 at 17:09
  • \$\begingroup\$ @NickAlexeev, I am going to use pins 0 and 1 plus my ardunio to program my boot loaded atmega328 \$\endgroup\$ – IronApe Aug 22 '14 at 17:10
  • \$\begingroup\$ @IronApe Are you intending to replicate an Arduino on a breadboard? \$\endgroup\$ – Nick Alexeev Aug 22 '14 at 17:22

The ATmega can work without a reset button. Powering down the controller will reset it, as the O.P. expected. In-circuit programmer will also reset the controller every time new firmware is loaded.

If it becomes apparent that a reset button would be a nice thing to have, it can be wired like this:

enter image description here
Source: Atmel application note AVR042 (AVR Hardware Design Considerations) p.6
There is also a simplified approach, although be sure to read the comments made by @vaxquis below.

Since the circuit is built on a breadboard, one can always take a wire and touch between RESET# and ground. That will momentarily bring the RESET# to ground, which will reset the controller.

  • 1
    \$\begingroup\$ @vaxquis Thanks for pointing out this issue. I have improved my post. \$\endgroup\$ – Nick Alexeev Aug 23 '14 at 22:02
  • \$\begingroup\$ RESET should be protected to prevent debouncing and other inductive effects, which could, in theory (and also in practice, if you're unlucky) damage the circuit - that's why a proper RESET line should have a capacitor and a diode connected. If you're attaching a switch to RESET line, provide a series resistance to limit inductive currents. It is possible to get RESET working with only a switch and a pull-up. You can say the same about switch without pull-up. The fact it can work doesn't mean it will work, and doesn't mean it is a quality solution. \$\endgroup\$ – user20088 Aug 23 '14 at 23:47
  • \$\begingroup\$ .@Nick Thanks for addressing the issue I mentioned. I've replaced the old comments with a new one to omit info that got irrelevant since you provided it in your answer. I think it'd be best if you'd just incorporate the most important information from my comment in your answer so that you won't have to cite me as an external resource chuckle... I revoted the improved answer with a solid +1, thanks again for the effort. \$\endgroup\$ – user20088 Aug 23 '14 at 23:52

Reset switches often fall in the category of things which aren't needed, but are nice to have, especially if a device will be communicating with a PC using something like an FTDI USB-to-serial converter. If an FTDI chip is powered by the board, communications will not be possible for the first few seconds after the board is powered on. If it's powered by the PC, the signal wires from the FTDI may power the board even when no other supply is connected. Adding a reset button will make it possible for the PC to have an open connection with the FTDI chip at the moment the board comes out of reset. That can a very useful ability to have, and a reset switch is one of the easiest ways to achieve it (another option may be to use the DTR wire from the FTDI to control the reset line, though most reset lines are active-low and the default behavior of most programs drive DTR low during communication).


Generally MCU itself does not require RESET because power cycle do it too with some exception as is register indication what is reason of reset (power, reset, watchdog, brown-out,...). But if you have another statefull ICs then they are affected but power cycle too. Typical example is USB ICs mentioned by supercat but also e.g. encoders, sensors, multi PCB project powered via bus etc.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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