# Anet A8 Clone LCD not working after flash

My Alfawise EX8 (Anet A8 Clone) had an issue, so I flashed the firmware provided on the GearBest page. After the flash the LCD is no longer doing anything and I can't really identify the LCD to confirm whether the correct one is selected in configuration.h

Currently the firmware had 'Mini VIKI' selected, but I'm not confident it works.

I cannot see anything on the screen, but I can still turn the dial and click things to make it do stuff.

I really hope somebody can help!

• Why do you rephrase and repost the question, please use a single account, you can always edit the question.
– 0scar
Oct 9 '19 at 19:48
• Hi Ollie, would you like to have this account merged with your other account which you used to post the nearly identical question? How do these two questions differ? Oct 9 '19 at 21:54
• Download a clean copy of the firmware from the official site (github.com/MarlinFirmware/Marlin/tree/bugfix-2.0.x) and adapt the changes from the firmware you've downloaded. That display appears to be a standard-ish "RepRapDiscount Full Graphics Smart Controller", but certainly not a "MiniVIKI"
– towe
Oct 10 '19 at 6:19
• Probable duplicate of Alfawise EX8 Flashing issue Oct 10 '19 at 11:22
• @towe That will not work as the printer uses a specific Melzi board that is not available in Marlin, only in the vendor's link to a fork of the software. It uses the standard Melzi pin layout at first but then redefines pins, notably LCD pins.
– 0scar
Oct 10 '19 at 16:03

According to the link to the fork of Marlin you need to be sure that a bootloader is present before flashing, see pins_MELZI_WYH.h:

/**
* Melzi (WYH) pin assignments
*
* The WYH-128 board needs a bootloader installed before Marlin can be uploaded.
* If you don't have a chip programmer you can use a spare Arduino plus a few
* electronic components to write the bootloader.
*
*/

From this same pins layout file you can find hints to the usage of the REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER display:

// For the stock M18 use the REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
//   option for the display in Configuration.h

Maybe you can use that one instead of the "Mini VIKI". Though, an internet search, does hint to the "Mini VIKI" being the correct display for this printer, but it does look different from other Mini VIKI displays.

Note that in the Configuration.h, by default this display is not enabled as can be seen:

// RepRapDiscount FULL GRAPHIC Smart Controller
// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
//
//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER


I know this is a closed and already answered question, but for anybody having an Alfawise EX8 and wanting to update the firmware, I've changed some things in the Marlin bugfix-1.1.x version, so that it now works perfectly with this printer. You can find it here. The issue with the display is in the file ultralcd_st7565_u8glib_VIKI.h. The Alfawise EX8 version contains added functions like contrast adjustments and addressing offset, which is not present in the Marlin vanilla version. Also, the original Alfawise firmware grabbed 93% of RAM for global variables, which lead to unstability and in my case to spliting screen and other issues. Now there are only 46% allocated. I suspect the SD alpha sorting of this, as you can clearly see in the advanced config, that it creates an array of more than 200 instances. 37B each. Sooo since I don't usually hoard gcode files on my SD card, I disabled the sorting completelly. Feel free to make adjustments to your own taste! Wish you luck and many successful prints! :)

EDIT: If you are still experiencing glithes with the LCD, try separating the LCD data cable from the extruder cables. I didn't. My bad. Also, don't add capacitors between power inputs. Caused more problems than it solved and yes, I know how to connect an electrolytic capacitor. The firmware is fully functional, working with a MightyCore bootloader inside. There was an issue with the SD print abort function. In the bugfix version, there is a gcode function added to abort SD print and it somehow doesn't work too well with the LCD option. So I removed the gcode from Marlin_main.cpp and brought some things from the original firmware to get it working. Also since the SD was really slow, I had to re-enable the alpha sorting using RAM, but decreased the array size to 30 instances. For the memory it means, that right now it is at 89% Flash and 39% RAM usage. Enjoy! :)

BTW: For anyone saying that you cannot print good prints on this printer, I just printed tha Maker's Muse Gauge and clearance test model, and got it moving completely! That's pretty awesome for a printer that cost me less than 150€.

• This could be very helpful to others! Even better would be to incorporate this into creating a pull request to save your code changes to the original sources and rewrite your answer to point to the code changes!
– 0scar
Nov 24 '20 at 7:47
• Thanks. Sadly, the LCD is still glitchy at times, so I'm trying to figure out the problem right now. Just thought to put it down for now to avoid unnecessary issues. Nov 24 '20 at 12:01
• Sorry, I wasn't aware that it was glitching. Please mention that in the answer as well as your code changes. If you work it out please update the answer! Hope you get the glitches out!
– 0scar
Nov 24 '20 at 12:46
• In fact it seems like a bootloader issue. Now it crossed my mind that when I bought the printer, it had no bootloader and when I tried optiboot, the display would not work. It works sort of with the sanguino bootloader, but I'm gonna try to just flash the firmware via ICSP. I will update the post as I manage to get it working properly. Nov 24 '20 at 14:26