Following on from the conversation on this thread. I think I might have made some progress into what's causing the problem. It's the supply voltage for the emonGLCD. Controlling the backlight and LED's with PWM is not the cause of the problem but might trigger a crash since when the LED's and backlight is dimmed the current drawn will be lower resulting in a lower loading on the power supply which could cause the voltage to rise.
The LCD unit is connected directly to the 5V supply voltage, this supply voltage is then fed through a 3.3V voltage regulator which then supplies the Atmega328 and RFM12B. This is how it's done on the JeeLabs graphics board, on which the emonGLCD is based.
I think this is an error, since looking at the datasheet the LCD, it's recommended operating voltage is 3.3V. Although running the LCD at 5V with 3.3V logic signals does not seem to do any harm, I have one in my own home which has been running continuously for 8 months without crashing once.
The crashing of the display (display goes blank, Atmega328 and LED's still functional) problem only happens with some usb power supplies, I measured the voltage on the emonGLCD with a number of power supplies, here are the results:
The crashing seem to occur at the higher voltage (5.11V). Unfortunately the USB power supply sold through the OEM shop is the one causing the problem. We had extensively used this power supply powering the emonBase/NanodeRF and emonTx before stocking it in the shop but we had not tested it extensively with the emonGLCD.
I have soldered a 100ohm resistor across the PWR and GND pins on the emonGLCD, this loads the power Friwo power supply enough to pull the voltage down to 5.04V. The display has not crashed since. The resistor get a bit warm since it could be potentially (if it's 90 ohms +-10% and BL and LED's are off) dissipating 280mW which is 30mW over it's max rating of 250mW.
I would recommend two 200 ohm resistors in parallel this will give an equivalent resistance of 100ohms with 500mW potential dispassion capability (plenty).
Please post below if this fix works for you.
Update: it's also possible to implement a (even better) fix without any additional components. The LCD module can be connected directly to the 3.3V output from the voltage regulator. See this post for photos and how-to, thanks to Robert Walker for this.
If you wish we are happy to accept return of the USB power supply bought through the shop. We shop to souce some USB power supplies which work fine with the emonGLCD soon.
Update: We have power supplies that work with the emonGLCD without the above fixes (smaller capacity and slightly lower voltage). Please get in touch if you want to swap a USB power supply bought through the shop. All further emonGLCD V1.3's sold through the shop will come with a 100 ohm 0.5 W resistor.
If this fix works for everyone, a 100 ohm 0.5W resistor will be included in the remaining emonGLCD V1.3 kits to be sold (we don't have many left). We can also make this resistor available free of charge if it's requested.
In the new version of the emonGLCD (V1.4), the display is powered from the 3.3V regulator so should not have this problem. Although this new version won't be in the shop for a month or so.
I've gone for the second fix, directly connecting the LCD to 3.3V.
My GLCD has been running for just over 48 hours now without the screen blanking.
I am still getting blank screens with this fix.
I have had long periods of stable display after applying the fix but sometimes the screen goes blank.
Connecting the power usualy gives a display and then it goes blank.
Somtimes I get rubbish and stripping and then it goes blank.
It will then start working again for no reason.
Changing the power supply/USB cable does not seem to help - I can get the screen going blank using USB connectors from my PC, monitor, and mains addaptors and using the programmer connection.
The measured voltage is always 3.3
Open-source tools for energy monitoring and analysis. This project uses the GNU General Public Licence