Aldi UK Balco Repair HE180021

This is probably an unusual request for assistance because the original fault (which was a touchscreen failure) has now been fixed on a borrowed Balco, which I had been using along with 5 other printers for full-face visor production. As an aside, I was quite impressed by its performance, comparing well in all respects against other more expensive machines. As part of the repair process I obtained new DMT48270M043-05WT from China, which is now spare, so I decided to use it for a possible Ender5 upgrade instead. My setup for now just emulates the balco (which i no longer have) with a standard Atmega Mega2560 board with 4.06 firmware in both display and this board.
The problem I have is that from boot up, the display progresses through to the main status screen OK, but when I press each function (eg Setup) I get a beep and the colours change for that function, but the display does not move on to that function; it remains at the top level. The status of the temperatures (which are nonsense values) and Z=0 are updating regularly, so communication is fine. I can see bidirectional comms on port 2 using a scope. Logically, I do not see why it should not move through the menu structure, so wondered if anyone can throw light on why not? Many thanks,

Of which firmware are you talking about exactly? What is “Setup”? There is no “Setup” screen in ADVi3++.

4.0.6 fresh from github, both display and “mainboard”. Should have said “settings”, not “setup”.

that is - ADVi3pp-LCD-4.0.6.img using the zipped version.

The animation of the button is handled by the LCD screen itself, not the firmware on the mainboard.

If I understand well, you have not connected the pin for the temperature measurement to something, so it is normal that it displays a non-sense value.

Maybe, maybe not. It means that the mainboard is able to send some data to the LCD panel. It says nothing to the contrary.

In general, you can’t just flash a random Atmega ATMEGA2560 board with ADVi3++, it is a little more complicated than that. You have to also emulate different parts of the printer (at least the thermistors, the end stops, the SD card reader)

thanks for your prompt support, I appreciate that. Have improved my setup and now have sensible thermistor readings, endstops and the SD card reader. Using Pronterface for control and monitoring, the mainboard operates normally, with the LCD displaying correct values for temps, Z height. Have also seen two additional screens displayed - the EEPROM mismatch and the temperature error due to decoupling of the heaters and thermistors. However, the basic problem remains as before. I have set some defines in the code to enable logging and have saved several to file. The outputs seem to confirm that send and receive is OK, including the entry LOG: 5A A5 03 80 05 00
// LOG: Panel touched, reset dimming
but there are NO entries of the type

Log::log() << F("=R=> ") << nb_words.byte << F(" words, Action = 0x") << static_cast<uint16_t>(action)
    << F(", KeyValue = 0x") << value.word << Log::endl();

which seems to imply that the commands are not being sent by the panel. Logfile advlog3 captured while pressing CONTROLS, PRINT, TUNING, SETTINGS, INFO buttons.ADVLOG3.gcode (59.2 KB)

Those logs are only activated in DEBUG releases Have you defined DEBUG?

Hi, yes, I added #define DEBUG 1, then uncommented logging options in debug mode.

So looks like you have some hardware (wiring?) problem with you serial port. Which board are you using and how do you connect to the serial (both sides)?

So that I can understand the problem better, can I ask about the serial communication sequence? When a button is pressed, does the command for that button enter into the serial port to the mainboard immediately, or does it place the command in ram and just send a "a button has been pressed " command, expecting the mainboard to read the register then act upon it?

It depends of the configuration of the button. For almost all (if not all - don’t remember exactly), the LCD panel does send a frame back to the mainboard immediately.