Hello All,
I have an AnyCubic i3 Mega (Not S), which was running V1.1.0 software flawlessly for quite a long time.
Good printer, accurate, the only problem I had was with the end-stops, which needed little holders for the adjustment screws, where they go through the top layer of metal. Fix is available at https://www.thingiverse.com/thing:3115854
Frankly, I had used it too little and avoided fixing it, since I have 3 other printers - so I am not too sure SOME of the Z axis problems were not the problem mentioned in this bug report (as opposed to an end-stop problem).
I checked the G-code produced by Simplify3D and there is absolutely no reason for this. I also experienced both heaters turning off, JUST as the printing started. That can be fixed pressing PAUSE and then setting the target temperatures, then back to RESUME the printout.
It did not happen every time. The SD card was untouched since I successfully printed the first couple of items I have used the printer for.
It happens with HOME from Cura and Repetierhost too. It has nothing to do with Simplify3D.
I checked Dr. Google for solutions. Only the SD card being "too complicated" and overheating, perhaps of the PSU, due to the bottom plate being turned 180 degrees, was suggested. My bottom plate does however leave lots of air for the PSU fan. I still tried putting an extra fan on the controller case, left side front, where the controller card is. It SEEMED to work at first, but it came back, once it had given me HOPE!
SO I decided to update my firmware, somewhat scared I'd brick the printer.
Fueled by paranoia, I tried to read out the Arduino code from the USB with avrdude, the usual way (flash and eeprom).
avrdude -C avrdude.conf -p atmega2560 -c stk500 -U flash:r:"c:/arduino.hex":r -P\\.\COM2 -b112500
avrdude -C avrdude.conf -p atmega2560 -c stk500 -U eeprom:r:"c:/arduino_ee.hex":r -P\\.\COM2 -b112500
That however did not work at all. I tried 250000 baud as well, resetting, turning on etc. with no luck.
That's because the USB port is NOT connected to an Arduino. Particularly not to THE arduino ruinning Marlin.
It's connected to the MKS TFT42 board with the nice color display, which gets commands over a UART and sends G-code to the MKS Base V1.4 board
that runs the Marlin Arduino program. Much like when you use a Raspberry Pi to make a good looking frontend.
I COULD HAVE DONE IT CONNECTING TO THE USB PORT ON THE MKS BASE BOARD ... but I did not know it was unused, inside the machine.
Cura uses special trickery to program the Arduino VIA the display. So I had to forget my backups of the stock firmware.
I downloaded the V1.1.2 firmware from the Anycubic Website, http://www.anycubic3d.com/support/show/594016.html on May 10/2019.
I got a file that was called ANYCUBIC_I3_XL(20170906).hex , 275k in size.
I flashed it with Cura (V4.0 works just fine, no need to roll back to special vendor versions).
Then all hell broke loose. All 3 axes were inverted, but the end-stops were NOT. The printer made a nice plow-furrow across the UltraBase glass bed, in best Kirkegaard style hopped off the deep end to the right and crunched down on the right, minimum end-stop. POWER OFF!
I could not move the extruder in any direction because the end-stop had been hit and misinterpreted, until I manually moved the motors away from the end-stops. Careful experiments verified the motor directions were inverted. Sweaty moment....
Since there are no "old versions" of the firmware on Anycubic's support web site, I had to locate an earlier version of the firmware in clandestine places. I found one on Thingiverse - https://www.thingiverse.com/thing:2732424.
The file I tried out was I3_MEGA_Ultrabase_V1.1.hex (several options in the zip file). Flash with Cura ... I was now back to square one.
Including the turning off the heaters and flaky Z axis HOME function. It appears this firmware was the same as the printer was shipped with.
So I contacted Anycubic's tech support. They came back to me next morning, linking me to a .hex file in an "uploads" directory on their servers, dated the same day. I got that file, Mega.hex_ULTRABASE_.hex . Then I went back to the support site and it appears they changed the V1.1.2 firmware update file to a file named Mega.hex_V1.1.2_20181008.hex Seeing both files were 312 kByte, I ran a windiff on them - they put the same file on their support website. I note the file I got yesterday was only 275kByte, so I suspect that was a MUCH older version of Marlin - and with a wrong configuration.h file.
WinDiff revealed lots of changes between the "stock file" from Thingiverse and the new V1.1.2 from the Anycubic Support website.
SO TRY AGAIN - THE NEW FILE IS NOW ON THE ANYCUBIC SUPPORT PAGE.
So far the printer has behaved. I am running it on a fairly large part, the extra fan turned off. Then I will try again and report if it acts up still.
Failing that, it should be possible to change the MKS Base board out. They are about $25, but they have subtle differences to them. I'd burn the .hex file using the USB on the MKS Base board. If you want to experiment, get a RepRapDiscount Full Graphic Smart Controller board and attach that to EXP1 / EXP2. That will provide a "normal" display with direct contact to the MKS board and access to the SD card on the display. Display can be removed once you are sure the Marlin Configuration.h file is 100% in order.
Newest Marlin Bugfix 2.0.x even has example files for Anycubic i3 in the \config\examples\Anycubic\i3 directory.
Fear not the Marlin. If you just have the u8glib library installed, (https://github.com/olikraus/U8glib_Arduino or library manager) it will compile and burn right away. Latest Arduino environment works. Latest everything works.
So that's what "hexenwerk" you can do with the Anycubic i3 Mega. Most of it probably voids the warranty. Now I told you.
I'll let you know if I am right or if the World corrects me going forwards. I have a spare board....
Kent