I have bad news, but GOOD NEWS! - I will admit that I've had some issues booting my OpenEVSE since the early days, but after unplugging and replugging it a dozen times, it would come up and stay up for months. Not today. I power cycled it and it never came back. At all. I pulled the LCD off. Nothing. I pulled off the Wifi chip I had hooked up, nothing. So I grabbed the old multimeter and started prodding, and I get 11.95 on the 12V rail of the OpenEVSE, and 5.03 on the 5V, which are all well within tolerance. So this is weird, right?
So I decide that I'm going to re-flash the chip, and I hook it up to my ISP (a usbtinyISP, which can be set to power the chip, which I allow) and it boots (but fails self test because there's no 220V) so I cycle it a few times, but it only ends up booting like 10% of the time, but it's better than zero. I reprogram it, burn a new "bootloader" to it to set the "fuses" and I get zero change. Then it hits me...
What is the brownout voltage of the CPU set to? I check the extended fuses in the boards.txt file, and they're all set to 2.7 volts.
Go ahead and change that to
This raises the brownout voltage to 4.3V which is within the safe operating area for a 16 mhz ATMEGA238P - 2.7 volts is only good up to 10 mhz.
My theory works like this - When the power supply comes online, it's not giving a nice clean power-up. It might wander, surge, or whatever, but either way the voltage is spending some time at or only slightly above 2.7 volts, long enough for the chip to start running in this low voltage, and thus overclocked realm. It then crashes instantly and stays crashed, probably because it crashes before the watchdog timer can be activated. Sad trombone :-(
However, if we raise the brownout voltage to something higher like 4.3V, the Atmel won't run until the voltage stabilizes at or above 4.3V, which IS within spec for 16 mhz. And just like that, my OpenEVSE starts booting with 100% success.
I would urge folks to make this change to the boards definition, and obviously if you're having problems booting, then there's a good chance that this will fix it if there are no obvious electrical problems.
Thanks for posting this. I've been having this problem since I upgraded my firmware to install a WiFi module over a year ago. If I plugged and unplugged it enough, I could get it to boot, but some of the settings stored in flash like the calibration factors were always corrupted. I even tried adding my own AC->DC converters (because it seemed fine when I was using a DC supply to program it). I changed that fuse, and it works boots every time it's plugged in again. Awesome!