Hi
Just built an LXR for a friend (my 3rd) and I have a display problem. I have looked at the various threads but nothing quite matches my problem. The LXR boots and run perfectly...normal function... making all the right noises. When the screen works, it is exactly as expected. However 9 boots out of 10 it shows rubbish. I tried re-flashing the firmware with the latest release and it does this perfectly every time with a clear display saying all the right things. But re-boot and we are off again. I removed the brain module and the rubbish still comes up on the display... so I discounted the SD card (tried 4 anyway). Re-visted my soldering and can see no problems. Re-flowed ATMega and display pins. Checked crystal and caps. Any thoughts? I don't think it can be a soldering error as surely I would have rubbish when I re-flash the chip? As I say that runs perfectly. Faulty ATMega?
Thanks in advance for your help
Paul
PS Tried various power supplies with beefy capacity. All voltages correct
Comments
Cheers
It seems the normal LCD init routine does not work perfectly for OLED displays. So when the AVR reboots without a proper power off to the display, it gets re-initialized which results in garbage on the screen.
But as you state you have already tried what my initial thoughts would have been (other PSU, reflow AVR, check voltages, check XTAL.
As the software goes the bootloader uses the exact same LCD routine as the main firmware so there should be no difference here, too... :-?
As far as a damaged AVR goes, I think we can rule that out as I test all AVRs and mainboards here before shipping them (that is powering them up in a LXR machine, test the menus, test the audio output and the sequencer, use the bootloader to upload the firmware).
Besides the garbled screen, is the LXR working as intended when the screen is garbled (sequencer able to run?)
I'm currently doing some research to find out if thee is a possible software fix for the init problem, but I think this would only heal the sympgtons and not fix the cause in your case. When it is booting correctly, does it run stable and without hickups? Or does the screen get garbled after a while, too. Have you whitnessed any crashes while it was running? (shows splash screen again, sound settings lost in the menus...)
I think a little bit about it what could cause this.
still, maybe you could also check the reset resistor (r6, 10k) below the AVR and c7, the 47nf capacitor. Pin 9 on the AVR should always be 5V. A cold solder joint here could reset the AVR.
In the end it only needs power and GND on 2 pins each, the 5V on the reset line and the XTAL connected to properly run...
But as it seems it is a single occurance during the boot process I dug a little bit into the code.
The init routine seemed to be completely up to spec according to the new haven and raystar (the ones I use) datasheets. I even compared the routine with the mutable one and a library from a microcontroller site.
I found a few timings that were off, but even increasing them had the same results.
On the other hand I found lots and lots of the same garbled screen problems in the arduino and raspi forums.
So I played a little bit with the initialisation, and it seems when I issue an additional "Display Off" command, before sending the "Display On" command, the screen isn't garbled after a soft reset anymore.
I tried it using the reset pin on the AVR, and even after 10 successive resets the sreens keeps working.
So you could try the new firmware version from github:
https://github.com/SonicPotions/LXR/blob/master/firmware image/FIRMWARE.BIN?raw=true
This should at least prevent any garbage on the screen.