Marlin 2.0.7 for the Anycubic Predator

Please Login to Comment

Attached is a zip file which will unzip into Marlin 2.0.7 modified for the stock AnyCubic delta Predator using the Chitu Trigorilla Pro 32 bit board and 3.5 inch touch screen. The firmware.bin file in the pio\build\trigorilla_pro folder should directly load onto the board, using a USB cable and the STMicro Demonstrator, if the board jumpers are correctly configured.

Alternatively, you can modify any files you need to, recompile under PlatformIO, and download your new firmware.bin file.

There is no need to physically rotate the display, and the only issue that I am seeing is that perhaps the filament detection logic is reversed. I am looking into that, but you can turn OFF filament detection from the touchscreen, and store that change, as a workaround.

The "Enter" and "Cancel" touch button positions will be swapped left to right, and the previously dark blue enter button will be an easier to see blue, but otherwise the functions are all "normal Marlin".

After updating your Predator to Marlin, you must run a delta calibration and save the changes from the touch screen.

The Marlin GitHub releases change too fast, and too far, especially in the realm of the user interface, for me to keep up with, so this will likely be my last post on this topic for quite a while. If I discover an improvement I'll post, otherwise I'm done for now.

Please, i want to back to the originakl firm. I downloaded in oficial webpage (https://drive.google.com/file/d/1x-EjjH6DxtDdhjlqKO2iIw4Cc0qam89K/view) but the extension file is ZW. there is another file named: loader_zwlf_SPI.bin.
I dont know how to restore it .... please can you help me??

Format an SD card, and place the update.zw file on to it. Put the card in to the Predator, and turn it on. The re-load should take about 30 seconds.

Really, you should have made a copy of the original firmware as a bin file before you modified your machine, but the above process should work. You may have to put both update.zw AND loader_zwif_SPI.bin on the SD card if the boot loader is not still in place on the machine.

thanks!! put the both files in SD, power on the predator, but boots marlin again. Maybe i can upload at first the loader_zwif_SPI.bin whit FlashLoader?? thanks

I load loader_zwif_SPI.bin whit FlashLoader, but dont work the screen. Put the SD with de ZW, but do nothig :(

Attached is a copy of the original Predator firmware in binary. You can install it with Flash Loader. It sounds like you erased the boot loader, and there is no way to re-install it.

love you!!!! solved!!! ready!!! thanks!!!!

Glad that worked! Keep a copy for the future, and please tell us why you wanted to go back to the original firmware?
Be well.

please write what files you changed and for what purpose. I would like to know all the difference with the regular Marlin.

There are three files that tell Marlin what functions to invoke during the compile process under PlatformIO running under Visual Studio:
1) platformio.ini
2) configuration.h
3) configuration_adv.h

Your best bet is to download a copy of WinMerge. Use it to open old and new versions of whatever file is of interest. It will show you the differences between the two files.

Thank u !) I'll torture you again :).

  1. I do not see the markings on the motors, what is the rated current(amperage) on the standard Predator motors?
  2. How did you connect pin grounded?

Back in the misty past, I stumbled across the part number for the original predator motors, which were rated for 1.68 amps. Given Anycubic's propensity to change things at will, take this with a grain of salt. On my Trigorilla-Pro, the sense resistors are 0.1 ohms, so the Vref for the stock A4988 drivers is Vref=0.8 x Rated current=1.34 volts.

I have my steppers set at 50% of rated current. This is easier on the motors and drivers, they run quieter and cooler, and there is no need to go 100%.

So 50% of 1.34 volts is 0.672 volts.

I have my Predator modified with 0.9 degree steppers, and this has also worked well for me.

Also be aware that the common "clip lead on a screw driver" does not work on the Trigorilla Pro. For some reason Chitu (the board manufacturer) decided to ground the case of the adjustment potentiometer, so you cannot adjust Vref that way. There are three leads on the adjustment pots, only one of which will show an appreciable voltage. That lead is Vref, and you need to probe it while adjusting the pot.

For your second question, I will assume you mean "how did you ground the Rosc pin". You jumper, or short, the Rosc resistor, which is R49 for each of the stepper drivers. A blob of solder bridging the existing resistor will work, or you can get fancy, remove the resistor, and replace it with a surface mount zero ohm resistor. I used the solder blob method, but keep in mind that you are working at very close quarters on very small components.

This is my experience only. I take absolutely no responsibility if you follow it and trash your printer, or burn your place to the ground!

after the delta calibration, how can I fine tune the Z? It appears to be too high and nothing is sticking to the bed. Also, the UBL cold map attempts to run and gets stuck in a loop saying to deploy probe and stow probe without actually doing anything.

After a delta calibration, make sure you save the results! I then slice a file with a large skirt of 10 or so loops, which gives me time to play with the z position before the actual object starts to print. While the skirt is printing (and ONLY when there is an active print), at the bottom of the "TUNE" menu is the "BABYSTEP" function. Adjust your babysteps so the skirt is perfect, and MAKE A NOTE of how far you had to babystep, and in what direction! Then, in the configuration menu, you can add or substract the babystep difference to the probe z offset (which is usually around -16.3 mm for a Predator). To make the nozzle closer, subtract the babystep distance from the z offset (so -16.3 becomes, say, -16.4). Make sure you SAVE the change under the configuration menu, or you will have to go through this process for each and every print. Once it's dialed in, I find that the calibration and bed leveling won't have to be re-done for many months unless I use a drastically different bed temperature, or change the nozzle.

Having the bed temperature set properly is critical, as is the cleanliness of the bed ( I wipe mine with 91% isopropyl alcohol between every print, and just recently found that my bed actually does work without tape, hairspray, etc., if I print at 60 degrees bed temp and keep the bed CLEAN). NO FINGERPRINTS! Under a microscope, the surface of the Ultrabase Pro looks like a waffle iron, and the nozzle should be just barely skimming the peaks so as to squeeze hot plastic down into the valleys. The nozzle needs to be a lot closer to the bed than the usual "sheet of paper" (0.1mm or 0.004 inch) test for the Ultrabase to do its thing.

There is actually a way to make Marlin automatically write the babystep values into itself, so as to "automagically" correct the z distance, but it gets very confusing, at least for me, to keep track of where I was and where I am currently.

I always run UBL with a heated bed, as it makes a huge difference. If you get stuck in a DEPLOY/STOW loop, it usually means that the delta height or probe z offset is wrong, and the control board is not recognizing the probing switch. This commonly happens to me when I forget to SAVE changes, and recycle the power to the printer.

Running g-code manually (I use Repetier-Host), over a USB cable, can make life a lot easier during the calibration and leveling process, and lets you issue M502 and M500 (load and save to eeprom) commands at will without having to scroll through the LCD screens.

Thanks, I did exactly this and worked perfectly. It was a little more work but running the gcodes for the UBL did fine. Overall i'm very happen with where everything is now and prints are looking great. Other item's i'm trying to figure out is the accel and jerk settings for the predator since I have some ghosting I am trying to get rid of but I can't find any values to start with.

I have yet to play with the motion settings. I know there are a number of models available that you can slice in Cura that set different values of jerk, acceleration, temperatures, and cooling at different layers for testing purposes.

Any reason you didnt compile with the z wizard and the linear advanced features enabled?

@dectoo, the only reason I didn't invoke the "automagic" functions you mention, and I referenced before, is that Marlin is in such a state of change and flux that I could not keep track of the changes. When there is a "final" Marlin or Marlin 2.0.8 (more likely), or Marlin 2.1, I'll start again. I suspect that this will be pretty soon, since the issues list for the latest Marlin bugfix is getting very small.

My Predator is pretty heavily modified, and I'm working on an under-bed piezo sensor that so far is working very well. But having to keep up with Marlin bug-fixes just doesn't fit in to the entire development process, so for now I'm sticking with the without bug-fixes. It's a baseline for me.

By heavily modified, I mean:
all steppers changed to 0.9 degree
drive pulleys changed from 20 tooth to 16 tooth
belts changed from stock to real Gates belts
idlers changed from smooth to Gates 20 tooth
smoother diodes installed on all motors
motor current adjusted properly
belts tensioned to Gates spec
carriages adjusted for play and slop
all bearings ultrasonically cleaned and lubricated with Krytox 106 oil
belt auto-tensioners printed and installed
stepper A4988 osc pin grounded
chamfered and lubricated heated bed washers
magball arms
direct drive extruder
under-bed piezo probe
new fans (all)
brba duct
moved filament spool off printer
moved filament sensor inside electronics housing

Is the firmware you gave me in October still the same as what you're using? I've done all that but the mag ball, I have aluminum arms I want to test. I will ground the A4988 pin too I have not looked at doing that yet. What tension is your belts at? how did you measure your tension?

Hi ChuckAndy. I'm running a slightly modified version of Marlin, so it will be very similar to that. Gates recommends about 4 lbs of tension for the 6mm wide GT belts. I have a force gauge. It costs about $800, and I normally use it for verifying aircraft cable tensions.

wow, you sure did modify it!

I was going to enable those features and recompile with the config files you posted but I was getting an error about the _Bootscreen.h no directory or file not found error. Did you have any issues with this? Looks like there was an older bug in the include ../../ path but after looking it didn't appear to be the issue in my case.

the _Bootscreen.h is a custom bootscreen file. It either needs to exist in the Marlin directory during the compile, or it needs to be commented out in configuration.h


Is this firmware what I should flash or the other one you posted @ https://www.thingiverse.com/groups/anycubic-predator/forums/general/topic:46737

I am currently running Marlin

@rq3 Thanks for making this firmware available! I have been on a number of forums and posts, but I can't seem to get UBL working no matter what I try; might I get help recompiling to use bilinear leveling instead of UBL? I'd even pay for your time given how painful it's been of a process to try and get level prints! ;)

@doghousearcades, I can't help you. UBL works for me under Marlin, and without actual access to your machine, if Universal leveling is not working, I strongly doubt that bilinear will either. You must be sure to save and store the results, and make sure that they are activated (all from the LCD screen menus).

Can you give us more information on what actually happens when you go through the leveling process?

This comment is currently flagged for moderation.

Thanks for the firmware. I found online that you can invert the filament runout switch logic by changing #define FIL_RUNOUT_STATE in configuration.h to HIGH. Where as by default in the predator example file it is set to LOW.

Unfortunately I am having trouble compiling the firmware. Is it possible you can upload the firmware again with this fix? Thanks.

ksbansal, here ya go. Let us know how the filament detector works.

Edit: I just re-flashed with the filament logic inverted. It works very well.

I tried to print a thin model for the entire area. Plastic PLA, the temperature of the first layer is 220, the second is 215. When switching to the second layer and turning on the fan, the nozzle temperature drops below 200 degrees. After a while, the temperature rises, but Marlin issues an accident: "THERMAL RUNAWAY: E1" "PRINTER HALTED" "Please Reset". I flashed back the factory firmware. The same thing happens on it, only the printer does not issue an accident.

You should also remove the name in the configuration file that is giving anyone else credit but you. The people they originally had listed are useless and I have not seen them have one correct file from the start, we always have to correct them. If they can not get it done yet want you to fix their bugs then they should give you full credit. Thanks for the .7 the .7.1 update was so stupid and is still unusable, took marlin team a month to fix their program and 4 days for them to break it to a point that it will have to be reverted.

@ChuckAndy, ya, the original Predator release wasn't for the Trigorilla Pro board in the Predator, but no one seemed to catch that. Keeping up with Marlin can be a full time job. I can't imagine what the development team goes through!

I've had very little luck with the latest bug fix, but the most recent full release ( works very well after a bit of tweaking. Oddly, their example configurations for the Predator are completely different between the two versions.

WHAT did you do to get the screen to rotate on REVERSE_ENCODE and tft rotation did not do anything???

@ChuckAndy, attached are my configuration files. Search for FSMC in configuration_adv.h. This is one of those areas where the latest full release ( and the latest bugfix are wildly different from each other. I'm sticking with until the versions get merged into something at least vaguely similar.

Marlin in German. Thanks rq3

Comment has been deleted

Thanks for sharing :)