MakerBot Print is our newest print-prepration software, which supports native CAD files and STL assemblies,
allows you to interact with all your printers via the Cloud, and many other exciting new features.

Download Now


Anycubic i3 Mega / Mega-S Marlin 1.1.9 Custom Firmware - Extra Features & Quality Tweaks

by davidramiro Nov 30, 2018
Download All Files

Thing Apps Enabled

Please Login to Comment


Betrift Orginal I3M, mit FW. Beim auto Filament change M603 L538 U555 komt aus der nozzle nichts raus. Filament beim einfuhren ist wie auf dein bild. Ich habe ein video gesehen da wird ~20mm Extrudiert bevor die nozzle zum object Fahrt. Ich habe L538 schon erhoht nach L545 ohne ergebnis?

Was tu ich Falsh?

Comments deleted.

Maybe it's just the driver that's defective? If the issue is also on the default firmware, I don't know why you would think my firmware is at fault. I can't support hardware issues like that. Also the forum you linked is referencing another printer

After many hour of troubleshooting I have narrowed it down to faulty drivers, will have to try again when I get more, sorry for jumping the gun.

I have a Trigorilla 1.1 board. Do I need to change the board selection in the configuration file?

No, this is only important if you want to use BLtouch. I just added it to make it easier for those users.

I think I almost broke my printer. I made alot of mods all at once and my printer started layer shifting on the X axis. Changed my couplers, installed mosfets, changed all the fans inside, bought the Mega S upgrade, and I bought TMC2209 but couldnt find any information on them with the i3 mega... and for some reason I changed it to TMC2209_standalone and the motors wouldnt move, but they would work with TMC2208... So I returned them and im getting TMC2208 v3.0 tomorrow. Hopefully those will be easy to set up and will fix my X axis problem, .. Im kinda bummed but hopefully this printer is worth the investments im doing to it... :(

TMC2209 is not supported by 1.1.9 at all. Also, try doing one mod at a time, else you'll have difficulties troubleshooting.

Mit folgendem Skript welches ich unter "zusätzliche Terminalbefehle für Nachbearbeitung" in S3D eintrage, funktioniert der Farbwechsel/Filamentwechsel an dem definierten Layer bei meinem I3 mega perfekt!

{REPLACE "; layer 4," "M600\n; layer 4,"}

Frage, gibt es ein Script welches bis auf den Filamentvorschub Raus/Rein das selbe macht, um z.B. einen Magnet/Mutter in das Druckteil einzulegen?
Meine Versuche mit M603 L0 U0 oder M226 brachten mir nicht das gewünschte Ergebniss. Ev hat da auch bei meiner Syntax was nicht gestimmt ich bin kein Programmierer.

Moin, M603 ist zur vorherigen Konfiguration gedacht, für deinen Zweck kannst du weiterhin mit M600 arbeiten, dem kann man nämlich noch einige Parameter dazugeben, die dann die Konfiguration ignorieren. Siehe http://marlinfw.org/docs/gcode/M600.html

M600 L0 U0 sollte also passen! Wenn ich mich recht entsinne, macht er vor'm Parken einen Retract von 4mm und vor Fortsetzung des Drucks einen Purge von 8mm, damit die Nozzle auch wirklich versorgt ist. Also evtl. eine Pinzette bereithalten um den Überschuss fix zu entfernen.

Ich bin begeistert, hat auf Anhieb funktioniert.
Vielen Dank
Gruß und schönen Restsonntag

PS: gibts für die Macher der Super Software ein Spendenkässchen?

Dein Kaffeeautomat wurde soeben für den Rest des Jahres bestückt ;-))

Vielen lieben Dank!

Hi Davide Ramiro, a problem has just happened to me, after a print lasting about 30 minutes, the extruder seems to no longer work ... I tried to use the function to insert the filament, and I tried to give a new print, the extruder toothed wheel is still, can you please help me?

I had the same issue when i enabled and calibrated Linear Advance. TMC2208 in stealthcop2 mode struggles with the rapid acceleration required of the extruder to drive linear advance on the print and seems to get tripped into failure protect mode (i.e. doing nothing).

I bumped the vref to the E0 TMC2208 (to 1.3V) to no effect, so I'm now waiting on a USB to Serial breakout board so I can permanently program the E0 driver into spreadcycle mode to see if that provides enough current to the driver to ensure the extruder motor doesn't go into failure protect mode when trying to accelerate too hard.

Do you have Linear Advance enabled with a K factor configured?

I see we already spoke on GitHub :) If somebody has a similar issue sometime, in this case sending M502 and M500 helped.

Thank you so much David for your always ready, useful and professional support!

Thanks for the quick reply, is there any setting I need change to use this firmware on a i3 Mega-S ?

In the description it says:

"If you are using this on a Mega-S, those four additional commands are necessary:
M92 E384 - set correct steps for the new extruder
M203 E30 - limit extruder feedrate
M204 R1500.00 - lower retract acceleration
M500 - save the values
I highly recommend calibrating the extruder as explained below."

Hi, could you tell me why my 5015 extruder fan keeps spinning even on 0% speed set?
thanks for help

I just flash from stock FW and my parts cooling fan is doing the same as yours.Tested with the stock fan and 5015 blower with two wire only.

Hi. I've only changed the stepper drivers on the X,Y,Z and NOT the extruder and have reversed the wiring plugs on the board.
Which version of your firmware should I use?
I have an Anycubic i3 mega-s

Just use the stock drivers one.

Thank you for this and all your efforts! Unfortunately I'm having some issues with low quality prints after switching to this firmware and I'm hoping you might be able to point me in the right direction.
I flashed successfully using octoprint and punched in the extra commands for my Mega S, calibrated the extruder, performed mesh leveling, then used the gcode given for the test print.
It mostly worked well, but had issues with stringing which caused parts to drag and get caught with some areas lacking definition. I tried again increasing the retraction which helped the stringing but caused underextrusion and bad adhesion.
When performing stringing tests and test prints there is underextrusion on the first layers but the main issue is that the surfaces are lumpy and are extremely it lacking in details despite a low layer height of 0.08 ( I've been running my mini printing).
Cura settings remained exactly the same except for disabling acceleration and jerk controls after entering the given settings in the guide. 0.2mm nozzle was on previously but same results after switching back to the 0.4mm.
I did notice the extruder was very warm after printing even a small test, would the change in fan voltage require tuning the vref for the 2208s? I left them on manufacturers settings as I've only just gotten a multimeter recently.

I can post some pictures but it's hard to capture the issue, it almost looks like the fuzzy skin setting is on but blobbier if that makes sense. Minis I tested came out very much lacking in detail compared to previous prints.
I've searched and searched but I'm unable to find anyone with a similar issue and I'm getting stumped. Any help would be appreciated! Thanks again

Might have something to do with extruder speed and acceleration. Please try the following settings by sending:

M203 X500.00 Y500.00 Z6.00 E60.00
M201 X3000 Y2000 Z60 E10000
M204 R3000.00 T3000.00
M205 S0.00 T0.00 Q20000 X10.00 Y10.00 Z0.40 E5.00

Also, if you had no issues with your Cura profile beforehand, just reenable acceleration and jerk controls.

The extruder motor getting hot is another thing to be wary of - although it has nothing to do with fan voltage. Whats the Vref on your extruder driver right now?

Okay, so I used the above settings and no such luck - still the same issue.
I enabled the jerk and acceleration controls and again got the same results - now I'm stumped haha

Pictures here:

Also, I realised the multimeter I ordered from eBay came without a battery so currently unable to check the vref.

EDIT: Reprinted after re-flashing Anycubic's 1.1.3 and things look great. I might try copying all the jerk values etc from this firmware and apply to your 1.1.9.

Very weird, most people don't see a drastic change in quality by using this firmware, rather a slight improvement due to S-Curve-Acceleration. Good idea to copy over all the values from 1.1.3 (not only jerk and accel, every M503 output that could be relevant) and trying it on this fw.

Found a battery and tuned the stepper drivers, working much better now - I'm not sure why I noticed such a dramatic change after flashing your firmware but I think some setting just emphasises the issues the overvoltage was causing.
In short, pretty much sure now that the Firmware is not at fault, and actually assisted in diagnosing an issue that could've caused issues down the road.

Thanks so much for the help, and for the software! Now to start printing!

Glad to hear that, I can also roughly think of an explanation - while the TMC2208 are plug-and-play compatible to the old A4988, you can still drive them with higher precision and different timings. With the old firmware, you were driving them as if they were A4988, which is fine, but on this firmware they specifically get treated as TMC2208 which might be why they are more sensitive to Vref issues.

Have fun with further tweaking and printing.

I'll switch over those settings later today to check if that is the cause - thank you!

Vref I'm not sure about, I left them as they came from the manufacturer - it was fine before switching to the new Firmware so I'll check the above settings first then look at tuning the vref as needed.
Thanks for that information, I appreciate it!

In der release note der v1.4.5 las ich

"Implemented optional endstop beeps

Enable ENDSTOP_BEEP in Configuration.h to enable a 2KHz beep when endstops are hit, disabled by default."

wie kann man diese Töne einschalten? Geht das nur mit Arduino?
Gibts hierfür eine Anleitung?

Wie so oft - alles schon beschrieben: https://github.com/davidramiro/Marlin-AI3M/wiki/Customization-&-Compiling :-)
Arduino IDE wird benötigt, ja.

Danke für deine Antwort.

Soweit hat alles nach Anleitung funktioniert, die Beeps ertönen bei Betätigung vom X,Y und des linken Z End-Schalter, nur beim rechten
Z End Schalter ertönt kein Beep (elektrisch schaltet er). Ist das so, oder hab ich da beim Ändern etwas übersehen?

Mir ist noch aufgefallen, dass im Standartprogramm bei "Filament in" nach drücken der Stopptaste es gefühlt 3x solange dauert bis der Vorschub abschaltet als bei der Originalsoftware, kann man diese Zeit bis zum Abschalten beeinflussen ?

beim rechten Z End Schalter ertönt kein Beep (elektrisch schaltet er). Ist das so, oder hab ich da beim Ändern etwas übersehen?

Das ist normal so. Für die Z-Achse hab ich nur einen Pieps eingebaut, doppelt fand ich überflüssig. Kann man aber im Code ganz einfach hinzufügen.

Mir ist noch aufgefallen, dass im Standartprogramm bei "Filament in" nach drücken der Stopptaste es gefühlt 3x solange dauert bis der Vorschub abschaltet als bei der Originalsoftware, kann man diese Zeit bis zum Abschalten beeinflussen ?

Ja, das kann gut sein. Vielleicht hat Anycubic da irgendwas geupdated mittlerweile, aber Ihren Quellcode haben sie seit Anfang 2018 nicht mehr rausgegeben.

Vielen Dank für die Arbeit!

Installation der Stock Version war problemlos möglich, Mesh Bed Leveling im 2. Durchlauf perfekt.
Zwei Fragen:

  • beim gedruckten Testmesh scheint der Retrakt nicht zu funktionieren, siehe Bildanlage. An was kann das liegen?

  • bis jetzt hatte ich den Wert für den kalibrierten Extruder Step Wert in Slicer eingetragen (95,5)
    bei der Kalibrierung kam ich jetzt auf einen Wert von 99,6, hab diesen Wert im Drucker eingetragen und mit M500 gespeichert.
    Was passiert jetzt wenn ich einen alten GCode drucke, in dem ja der Wert vom Slicerskript hintelegt ist?
  • Da jeder Drucker anders ist und oft Mods im Spiel sind, wird das Testmuster so gedruckt, dass es bei jedem funktioniert, mit sehr wenig Retraction - entsprechend natürlich nicht ganz so sauber. Also alles im Rahmen. Hauptsache die geraden Linien sind sauber und gleichmäßig gedruckt.

  • Du redest wohl von Flow im Slicer, an sich machen da 5 Punkte keinen großen Unterschied. Wichtig ist, dass der Extruder korrekt kalibriert ist, danach dient Flow eher dazu, bei verschiedenen Materialien leichte Varianzen auszugleichen. Z.B. soll man ja bei PLA einen Wert knapp unter 100 wählen. Also ist 99 als E-Steps und 95 als Flow gar nicht verkehrt.

Das ging ja superschnell, Respekt und Danke für deine Antwort!

Zur 2. Frage, ich rede vom Startscript im Slicer und das sieht bis jetzt folgendermaßen aus:

M190 S[bed0_temperature] T0 ; Bett heizen
M109 S[extruder0_temperature] T0 ; Extruder heizen
M92 E95.5; Neue E-Steps setzen
G28 ; Homing
M420 S1

Hiermit wurde dem Drucker ja der kalibrierte Wert mitgeteilt.

Ah, verstehe. Ich würd den Befehl aus dem Startscript rausnehmen, wenn du den korrekten Wert im Drucker hinterlegt hast. Ist übersichtlicher, und jeder GCode funktioniert dann in Zukunft so wie er soll, wenn du den Wert im Drucker mal korrigierst. Der Wert im GCode hat Priorität vor dem gespeicherten - ist aber auch kein Kapitalverbrechen jetzt noch alte GCodes mit 95 E-Steps zu drucken, das macht keinen allzu großen Unterschied. Und solang du nach einem Druck nicht M500 sendest, bleibt der Wert im Speicher auch unberührt.

Vielen Dank das beantwortet meine Frage

Hi, when i do the mesh bed leveling after finishing the last point the printer beeps. But when i click on Save to EEPROM the printer dont beep.
The printer should beep as you said in the tutorial on the leveling. Maybe thats why the leveling doesnt apply to the print.
Have a nice day.

The beep sound got added in one of the later versions, maybe you're not on the most recent one? Anyways, to be sure I'd recommend sending M500 via USB.

Comments deleted.

Ich hätte auch noch eine zusätzliche Frage. Ich habe die Stock-Installation gemacht weil bei meinen Drucker noch nichts ausgetauscht wurde. Kann ich jetzt im nachhinein einfach die Driver auswechseln? Oder könnte ich da Probleme mit der Firmware bekommen.

Einfach neue Treiber einbauen und die entsprechende Hex-Datei drüberflashen. Brauchst keine Befehle senden oder Einstellungen neu machen, einfach flashen reicht.

Danke fur die tolle Fw. bed kevelling und colorchange sind fur mich das wichtigste. Bed levelling macht jetzt spass. Gibt es ein plugin fur colorchange? Wie setze ich dein M600 in cura 4.3.0 an unterschiedlichen hohen?

Einfach die GCode-Datei mit einem Texteditor öffnen, mit CTRL+F und "layer" die gewünschte Layer suchen und dort M600 einfügen. Mit Cura kenne ich mich nicht aus.

Erstmal vielen Dank für diese unfassbar gute Arbeit. Ich habe bemerkt, dass der Lüfter jetzt viel lauter ist und so wie ich es verstanden habe, liegt es daran, dass dieser nun auf 12V läuft anstatt auf 9V. Ist das denn nicht schlecht für den Lüfter (Original-Lüfter)? Ich habe davon absolut keine Ahnung, deswegen nur als Frage gestellt.

Keine Sorge, der Originallüfter ist auch für 12V ausgelegt. Aber er ist auf den vollen 12V schon recht stark, also einfach im Slicer auf ca 70% stellen und alles ist beim Alten.

in wiefern lässt sich deine Custom Firmware für andere Anycubic Produkte, wie der 4Max Pro integrieren?

Von der Mechanik her scheint nur die Ausrichtung der Z-Achse anders herum zu sein. Von dem her kein großer Aufwand. Der TFT ist allerdings ein ganz anderer, das wird wohl nicht auf Anhieb klappen. Die Frage ist aber in einer 4Max Pro-Gruppe besser aufgehoben.

Danke für die schnelle Antwort!
Ich weiß, hatte ich auch vor, aber leider scheint dort Totehose zu sein.
Gut dann kann ich deine CFW laden und mit meinen Settings versehen (nach deiner beigefügten Anleitung) einschließlich der invertieren der Z-Achse, kompilieren und dann los drucken?

Wie gesagt, Display ist ein anderes. Das wird so ohne Anpassungen eben nicht funktionieren. Ausprobieren kann wohl nicht schaden, dann kannst du vielleicht zumindest ohne Bildschirm drucken, aber ich habe leider keine Zeit mir auch noch andere Geräte anzuschauen die ich nicht besitze.

Ob das Display hinterher funktioniert oder nicht ist mir egal und ich glaube nicht irgendwo angedeutet zu haben, dich über ein dir Unbekanntes Gerät unbedingt informieren zu müssen.

Trotzdem Danke.

Hast du auch nicht. :-) Ich wollte damit nur sagen, dass ich halt für nichts garantieren kann. Tatsächlich gibt es doch ein paar mehr Unterschiede als mit dem bloßen Auge zu erkennen. Eine kurze Google-Suche führte zu diesem Thread: https://drucktipps3d.de/forum/topic/anycubic-4max-pro-marlin-1-1-9-firmware-ai3m-basierend/

Scheint, als hätte sich schon jemand die Mühe gemacht!


I recently got this firmware up and running. I've been reading that the filament runout sensor should be enabled, but I just had a filament roll finish and the printer seems to have ignored the filament runout sensor. I see on the screen it reads "Lack of Filament" but it just kept trying to print anyway. Any suggestions for this? Thank you.

Are you printing via USB or SD card?

I'm printing via USB - raspberry pi with Octoprint running. I bet if I printed from SD card that would solve my issue, would you agree?

Yes, with that setup the filament sensor cannot work at all. You could connect the sensor to the GPIO ports on your Pi and install a plugin called "Filament Sensor", so OctoPrint can use it.

Thanks so much! I printed via SDcard and it worked as expected. I appreciate your work!


Is there any plan to add Power outage support? it´s a must for me, common outages where I live :-(

I have a rough idea on how to implement it, but I just don't have the time at the moment. I'll definitely keep an eye on it, maybe at the beginning of the new year I could do another update.

thanks, I really appreciate it. Please let me know if you finally do it :-)

Hello, is the coldend fan running on12V or 9V with this firmeware?

David; Thank you so much for this a lot of thought went into it . I have followed all your instructions but i seem to be having an issue with z height when it starts printing. So using repetier host i set the z height perfectly using the paper technique, but after saving and i go start printing the z height seems to be like 2mm high off the bed and i cannot get it to sit proper. I used the hex for the anycubic mega s with 2208s pins reversed. Any advise would be awesome as everything else seems to be working fantastic. Might be something im doing or is it because maybe i have a Chinese clone with different lead screw pitch? and where would i find those settings in marlin. Thanks

Hey there, as an easy fix just add a small Z offset with M206.

Start off by applying 0.5mm by sending

M206 Z0.5

and try to find a value that fits well. (Please note that postive values mean a lower nozzle)

As for your lead screw, I can't say if it's the cause. If your Z axis is inaccurate due to the different pitch, you can calibrate it with M92.

Hi David .. While browsing through my goto site for stl.files i came across this !!
And was wondering with the mesh leveling function do i need to have the
BLtouch sensor fitted as thats one thing i dont have.... ,
as i said its only a question
My build bed is as warped as a sine wave ,and that function sounds amazing !!!..
And could be just what i need

BLtouch is not required, hence the name "Manual" Mesh Leveling. Everything you need to know is laid out in the description.

Hello, I installed bltouch on my I3 Mega
and I have a problem because bltouch, when you start the printer, ejects and retracts twice, and that's all I don't have any control over Gcode

Wrong comment section, this firmware is not configured to use BLtouch. I also don't have the sensor so I can't help out there.

I cannot thank you enough for this amazing post! Just starting a couple of months ago to approach 3D printing with this entry level machine... And your work made so many things clearer for me!
Massive kudos man


I installed this purely to get rid of that horrid starting up "chime" it does every time I turn it on and it's solved that. Don't know why the designers thought that was a good idea in the first place.

First of all: fantastic work!
The PWM bed heating control seems to be generating a high-pitched noise that's in sync with the heater being on/off. Any idea what could be emitting this noise? Low quality capacitor?

Yeah, for me it's some faint clicking noise in the same rhythm as the PWM frequency. In my case it definitely comes from the PSU. Might be a noisy coil or yeah, bad quality components in general. Don't worry about it, the operating current is well within spec.

Not worried about operating current - I am worried about my wife banishing my printer from our shared office :)
I'll have a poke around and see if I can figure out where the noise is coming from.

Ah well, a 3D printer might generally not be the most pleasant ambient noise for an office :-)
But fyi, the PWM noise, at least in my case, should not be audible at all from a distance. So maybe something is up with your machine.

The noise is definitely coming from the PSU. If I heat up the bed on its own, then you can only hear a very faint clicking sound. As soon as something else draws power (e.g. any of the motors), then the high pitched noise appears. I'll strip the PSU and see what I need to replace.

Honestly - I wouldn't bother trying to fix a subpar Chinese PSU in the first place. For the peace of mind, just get a MEAN WELL LRS-350-12, costs about 30 bucks and will definitely outlive every other part of the printer.

Good call, thanks for the tip! It'll definitely be easier to replace it.

Mesh bed leveling is not working with my Printer. I he ignore the Z +0,02 and -0.02 command. Has anybody a solution?

The menu is a bit weird at times. You need to press Z+/- each time before pressing the round arrow, even if it is still selected and marked red.

If it still doesn't work, just send the movement commands via USB.

OMG. Can I give you a hug?

Sure, free hugs are always welcome!

Just wondering if there is a way to change the default temp setting for the hotend and heated bed as i prefer a little cooler then what the default is in the new firmware.

I thought i saw it somewhere but i cant seem to find it again, any help would be appreciated thankyou :)

If you are talking about the preheat buttons on the screen menu, you can change their behaviour at AnycubicTFT.cpp, line 1165-1184: https://github.com/davidramiro/Marlin-Ai3M/blob/master/Marlin/AnycubicTFT.cpp#L1165


thermalManager.setTargetHotend(200, 0);

to what you desire. Compile, flash and done. (No need to backup or redo any settings on a reflash like that)

okay so i did the arduino thing and edited the values you said too. Now i just dont quite know how to get it onto the printer with Cura.

any tips on how to do this would be greatly appreciated, thankyou

Settings -> Printer -> Manage Printers -> Update Firmware.

Davidramiro I am very grateful for the firmware you have created. However, I have a question. Does this firmware have the ability to connect BLTouch without having to modify it? I've uploaded the hex for standard drivers and I'm thinking about installing BLTouch. Is it possible without changing the firmware?

No. You need to specifically define where the probe is and everything. There is a link to a fork of my firmware with BLtouch support right at the top of the description.

I am interested in auto bed leveling as well so this one I would be interested in.
Hate leveling the bed every few prints..

Comments deleted.

I have 2 questions, I recently followed you steps to install the latest firmware. I got everything working with repetier. But i cant figure out how to connect cura via usb to the printer. Also for some reason my special menu doesnt work.

PS: Figured out what the cura problem was. COM was in use. Whoops

  1. I had a problem with cura not connecting to the printer and the problem was that the usb was to long lol... I now use octoprint on raspberry PI...

  2. To get the special menu up you have to have the SD card in. oh and make sure there's no special chars in the directories such as the chinese language, pop it in the computer and change the squiggles to chinese or just delete the directory, pop the card back in the printer and it should display the special menu.

hope you get it working the mesh leveling is great especially for my warped bed lol

Thank you. there was a folder with mandarin characters: '资料_中文_Mega'. i just delete it and worked.

The first thing i did after i was experiencing that my printer got stuck at the print menu, is whiping everthing from my SD card. Unfortunatly this did not solve my problem. Everytime I click the refresh button while slecting the special menu option it refreshes and opens the main menu main print menu again. I cant fiqure out why it does this in my case. Any suggestions?

hmmm.... have you got a spare sd card you can plug in and try?
Thats the only thing I can think of, apart from reflashing the firmware just in case you had a bad download.

Let me know if this helps..

I tried using the original micro SD card but i got the same problem, after that i tried using a new SanDisk microSD card. This also didn't work. So i tried reflashing it. But i still got the same problem! Do you have any idea what could cause this to happen?

For people with version 1 with the capacitive sensor. If nothing happens when the bl touch touches the board you must remove the resistors and capacitor on pcb (1Uf 15K and 10K).

Can anyone please help me find the stock firmware download. I'd like to go back but Anycubic doesn't have it on their website anymore.


  1. follow the link above.
  2. click on the version of the mega you want (S or M picture) and scroll down to firmware etc
    Download and you have the firmware

The download link is on the product page. For example, for the i3 Mega, go to the product page and scroll down to the "Anycubic Care" section and you'll find the firmware/drivers links.

I'm pretty sure that's not related to this build specifically, but maybe it is. I just can't get linear advance to work. After careful calibration I place the M900 with the K value in the start code, the extruder doesn't feed anymore. This can only be fixed by resetting the printer or manually setting K to 0 again.

Also I've noticed when I press down in the print menu on the last screen, I get a blank one and every time I go up from there the contents are scrambled. Going 2 screens up and one down fixes it again.
I've not reported a bug because I'm not sure if I did anything wrong. However, I did try to flash it again with the precompiled hex and still get the same errors.

Regarding LA, do you have by any chance TMC2208 driver installed on extruder?
If that's the case, try putting #define MINIMUM_STEPPER_PULSE 1 in your Configuration_adv.h file, you'll need to uncomment the line and change number. That solved the issue for me with 2208 in STANDALONE.
From what I read around the internet this is a pretty common issue with these type of drivers.
Hope this helps!

I've already had 2 different TMC2208 for the extruder in the meantime, but i did not expect that. Will test as soon as I am at home. Thanks for this!

Comments deleted.

I upgraded to this firmware recently and have been printing PLA just fine. Thanks for the great work Dave Ramiro. I then ran into an issue where I am trying to print some NInjaflex Cheetah filament at 240. The extruder reaches the temp and begins printing in about 2-3 minutes I see the extruder temp keep dropping and not heating up the extruder as it drops. I did a PID calibration (M304 P162.01 I29.52 D222.30) on the extruder that didn't help. I then used the factory (M301 P15.94 I1.17 D54.19) and that didn't help either. Eventually the printer stops and OctoPrint reports the following.

Recv: Error:Thermal Runaway, system stopped! Heater_ID: 0
Recv: Error:Printer halted. kill() called!
Changing monitoring state from "Printing from SD" to "Error: Thermal Runaway, system stopped! Heater_ID: 0 - Printer halted. kill() called!"
Changing monitoring state from "Error: Thermal Runaway, system stopped! Heater_ID: 0 - Printer halted. kill() called!" to "Offline (Error: Thermal Runaway, system stopped! Heater_ID: 0 - Printer halted. kill() called!)"
Connection closed, closing down monitor

I have printed ABS at these temps and higher with stock firmware. Any advice on why I get am getting this or how to resolve? I have attached a pic of the graph. You can see where the extruder drops off on the right side of graph.

Is it by any chance the fan that is kicking in, at the time that the temperature is dropping? Right now I cannot think of anything else that would cause such a sharp drop in temperature.

The error you are getting is the Thermal Runaway Protection, in this case simply meaning your hotend cannot hold the desired temperature for a certain amount of time.

I have similar issue and I agree with David observation: it seems depend by hotend's fan.
Currently I'm trying to mitigate the issue reducing speed to 80% from touch screen during the printing and than restoring to 100%.
It works but is very annoying.. Could be a bug in fan management?

If you are using the stock hotend fan - I wouldn't recommend using it at 100% in general. It won't damage the fan, but Anycubic deliberately limited to 75% in their firmware, because it really is very powerful at 100%. So maybe use 75% as a maximum value in your slicer?

I'm using the stock one (radial fan) and I set in Cura to 70% max fan speed as for your suggestion from latest firmware upgrade.

Thank you David Ramiro and LymanIt. I thought I had read thru all of the documentation in the firmware and made the appropriate changes, but missed the fan settings. Made the changes per the documentation and settings the printer is printing without the thermal shutdown.

Hi Davidramiro, first of all I would like to congratulate you for the great work done in this firmware, I solved the problem of the plate not perfectly plane But I have a problem with changing the filament, I use cura 4.2.1 and when I set pause to height, save the file in the sd memory, I start printing from the sd memory, when the printer pauses I change filament but at the moment the sensor no longer detects the filament, the printer stops. I tried to change the filament and press "continue" but it remains locked. I can only turn it off and on to restart it. do you have any advice for me?

Since we already resolved this on GitHub, I'll post the solution here for anybody else having the same problem:

Don't use Cura's pause plugin, just open the GCode file with a text editor, search for "layer X" or "layer: X" (depending on slicer) and insert M600 right before it. That way you can then change the filament and use the on screen "continue" button. Hope that helps!

My best advice is to disconnect the sensor so that it won't interfere with the filament change process.

Disconnect the sensor (when the printer is powered off) and then power on the printer: you will see the "Lack of Filament" warning appearing on screen, just click "ok" and go ahead.

The "lack of filament" warning will remain on the bottom tab of the LCD but that's all, it won't interfere with an ongoing print or with the pause/resume function.

Please note: if you cancel the warning prior to connecting the printer via USB (say Octoprint or CURA) the warning will come up again one time after the connection is established. So you'll need to click the "OK" button once more, same as before.

Is it possible for me to save all the changes I made to this firmware such as the bed leveling and PID stuff? I want to revert back to stock firmware for some testing, but I'm afraid I will have to do everything again if I have to revert back to this.

It's in the description.

Send M503 and make a backup of all the lines starting with:


After flashing the new version, issue a M502 and M500. After that, enter every line you saved before and finish by saving with M500.

hi again,

im having issues connecting the printer to anything other than cura, its just not connecting. i had the issue on stock firmware aswell, happen to know what im doing wrong? i cant send those commands unless i use cura and cant see replies heh

I can't really provide support for issues that occur on the stock firmware too, I'd like to keep this about this specific firmware. Anyways, first and foremost always close Cura before attempting to connect with another software (especially if it says something like "Cannot open COM port"). Also, the included USB cable is garbage, try using the cable from your inkjet/laser printer, should be the same port.

hi tried the stock drivers version from the base anycubic fw on my mega-s.

i noticed the heatbed light flashing rapidly is that normal?
i kept getting errors on the screen that i was out of filament?

Yes, the flashing of the LED is the PID control. Temps should be more stable now.

Some errors might pop up in the beginning of a print, but it should not interfere with the print at all. I might look into that soon.

ah, is that rapidly heating like that fine for the MB ?

havnt tried a print yet, that popup has shown itself around 8 times after boot. that would be great if you could :)


This should not be a regular thing. Only happens sometimes, haven't seen the bug in weeks so it's nothing very high up on my list of priorities.

Hallo ich habe den I3 mega vor wenigen Tagen gekauft. Installiert ist v1.1.4, also vermutlich habe ich die Version 3. läuft diese Firmware dort auch drauf? Möchte gerne die Brandschutzhinweise von OctoPrint mit dieser Firmware umsetzen.

Diese Firmware läuft auf allen i3 Megas mit 8bit-Mainboards. 32bit wird leider nicht unterstützt. Im Displaymenü unter Info kannst du das einfach checken. 1.1.0 ist 8bit und 1.4.1 ist 32bit. 1.1.4 hab ich persönlich noch nicht gesehen, aber hatte schon lange keine Herstellerfirmware mehr drauf. Vielleicht ist das nur die aktuelle FW-Versionsnummer.

hello,I have problem about Marlin-Ai3M-v1.4.6-stock_drivers。I want to open Linear Advance and I set the K value for Linear Advance,But nothing at all。Is this version of the firmware enabled for Linear Advance?I tried to recompile with the source code, but I always get an error. Can you help me?

Linear advance is already enabled. Just set a K-value and it will work. Keep in mind that this needs a lot of tweaking until you get it right. Read the Marlin documentation carefully, there are two different versions of LA using different values. This firmware is using the newer one. While the old K-value might have been something like 100, the new one should be in the low 1-digit range. Mine was 0.45.

I was looking at the manual bed levelling page on the Marlin website:


It says that the M420 command can be set automatically after a G28 (Auto-Home). Is this something we can set, or something you need to set at compile time? Have you considered setting this? It makes a lot of sense.


Good find, this was actually already enabled in an earlier version, I had to disable it because it was causing an issue with certain end-GCodes from Cura.

How do I know if the firmware was loaded correctly? How can I confirm this? If I go to info, I think it shows the same info as before.

Easiest way would be to check if the printer still beeps when turning it on

The beeps have stopped, but I don't get the special menu

Read the description... Insert SD card and make sure there are no files/folders with special characters on it. It's all there.

Hallo, bitte helfen Sie mir, diese Parameter in der Marlin-AI3M-vx.x.x-TMC2208_reversed.hex-Firmware zu ändern.
  Vielen Dank

Ich habe da ein Problem mit dem Sunon MF50151VX-A99.
Mit der normalen Firmware summt der recht unangenehm. Deswegen habe ich schon die Marlin-Ai3M-SOFTPWM-v1.4.6-TMC2208.hex von dir geflashed. Bei dieser Version "pulsiert" der Lüfter allerdings. Hast du in der Firmware7.6294 Hz (SOFT_PWM_SCALE 0) drin, oder einen anderen Wert?

Korrekt, bei der Software-PWM Variante läuft er auf 7.6294Hz. (FAN_SOFT_PWM aktiv und SOFT_PWM_SCALE 0). In der Standardfirmware läuft der Lüfter mit Hardware-PWM.

Du könntest mal ~30Hz, also FAN_SOFT_PWM aktiv und SOFT_PWM_SCALE 2 ausprobieren. Alternativ auch FAST_PWM_FAN, allerdings keine Gewähr meinerseits, nie probiert.

Ich habe mir eben mal die Firmware "gebaut" ("SOFT_PWM_SCALE 2" mit "FAN_SOFT_PWM" aktiv). Mal sehen was dann passiert. Kann ich aber erst Morgen testen.

Wenn ich die Alternative auch noch probiere, lass ich SOFT_PWM_SCALE und FAN_SOFT_PWM wie es ist und aktiviere FAST_PWM_FAN. Welcher Wert wäre dann für setPwmFrequency angemessen. Eingestellt ist "1", aber ist setPwmFrequency 6 nicht eigentlich gleich mit SOFT_PWM_SCALE 5? Oder was passiert dann?

Ich habe nun SOFT_PWM_SCALE von 1 bis 5 getestet. Die Geräusche verändern sich , aber zufrieden bin ich noch nicht.

FAST_PWM_FAN habe ich auch probiert. Da sind die Störgeräusche weg, aber der Lüfter lasst sich kaum regeln. In der Anleitung steht das man den Wert in der temperature.cpp noch anpassen kann. Allerdings gibt es eben drei Lüfter. FAN0, FAN1 und FAN2. Welcher wäre denn der Blower? Ich meine es ist FAN0...

Ja Fan0 ist richtig bei FAST_PWM_FAN.

Hab jetzt aber wieder Soft_PWM_Scale auf Stufe 1. Empfinde ich als am wenigsten störend.

Hi I've found this project

Are there any plans for such features? I love mesh leveling so I'd rather stay with your upgrade (I assume those are not compatible) but dual material printing is something that I'd love to see in i3 mega. Sorry for such random question.

Anycubic I3 Mega Y Dual Extruder conversion

I'm sure I've asked this already but can't find the answer anywhere? Without opening up the electrical gubbins, how do I know which hex file I should use? I bought the mega in July this year. Everything is working just fine, but I've bought the mega-s extrude kit, and a BL-Touch, hence me looking to use this custom firmware.


Start with the stock one, just adjust the E-steps as described in the Mega-S section. As for BLtouch, I don't have one and I can't really support it. There is a modified version of my FW with BLtouch support linked in the description.

I notice that the heated bed LED is flashing quite rapidly - i'm guessing due to the new PID control on the bed? Is this a bad thing to cycle the power to the bed at such a rate? Might it affect the power supply? Is there any way to change it so there is a few seconds lag between on and off cycles?

Yes, that's exactly what the PID control looks like. And actually, On the contrary, it's a good thing - MOSFETs are meant to be used with a high frequency. Actually, the old "bang-bang" method is more detrimental as 5 seconds of full DC current are worse for that kind of MOSFET than switching it rapidly. As for the power supply, it's a generic switched-mode PSU. It will handle it well too.

You can lower the PWM frequency by raising SOFT_PWM_SCALE in Configuration.h and recompiling, although you are sacrificing a bit of accuracy by doing that. Also it will not help longevity of the components.

That's good enough for me - thanks for the clarification!

I was wondering if anyone else has had this problem, it will show a wrong percentage estimate while printing and then at the end if just freezes exactly where it is and melts the piece and the screen is frozen. i have put the firmware on two different megas and they both do it randomly.

Brauche mal deine Hilfe. Habe vor an meinem Mega das e3d V6 zu montieren. Die TMC 2208 kommen auch rein. Kann ich da die TMC2208.hex so nehmen oder muß ich was ändern. Hab jetzt die Marlin-AI3M-vx.x.x-stock_drivers.hex von dir drauf und die läuft super

Einfach die TMC2208.hex nehmen (ggf TMC2208_reversed.hex, je nach Version. Diese "v2.0" China-Klone sind z.B. schon gedreht) und drüberflashen, das wars. Nur kurz checken ob die Achsen richtig herum laufen - wenn sie verkehrt herum laufen, einfach nochmal die andere Version draufpacken.

danke für die super schnelle Antwort

I'm not sure what the drivers mean. I just got a new Anycubic Mega S and made no modifications, and I used the driver here that says "stock", did I use the right one? I made the Mega S adjustments mentioned in the guide.

Stepper motor drivers. You chose the correct file, as you didn't do any modifications.

Hello everyone, I have so much trouble to compiling (always errors)! Can someone provide me with a new.hex with "Temp_Sensor_0 13" and "TMC2208 reversed"? Thank you very much!

If you haven't been able to compile successfully yet, I can help you tomorrow. Anyways, those errors are usually just from Arduino IDE not being configured properly. If you follow all the steps closely, it should compile fine. If you see errors but still get a hex file, don't worry. Those are just some warnings because my code probably isn't perfect in some places :-)

Since i flashed Marlin, my filament sensor doesn't work anymore.... I pretty often get the warning "Lack of filament..." but there ist filament in and the print goes on.....

I think I saw the same - but I don't usually use the filament sensor with the printer so it wasn't a huge problem. I did notice that it gave the warning but kept printing (filament was not routed through it) - but then when I tried to start the next print, it wouldn't work until I stuck a scrap of filament in the sensor. Sorry - this might not be the most helpful answer, but that's what I've got!

Ich bekomme mit der neuesten v1.4.6 per se kein speichern des Mesh Beds mehr hin. Alles klappt wie üblich, nach dem Leveln fährt er zu seiner Homeposition zurück, warte 20sec und speichere dann das EEPROM. Die beiden Befehle sind ebenfalls im GCode eingetragen.

Jedoch ist er dann beim Druck mal eben einen guten Millimeter über dem Bett. Ich habe jetzt mal spontan eine alte Version von Dezember 2018 draufgemacht um zu sehen, ob vllt etwas mit dem Drucker ist, aber hier funktioniert es ohne Probleme.

habe ich gemacht
aber das mit dem repo kapiere ich leider nicht bzw was ist ein repo
alles andere habe ich verstanden und gemacht

danke schon mal

hallo habe es in arduino bearbeitet und wenn ich es ausgeben will ist alles rot unten im programm .
habe nur reverse getauscht und die jeweiligen tmc umgeschrieben aber es kommt eine riesen fehlerliste
hoffe du kannst mkr helfen

Bitte einfach mal einen Blick in die Beschreibung werfen. Ist doch alles dort beschrieben...

Hello, can you share the source code of Marlin-Ai3M-v1.4.6-stock_drivers.hex

Source code is almost identical between the different hex files, only the motor config differs. See https://github.com/davidramiro/Marlin-Ai3M/wiki/Customization-&-Compiling

  • Start off by looking at line 559 to 566 and line 857 to 865 in Configuration.h, edit the file according to your stepper driver type and direction (see the comments)

Hi, Mesh Leveling doesn't work..... It starts and goes to seceond point, but does not lower or rise the nozzle with the commands...... Any Ideas?

Are you sure you are closely following the instructions? It's working for everybody else. The SD menu requires selecting the item every time you want to send the command (even if it's marked red from before) and confirming with the round arrow. As explained in the instructions. If this is too complicated, you can manually send movement GCode via USB. If those don't work, your printer is broken.

Mmmm strange.... It works now... :-)

Hi David, thanks for the response. Is there an editor for an AnycubicTFT.cpp file, and is it simple to do?

Any text editor will do. If you're not familiar with coding, it might seem confusing, but CMD/CTRL+F and searching for "preheat" should get you to the values to edit.

Recompiling the new hex file is necessary after editing, I made a tutorial for that on the firmware's GitHub under Wiki.

The M145 gcode to amend the preset defaults for materials via the LCD doesn't appear to be in this version of Marlin. Has anyone tried reverting back to stock, changing the values with M145, then reinstalling David's?

I'd like to know if the changed preset values would be saved over into David's, before I start fiddling about.

The i3 Mega's LCD you are referring to is not to be controlled by Marlin in any way. It's a proprietary TFT screen that just forwards some specific commands or GCode to Marlin.

As per M145 GCode spec, an LCD controller is necessary. The included display is not one of those so that particular GCode is obsolete. You can either install a proper Marlin-compatible LCD or alter the two presets (PLA or ABS) in AnycubicTFT.cpp so that the included preheat menu gets changed.

I installed this firmware on my anycubic mega S. Everything is fine except for two points.
1) For some reason, the printer prints any height along the Z axis with an increase of 0.2 mm. The problem is definitely not in the slicer.
2) When trying to read eeprom in the repetier-host program, an empty window opens. It is written on the repetier website that editing eeprom settings is one hundred blocked if the M205 command in the terminal does not exit, which happens in my case.

Ich lese immer wieder das es 8Bit Boards und 32Bit Boards gibt. Wie kann ich sicher gehen, welches Board ich denn habe, bei dem Mega S und ist diese mit den 32Bit Boards kompatibel? Wäre schön wenn du mir da etwas helfen könntes. Mein Drucker ist ja noch in der Beziehung komplett Jungfäulich.

Besteht die Möglichkeit den Lüfter wieder auf 9V zu begrenzen, wenn man den originalen besitzt? Bei einem Druck mit Octoprint dreht der originale Lüfter immer voll auf. In Cura habe ich das Limit auf 70% gesetzt.

Du kannst in der Konfiguration FAN_SPEED_MAX setzen und die Firmware neu kompilieren. Werte von 0-255 sind möglich, somit würden 190 in etva 9V entsprechen.

Perfekt - Danke für die Info

I don't know if I've said this before but "thank you from the bottom of my heart" this saved what was left of my hair. I'm new less than 2 months and I thought it had to be my fault but mesh leveling cured it :-)

Comments deleted.

Hi I wen't through comments but didn't see anyone asking about this - I don't know which hex file to choose. I have not modified my Anycubic I3 Mega in any way, I have the 2 z stop sensors.

It's right at the top of the "Installation" part of the instructions:

  • For TMC2208 with connectors in original orientation, use Marlin-AI3M-vx.x.x-TMC2208.hex
  • If you use TMC2208 and already reversed your connectors, use Marlin-AI3M-vx.x.x-TMC2208_reversed.hex
  • If you use a newer version of the TMC2208 that doesn't require the connector to be reversed (TMC2208 "v2.0" written on the PCB, chip on the top side), please also use Marlin-AI3M-vx.x.x-TMC2208_reversed.hex.
  • If you use the original stepper motor drivers, use Marlin-AI3M-vx.x.x-stock_drivers.hex.

Please make sure to read the whole thing before trying to flash it.

Hi and thanks for sharing. Just a quick uestion: Are you planning to update the package? Because I have reported some issues on this version (https://github.com/MarlinFirmware/Marlin/issues/13517) but I do not know how to install the new version.... Thanks for your help ;)

Hi there, the issue you reported got fixed on 2.0.x, not this version. 1.1.9 is basically end-of-life, so there really won't be any more updates to it.

I have also made a version of 2.0.x a while back: https://github.com/davidramiro/Marlin-Ai3M-2.0.x
I have just merged all the updates up to 30.08., so your issue should be fixed there. Anyways, 2.0.x is in beta status, you can go ahead and compile it (instructions on compiling are in the FAQ) and try it out, but I can't really support it. I didn't have any problems on 2.0.x personally though.

Hi. Firstly, thank you so much for the effort you have put into this firmware, it has been awesome so far.

My problem: I am trying to do my first mesh bed levelling. 0.1 Z changes work fine but I am unable to raise or lower by 0.02 increments. When I select raise/lower by 0.02, nothing happens.

My printer has TMC2208 installed and quiet fans but is otherwise a stock Mega S..

Could somebody please help me be able to make small increment changes when mesh bed levelling? Thank you!

HI, you have to choose another option on the screen but don't confirm it, you only need to highlight it in red, then select down or up .02, and confirm, then it will work once. Unfortunately, you must always perform this operation for the button to work.

Hi there! The first thing is to thank for this incredible firmware, it is really incredible.

I have a little doubt, I print via octopi, and I just placed the filament sensor to the Pi, and I wanted to know what would be the best script for pause / resume, I tried what you said in another post, to add the following codes
G1 Z + 10
G1 Z-10

This works fine, but I would like to add retraction, to avoid material remaining on the impression (or as little as possible), how would I add a retraction?

Could the filament change command be used in Octopi scripts for this case?

And finally, since I use this firmware I have noticed that at the beginning, about 50 mm or so, no material comes out, so I always have to add skirt, to make sure that in the print it comes out from the beginning, there is something that can be do about this?

Thank you very much for your great work, and waiting for version 2.0 to finish the beta

Hi there and thanks for the kind words, easiest way would be to edit the pause/resume script in OctoPrint linke this:


G91 // relative mode
G1 Z10 // lift 10mm
G1 E-6 F1800 // retract 6mm at 30mm/s
G90 // absolute mode


G91 // relative mode
G1 Z-10 // lower 10mm
G1 E6 F1200 // feed 6mm at 20mm/s
G90 // absolute mode

You could also use the filament change commands (need to configure it to disable automatic loading/unloading with M603 L0 U0 and M500) but keep in mind that they have their own retract and feed built in, since they are meant to prime the nozzle after changing filament. You would have to sit next to your printer when resuming and remove excess filament quickly with the tweezers.

As for the material flow on the start of the print, I don't know what could cause this, maybe something you changed in the slicer when switching to this firmware? Anyways, you don't have to use a skirt, you can simply use a purge line. In my provided S3D profile I have put one into the startcode. Even if material comes out, priming/purging at print start is recommended in any case to get an even flow of filament.

Thank you so much David,

Today I will try to try the G-code you recommend, but it looks very logical, so I don't think there is a problem.

I use your cure profile, and it really isn't such an important thing to wear a skirt or not, only if I want to print something with the entire printing surface, but at the moment as a rookie I am, it's not a big problem.

Kind Regards

not sure if I'm looking for help or if I'm just venting. I've literally spent between more than 2, less than 3 weeks trying to level my printer. Followed the instructions to the letter, and no matter what, it always seems like the nozzle never starts on the bed. Half the time I feel like every time I do a new mesh leveling without resetting to defaults, it feels like it's using new values every time. I even managed to get one item to complete in the almost three weeks I've been trying, and the following print of the same item didn't start on the platform. (yes saved to eeprom after 20 seconds of completing mesh leveling, reboot, and made the changes in the printer setting to include the two lines of gcode to use the saved eeprom settings). Could there be some other hardware related issue or anything else I can explore? This is my first printer, so I don't pretend to know anything other than how to follow the instructions with the software.

For me, leveling at printing temperatures worked best. Be sure that your nozzle isn't oozing while you're at it.
Don't take too thin of a piece of paper for the initial leveling, 0.11mm thickness is sufficient. Anycubic sent one with the printer.
When doing Manual Mesh Bed Leveling; do the fine tuning, like davidramiro suggested, with baking paper or a reciept.

Be sure that your Z offset is correct.
www.youtube.com/watch?v=6QhUgq4C008 , Step 1 is important here, also 4:30+.
Home all axes and turn off your printer before continuing.
I needed to adjust one side. Unlike in the video, you must also adjust the screws. What is shown is only comparing the heigth at homing position. If they are not equal rotate the lower Z-Rod moving it upwards till both measured points are equal and adjust the screw till it triggers the endstop.
Your MUST relevel your bed after this. Be extra careful not to scratch your bed. And remember to reset your manual mesh bed leveling.

The home position is high and in the middle of the bed

I suppose this is a start code/slicer config issue. Nobody else in >1000 comments has encountered this issue :/ Sometimes it's easier just to return to the manufacturer firmware.

Comments deleted.

Just as a update it was a hardware issue and any cubic is sending me a new motherboard.

But: one last question when it was working fine for a little bit it would go too far on the x-axis how could I fix that

Comments deleted.

Do the newer mega s use a different thermistor as all temps out by 20 degrees firmware setting is 5 but I've a suspicion it should be 11

Hi, erst einmal mein großer Respekt für deine Arbeit! Ich habe den i3 Mega S und diese FW Marlin-Ai3M-v1.4.6-stock_drivers.hex aufgespielt und bekomme beim Bett aufheizen bei 103C diese Fehlermeldung: Heating failed, system stopped! Heater_ID: bed
Es ist alles noch original. Weiß jemand wie ich den Fehler beseitige? Mit der Original FW geht alles.
Besten Dank

What do i need to modify to apply the E3D v6? i already have everything mounted etc, everything works. just looking to modify the firmware to get the temps out of it.

Hallo, I want to load your code to my i3mega. There is only one thing I need to know. I need the skew compensation. In your compiled code the skew compensation is disabled. So I need to use your source files, enable the skew compensation, put my parameters and so one. Are the source files preconfigured for i3mega?

What normally causes the T0 Sensor error? I recompiled the firmware with and updated temp table 5 so that I can get to 300 but I keep getting the T0 sensor error once I get up to temperature.

I would not recommend going near 300°C without heavily modifiying the printer, but I suppose you know what you are doing:

T0 is being triggered by this piece of code:
if ((thermalManager.degHotend(0) < 5) || (thermalManager.degHotend(0) > 290))

Line 596 of AnycubicTFT.cpp. Adjust accordingly and recompile.

Thanks! So that seemed to take care of the sensor error but it still is topping out at 295 and not going any higher. Is there anywhere else in the firmware that the temperature is being limited? I was looking and didnt find anything. Thanks for the help.

Set HEATER_0_MAXTEMP to about 315. There is a 10 degree safety margin, if you set it to 300, your printer will not accept any temps over 290.

315°C is then the point where the printer will shut down, no matter what.

So...I had already done that and now testing everything. Any input temp that I give over 300 gives me a temp 10 lower than the input. So if I put in 295 I can get 295. 300 gives me 290. 305 gives me 295. 310 gives me 300. etc. I am setting this via usb on Cura and Pronterface so I dont know if that is a factor but it doesnt seem to be part of the problem as it is happening on both. It seems there is something cutting the temp by 10 degrees once the input value is 300+

Hm, maybe there is another safety measure built in somewhere - hopefully not hardware-wise. Maybe just try setting the MAXTEMP to an absurdly high value like 380 just to test? If that fixes the issue, you can tune it down until you can reach any temperature you need.

I tried all of that and it looks like once I hit 300 I get this message in pronterface...

Setting hotend temperature to 310.000000 degrees Celsius.
Error:Heating failed, system stopped! Heater_ID: 0
[ERROR] Error:Heating failed, system stopped! Heater_ID: 0

Error:Printer halted. kill() called!
[ERROR] Error:Printer halted. kill() called!

I cant figure out where else in the firmware they are setting this limit.

Comments deleted.

I have this firmware after miserably long level tests with my I3 Mega original firmware installed, once the mesh leveling performed and since the prints look great. Thanks for this excellent firmware.

I put this firmware on my new Mega S and the home positions were all off. I managed to get the home positions right but now my Z offset is out and the first layer doesn't print. Im new to 3D printing and may have messed up with the home positions somewhere and I cant figure out how to set the Z offset in cura so that it prints the first layer. Can anyone help me with this?

thankyou very beatyfull work

Good day,
i have problem with mesh leveling, after i save my mest and try to print test model (25 squares) only first 2 lines of squares (counting as you making mesh) are correct, the other ones are sticked to thehotend because as the bed is going back the head is going up. Does anyone know what can cause this?

Anyone having problems with Original BLTouch v3.0?
Probing fails most of the time (emphasis on point 3, 8 and 23 or the 5.x5 matrix): the head is positioned, Z starting to move down for ~1-3 mm then suddenly 'probe error', The LED is still blue, and the probe was not triggered as it is far from the bed (never reached the bed).

I'm out of options: enabled, disabled V3 defines, disabled the heaters and fans, increased Z_PROBE_LOW_POINT to -15, BLTOUCH_DELAY 500. Nothing. The probing fails 95% of the cases - is almost unusable.

Tested with both OctoPrint and LCD , hot and cold bed. Z-Offset set to 0, reflashed M502+M500, No luck...

Anyone can help with this issue?

I got an original BLTouch V3.0, configurted according to their documentation (https://docs.wixstatic.com/ugd/f5a1c8_26f2661f0a4542eaacc1586eba8842e7.pdf)

G29 (auto probing) is failing randomly with "probe error" with emphasis on point 3, 8 and 23 of the 5x5 matrix.

  • The probe is set in position, blue led is on and the probe is extracted
  • Z-Axis starting to move down but after 1-2 mm it stops and is reporting error. The probe is still blue, extended because never reach the bed.

My settings:
+#define NUM_SERVOS 1 // Servo index starts with 0 for M280 command
+#define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // waiting for a G29 to work before setting my value...
+#define BLTOUCH_V3
+#define BLTOUCH_FORCE_OPEN_DRAIN_MODE // is Trigorilla1.1 a 5V logic board?

I tried to :

  • change +#define Z_PROBE_LOW_POINT form -2 to -5

I suspected a noise filed:
+#define PROBING_FANS_OFF // Turn fans off when probing // sub501dev 20190720: Disabled

I also:
Enabled/Forced : #define BLTOUCH_FORCE_5V_MODE
Disabled the #define BLTOUCH_V3

No luck...

  • Re-flashed
  • Trying to perform G29 with cold and also with warm bed
  • Printer hard-rebooted between tests
  • Did Auto-leveling using LCD menu
  • Did Auto-leveling using OctoPrint's terminal and sending G codes manually
  • BLTouch Zoffset is about -2.10mm.
  • From 10 tests may be 1 is randomly successful

I'm out of options.

immer wenn ich die Geschwindigkeit im Displaymenü während des Druckens ändere, egal ob langsamer oder schneller,
stoppen die beiden Lüfter im hotend.
Woran könnte das liegen?

Ist auf der Herstellerfirmware doch ganz genau so... Wenn man das Menü aufmacht, steht der einzustellende Lüfterwert erstmal auf null. Wenn man OK drückt, werden beide Werte (Lüfter, Geschwindigkeit) übernommen. Änder den Lüfterwert von 0 auf den aktuellen und es passt.

ist mir früher nicht aufgefallen . ohmann...

ich dachte das bezieht sich nur auf den partcooling fan - sollte der heatblock lüfter nicht immer laufen?

Oh - dass der Heatblock Lüfter auch ausfällt hatte ich nicht auf'm Schirm, hab das "beide" überlesen. Das sollte tatsächlich nicht sein... An dem Menü hab ich aber im Grunde nichts verändert, kann sein dass der Bug von der Originalfirmware herrührt.

So after installing this (everything else works great btw, love it!) the default cura anycubic i3 mega end g-code doesn't seem to work, once the print is done the nozzle will just stay, heated, wherever it finished and melt a hole/leave a pile of filament unless i'm there to instantly manually re-home and set temps to 0 it when it finishes, anyone know what I need to change to fix that behavior?

(cura end g-code)
M104 S0 ; turn off extruder
M140 S0 ; turn off bed
M84 ; disable motors
G91 ;relative positioning
G1 E-1 F300 ;retract the filament a bit before lifting the nozzle, to release some of the pressure
G1 Z+0.5 E-5 ;X-20 Y-20 F{speed_travel} ;move Z up a bit and retract filament even more
G28 X0 ;Y0 ;move X/Y to min endstops, so the head is out of the way
G1 Y180 F2000
M84 ;steppers off
M300 P300 S4000

My end g-code is working fine with my Anycubic M. Here it is (just a few minor tweak, like suppressing the beep, changing where to go into relatiev/absolute positionig, speed, etc):
M104 S0 ; turn off extruder
M140 S0 ; turn off bed
G92 E0 ;zero the extruded length
G1 E-1 F300 ;retract the filament a bit
G91 ;relative positioning
G1 Z10
G28 X0 Y0 ;move X/Y to min endstops, so the head is out of the way
G1 Y200 F5000
M84 ;steppers off
;M300 P300 S4000 ;beep

Hope this helps.

Ich habe diese Software genommen mit TMC2208 V1.2 und mit den alten Treiberchips versucht aber die Motoren bewegen sich nicht sie surren nur ein wenig. Hat jemand eine ahnung was das sein kann?

Danke im vorhinaus

Ich habe die Software genommen wo keine anderes Treiber verbaut sind aber wenn ich es uploade komm ich nicht in das spezial Fenster ( ich mache es mit den refresh Zeichen)

Danke im vorhinaus

Hast du eine SD Karte eingesteckt? Ohne SD Karte im Slot kann man das Menü nicht anwählen!

What is the current max temp for the firmware? Looking at going to 310 with a V6.

275 - If you need to go higher, edit #define HEATER_0_MAXTEMP 285 in Configuration.h (add 10°C, safety margin)

Any reason why after I compiled this and uploaded it all of my axis are inverted?

Comments deleted.


ich wollte das Bett mit einer Meßuhr leveln
und dann die Z-Achse virtuell senken(so wie es auch der anycubic chiron macht)

Welchen Wert muß man da anpassen? M206 oder M851?
der Unterschied dieser beiden ist mir nicht ganz klar - wann verwendet man welchen?


M851 ist für Systeme mit Probes, wenn du keinen BLtouch o.Ä. installiert hast, ist der Befehl uninteressant. Da passt M206 schon eher.

Siehe Marlin Docs: "Use M206 to apply a persistent offset to the native home position and coordinate space. This effectively shifts the coordinate space in the negative direction."

in tutorials wid oft M851 benutzt wenn ein Mesh erzeugt wird, egal ob automatisch oder manuell.
M206 hab ich bisher nur in der Marlin doku gefunden.

Jetzt habe ich eine dritte Stelle gefunden die anscheinend den Z-Offset beeinflusst:
G29 S4

Ich habe bedenken, dass wenn ich an einer Stelle den Offset setzte,
der nächste Punkt ihn wieder zurücksetzt.

kann man irgendwie rausfinden welcher wert genommen wird wenn man ihn an verschiedenen Stellen setzt?

Hi I dont know but I have blobs on my prints it is cura settings or its nozzle problem but when I was using your 7mm and 40 mms I have some scratches on my print soe tip how to fix this?

Cura drove me mad for the same reasons. It's a slicer-related problem, it's fixed in version 4.1 but you need to re-thinkeryour profile with some new settings.

Just a few research hints: Combing mode, max comb distance with no retract, z-seam alignment, z-seam corner preference.

Change one thing at a time, I'd recommend continuing to use your own Cura profile. As for those scratches, be aware that Version 4.x is known to be buggy related to Z speed which causes the head to stop often while printing. Please use Cura 3.x or research the issue and set a maximum Z speed.

I'm just the firmware guy, and in terms of printing itself, it works just as the original one. I do not use Cura (the profile I provided is marked as beta for a reason) and I can't help with general print quality issues.


vielen Dank für die Mühe, die Firmware ist großartig. Ich habe jedoch eine Frage, da ich bei jedem Druck die gleichen Probleme an der gleichen Stelle habe (untere rechte Ecke, siehe Bild). Je nach Höhe des Drucks ist dieser Effekt mal mehr, mal weniger ausgeprägt. Habe die Extruder Temp mal schrittweise erhöht und die Druckgeschwindigkeit, ohne Erfolg. Bin für jeden Tipp dankbar!

Sehr merkwürdig, probier doch mal einen anderen Slicer aus, testweise. Wenn das Problem bestehen bleibt, tippe ich ganz stark auf eine mechanische Ursache. Diese Firmware selber arbeitet auch nur ganz normal den GCode ab, genau wie die Herstellerfirmware.


tolle arbeit!!!

ihr seid super . .... ich werde meinem drucker dies in naher zukunft gönnen.....

lasst euch nicht mit den fragen irre machen.

manche können wirklich nicht googlen...... hust

;-) . bb lg lars

Danke! Und ja, bei mittlerweile über 1000 Kommentaren wird's etwas unübersichtlich, aber ich helfe dennoch weiterhin gerne bei Fragen. :) LG, David

I have a problem with Mega S I flashed your firmware with cura, I send there gcode what you wrote but I have issue

  1. When I type print it start preheating bed but hotend is set preheat to 0
    Please help me I want this firmware, I use stock mega s drivers

Hotend heats up as soon as bed is heated up completely. Couldn't you wait 2 more minutes before posting? :P

OK thanks before it was preheating in the same time and your firmware is best I really like bed calibration :)

Ah yes, that's true. Glad you like it!

Comments deleted.
Comments deleted.

M566 is not valid GCode, regardless of firmware - what are you trying to achieve with these commands? Edit: Slight correction: This GCode only works on RepRapFirmware.

Hi, sorry, I deleted the comment before you answered. The code was generated by CURA due to a wrong Printer config (using RepRap GCode style). I switched to Marlin gcode style and indeed the errors are gone. M566 is valid for RepRap only.


Am I the only one having random beeps?

  • Is beeping after power on just after doing a homing. random but very rare
  • during the print the beeps become more aggressive in terms of beeps per minute and is very annoying as I don;t know what is the root case
  • no beeps for stock firmware, only with Marlin. no HW changed.

I'm using a customized firmware, TMC2208 Standalone on all motors, endstop beeps enabled:
#define SPEAKER

Electromagnetic interference. Marlin 1.1.9 handles endstops differently and some machines (with their endstop cables very close to the motor cables) experience frequent ghost triggering of those. Disabling endstop beeps solves this, hence it is on by default. Alternatively, shield endstop cables or raise the endstop beep threshold/polling delay in Marlin_main.cpp.

I was thinking to everything but EMI .

Indeed cables are close to the motors. I learned something today...

prints really improve with this firmware. and the motors aren't so loud anymore, so I better upgrade the fans now.
big thanks!

First of all thank you :) I just flashed my printer. Than I tried to level my printer's bed but when i choosed Z up or down "0.02" function, nothing happens. There's no movement. Still I can use 0.1 function. Do you know why? I was changed my Z rods 8 to 4 mm lead. Could it has caused this?
Thank again.

Hi there, 0.02 is indeed the lowest distance that works on the stock 8mm rods. I'd suggest you to try a higher resolution manually via Gcode since the steps of your Z axis changed. Start with 0.04mm and see how low you can go.

big thank for your work.

Seems like the Mesh leveling works well! Glad you like it.

One problem tho, after changing the extruder driver to TMC2208 it now over extrudes at the start of each line/infill. See lower right of the previous picture. I am using i3 mega. Do you have any idea? Thanks.

Try calibrating it.

Danke ersteinmal für diese Firmware!
Ich hätte eine frage bezüglich der vier zusätzlichen Befehle:
M92 E384 - set correct steps for the new extruder
M203 q2000 - limit extruder feedrate
M204 R1500.00 - lower retract acceleration
M500 - save the values

M92 ist klar, habe ich eh kalibriert, M500 auch.
Jedoch sind die anderen Werte wesentlich niedriger wie die Firmware auf Anycubics Website oder mit den Backups die du bereit gestellt hast? Was ist der grund, der andere Extruder?
Ich habe einen Anycubic Mega S.

Gut erkannt, die sind tatsächlich niedriger als auf der Stock-Firmware. Diese werte laufen aber erprobterweise deutlich besser, da es sich ja um einen Extruder im Titan-Stil handelt. Durch die andere Übersetzung des Extruders können höhere Beschleunigungen Probleme verursachen. Vielen fällt das erstmal nicht auf, falls im Slicer schon niedrigere Settings vorgegeben werden.

Den Tipp habe ich von ein paar Testern bekommen, das Feedback ist auf GitHub nachzulesen. Habe das dann auch nochmal recherchiert, tatsächlich empfehlen die meisten mit Titan-Extrudern sogar noch niedrigere Beschleunigungen und Feedrates.

Einen großen Einfluss auf die insgesamte Druckgeschwindigkeit hat das Ganze im Übrigen nicht.

  1. Also sollte ich diese Werte übernehmen.

M201 X2000 Y1500 Z60 E10000 ; max acceleration
M204 P1200.00 R1500.00 T1500.00 ; default acceleration
M203 E30 ; Extruder limitieren, da Mega-S
M205 S0.00 T0.00 Q20000 X9.00 Y9.00 Z0.40 E5.00 ; min segment time and jerk

  1. Muss der Extruder kalibriert werden da ich die oberen Werte verändert habe?
    Eigentlich hatte ich nach dieser Art und weise meine 401.3 kalibriert. Naja ich prüfe es nocheinmal nach.

Die Werte die im Segment zum Mega-S da stehen, sind generell empfehlenswert, ja. Die Werte aus dem Segment zur Acceleration sind halt nur eine grobe Vorgabe. Wies halt da steht, perfekte Werte gibt's nicht. Die Stock Werte laufen auch ok. Selber ausprobieren und optimieren.

Neu kalibriert werden muss nichts, die Steps werden nicht beeinflusst. Einfach deine 401.3 eingeben.

Wenn ich E auf 30 setzte, klappen retractionen über 30 dann noch?
Ich habe die Werte in Prusa Slicer übernommen, im GCode ist bei Retractionen jedoch immernoch F3600, also 60mm/s.

Nein, werden dann eben firmwareseitig auf 30mm/s begrenzt. 60mm/s ist generell einfach zu schnell für einen Titanextruder.

Aber wie gesagt, gerne einfach selber recherchieren, auf marlinfw.org gibt es gute Dokumentationen zu den einzelnen Gcodes und Optionen. Vielleicht packt dein Extruder ja die 60mm/s und zaubert dir wunderschöne Druckergebnisse.

Ich möchte nochmal ganz klar darauf hinweisen, dass das nur Empfehlungen von mir bzw ein paar freundlichen Helfern sind. Jeder Drucker ist anders.

Mein Problem ist, dass gerade nichts mehr geht. 3mm bei 45mm/s hat vorher super geklappt, jetzt kommen nur noch komische Sachen bei raus. Leider auch mit der Stock Firmware. Und ich weiß nicht, woran es liegt.
Ich habe den Flow kontrolliert, den Filament Durchmesser kontrolliert und meinen Slicer 2 Tage zurück gefahren. Ich habe mit den von dir empfohlen Werten experimentiert und die Firmware mehrmals via PrusaSlicer oder Cura geflasht.

EEPROM auf der Standardfirmware zurückgesetzt?

Ich tippe zu 99% auf eine Einstellungssache, ist nicht so dass die Firmware nach fast 15k Downloads plötzlich anfängt, Druckergebnisse zu verschlechtern. Mit dem Bugreport kann ich leider wenig anfangen, "komische Sachen" ist etwas unpräzise. Für den Anfang könntest du den Output von M503 auf https://pastebin.com/ posten und hier verlinken.

M900 K0.51 - da liegt der Hund begraben.

Linear Advance bitte fürs erste deaktivieren. Das bringt nur bedingt was auf einem Bowdensystem und sollte man auch erst ausprobieren, wenn alles andere läuft. Übrigens muss man Linear Advance für angepasste retraction settings jedes Mal neu kalibrieren.

Okay, ich verstehe garnichts mehr.
Ich habe gestern ersteinmal mein Filament 4 Std bei 50°C Heißluft gebacken- ob das was gebracht hat kann ich nicht sagen.
Anbei GCode und Bilder, leider fehlt eins... versehentlich gelöscht.

Cura liefert uneingestellt ein brauchbares Ergebnis- Ich habe lediglich die Nozzle auf 0.5 mm gestellt.
Prusa Slicer produziert Watte zwischen den Türmen, bei einem 3. Turm kommten bessere Ergebnisse herraus.

Komisch nur, dass Sich nach 1.5 kg Filament PrusaSlicer so verhält.
Ich vergleiche ersteinmal die Werte von Cura mit die von Prusaslicer...

Und wie genau kann ich dir jetzt weiterhelfen? Der Unterschied von Cura zu PS zeigt wohl deutlich, dass die Firmware selber nicht schuld ist. Wenn du Cura noch ein bisschen tweakst kriegst du ein nahezu perfektes Ergebnis, das bisschen Stringing ist mit Retractsettings gänzlich zu lösen. Mit PrusaSlicer kenn ich mich leider nicht aus.

Ich biete gerne Support auf der Softwareseite an, ich hab den Bums ja auch geschrieben, habe auch passende S3D (und Cura, wobei das schon lange her ist)-Profile zur Verfügung gestellt, vielleicht kannst du dich an denen orientieren. Aber mir fehlt leider die Zeit, troubleshooting an Hand von Bildern und GCodes zu betreiben, ich hoffe das verstehst du :(

Gar nicht. :)
Es liegt an meinen Einstellungen des Slicers.
Ich war bzw bin immernoch verwundert wieso.
Ich denke bei den Retractions war von Anfang an der Wurm drin.

Hmm, Ok.
Habe ich jetzt auf 0 gesetzt und ich starte den GCode von Bild 203843 neu.
Füge ich dann als edit hier bei.

Ich teste mal mit den Werten... Sieht nur nach ein retraction Problem aus.
Werde morgen wieder schreiben.

Das Problem hatte ich auch. Die Firmware hat Probleme mit der retraction wenn in cura bei "maximum z speed" 0 eingetragen ist. Wenn dort 0 drin steht wird der wert aus der Firmware genommen. Der Kopf hebt sich dann aber nicht mehr und verweilt kurz auf der Stelle im gedruckten Filament. Trage hier einmal zum Test 20 mm/s ein. Dann hebt sich der Kopf wieder bei retraction, das filament wird getrennt und es werden keine Fäden mehr gezogen.

PS: Der Standartwert war nach einem Update von cura "0". Ich habe gelesen dass das beim nächsten Update behoben werden soll. Denke aber das Problem haben einige hier ohne es tatsächlich zu merken oder wissen nicht woher es kommt. Wäre vielleicht dennoch für davidramiro ratsam den default wert für max z retracion in der Firmware anzupassen. Die originale Firmware hat das Problem aber auch. Hier stimmt etwas definitiv nicht.

Hab mal ein wenig recherchiert. Das Problem ist nicht, dass Cura einen Z speed von 0 mm/s in den GCode schreibt (theoretisch sollte der Drucker dann die Werte aus der Firmware nehmen - aus'm Kopf glaub ich 6mm/s), sondern eine Geschwindigkeit von 17987547480000 mm/min bzw 299792458000mm/s. Zahl kommt dir bestimmt bekannt vor? Mir irgendwie auch, das ist nämlich die Lichtgeschwindigkeit. Ist also kein Rechenfehler oder ähnliches, die humorvollen Kollegen von Cura haben diese Zahl absichtlich eingeführt, damit Cura auf Standardsettings keine Drucker "drosselt", die eventuell sehr schnell fahren können. Hier kannst du die Änderung nachvollziehen inkl. Erklärung: https://github.com/Ultimaker/Cura/commit/86336591652d82ac53d1044080145c6ddc36f732

Problem ist nur, dass unsere kleine 8bit-MCU (wie auch in 90% aller anderen Drucker zu finden) mit solchen Zahlen sehr schwer umgehen kann und dann anfängt zu stocken. Wenig elegant gelöst, einfach die Lichtgeschwindigkeit zu nehmen. Sollte wohl witzig gemeint sein.

Diskussion zum Bug: https://github.com/Ultimaker/Cura/issues/5753

Weiter unten steht, dass sie dafür keinen Hotfix à la 4.1.1 anbieten werden, sondern man auf 4.2 warten muss. Super Sache.

@davidramiro, der Drucker läuft jetzt einwandfrei. Ich habe deine empfohlenden Werte eingebaut und slice jetzt mit Cura, die Probleme die ich hatte bezogen sich auf PrusaSlicer. Mir ist jedoch aufgefallen, das Prusaslicer zuerst in der Z-Achse auf die nächste Schicht fährt und dann erst die Retraction macht. Ich verstehe den Sinn dahinter nicht und wie ich vorher ohne Probleme drucken konnte aber das müsste ich dann eventuell wo anders posten. Danke nochmal!

Deinen Post hatte ich gelesen Ulle1987, ich habe den wert für die Z-Achse auf 15mm/s in Cura limitiert, läuft!

Komisch. Im Prinzip ist der i3 Mega ja ein Prusa-Klon, von daher sollte das mit den Retractions gleich ablaufen. Naja, hauptsache es läuft jetzt :)

@davidramiro, Das ist ja krass. Danke für die Recherche und die Erklärung. Dass die MCU Probleme in dem Moment bekommt leuchtet ein und die Reaktion des Druckers in dem Moment sind somit erklärt. Ich hoffe dass nicht all zu viele Leute nach dem Cura Update frustriert vor ihrem Drucker sitzen und bei solchen Ergebnissen die Lust verlieren. An der Stelle bedanke ich mich noch einmal für die super Firmware, die Bedienung finde ich gut, die Ergebnisse sind einfach der Hammer. Bei mir war es ja so dass ich gleichzeitig Cura geupdated habe und dann deine Firmware aufgespielt habe. Da ich gleiche Cura settings verwendete und die Ergebnisse grotten schlecht waren vermutete ich natürlich fälschlicher weise erst die Firmware. Sorry dafür.

@z073, freut mich zu hören dass das Drucken jetzt wieder klappt. Mit dem Wert würde ich aber etwas spielen, die 15 - 20 mm/s hatte ich mir kurz ergoogelt aber davidramiro meinte z.B. aus dem Kopf wäre 6mm/s default. Das ist nicht so abwegig. In einem Forum schrieb ein User wegen oben genannten Problem 100 mm/s, da funktionierte der Druck zwar weil der Drucker nicht mehr stockte aber der Kopf hob sich einfach nicht mehr weil der Wert viel zu hoch ist. Ein weiterer User bedankte sich dann mit positivem Feedback obwohl die Ergebnisse gar nicht gut sein konnten. Bin gerade selbst wieder beim Feintuning mit der kompletten Retraction, aber das geht ja relativ schnell. Alles in allem ist der Drucker aber eine super Investition, seit ich ihn habe und eingestellt ist wurde rollenweise Filament verbraten und er läuft wie am ersten Tag mit Ergebnissen die meine Erwartungen übertreffen. Es gab nur zwei Ausfälle: Filament mit Verdickungen das stecken geblieben ist und die Aktion jetzt.

Ich wollte morgen meinen I3 Mega umbauen und zwar mit BLTouch und tmc 2208 v2.0. Jetzt meine frage da ich von der Firmware nicht wirklich viel Ahnung habe was muss ich da einstellen damit der BLTouch funktioniert und auch das die Treiber laufen !Habe gesehen das auch zu einer BLTouch Firmware verlinkt wird arbeitet die gleich auch mit den tmc 2208 Treiber oder muss man die auch umstellen !Danke schon mal für eventuelle Antworten und Hilfe

Ist standardmäßig für TMC2208 eingestellt. Die Firmware muss aber noch individuell für Position & Aufbau des BLtouch-Sensors konfiguriert werden. In der verlinkten Firmware steht alles drin.

Ich bekomme es nicht hin :( Muss auch dazu sagen das es ein Clone ist es steht nur 3D Touch drauf.Wenn ich den Drucker einschalte dann leuchtet er rot fährt die spitze raus/rein raus/rein leuchtet rot.Sende ich G28 macht er Home und bei G29 fährt er eine Position und macht nichts nur rot leuchten aber kein rein raus.Ist er defekt oder liegt es an der Marlin weil es eben ein Clone ist

Es funktioniert :) Ich hatte wohl einen Wackler am Kabel das zum Controller geht

Das freut mich zu hören :)

Ok danke für die Infos dann werde ich mich jetzt mal ran trauen :)

Is it also working with tmc 2208 v3.0?

PoPprint TMC2208 V3.0 Schrittmotortreibermodul mit Kühlkörper mit UART-Modus kompatibel mit Ramps1.4 oder MKS Board SKR V1.3 für 3D-Drucker (STEP/DIR)


Hallo, bin gerade dabei die V3.0 zu verbauen, zwar in meinen Chiron, aber die Belegung ist ja tatsächlich schon wieder anders. Mit V2.1 hat es super geklappt mit Deiner Firmware. Also tatsächlich nur "Stecker drehen" und dann geht es?! Leider gibt es keine vergleichbare Firmware für den Chiron...

Hallo und danke für die bereitgestellte FW.
Seltsamerweise läuft plötzlich der Bauteilkühler nach Lüftertausch (Sunon) und FW Update schon beim anschalten des Druckers.
Besteht die Möglichkeit, mir kurz mitzuteilen wie die dazugehörige Einstellung heißt um es zu deaktivieren?

Hast du zufällig den Bauteillüfter angeschaltet/angesteuert als er nicht angeschlossen war? Dann brennt der 3JY Transistor durch. Bekanntes Problem beim Trigorilla. Ansonsten kann der auch mal einfach so durchbrennen, ist aber selten.

Mein Bauteillüfter startet nicht bei Druckbeginn, kann es auch daran liegen? Er bleibt aus
Und das Mainboard gibt klackernde Geäusche von sich wenn Bett und Hotend aufheizen
Hab den Mega S mit nachgerüsteten 2208 Treibern und die FW für diese drauf.

Leises Surren im Takt der PID-Frequenz ist normal. Klackern, nein. Da liegt wohl eher ein Defekt vor.

ja das kein sein. danke für die Rückmeldung. LG

  • Posted with 3D Geeks Thingiverse Browser App

Hi, Watterott just sell 2209 V2 now, are also ok? on amazon i had found 2208 V3 but they are in UART mode so i think are not ok...

You can use 2208 v3. UART is optional. No idea about 2209 yet.

they have the pin soldered to the top i think i will have to solder it to the bottom...

No, you don't. Especially if you do not plan on using UART. But if in doubt, simply get "older" 2208s. The chip is 100% the same.

Thanks for providing this! I've upgraded my new Anycubic Mega-S to this firmware and it's working well so far.

One issue: when starting a print I receive the following message through USB:

Unknown command: "G5"

According to the Marlin web site, G5 is: G5 - Bézier cubic spline. Any reason not to remove "G5" from the machine "Start GCode" text provided in the setup PDF?


Hi Mike,

no worries, G5 is actually used to initialize power loss recovery in the original i3 Mega firmware, they just repurposed the bezier GCode for that. In my firmware, it just doesn't do anything since this feature is not included (yet, might implement that sometime in the future). You can safely remove it.

Has anyone experienced problems with Z-home endstop not working after update? Also I tried to go back to stock firmware, but same issue. Bed leveling also stopped working. Very strage..

Read the instructions and the comments below. This firmware is not suited for i3 Mega versions with one Z endstop.

i just noticed that this firmware is for two Z enstops..still I wonder why it dors not work with factory firmware anymore. I have dome M502 and M500 after each update.

Yes, the firmware files they share on their site are all for dual Z endstop models. Contact support to obtain the one for your single endstop model.

Alternatively, edit this firmware: https://github.com/davidramiro/Marlin-AI3M/wiki/Customization-&-Compiling, following the section "Single Z endstop".

btw: the lines to edit are now 867 - 879. You original instruction need update :)

I decided to try compiling first, but can ou help me on this one.
Arduino: 1.8.5 (Windows 10), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

GetFileAttributesEx C:\Users\JANNEL~1\AppData\Local\Temp\arduino_cache_872842: The system cannot find the file specified.

Error compiling for board Arduino/Genuino Mega or Mega 2560.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

It was just some hickup of my parallels VM I guess. restarting marln.ino helped

I just found one micro switch laying in my "million box". I think I'm gonna DO IT!

Comments deleted.

Hallo David,
erstmal ein großes Dankeschön für deine Arbeit mit dieser Custom Firmware. sehr gut.

Nun mal eine Frage ich habe mir den neugestalten Extruder gekauft (https://www.amazon.de/gp/product/B07KLJJYNV?ref=ppx_pt2_dt_b_prod_image) Nun steht dort ich soll die Firmware vom Mega-S nehmen.

Jetzt verwende ich aber einer deiner letzten angepassten Firmware für den Mega I3 und würde sowieso jetzt auf deine aktuellste updaten. reicht es dann aus die Steps vom Extruder neu zu kalibrieren?

Bye Jens

Ich bin zwar nicht David, aber es reicht aus den Extruder neu zu kalibrieren.
Ich habe den Mega-S mit der Software von David am laufen. Bis auf den Extruder ist alles gleich.
Also Extruder kalibrieren und alles funktioniert.


Hey davidramiro,
Gibt es ne Möglichkeit via G-Code z.B denn LCD Beep define wert auf zero zu setzten oder muss ich dazu in der confiq.h denn Wert anpassen , die Fw kompilieren und neu Flashen!?

Btw wenn dem so ist, wie schaut es dann mit denn bereits im EEPROM gespeicherten aktuellen Werten wie Mesh Leveling usw aus.

Ich danke dir im vorraus.


//EDIT// Wer lesen kann ist klar im Vorteil.

( Einige Updates erfordern, dass der Speicher gelöscht wird ( M502 ), falls im Changelog angegeben. In diesen Fällen sendest Du vor dem Aktualisieren M503 und
erstellst ein Backup aller Zeilen, die so beginnen )

Dachte dennoch es gibt evtl. eine fixere G-Code Lösunf für den Sound Off...

Gibt es ne Möglichkeit via G-Code z.B denn LCD Beep define wert auf zero zu setzten oder muss ich dazu in der confiq.h denn Wert anpassen , die Fw kompilieren und neu Flashen!?

Meinst du den Startsound? Den musst du in der Config.h ausmachen, das habe ich nachträglich optional hinzugefügt und somit gibt's dafür keinen GCode.

Wenn du das generelle akustische Feedback meinst, also einfach das Piepen beim Berühren, das kann man leider nicht deaktivieren. Das macht der Bildschirm leider selbst.

--- SOLVED ---

-> Cura slicing problem - see below!

The head stops at some places and the filament is pulled back. Then it makes a strange noise. After about a second, it continues. At the next point he does it again. That was not before. After reinstalling original firmware the problem is still there.
Here is a Video.

I found out what the problem is. It is partly due to the firmware. In Cura the default is 0 for "maximum Z speed". Then the default setting of the firmware is used. In my very old firmware on the I3 that was no problem. After I uploaded your firmware, the problem arose. After I used the latest original firmware the problem was still there as it seems to use the same settings. I have set this speed in Cura to 20 mm / s and the problem is gone. I bet many here print without noticing that their printer gets stuck in many places.

"After reinstalling original firmware the problem is still there."

...then it's obviously not related to this firmware, isn't it? SD card faulty, GCode error, etc etc.

Are you shure the original firmware overwrites definetly all sectors of firmware memory? I never had this problem. I use the same SD card like over one year before with many hours of printing. Old gcodes on the sd card have the problem now. Before updating they worked without any problem. It's hard to believe it's just coincidence. I will try an other SD card and an other slicing software.

Yes I am sure, if you followed the instructions on reverting the firmware... Let me guess, you forgot to use M502/M500 afterwards?-

No i have sent the commands after reverting the firmware.

OK i tried it again.

  • Resized a other SD card and made full format.
  • Installed custom firmware again
  • Sent commands M502 and M500 with correct response from printer.
  • Reinstalled Cura and sliced a simple filament dust filter

Problem is still there. The printer will hang for a second after every retraction. In this second the
stepper motor of x axis vibrates.

Can you attach your GCode file? I could try it on my printer to rule out a software/firmware issue.

Ok that would be really nice. Here is an example. My printer stucks on every retraction. I really hope it is a slicing problem :(

Yup - same here, pauses after every retract. https://www.youtube.com/watch?v=JT_5BaBeUiM

I'd assume a slicing issue since you already tried the manufacturer fw (although I wouldn't yet rule out an error during flashing or something).

Maybe try Ideamaker or Slic3r (since Cura would hold the same settings even after reinstalling) as a test. If that fixes the issue, I'd reset the Cura config completely and start over.

Hello. Thank you very very much for your help. I am really sorry for stealing your time. The error while slicing is in my old files, too. I did not recognize it because the printer worked really well and i did not have to be in the near after start printing. Sorry that I blamed the firmware for that, this problem must be there for a longer time without my knowledge. I have reinstalled cura with option to delete all user files. But after reinstalling the settings are still there. That's not nice. I will try other software and this nice custom firmware should run very well.

No worries, glad I could help. As for Cura (if you're on Windows), enter %APPDATA% in your explorer and delete the Cura folder. That will reset everything.

OK thank you I will give it a try. Last question: Which firmware should I use if only three drivers are TMC2208 and others are stock?

Doesn't make a noticeable difference, but I'd recommend the stock_drivers one.

Well, there's two parts that are of concern. Flash and EEPROM. If everything went well when flashing and resetting EEPROM, your printer is 100% behaving as it was before. Since you are the first person after over 10.000 downloads to report an issue being present after reverting to the original firmware, I suspect something went wrong on your end either while using AVRDUDE or resetting the EEPROM. Just try again, idk.

Hello again. I found out what the problem is. It is partly due to the firmware. In Cura the default is 0 for "maximum Z speed". Then the default setting of the firmware is used. In my very old firmware on the I3 that was no problem. After I uploaded your firmware, the problem arose. After I used the latest original firmware the problem was still there as it seems to use the same settings. I have set this speed in Cura to 20 mm / s and the problem is gone. I bet many here print without noticing that their printer gets stuck in many places.

Thanks for sharing this solution!

No problem but i have done a mistake. 100 mm/s is way too fast. Now i try with 20mm/s. With 100 mm/s the nozzle is not moving up and while retracting sometimes it pulls thin strings. I have read something between 15 and 20 mm/s.

Comments deleted.

Firmware works flawlessly bruv! thank you! had some hiccups but turns out it was an issue with slicing. followed the instructions to a tee and used Printrun to send commands (getting that to work was the tricky part. Anyone with a Mac let it be known you need to get python3 via homebrew in order to get it to work). Reinstalled Cura and bam! great prints, near perfect first layers every time, and no more annoying start-up beep tone lol.

perfect prints now, incredible

Help.Beginner. You need to change the firmware thermistor pin to unused. But found only this firmware for Anycubic i3 mega. How to leave factory drivers for engines??

This firmware looks awesome! Just a couple questions.

  • What are the USB drivers?
    -Can I flash my printer and send the code to it with Ideamaker?
    Thanks a lot!

Hi, great fw.. thanks so much fot the time you put in it and also to decide to share it with us!!!

I meet a trouble with the linear advance, i had generate the test gcode from the marlin website but while printed the last (slow) segment of each line is printed as retraction... have you experience that?

Hello all,
what do I have to change to get the X offset (center of nozzle to center of BL-Touch) to 26mm? If I set #define X_PROBE_OFFSET_FROM_EXTRUDER +26 the compiler always crashes with an error message, and I do not get it resolved.
I think I have to set the limit somewhere else, but so far I've failed to try that at LEFT_PROBE_BED_POSITION in configuration.h. So here is the complete Error Message:

Arduino: 1.8.8 (Windows 10), Board: "Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

In file included from sketch\MarlinConfig.h:42:0,

             from sketch\M100_Free_Mem_Chk.cpp:49:

SanityCheck.h:946:5: error: static assertion failed: LEFT_PROBE_BED_POSITION is outside the probe region.

 static_assert(LEFT_PROBE_BED_POSITION >= MIN_PROBE_X, "LEFT_PROBE_BED_POSITION is outside the probe region.");


In file included from sketch\MarlinConfig.h:42:0,

             from sketch\I2CPositionEncoder.cpp:31:

SanityCheck.h:946:5: error: static assertion failed: LEFT_PROBE_BED_POSITION is outside the probe region.

 static_assert(LEFT_PROBE_BED_POSITION >= MIN_PROBE_X, "LEFT_PROBE_BED_POSITION is outside the probe region.");


In file included from sketch\MarlinConfig.h:42:0,

             from sketch\Marlin.h:35,

             from sketch\Marlin_main.cpp:259:

SanityCheck.h:946:5: error: static assertion failed: LEFT_PROBE_BED_POSITION is outside the probe region.

 static_assert(LEFT_PROBE_BED_POSITION >= MIN_PROBE_X, "LEFT_PROBE_BED_POSITION is outside the probe region.");


In file included from sketch\MarlinConfig.h:42:0,

             from sketch\MarlinSerial.cpp:36:

SanityCheck.h:946:5: error: static assertion failed: LEFT_PROBE_BED_POSITION is outside the probe region.

 static_assert(LEFT_PROBE_BED_POSITION >= MIN_PROBE_X, "LEFT_PROBE_BED_POSITION is outside the probe region.");


In file included from sketch\MarlinConfig.h:42:0,

             from sketch\Max7219_Debug_LEDs.cpp:38:

SanityCheck.h:946:5: error: static assertion failed: LEFT_PROBE_BED_POSITION is outside the probe region.

 static_assert(LEFT_PROBE_BED_POSITION >= MIN_PROBE_X, "LEFT_PROBE_BED_POSITION is outside the probe region.");


exit status 1
In file included from sketch\MarlinConfig.h:42:0,

             from sketch\Sd2Card.cpp:29:

SanityCheck.h:946:5: error: static assertion failed: LEFT_PROBE_BED_POSITION is outside the probe region.

 static_assert(LEFT_PROBE_BED_POSITION >= MIN_PROBE_X, "LEFT_PROBE_BED_POSITION is outside the probe region.");


In file included from sketch\MarlinConfig.h:42:0,

             from sketch\SdBaseFile.cpp:30:

SanityCheck.h:946:5: error: static assertion failed: LEFT_PROBE_BED_POSITION is outside the probe region.

 static_assert(LEFT_PROBE_BED_POSITION >= MIN_PROBE_X, "LEFT_PROBE_BED_POSITION is outside the probe region.");


In file included from sketch\MarlinConfig.h:42:0,

             from sketch\SdFatUtil.cpp:29:

SanityCheck.h:946:5: error: static assertion failed: LEFT_PROBE_BED_POSITION is outside the probe region.

 static_assert(LEFT_PROBE_BED_POSITION >= MIN_PROBE_X, "LEFT_PROBE_BED_POSITION is outside the probe region.");


static assertion failed: LEFT_PROBE_BED_POSITION is outside the probe region.

I think thins build could have been done better especially for the pause sequence. My old Tevo Tarantula with Marlin firmware had a very nice pause mode that could greatly improve this firmware.
When you click pause, the printer should stop and go to x min, y min and raise the z so you can easily work on your print if needed and next, when you click continue, it should purge some filament first and then have a small wait time for you to remove the filament purged and only after that, the print will continue.

This is very helpfull because I find myself moving by mistake the x or y axis when pausing and then the print is lost ..

I would very much appreciate if I could have the "return from power loss" feature back ... it's one of the reasons I got the Mega..

I think thins build could have been done better especially for the pause sequence.

I may remind you of the pause on the manufacturer firmware of the i3 Mega worked, so I would argue that my routine is still fairly more useful than that. Anyways, could you show me the code that Tevo used? Maybe I could port it over.

I would very much appreciate if I could have the "return from power loss" feature back ... it's one of the reasons I got the Mega..

If it's a crucial feature for you, I'd recommend to go back to the firmware that supports it.

I don't need that feature and I simply don't have the time to write that function from scratch right now.

This project is pretty much a one man show and hence I have invested plenty of hours in providing a pretty stable codebase. I ship the source code. Feel free to improve it. This is what open source is about.

don't get me wrong. I appreciate all the hard work. I just think this could be improved.
I could, for instance, leave the 'return from power loss' feature away, if I could have the pause sequence I mentioned above.
I don't know much about codding but I guess you could apply some of the "basic" features of the main marlin firmware, perhaps even the pause feature ?

I agree, there is always room for improvement - I just have less time for it now than I had when starting this project.

As for the pause feature, that's basically what I had done. I rewrote the display code to use Marlin's own ADVANCED_PAUSE_FEATURE as well as PARK_HEAD_ON_PAUSE instead of just stopping the hotend. So basically, the current pause routine is, apart from a few minor adjustments, Marlin's default. Hence I am curious about what Tevo did to their version, I can try and see if I find their source code on the weekend.

Hey davidramiro,
Erstmals vielen Dank für deine Mühe .

Ein Super Projekt, hast du da auf die Beine gestellt. Großes Lob & Mein Respekt!!! :-)

Ich habe seit ca. 2 Wochen deine aktuellste ( Marlin-Ai3M-v1.4.6-TMC2208_reversed.hex ) am laufen auf einem Anycubic Mega-S. ( Betrieben per USB via Octoprint (OctoPrint 1.3.11 auf OctoPi 0.16.0 / Raspberry 3B+ ( 2017 ).via LAN.)

Soweit bin ich auch so ziemlich happy bis auf eine Kleinigkeit. Die meiner Vermutung nach mit meinen Umbauwahn zutun hat.
Thema: =M600 Filament Change=
Kurze Erläuterung: Mein DruckBett hat anstatt der original LM8UU Festlager, sowie der Lagerböcke jetzt diese Lagerböcke

https://www.thingiverse.com/thing:2791727 ( Doppel Lagerböcke 2 xigus rj4jp 01-08 pro Einheit. )

  • original igus rj4jp 01-08 verbaut.

Was jetzt im Wesentlichen dazu führte, das mein DruckBett in der Y Achse um ca 1cm an Tiefe verloren hat. ( 200mm Y-Tiefe. )
( Cura 4.4.0 / Settings Screenshoot. / Octoprint Drucker Profile angepasst. )

cmd / M600 wird von mir im G-Code via cura Plugin hinterlegt und auch tadellos ausgeführt.
Nozzle parkt und das Druckbett fährt leider mit nach vorn, natürlich bis Anschlag bei mir und Gefühlt will es noch weiter!

Mein Issue Gedanke, wäre jetzt. Das Bett kann nicht weit genug nach vorne geschoben werden.
Ergo bei M108 FilamenChange Resume, passiert es nun das meine Druck Ergebnisse leicht verschoben sind, siehe screens.

Was kann ich tun, damit das zukünftig passt ( G-Code anpassen. ) Ich hoffe du / Ihr habt spontan eine Idee für mich parrat.

Sry Bildmaterial nich angepasst..Mobil immer tewas kniffelig auf die schnelle :-)
Bei Bedarf an Logs usw. Gib mir bitte Bescheid.

Ich danke dir beste Grüße

Anycubic I3 Mega Igus Holders

Jup, Bettgröße ist das Stichwort. Das müsstest du in der Firmware anpassen. Wie man die selber kompiliert habe ich auch in die Anleitung geschrieben.

Du müsstest ganz einfach nur in Zeile 900 der Configuration.h Y_BED_SIZE verringern, ich würd fürs erste vorsichtig mit 190mm anfangen.

Der "Parkplatz" für das Hotend beim Pausieren ist Y_BED_SIZE minus 10mm. Du kannst ja mal manuell testen wo bei dir Y180 landet und schauen ob das passt, oder sogar noch ein bisschen mehr geht.

Da du die reversed Version verwendest, musst du danach noch fix die Zeilen 868 bis 876 anpassen, einfach einmal die Werte jeweils umkehren.

Hey davidramiro,
Vielen Dank für deine fixe Antwort!

Auch schön zu Sehen das einige user, wie auch in meinem Fall. Ihre Drucker Probleme eigenständig reproduzieren können.
Das ersparrt uns sicherlich einiges an Arbeit :-)

Ich habe mir mal Zeit genommen und habe nach deiner Anleitung, deinen Rat soweit logisch befolgt!
Screens angehängt. Ich würde dich da bitten, Ordnungshalber nochmal drüber zu schauen. Danke dir.

Darüber hinaus ist deine Anleitung durchaus Verständlich, allerdings überlege ich was du mit dieser Aussage genau im Auge hattest.
( Der "Parkplatz" für das Hotend beim Pausieren ist Y_BED_SIZE minus 10mm. )

Du kannst mir das ansonsten ja gern nochmals Erläutern :-)

Beste Grüße

Alles richtig gemacht. Mit 190mm meinte ich, dass das der Hotendparkplatz sein wird wenn du 200mm als generelles Bettlimit definierst. Wenn das Hotend aber bis 203mm Platz hat, passt das auf jeden Fall so, wie du es jetzt definiert hast.

Edit: Die anderen Zeilen zu Motortyp und Richtung passen auch so wie in den Screenshots.

Alles rogger, wir haben es Richtig gemacht. Nun läuft das auch für mich einwandfrei ;-)
Lustigerweise habe ich nach dem Parken immer noch etwas Luft nach vorn.

What ever wie du siehst es passt jetzt und das ist die Hauptsache!

Danke dir nochmal vielmals davidramiro ! Deine Fw macht Spaß...

P.s das hat nichts mit deiner Fw direkt zu tun aber unter Umständen sagen dir die cmd´s mehr als mir. Ich danke dir
Thema OctoPrint: Nach erstmaliger Verbindung und dem Start des ersten Drucks gibt OctoPrint oftmals eine falsche Hotend Temperatur an meinen Drucker weiter. kurzer Auszug

( Denn Blödsinn hier haut er dann mir unverständlicherweise raus.)

Recv: echo:busy: processing
Recv: T:60.81 /0.00 B:80.00 /80.00 @:0 B@:89 W:1
Recv: T:60.65 /0.00 B:80.00 /80.00 @:0 B@:93 W:0
Recv: ok
Send: N4 M104 S405.00000078
Recv: ok
Send: N5 M105
Recv: ok T:60.65 /270.00 B:80.00 /80.00 @:0 B@:94
Send: N6 M109 S405.000000*65
Recv: T:60.65 /270.00 B:80.00 /80.00 @:0 B@:94 W:?

Recv: T:33.04 /0.00 B:80.00 /80.00 @:0 B@:91 W:0
Recv: echo:busy: processing
Recv: ok
Send: N4 M113 S2101
Recv: ok
Send: N5 M104 S230
Recv: ok
Send: N6 M10533
Recv: ok T:32.97 /230.00 B:80.00 /80.00 @:0 B@:92
Send: N7 M109 S230
Recv: T:32.97 /230.00 B:80.00 /80.00 @:0 B@:92 W:?
Recv: T:33.02 /230.00 B:80.12 /80.00 @:127 B@:74
Recv: T:33.00 /230.00 B:80.12 /80.00 @:127 B@:72 W:?
Recv: echo:busy: processing

( So hier so sollte es sein normaler PETG Druck aber erst Möglich nach Neuverbindung mit dem Drucker.)


Wtf was ist da los ? Hast du eine Idee warscheinlich ein Plugin?
Ich versuche es zu reproduzieren aber bisher ohne Erfolg.

Wrong temperatures are set OctoPrint sends temperature commands to the printer in exactly three cases: When you set a temperature on the temperature tab, when OctoPrint sends GCODE to the printer (e.g. a file to be printed or a GCODE Script 13) or when a plugin you have installed instructs OctoPrint to send a temperature command to your printer. If you notice that your printer is set to wrong temperatures, check your slicer profile, your configured GCODE scripts, any plugins your might have installed (if in doubt, run in safe mode) and make sure you didn't accidentally set a temperature offset on the temperature tab.

Okay bis auf die Plugin kann ich ebendfalls alles ausschließen. Bin ein wenig Ratlos gerade :-)

Beste Grüße für dich / euch

Does anyone have use with success OctoPrint plugin to display progress on printer?

I tried different plugins but not seems work with Marlin and our i3.


You won't be able to do it, as far as I am concerned. The screen simply does not allow it, we can only use some very limited functions since it's not open source.

Thank you very much for clarification.

Comments deleted.

Does anyone have an S3D profile for the i3 Mega S? I'm not sure what differences to configure for the retraction settings for the new extruder and I cannot find a profile anywhere.

Usually, Titan like extruders can't cope with retract settings above 3mm. If not a S3D profile, i'd happily take a Cura profile.


Hello steddyman,
runs perfect with my Titan Extruder from Triangle Labs.

In configuration.h set you have to define:

define DEFAULT_AXIS_STEPS_PER_UNIT { 81.32, 81.04, 399.62, 453.02 }

Generally, I'd recommend you to try 25mm/s, retract accel 1500mm/s² and a retraction length of 2-3 mm, then tweak from there.

Hey there I don't have the original SD card for the printer and when I out a blank SD card in I don't get the options for bed levelling as per the instructions... Do I need something on my SD card for it be available?

Try formatting it with FAT and FAT32. There doesn't need to be anything on it.

As a couple other users have stated, I get a "lack of filament" popup when the printer boots. I had hoped it was just a quirk but I just had a print run through the filament without pausing, meaning that it truly isn't being recognized correctly. Anyone have a solution? I'm on the newest release of Marlin (BLTouch version) but this isn't new. It was also happening on the previous two versions including the non-BLtouch precompiled versions.

I have an Anycubic i3 Mega-S.

Hm, I don't have the time anymore to test the printer for hours, so as I do not use the filament sensor myself I had only done a few quick tests, which all went perfectly well though. So I'll keep this in mind, maybe I get the time to have another look at it soon. Seems like it's not happening on every machine as some people report it to work fine.

Thanks for all your help. I don't know how to determine which sensor I have exactly but it's the one that came stock. If you have any resources or things I can test in the configuration.h file, let me know.

First at all thank you for this, it is really a great improvement over the original firmware.

I have a few points where I would need your thoughts:

  1. Bed heating - I print now mostly ABS, with the bed at 110°C. I have previously installed a thermal insulation /shield under the bed, and it had greately helped to reduce the heating time. It did not impact the final temperature, which was accurate spot on (used to check it with a thermal gun). This makes me think that the previous bed temperature control was also part of a PID process - there was clearly a feedback based control in the heating. You say the bed heating process is now "PID controlled" and this help the efficiency - no doublt, but my personal feeling is that the heating time is consistently increased - I need to find something to do until the bed heats...
    It might be a different variable in this process (e.g. my insulation degrading in time etc) - you know what you did, just please think and comment.

  2. Accelerations and jerks: your statement: "very close to the original ones for this version of firmware, but you would recomand same reductions". I run a M503 immediatly post firmware upgrade and the values for accelerations given were consistently under your recommandations. I did this because my first test print (the owls) turned not really great... I put the default values and everything was back to what I expected. You might be able to double check what is exacly given in firmware for accelerations.

Thanks again for your brilliant work

This makes me think that the previous bed temperature control was also part of a PID process - there was clearly a feedback based control in the heating. You say the bed heating process is now "PID controlled" and this help the efficiency - no doublt, but my personal feeling is that the heating time is consistently increased

Before, the temperature was controlled via Bang-Bang, that is quite different from PID although also of course feedback based. Heating times increasing might come from the bed going from DC to PWM a few degrees under target temperature to prevent overshoot. You can tweak the PID parameters manually to allow some overshoot and make heat up times shorter.

To explain it rougly, the manufacturer firmware checks the temperature every 5 seconds and uses full DC current to power the bed. This firmware, as it uses PWM, activates its cycling even before the temp is at target.

Accelerations and jerks: your statement: "very close to the original ones for this version of firmware, but you would recomand same reductions". I run a M503 immediatly post firmware upgrade and the values for accelerations given were consistently under your recommandations.

Don't know how right after flashing the firmware settings were under my recommendations, that is simply not possible (if you used the newest 1.4.6). You can check my preset accel settings right here: https://github.com/davidramiro/Marlin-Ai3M/blob/master/Marlin/Configuration.h#L632
Those values are higher than what I recommend, and only the default accel differs from the stock firmware.

I did this because my first test print (the owls) turned not really great... I put the default values and everything was back to what I expected.

First of all, don't use the test owl gcode to benchmark the printer. You don't know what kind of parameters they used, they could very well have baked in their own accel settings inside the gcode.
Secondly, generally lower acceleration results in better quality. My prints consistently look much better on low accel than on the stock value.

Just take a look at this: https://kore.cc/i3mega/comparison/

Thank you. Just checked again the default values for acceleration in this firmware (1.4.6), they are all identical with the original ones except the nominal acceleration, which is original (M204) P3000 and P1500 per the new firmware. Anyway no problem, I'll make same tests. (Of course I used a new compiled G code for the owl, at least to get inside the initialization for Z corrections based on the real bed mapping & mesh, that works btw excellent - the most useful improvement imho)

Bed heating - how the PWM makes a better thermal tuning? - does is adjust the time the bed heater gets power or the voltage it gets? Or both? In fact what I need to know is if mosfets are still useful: I bought a pair, good quality and quite expensive, but I haven"t had the time to install them. If mosfets are installed, looks Iike I get back to a DC Bang-Bang system controlled by PWM?!

they are all identical with the original ones except the nominal acceleration, which is original (M204) P3000 and P1500 per the new firmware.

Indeed, and imo default print accel is the most important of them all, hence I even reduced it to 1200 on my recommendations. Anyways - as I pointed out on the instructions, everybody should try to find his or her own perfect acceleration settings. It even depends on what kind of surface your printer is standing on. So take everything I say with a grain of salt :-)

Bed heating - how the PWM makes a better thermal tuning? - does is adjust the time the bed heater gets power or the voltage it gets?

Time, and it is much more precise because instead of every 5 seconds, it operates at a frequency of a little over 7Hz. I attached a photo of my oscilloscope measuring the bed.

How would installing a MOSFET make you return to Bang-Bang? MOSFETs are made for exactly this usage, fast switching. It's not a question of functionality, it's just to take some load off the board. If you don't use an external MOSFET, you are just using the MOSFET from the Trigorilla board anyways. And actually, that MOSFET isn't even really suited for 12 Amps@long DC pulses, if you look up its datasheet. It's much more within spec to run it with PWM.

Everything clear now, thank you.

Glad I could help!

already update and level only not understanding this

After leveling:
To ensure your mesh gets used on every print from now on, go into your slicer settings and look for the start GCode
Look for the Z-homing (either just G28 or G28 Z0) command and insert these two right underneath it:
M420 S1
Your printer should now correctly print first layers even on a warped bed.
When working on the printer, installing a new hotend or nozzle or the bed warping over time, a new Mesh Leveling procedure is recommended.

You could explain this part or you have photos of how it is done since I can not understand it please

how and where is it done please

I don't know what your slicer is and I don't have the time to create a photo slideshow for you. In Cura, go to Machine settings and you will see the start gcode, for example. As always, Google is your friend.

use cura4.0 good thank you I'll see who can help me

Comments deleted.

I made some minor changes (changed the extruder steps and made it fit to my reserved connectors) but i get several big failure message while im exporting the compiled binary

Any ideas?

It'd be helpful to at least include the error messages, so I know what kind of issues you are having. Just copy over the GCC log to a pastebin.

If the unmodified firmware doesn't compile, you didn't set up the IDE correctly, I mentioned the needed settings in the instructions. If it does compile correctly, you did something wrong on your changes.

Hello everybody,
My Anycubic i3 Mega has the TMC2100 drivers (with reversed plugs) installed (https://wiki.fysetc.com/TMC2100/). The activated mode is "1/16 Steps, 1/256 Interpolation, spreadCycle" Which fimrware I have to install? Do I need to use Marlin-AI3M-vx.x.x-TMC2208_reversed.hex or Marlin-AI3M-vx.x.x-stock_drivers.hex? I do not know the difference between the TMC2100 and TMC2208 and whether the firmware for the TMC2208 uses functions that the TMC2100 does not support.
Can someone give me a hint?

Compile the firmware yourself, follow the instructions I wrote on that. Put TMC2100 as motor type. Adjust the motor direction part according to your wiring config.

I tried out Marlin-AI3M-vx.x.x-TMC2208_reversed.hex before I read your answer and it works fine. But because I’m familiar with the Arduino environment, patching and compiling i will give your suggestions a try. Thank you for your answer!

Lots of great features and it runs perfectly. My favourite feature.... no annoying tune when I turn my printer on!

Hi david been using your firmware and uploading the compiled sketches no problems at all, but now today its giving me an avrdude stk500v2 time out error and wont upload, ive uninstalled arduino and tried a fresh install, the correct com port and board are selected, any ideas, i need to change the dir od E0 for the new bmg clone extruder

Hello, i'm a complete newb to this. What do you mean by flash the hex with cura or Octoprint, how do I do this please? I have installed Octoprint, however at the moment my ANycubic Mega-S won't connect to my Mac book.

I exchanged my I3 mega for a Mega s due to some bed level issues with the I3 mega. The Mega-s has very poor and thin extrusion and the first layer adhesion is terrible compared to the I3 mega. I'm going to make sure I have the latest firmware for the Mega-S. Also Cura foes not have the Mega-S as a model option. I'm getting frustrated with Anycubic because they are saying the settings for the I3 mega and Mega-s are universal?

Update: I have uploaded the firmware but I don't know how to send commands to the printer. I downloaded Octoprint but I don't know how to get it started so i'm going to download Pronterface. My connection via USB is very poor and I seem to lose it every now and then.

Jumping a head to extruder calibration, which bit is the extruder intake please? is it where the filament started going into the Bowden tube?

One more question for now: Are any of the improvements in this firmware supersed by Anycubics firmware 1.1.3 for the Mega S? Many thanks


I have uploaded the firmware but I don't know how to send commands to the printer. I downloaded Octoprint but I don't know how to get it started so i'm going to download Pronterface. My connection via USB is very poor and I seem to lose it every now and then.

Yeah, Pronterface is the easiest way to get started I'd say. Set the baud rate to 250000 and connect. Also the included blue USB cable is bad, if you have another one, use that (most inkjet printers use the same cable if you have one of those)

Jumping a head to extruder calibration, which bit is the extruder intake please?

It doesn't really matter where you measure. You just need to check somehow how much filament gets pulled. I don't have a Mega-S so I can't say what's the easiest way, but the point where the filament reaches the extruder would probably fit.

Are any of the improvements in this firmware supersed by Anycubics firmware 1.1.3 for the Mega S?

That one is still based on Marlin 1.1.0. As the file size is identical to previous versions, I wouldn't expect any new features, they probably just changed some minor values. This is only speculation though, since they don't release any changelogs.

I got the stock drivers version working great on my i3 Mega-S.

I then bought a BLtouch (v2.2) and installed it with these instructions: https://www.rctruckstips.com/nivellement-auto-sur-la-anycubic-i3-mega-ultrabase.html

When I power up the printer, the BLtouch activates and extends/retracts. But when I attempt an auto-bed-level it doesn't do anything. I also tried sending "M280 P0 S10" to manually get it to extend and it does nothing.

I've verified the solder points are solid and the wires are matched up properly to the main board. I'm unsure where else to look or what to do.

Just for kicks I also tried uncommenting the BLtouch v3 line in the hex file but it made no difference.

Any help would be appreciated.

I had the same problem, helped change in Configuration. h string #define TRIGORILLA_VERSION 0 on #define TRIGORILLA_VERSION 1
is at the very end of the file.

Wow, that did it! Thanks so much for the prompt reply and perfect solution. This had been plaguing me for a week. Thought it was my shoddy soldering skills, lol.


Ich suche die Möglichkeit den Controller_Fan einzuschalten. Gehe ich Recht in der Annahme der ist in dieser Version deaktiviert? Jedenfalls springt der bei mir nicht an (also der kleine Lüfter der die TCM kühlen soll. Der Rest geht. Der Controller-Fan hängt ja an FAN1. Der sollte ja auf PIN 7 geschaltet sein. in der Configuration_adv.h finde ich diesen Part: //#define CONTROLLER_FAN_PIN -1 . Einfach die -1 gegen 7 tauschen? NUR ..in der PINS_TRIGORILLA_14.h steht schon : #define CONTROLLER_FAN_PIN 7 . Wieso gehtz der dann nicht bei mir? ist der auch TEMP abhängig? Kann ich den , wie FAN0 und FAN2 nicht auch irgendwie testen über Octoprint?

Grüße Klaus

USE_CONTROLLER_FAN ist definiert und somit aktiv. Der bewegt sich nur, wenn Motoren laufen (mit 60 Sekunden cooldown).

Zitat, direkt aus der Datei:

 * The fan will turn on automatically whenever any stepper is enabled
 * and turn off after a set period after all steppers are turned off.

Pin 7 ist in der Config_adv ganz einfach nicht definiert, weil er bereits in der Pin-config definiert wurde.


Super , danke für die Info und Deine Arbeit. Ich bin soweit erstmal absolut zufrieden mit Deiner Version, funktioniert einwandfrei bisher. Nun noch ne Frage, weil DU grad mal hier bist.. ;-) , ich möchte mir gerne den BL-Touch installieren, geht das mit deiner Version, und gibt´s da auch ne Doku wo ich nachlesen kann was ich alles einstellen muss in diversen config datein? Danke Dir nochmals für Deine Mühe und Antworten. Grüße Klaus

Schau mal hier: https://github.com/MNieddu91/Marlin-AI3M-BLTouch

Da hat ein Kollege meine Version für BLtouch angepasst inkl. Guide. Er zieht auch immer die neuesten Updates von mir rüber, somit ist die Version immer aktuell (Fürs erste sowieso, werde nicht mehr groß dran weiterarbeiten).

Danke Dir, werd ich mir anschauen. Schade eigentlich, aber wenn die Version jetzt so stable funktioniert weh ich keinen Grund noch etwas zu ändern. Danke und Grüße Klaus

Ich habe einen Mega, und das Upgrade zum Mega-S lieht hier bereit. Mir ist immer noch unklar wie die "Einheits" Firmware gehen soll wenn es nur Versionen für diverse StepperTreiber gibt, aber keine Version für den anderen Extruder. Ist der Extruder denn von der Firmware automatisch erkannt ? Der neue Extruder hat ja völlig veränderte Übersetzungsverhältnisse und Settings und es kann meines Erachtens nicht gehen. In dem Dokument PDF steht allerdinmgs immer in der Überschrift Anleitung für Mega und Mega-S. Kann ja nochmal jemand aufklären? Bisher habe ich mich weder getraut den neuen Extruder anzuschrauben, noch die Firmware zu flashen.

Danke für die antwort. Das habe ich gelesen, aber da ich unsicher bin ob ein Mega-S nicht auch innen noch andere Bauteile hat war ich da vorsichtig. Danke für Deine tollen Anleitungen!

Direkt im Segment zum flashen:

  • If you are using this on a Mega-S, those four additional commands are necessary:
  • M92 E384 - set correct steps for the new extruder
  • M203 E30 - limit extruder feedrate
  • M204 R1500.00 - lower retract acceleration
  • M500 - save the values

Bei Unsicherheiten bitte einfach bei der Stockfirmware bleiben.

erst einmal danke für die tolle Arbeit und die sehr gute Anleitung.
Ich frage mich, ob es möglich ist, einzelne Punkte des Mesh zu editieren. Ich muss hin und wieder nur einzelne Punkte ändern.
Hier in dem Video https://youtu.be/ONpKxkil16Q?t=858
geht es, jedoch kann ich das ja nicht auf den i3 Mega übertragen.
Über einen Tip würde ich mich sehr freuen.
Viele Grüße

Hi, so schön intuitiv geht's natürlich nur mit einem richtigen Marlin-LCD. Erneutes proben eines einzelnen Punkts ist nicht möglich, allerdings kannst du punkte manuell "nach Gefühl" editieren.

Angenommen der Mesh point in der Mitte muss ein Stück tiefer. Mit M503 spuckt das Terminal alle Punkte aus, nummeriert nach X und Y-Position. Der Punkt in der Mitte wäre dann
G29 S3 X3 Y3 Z-0.02000
Dann würdest du einfach die Zeile kopieren und anpassen, z.B.
G29 S3 X3 Y3 Z-0.02500
senden und mit M500 abspeichern. (Bei positivem Offset dann natürlich reduzieren damit's tiefer wird.)

Danke! Das ist doch schneller als mit dem Marlin-LCD, perfekt :)
Kann ich eigentlich irgendwie testen, ob die hinterlegten Daten im Mesh auch beim Druck genommen werden. Ich habe nämlich gerade echt ein Problem mein Bett zu leveln, nicht dass ich noch schizophren werde :D
Den Start Code habe ich mit M501 gefolgt von M420 S1 erweitert. Ich frage nur, weil in diesem Video lädt er die Einstellungen mit G29 L1 und G29J. Nicht dass ich da was falsch verstanden habe.

Im Video wird ABL/UBL verwendet, nicht MBL. Sofern die beiden Befehle nach den G28-Befehlen abgerufen wird, kannst du sicher sein dass es verwendet wird. Wirklich testen kannst du das nur, indem du einen Punkt extrem hoch setzt, zb auf Z10 und dann wirst du sehen, wie die Z-Achse beim first layer einen cm nach oben korrigiert. (Ob MBL so eine hohe Kompensation zulässst weiß ich jetzt aber leider nicht, vielleicht doch eher einen mm probieren.)

Ok, danke für die vielen Infos.

This software is sweet...But, did you ever try updating with BLtouch? I tried...So, far not so good... I have been successful with ender 3 but not my mega s. I can send you my updated compiled marlin I used if you like to help...I got that dissatisfied feeling of not being able to figure this out. Any help would be greatly appreciated. Let me know if you want my compiled firmware source with the mods I made. I am using D6 servo1 and D2 for Zmin. The bltouch commands do not work for me at this point. I also have a separate version using servo0 pin 11 for a NPN inductive probe which seems to work but want a solution with bltouch. Any help would be great...Thanks Dale

I simply don't have a BLtouch probe (and will never buy one, as there are more precise probes if I need one at some point). As a principle, I don't release anything I can not test.

But right at the top of the instructions I linked a working BLtouch fork of my firmware. That version is known to work very well. You might have more luck with that one.

why D6? why not D11?
in my case with connect to D11 help this #define TRIGORILLA_VERSION 1

Right now I have 2 sensors mounted. An NPN inductive sensor hooked up to D11 which works fine. I am now trying out the Bltouch and using D6 servo1 with D2 zmin. My firmware compiled source was attached.

Comments deleted.

Alles klar.. Sorry.

Hallo Davidramiro! Danke für dein Firmware-Paket! Das läuft bei meinem i3 absolut smooth.

Eine kurze Frage: Wie genau funktioniert das mit dem Filament Sensor? Ich habe die Version 1.4.6 deiner Firmware installiert und wenn kein Filament mehr im Sensor ist, meldet mir das der Drucker zwar am Display aber dennoch fährt er auch ohne Filament weiter (ich hätte auch schon ein paar Minuten gewartet, ob es sich vl einfach nur um ein Delay handelt, aber das wars nicht). Danke vorab für deine Antwort!

Guten Morgen, habe irgendwie seit gestern eher das Problem, daß er sagt "Lack of filament"....ist aber vorhanden. Etwas unglücklich, wenn es ein Druck über einige Stunden ist und ich es später sehe...;-) Auch die neuste 1.4.6 installiert...

Da kann die Firmware herzlich wenig für. Lack of filament erscheint nur, wenn der Sensor tatsächlich triggert, und nicht einfach weil sie Lust dazu hat. False positives sind nicht auszuschließen, obwohl ich extra schon ein 3 sekündiges Delay eingebaut habe.

Ok, aber kann ich etwas tun um dieses zu verhindern?!

Abklemmen oder ein Stück Filament rein und zur Seite legen. So machen das gefühlt 90% der Nutzer hier.

Ah...war mir so nicht bekannt, daß es mit dem Sensor solche Probleme gibt. Hatte ich ehrlich gesagt noch nie gehabt und hatte vermutet, daß ich jetzt mit der Marlin noch etwas anderes einstellen müßte...bin ja erst seit ca. 1 Woche von der originalen Firmware gewechselt...

Druckst Du über SD oder USB?

Danke für die schnelle Antwort. Ich drucke über USB und Octoprint am Raspberry. Ich schätze in dem Fall wird es wohl nicht unterstützt?

Genau, das funktioniert generell bei Druck via USB-Host nicht. Du könntest den Filamentsensor an die GPIO-Pins des Raspi anschließen und dann über ein Plugin regeln lassen.

Alles klar. Schade dass man das nicht direkt mit dem Signal vom Drucker umsetzen kann. Danke nochmal für die schnelle Hilfe und den Lösungsvorschlag!

Falls du zufälligerweise Python "sprichst", kannst du dir ganz einfach ein Plugin dafür schreiben. Falls nicht, kann ich mir das die Tage mal anschauen. Brauche eh ein wenig Übung in Python. :-)

Leider hab ich mir Python bisher noch nicht angeeignet. Wäre wirklich spitze, wenn du das machen könntest, wenn es nicht zu viel Umstände bereitet ;) Danke dir!

für alle die das gleiche Problem haben wie ich: ihr müsst einen extra run-out-filament sensor am Raspberry-Pi anschließen. Der vom i3 Mega funktioniert nur wenn direkt von der SD Karte gedruckt wird.

Hier eine Anleitung wie ihr das machen könnt: https://www.youtube.com/watch?v=j7JfQXTf16U

I just upgrade with your firmware adjust the bed level an extruder and everything get super fine. Great job and thak you for this upgrade

vielen Dank für die Implementationen, leider habe ich ein Problem mit meinem Anycubic I3 Mega und den Z-Steppern.
Immer wenn ich Deinen Code flashe, steigt mein linker Z-Stepper aus.
Ich habe nun mal die pins.trigorilla_14.h verglichen.
In meiner funktionierenden Hex wird der zweite Z-Stepper mit E1 betitelt.
Da ich TMC 2130-Treiber verwende, hat das dann bei mir bisher so ausgesehen:

define E1_STEP_PIN 36

define E1_DIR_PIN 34

define E1_ENABLE_PIN 30

define E1_CS_PIN 37

In Deiner pins.trigorilla_14.h wurde E1 aber gegen Z2 ersetzt:

define Z2_STEP_PIN 36

define Z2_DIR_PIN 34

define Z2_ENABLE_PIN 30

Kann es daran liegen?
Muss ich alles auf E1 umbenennen oder muss ich nur noch den CS_Pin definieren (#define Z2_CS_PIN 37)



EDIT: Also ich habe natürlich den CS_Pin definiert wie bisher, allerdings mit Z2, anstatt E1, irgendwie scheint es aber zu haken...

Leider etwas schwierig für mich nachzuvollziehen ohne den bei dir funktionierenden Quellcode... Verwendest du die TMC2130 denn mit SPI? Hast du alles andere dazugehörende entsprechend eingestellt?

Ich würd einfach mal Meld anschmeißen und die relevanten Diffs überprüfen. Wird ja nur ne Konfigurationssache sein.

ja, ich verwende SPI, habe die relevanten Zeilen mit Notepad++ verglichen, wie gesagt, das einzigste was differiert ist in ter Trigorilla_14.h die Pinbezeichnung.
Bei mir ist es für den zweiten Z-Stepper bisher E1 gewesen (da ist er auch angeschlossen), bei Dir sind die Pins auf Z2 bezogen.
Und da wollte ich wissen, ob ich in deiner Konfig das Z2 wieder umbenennen kann in E1, oder eben den CS Pin auch auf Z2 benennen soll.

Und genau deswegen empfehle ich einen kompletten diff auszuführen, da ist noch deutlich mehr was abweicht als nur die pins-Datei. Allein schon die Motortypen in der config und die TMC2130-spezifischen Einstellungen in der config_adv, etc.

Ob das nun E1 oder Z2 genannt wird, ist am Ende egal und nur kosmetisch. Das Trigorilla-Board hat ja gar keinen "Z2"-Anschluss, de facto ist aber E1 die zweite Z-Achse. Wichtig ist dass die korrekten Pins angesteuert werden. Da meine FW aber nicht für SPI-Betrieb konfiguriert ist, musst du eben noch ein wenig tiefer graben, als nur in der pins-Datei.

Alles klar, Danke.
Leider bin ich kein Programmierer :)
Ich verstehe aber einiges vom Code.
Kannst Du mir sagen, wie ich alle Dateien einfach miteinander vergleichen kann?
Ich kenne mich mit den Programmen nicht aus und mit Notepad++ wäre das ja krampfig :)

Meld oder WinMerge. :)

Hey David!

Vielen Dank für deine sauberen Dokumenationen/Anleitungen, die vielen Updates und den Support hier in der Comment-Section - ganz stark!
Zwei Fragen: Nachdem ich auf den i3 Mega-S umgerüstet (non-E3D "Titan" Extruder von der Amazone) und neue Stepperdriver (shame on me - v2.0 von Bigtreetech ;)) eingebaut habe, wollte ich deine aktuellste FW (1.4.6) installieren - diese schlug aber jedesmal fehl.

1.) Irgendwelche Ideen? Bin im Moment zum Vorgänger zurückgekehrt (1.4.5), der läuft problemlos.
2.) Wann genau muss ich den "M420 S1 // M501"-Befehl bei Cura in den Start G-Code eintragen? Beim Extruder-Wechsel, oder per se immer?

Danke im Voraus!

Viele Grüße vom lippold

Hi und danke für die netten Worte,

was heißt denn schlug fehl? Irgend eine Fehlermeldung?
M420 S1 gehört in den Start-Gcode (nach G28), wenn du Mesh Leveling verwenden möchtest. Also, wenn du dieses Feature immer verwenden willst, einfach einmal bei Cura reinpacken und das wars, sollte dann in jedem Druck drin stehen.

Danke für deine flinke Antwort.

Ich sag dir gleich Bescheid, um was für eine Fehlermeldung es sich handelt...vorher noch schnell eine andere Frage ;) mit den crappy v2.0 Schrittmotoren nehme ich doch auch die _reversed.hex Datei, oder? Mir war, als hätte ich hier in den Kommentaren gelesen, dass auch die stock_driver.hex Datei geht (mit v2.0), kann mich aber auch getäuscht haben (:

Ja, reversed is korrekt. Funktionieren tun beide, aber wenn du schon die Wahl hast, nimm die TMC2208_reversed.

I just upgraded my ACi3M to the S extruder and I could not get the extruder to work. I flashed the new 1.1.3 firmware with no luck. The FB group mentioned this TV page. I put your FM in and all is well. Thank you very much. I have more playing to do but so far it is great. :)

hi, is this also possible with the i3 mega that has the firmware V1.4. ... on it, with the 32 bit board?

No, sorry, Marlin 1.1.9 only supports 8bit. Marlin 2.0.x does support 32bit and I have a custom version of it on my GitHub but the Trigorilla Pro (32bit) chip is still only partially supported. They are working on it, might take them a few months to get everything straight.

I just tried this F/W ... unfortunately it caused the "Temp" Menu => Bed Temperature in the LCD to start always at 1C when you press the "+" button. This is very annoying ... previously to flashing this, pressing the "+" button would cause the bed temperature to go from 0C to 50C, which makes much more sense. I re-flashed Anycubic's original F/W, and did M502 and M500, but could not get my machine back to its original behavior.

That simply cannot be true. The board firmware can not edit the screen menu items (except for the special menu - it's a simulated folder on the SD card) in any way. If so, that would be a miracle, since everybody is waiting for Anycubic to release the display code.

No offense, but I think you might just be misremembering that specific menu point. Only the hotend temp jumps from 0 up to 170.

My bad ... you're right. The jump to 50C happens only if you first turn on Preheat => PLA. Oh so that's how you fool the UI to show the Special Menu.

in Configuration.h line 590 you turn on this:


But in the description to this option say that it is better not to include it. And for the mechanical switch just solder the 100 nanofarads ceramic capacitor parallel to the switch. I don't have access to the printer right now and I can't see if it's soldered to the factory. docs say this option adds an error in the exhibition +-0.2 mm. And after all we have two sensors, for two motors on the axis Z. i.e. it is possible to skew the total 0.4 mm at a distance of 280 mm or so. Trifle of course, but still.

Hi, actually I intentionally enabled it. Let me explain in detail:

  • Anycubic's endstop PCB does not feature any capacitor.

No filtering on the hardware level caused the endstop switch to get falsely triggered by the motor signal noise (EMI). If you check the wiring, you will see that some of the endstop cables run along the motor wires, which caused an issue on some machines.

  • The comments about inaccuracy come from the ENDSTOP_NOISE_FILTER's default settings, which polls the sensor 7 (!) times, adding 7ms of delay.

While 7 polls is a "safe" value, it might very well cause some inaccuracy, but only on very fast Z homing speeds. Marlin's description is to be understood as "up to", it's not like it's +-0.2mm on every machine.

Anyways, me and a couple of testers figured out that 2 samples were enough for no false positives. So our delay is now at 2ms, and with the Z axis homing at 4mm/s, the inaccuracy in our case is about 0,008mm. I think that is okay :-)

Here you can see that I reduced the poll count when enabling ENDSTOP_NOISE_FILTER: https://github.com/davidramiro/Marlin-Ai3M/commit/dca0eb752a2fa8e68822ac83b6a710771517d3d4

If you want to read up on how we found out about this issue, feel free to read this thread: https://github.com/davidramiro/Marlin-Ai3M/issues/8

Also, older Marlin versions (I think 1.1.8 and under?) actually had no setting for this and had the filter enabled by default. Hence you didn't encounter a false endstop status even on the ancient 1.1.0-RC8 Anycubic uses. Newer versions have it off by default, I guess it should be good practise to include a cap in the endstop PCB nowadays.

Hope that I could clear things up.

Thank you for the explanations. Read your discussion on the link, as well as a cursory on another link from your discussion of the problem))) about the interesting.
Whether I understood correctly, that there is no special sense to solder capacitor to a microswitch is not present. Because it is better to solder it to the PCB, in the place where the endstop is connected? right?
And yet, I now do not understand why the LED does not glow when the endstop is triggered. Because he's there. Apparently I missed it when reading the discussion. You didn't connect these funny LEDs?
Well and a little on another subject matter...
Here came across the article http://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html and others in it described.
And now I want to try to include this #define JUNCTION_DEVIATION and try to compare the work.
Would like to know your opinion. There's probably a reason you didn't turn it on. Maybe he's not very good friends with linear advance?

Actually, I don't know what would a better place for the capacitor. Maybe on the board it would indeed be better, since the cable can pick up noise if the cap is only at the endstop switch? I really have no clue. :)

Also, as for the LEDs, I was confused as well. My Y endstop LED works, all other endstop LEDs don't work. While the endstop PCB has 3 pins, signal, voltage and ground, only signal and ground are connected to the switch. The LED is connected to voltage and signal. If the endstop triggers, and thus signal is shorted to ground, the LED circuit closes and it lights up. Now don't ask me why, but for the Y endstop, Anycubic uses 3 wires correctly. For every other endstop they simply use two wires and skip the LED part :-)

As for Junction Deviation, sure, you can enable it. I printed fine with it. I just didn't want to make my instructions even longer, since you have to calculate the correct value for your acceleration setting. But it does work fine, no problem at all.


Thanks for creating the firmware and updating it, its very much appreciated.

I decided to upgrade my drivers to the TMC2208 on my Mega-S. I got the Bigtreetech TMC2208s 2.0 but they sent me version 2.1 instead of 2.0 but I dont' see this stampped on the chip. I did try the reverse firmware originally as I saw in the notes however that didn't work the axis moved the opposite directions, so switched back to the regular. The printer works however manual mesh leveling does not, the Z doesn't go up or down when you click in the menu (I can move the axis up and down though the regular move access menu). Any ideas on how I can fix this?

Did it work before or did you install the firmware and drivers at the same time?

If you're new to this firmware, the special menu is a bit clunky. You need to select the menu item for Z movement, press the round arrow, and to execute the same command again, you will have to press the item (even though it is still marked red) and the round arrow again.

It did work before with the old drivers with no issue. Never mind it works, there/s a big difference in the precision with the old drivers. Just takes longer to move it now with the new drivers.

I found that pin order is different between the two:
2.0 2.1

Ok, that's weird. As for the pin order, Chinese "v2.0" clones are known for their wrong silkscreen. So I wouldn't care too much about that - if the axis generally moves in the correct direction, everything is alright.

I don't know, maybe your particular model has issues with microstepping or something. Can't really help you with that but as I've mentioned before, all those "v2" clones belong in the garbage in my opinion. They violate Trinamic's chip design and cause bad thermals.

So my recommendation would be to get genuine ones from Watterott or at least one of the more reliable clone brands, FYSETC. (They do not produce "v2" - for a reason.) Anyways, plenty of people do use v2 without any issues, so maybe that really ist just an issue with your newer revision.

Never mind it works, there/s a big difference in the precision with the old drivers. Just takes longer to move it now and its completely silent with the new drivers.

User error, my apologies.

No worries, glad it's working.

Hi, because of problems with using a 2208 for the extruder I installed the stock driver again. It seems to work fine but could it cause any problems because of the 2208 optimisation in this Firmware? By the way: Thanks for your great work!

Doesn't really come down to firmware, TMC2208 simply has less torque (in the default stealthChop mode). Works fine with the stock i3 Mega extruder, but geared extruders like the Mega-S one or Titans might either need a fair reduction in retract speed and accel or a switch to spreadCycle mode.

Which extruder are you using? If you're using a geared one and want to give the TMC2208 another try, you can try using the following speed/accel settings:

M203 X500.00 Y500.00 Z6.00 E30.00 ; limit extruder feedrate to 30mm/s
M204 P1500.00 R1500.00 T3000.00 ; limit retract accel to 1500mm/s²
M500 ; save to EEPROM

Thanks for you fast response! I am using an original Bondtech BMG extruder. I already tried to reduce retract-acc. and speed. This seemed to work but wont stop stringing anymore. The original driver does his job good, even its a bit louder. I just thought there could be improvements for the 1/256 Microsteps of the 2208... Thank you very much!

Another question: While printing via OctoPrint (RPi 3B, BR: 250000), sometimes the printer slows down until it nearly stops for a second. I saw this mostly when it was printing circles (no matter which diameter) or other more detailed paths. Do you have an idea to solve this?

Are you using the latest version of the fw? While I have at least partly addressed this issue in the newest release, you will still always get the best results by printing via SD. That's just a hardware limitation of the USB-to-serial bandwidth vs the SD card bandwidth.

Yes I am running the latest version. Thank you very much!

Maybe it will be interesting.

Computing Junction Deviation for Marlin Firmware

Marlin Junction Deviation Calibration toolkit for Cura by DrywFiltiarn

Marlin Junction Deviation Calibration toolkit for Cura

Hi all
Finally I got to change the motherboard, and the tmc2208(FYSETC v 1.2) along with David ramiro's marlin firmware, everything was fine, mesh leveling and first impression to calibrate the bed, perfect, from there, the following impressions all fail, it seems that the extruder It does not have the strength to go through the hotend, but it does work to change the filament.

  • First change, raise the extruder voltage to 1.5 V (Maximum recommended) the problem continues

  • Clean hotend with the tool that came with the printer (there do not seem to be plugs, but it still gives the same problem

  • Disassemble the extruder to tighten the screws as in the video of anycubic "etruder DADA", tightly tightened screws same problem

What would you recommend to me to solve it?

Thank you very much in advance

Hi there, which extruder are you using? The Mega-S one?

No,the stock i3 mega.maybe must go back to the stock driver in the extruder??

Weird, I run the exact same extruder with FYSETC v1.2 on 1.15V without any problem. Maybe that particular driver is broken, try to swap it with another axis to test. Other than that, you could of course use the stock driver for the extruder.

Maybe is the voltage to high? I started white 1.25V and after I prove white 1.5 V,my board is a trigorilla 1.1

Well, can't hurt to try. 1.15V is what works for me.


after using this firmware for a long time, i now installed the newest version on my Anycubic Mega-S. I just reset all values to the standard (M502). After this Update i just did the Mesh Leveling Test from the Firmware. The Printer is now really fast and the quality is really bad. Can someone tell me what i have to do, that the Test is running good? If i use my old slow acceleration values, then everything is fine.

Thanks a lot for some help.

Cu kami

Check the Acceleration section on the instructions. Accel and jerk are now closer to Anycubics default, I have provided the old values as well. Simply use those and you're back on the print behaviour of <1.4.6.

Thanks a lot.

I will try it.

Cu kami

Comments deleted.

Hello, I have installed the firmware but the potentiometer fails me, it does not let me navigate through the menu, the screen is RepRapDiscount FULL GRAPHIC Smart Controller and I have already activated it in the code, it can be a screen or code failure?

I installed a 12864 LCD on my Anycubic I3 Mega. Once the LCD turns on I can use the scroll button to change the Flow rate goes up and down properly. Once I use the select button and exit back to the info screen, I am unable to use the scroll. I'm not sure whats going on. Maybe davidramiro can shed some light on it?

Hi, I have a branch for your display controller here: https://github.com/davidramiro/Marlin-Ai3M/tree/12864-full
It's not up to date with the master branch, but you should be able to compare the configs and see what's missing. I think BTN_EN1, BTN_EN2 and BTN_ENC in pins_TRIGORILLA_14.h is what you need to look at.


Love the firmware! I've got a problem with retraction though, if I have the retraction speed any faster than about 30mm/s the extruder motor just makes a loud noise and the gear doesn't really retract. It was fine with the stock firmware... I'm running tmc2208 drivers at 1.20v and a titan extruder with the stock motor. I calibrated the extruder steps, and running the tmc2208 reversed firmware version... hoping you can help, thanks!

Hi, if it's a genuine Titan extruder, please refer to E3D to get the correct values for your extruder. AFAIK, Titan extruders work best on lower speed and acceleration. The firmware uses the default extruder settings which can run fine on 60mm/s with 3000mm/s², you probably just can't use those values on a Titan.

Anyways, this is just from my limited knowledge. Thought about getting a Titan myself so I did some research back then, but generally I cannot troubleshoot any issues with modifications like that. I'd suggest you do some research and modify M203, M204 and M205 settings accordingly.

I read that it is an issue with TMC2208 in StealthChop mode in combination with a titan that cause this noise. I have the same issue, but since my retraction length is very short I just run it at lower speeds and it's not really a problem for me at all. Using the drivers in spreadcycle solves this issue according to what I have read online and lets you use higher speeds again.

Приветствую. Я не реверсировал провода. Спасибо все понятно. Успехов в вашем полезном и трудном начинании.

Thank you very much for the work done. !!! Filled in the firmware, the first day everything works. Now you need to put the driver 2208 and adjust it. If I leave the original driver of the extruder a on the X Y and Z axis will put 2208 , how to adjust the parameters in the firmware ?

Hi, depending on what kind of TMC2208 you use and whether you reverse the connectors or not, you might have to make two small changes in the source code, I explained that here: https://github.com/davidramiro/Marlin-AI3M/wiki/Customization-&-Compiling

If you do reverse the connectors on XYZ (or if you use the "newer" TMC2208 v2.0 where the orientation is already reversed) you can simply continue using the stock drivers firmware and don't need to do anything. Will work just fine, the new drivers are backwards compatible.

I'm getting
Send: N9630 M566 X300 Y300*27
Recv: echo:Unknown command: "M566 X300 Y300" the X and Y change but every time M566 is sent i get unknown command message.
Any idea how to resolve this?

what exactly were you trying to do with that command? As far as I can see, this is not a valid Marlin Gcode, only RepRapFirmware.

See https://reprap.org/wiki/G-code#M566:_Set_allowable_instantaneous_speed_change

You pointed me in the right direction as soon as you mentioned RepRap only. It was getting generated from Cura as I forgot to change the G-Code flavor from RepRap to Marlin after the firmware update. I changed the setting and the messages appearing in terminal about M566 are gone.

I found a bug in latest firmware - 1.4.6, I don't know how it is on previous versions.
Problem is when you browse content of sd card, try scroll below the last file to blank screen and move up to screen with files. Then on the screen file names has strange names in front.
I have only three gcode files on sd card and only one screen (special menu + three gcode files), just go to second screen (is blank) and come back to first screen with files.

Formatting the SD card should help. Happened to me when I used the SD card on a Mac, but only once. Can't really say why it's happening, maybe it's the same on the stock firmware as well.

It doesn't work.
I have SanDisk, 32GB. I tried to format, no effect.
When I formatted the card and copied back the files the effect was the same, the bushes in the file names.
My files on sd card:

Well, I don't really have any ideas then.
Also, as mentioned in the FAQ, the i3 Mega doesn't like SD cards >16GB very much.

I flash the Marlin-Ai3M-v1.4.6-TMC2208_reversed and 1.4.5,but the extruder seems weak.

Did you follow the instructions at all? Mega-S needs some additional command on the extruder after flashing.

it's working, thx

b.t.w I3 Mega S. X Y Z E0 E1 drivers already changed to 2208

Another weird question ._. When i need to invert the Extruder, will it be INVERT_Z_DIR? Because there is E0 & E1 so i guess thats switched to the to Z steppers? May i totally misunderstand ^^

Why would you need to invert the extruder, are you using a BMG or similar aftermarket extruder? If so, only E0 needs to be inverted. Z and E1 are used for the Z axis.

no, one of the watterot drivers is defect and i want to replace with stock until they send me a new working one ^^ I was just confused how the assignment is because of the two Z Steppers. Thanks for your fast reply. Really great person :)

Hey i've installed the Watterot TMC2208

When compiling the Firmware, which ones I should chose? TMC2208 or TMC2208_STANDALONE?


TMC2208_STANDALONE. Enjoy the silence :-)

After upgrading the firmware everything seems to be working fine, mesh leveling went well, but I can't print anything due to a 'Lack of Filament' error on the touch screen. The filament sensor appears to be working properly, weird. Anyone come across this issue?

I have a Mega-S, install the TMC2208's, I didn't reverse the cables and I'm using the Marlin-Ai3M-v1.4.6-TMC2208.hex

I rebooted the printer and now it works, weird.

I don't see that issue, but anyways you should be able to simply start printing nevertheless?

Hi David

What do you mean with "Revert latest changes on frequency (needs more investigation)" - especially "needs more investigation" - are there any known issues? Do you recommend stop using this version with changed frequency?

Thanks a lot for your great work

Don't worry, it's not a safety risk or anything. Both frequencies are well within spec. Just had some reports that the bed failed to reach certain temperatures. I have to get out the oscilloscope and check what's going on, that's all.

Anyways, since I fixed a fairly big issue with print quality on certain models, I'd recommend doing the update anyways.

Ok, thanks a lot for the fast answer.

This firmware with Manual Mesh Bed Leveling is awesome! Thank you David!
I tested with PLA and PETG and it works perfectly, but when I change to ABS Premium and set hotbed temperature to 110C and when it reaches 101C the bed stops heating. Could you help with this problem?

Any output on the console? Works fine for me, but I have reverted the PWM frequency changes in 1.4.6. Please try the latest update and see if it works now. (M502 and M500 required after flashing it)

Please report back. If it indeed fixes the problem, are you using an external MOSFET?

Hi David, I tested the new version (1.4.6), but it continues failing to reach bed 110C. Then I flash back to manufacturer firmware and it works fine to reach 110C.
I flash hex file 1.4.6 again, and bed failed again to reach 110C... it stops in 104C. (ABS filament is my problem right now)

Can you explain in a bit more detail? What means stop? It stays at 104°C or it just turns off completely? Any output on the terminal?

Also, did you try a PID tune?

Hi David, I tested again runing PID tune Extruder and Heatbed. PID extruder was Ok, but PID heatbed failed as follow:
READ: T:33.56 /0.00 B:97.30 /0.00 @:0 B@:127
READ: T:33.71 /0.00 B:97.42 /0.00 @:0 B@:127
READ: Error:Heating failed, system stopped! Heater_ID: bed
READ: Error:Printer halted. kill() called!

Line command was: M303 E-1 S110 C6 U1

David, thanks for reply. Tonight I will update to this version 1.4.6 for testing.
I´m not using an external MOSFET.
I´ll report back. Thx

Kann ich diese Verson auch auf einen Anycubic Chiron laden?

Nur mit Einbußen, ABL und Bettgröße passen ja schon mal nicht. Könntest du höchstens im Quellcode anpassen und es dann probieren.

good day. what could be the problem? set up a test pattern as in the screenshot, but as a result of its execution on the printer, all the lines look the same ...

Marlin 1.1.9 uses Linear Advance 1.5. New K-values are requires, the old ones don't apply (the generator still applies, just edit the values accordingly. From the page about linear advance:

New K value required

As the unit of K has changed, you have to redo the K calibration procedure. See next chapter for details. While old v1 K values for PLA might be between 30-130, you can now expect K to be around 0.1-2.0.

500 was way too high anyways, even for old Linear Advance. Please read the full page before doing the calibration. http://marlinfw.org/docs/features/lin_advance.html

thank you for your reply. and I'm sorry for such a bad question. indeed, the article read briefly for the first time, because focused on YouTube, and there it was all on the old version, in the Russian segment... for stock extruder mega-s I got a good result with a coefficient 0,51
your firmware is magical! happiness, health and creative success for you!


And there are no bad questions :-) The value I ended up with on the stock extruder was about 0.45, so I think you got it right now.

I heard I can use this custom firmware only at one model of the Anycubic I3 Mega but that there is a second version where you can not use this firmware. Is that true and do I have to check if I have the right version or can I install this firmware anyway?

As mentioned in the FAQ, only 8bit boards are supported. 32bit versions of the printer exist, but are very rare. You can check via display. Tools -> More -> Info. If you're on 1.1.0, you can use this firmware.

Hallo David, I ve got the mega S and Original version 1.1.2 and so far the latest version works fine from your side. Thanks for stopping the beep during power on.

As I explained earlier, I had a problem that made me stop printing.
I did the pid again and I thought I had solved it, but to my surprise and in a long impression, of about 18 hours, the error was reproduced again.

this is the report:

Recv: Error: Thermal Runaway, system stopped! Heater_ID: bedRecv: Error: Printer halted. kill () called! Changing monitoring state from "Printing" to "Error: Thermal Runaway, system stopped! Heater_ID: bed - Printer halted. kill () called!" Changing monitoring state from "Error: Thermal Runaway, system stopped! Heater_ID: bed - Printer halted. kill () called! " to "Offline (Error: Thermal Runaway, system stopped! Heater_ID: bed - Printer halted. kill () called!)" Connection closed, closing down monitor

I think the firm sends that error for no reason. my values ​​are these: M304 P291.24 I57.34 D369.81

I do not know why I do the pid correctly.

Is there any way to cancel that error? Back to previous firm could solve it, but with this I have achieved incredible impressions in quality (when he has let me finish them) ..
Thanks for your dedication.

a greeting

How does your temperature graph look before the crash? That's the important thing. Thermal Runaway is a security feature and doesn't just trigger randomly. Chances are that there is something wrong with the bed or its connectors. Next time it happens, please check the temperature graph and see if the bed temp is looking weird.

I could show you how to disable thermal runaway for the bed, though I wouldn't recommend that. It's one of the bigger advantages of this firmware compared to the original one.

Since security version is implemented?

I had put if I remember correctly the December and after putting the 1.4.5 I missed that error.

I changed the warm bed but I still cut the impression a few minutes later. The octoprint tells me that the firm has sent an error and for printing. I noticed that the bed stops heating and when it goes down a few degrees, the error jumps. it's as if the firm stopped controlling the hot bed.

I do not know how to solve it.

The bed despite checking that it's okay I changed it to discard, but it's not from the bed.

That feature is on since the beginning. Having issues with it certainly points to a hardware issue (especially if you see the temperatures going down at some point) - are you using a (cheap) external MOSFET maybe?

if I use a mosfet, not the cheap ones.

And I had never given this error until the update to 1.4.5

Well, the PWM frequency was increased from 7Hz to 30Hz. If your MOSFET can't handle that, it doesn't sound like a very good one.

I have temporarily reverted the change for the next update (coming this evening or tomorrow), but I'd like to know which external MOSFET you are using exactly, so I can check the datasheet.

My mosfet is a pchero with a high-speed 32-bit ARM chip with a maximum of 15A.

What would you advise? a redrex?

Well I wasn't talking about the MOSFET package, but specifically the component used. I use an MKS MOSFET myself but I checked the datasheet of the actual transistor to make sure it is properly rated (280A continuous in my case, pretty similar to the one used on the Trigoilla board. If you're curious, this is the one from the motherboard: https://datasheet.lcsc.com/szlcsc/WSK220N04_C148446.pdf). Your MOSFET might be fine, I can't say without seeing some datasheet.

Anyways, for the time being, why not simply revert back to an earlier version you know worked? I will push the update soon but I am not very happy about having to lower the frequency again, 30Hz should be easily manageable by any power MOSFET...

It is not necessary to take steps backwards. I will change the mosfet to be able to have the firm with all its updates.

Thank you very much for your time. You do a great job. my mega I3 had never printed with as much quality as now with this firm.

Hi David,

What about upgrade from old version of same custom version? Is it possible store the bed leveling configuration and other parameters or is still needed proceed with a full setup?


Check instructions: Firmware Details -> Updating / Back up & restore your settings

Thank you David.

grade kompiliert, hoch geladen und getestet. Dann FAQ gelesen. Dann angepasst, hoch geladen, läuft!

Danke für die Arbeit!

Thank you very much for this. MESH Leveling is a blessing for me i3 Mega.

Yup, my bed being shaped like a bowl was the only reason I built this firmware in the first place :-)

Hi there! I am trying to customize the FW by myself. I will use BLtouch and I would use 2008 without inverting the pins. Taking a look through the FAQ I could find the BLtouch customization, but found nothing about the 2208 without inverting the pins. Could you please give any direction in what to do on Configuration.h? Thanks in advance!

Hi. since installing the latest version I have an error the few minutes after starting to print:

Error: Thermal Runaway, system stopped! Heater_ID: bed

I do not know why I only update firm, doing the pid and bed leveling.

I would appreciate a solution to this problem, because it cuts the impression shortly after starting.

Thank you

Did you try the updated values I mentioned in the changelog? (M304 P187.45 I35.75 D245.71, M500 to save)
If it still doesn't work, please revert to an older version. If that fixes it, I will look into it.

for some reason when making the pid and record, did not make the changes, revised and corrected gave me these values: M304 P242.22 I46.93 D312.52

I have done a test and it has not given me the error mentioned.

But with the layer fan at 70% ... it could be set at 100% or it would give some problem.

Thank you very much for your attention
a greeting

Hi there! just a quick question regarding the mesh bed level. After calibrating the 25 points, the printer makes the 2 bips before getting back to Home position (except for Z axis). But when I save the EEPROM (after 20 sec or more), the printer does not beep at all... Is this normal behavior?
Because I realized that first layer at some place does not stick to the bed, and I would like to know if it is because the mesh level is not correct or because it is not saved...
Thanks for your help :)