Loading

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

robscar

Artillery Sidewinder X1 - Firmware / TFT Tuning

by robscar Sep 11, 2019
Download All Files

Thing Apps Enabled

Please Login to Comment

Thank you Robscar for your excellent work

Is ther a version for the E3D Hemera available?

I'm getting a bunch of errors when trying to compile my own hex using your config and config advanced files. Not sure if it user error on my end or not.

Is there any chance to check if the fixed firmware is installed? M115 just shows it's v2.0.3 (no difference to the "use only 1 z-axis" firmware :-)) ...

It's still 2.0.3. I could hear the difference, the second motor was making noise.
If you want to be 100% sure, remove the belt connecting the the Z-rods and move the extruder up and down in the Z direction. If both sides turn equally, you have the fixed version.

Wow, very sensible hearing :-). I printed 20+ hours with the bugged firmware and heard exactly nothing. Only thing i noticed AFTER i read about the bug: One motor was slightly cooler than the other while printing.

Any idea how much movement would be possible until the x-profile jams between the z-rods after removing the belt (don't want to bend my z-rods)?

I updated today to Marlin 2.0 (didnt see the fix u did on 2.03). Flashed hex file from cura with TFT disconnected, and TFT files from SD card as in your description.

All went fine, but print quality is -really- bad. Also i cannot set bed temp to lower than 80 degrees. If u set 60 in cura, the TFT still shows 80.
What can i do to fix this?

Did recalibrate esteps and flow and still the same. Questions is. There is 2 config files were the hex file are. Am im suppose to use these somewere?
Thank in advance for any help.
The printer is pretty much useless at the moment, so hopeing for some quick pointer

  • Posted with 3D Geeks Thingiverse Browser App

Download the 2.03 zip from here: https://onedrive.live.com/?authkey=%21AFs5oBIsWrCex%2Dg&id=697B82CAC7D028B%21301738&cid=0697B82CAC7D028B

First of all, reset the EEPROM by sending the gcode M502, followed by M500 using something like Repetier-Host.
Format an SD card and put the contents of the TFT folder on there. Put that it in the SWX1 and reboot it.
Use something like Prusa Slicer to flash the hex file to the SWX1. Either unplug the TFT or try to quickly flash the firmware while the SWX1 is booting (that's what I did).

I followed those steps and didn't have any issues.

I didnt notice the z issue but i have another issue. The printer wait wait too much time before begin printing.I ve been waiting 15 minutes before printing.This big time is becouse i print a large file?

on top of what BlackdragonBE said, update to 2.03, check the update section, there have been improvements on temperature waiting times.

The long wait is because your temperatures aren't stable yet. Do a PID Autotune before starting your first print, if it still takes long, do it again. For me, it takes about 2 minutes to start printing from a cold hotend and bed.

Ok, for those having the issue with only one axis moving (the right one, left does not function) here is the solution.
Firstly, the problem will only happen to those of us uploading through Arduino instead of using the Hex file through (yuck) Slic3r. My guess at this is that a change was made after making the .hex file but was not saved to the Source files.
Second delete the following from Configuration_adv.h:
//
// For Z set the number of stepper drivers
//

define NUM_Z_STEPPER_DRIVERS 1 // (1-4) Z options change based on how many

if NUM_Z_STEPPER_DRIVERS > 1 //#define Z_MULTI_ENDSTOPS

if ENABLED(Z_MULTI_ENDSTOPS)

define Z2_USE_ENDSTOP XMAX

define Z2_ENDSTOP_ADJUSTMENT 0

if NUM_Z_STEPPER_DRIVERS >= 3

define Z3_USE_ENDSTOP YMAX

define Z3_ENDSTOP_ADJUSTMENT 0

endif

if NUM_Z_STEPPER_DRIVERS >= 4

define Z4_USE_ENDSTOP ZMAX

define Z4_ENDSTOP_ADJUSTMENT 0

endif

endif

endif

Replace the above with:

define Z_DUAL_STEPPER_DRIVERS

if ENABLED(Z_DUAL_STEPPER_DRIVERS)

//#define Z_DUAL_ENDSTOPS

if ENABLED(Z_DUAL_ENDSTOPS)

define Z2_USE_ENDSTOP XMAX

define Z_DUAL_ENDSTOPS_ADJUSTMENT 0

endif

endif

Once done, both axis should move together correctly.

Hopefully this will be corrected if there are any future releases.
Cheers,

Eagle

Uhm...
There's more flaws. In the current Marlin 2.0.3 (https://marlinfw.org/meta/download/) the correct parameter is now called "NUM_Z_STEPPER_DRIVERS"!
Just a short excerpt from Marlin 2.0.x\Marlin\src\inc\SanityCheck.h line 439/440:

.#elif defined(Z_DUAL_STEPPER_DRIVERS)
.#error "Z_DUAL_STEPPER_DRIVERS is now NUM_Z_STEPPER_DRIVERS with a value of 2. Please update Configuration_adv.h."

Since this error does not occur during compilation and the SanityCheck of Rob's source (2.0) also has an outdated version, one must assume that further (important) FW-files are still outdated and do not work correctly :(
This is probably also the reason why a parameter
define NUM_Z_STEPPER_DRIVERS 2
is not included in this compilation.

This is from X1 Configutation.h for 2.0.3 Marlin FW:

//
// For Z set the number of stepper drivers
//
#define NUM_Z_STEPPER_DRIVERS 2   // (1-4) Z options change based on how many

#if NUM_Z_STEPPER_DRIVERS > 1
  //#define Z_MULTI_ENDSTOPS
  #if ENABLED(Z_MULTI_ENDSTOPS)
    #define Z2_USE_ENDSTOP          _XMAX_
    #define Z2_ENDSTOP_ADJUSTMENT   0
    #if NUM_Z_STEPPER_DRIVERS >= 3
      #define Z3_USE_ENDSTOP        _YMAX_
      #define Z3_ENDSTOP_ADJUSTMENT 0
    #endif
    #if NUM_Z_STEPPER_DRIVERS >= 4
      #define Z4_USE_ENDSTOP        _ZMAX_
      #define Z4_ENDSTOP_ADJUSTMENT 0
    #endif
  #endif
#endif

this from rob

//
// For Z set the number of stepper drivers
//
#define NUM_Z_STEPPER_DRIVERS 1   // (1-4) Z options change based on how many

#if NUM_Z_STEPPER_DRIVERS > 1
  //#define Z_MULTI_ENDSTOPS
  #if ENABLED(Z_MULTI_ENDSTOPS)
    #define Z2_USE_ENDSTOP          _XMAX_
    #define Z2_ENDSTOP_ADJUSTMENT   0
    #if NUM_Z_STEPPER_DRIVERS >= 3
      #define Z3_USE_ENDSTOP        _YMAX_
      #define Z3_ENDSTOP_ADJUSTMENT 0
    #endif
    #if NUM_Z_STEPPER_DRIVERS >= 4
      #define Z4_USE_ENDSTOP        _ZMAX_
      #define Z4_ENDSTOP_ADJUSTMENT 0
    #endif
  #endif
#endif
#define NUM_Z_STEPPER_DRIVERS 1 should be 2

Using it on all machines here (4) flashed from hex and it is not presenting this issue.

Yes, that is why I said it happens from the source, NOT from the hex

I didn't use the source, I used the .hex, and flashed from octopi. The bug does exist in the .hex

That is correct and also exactly what I said at the start of my post hehe

If I understand you correctly, you say the bug is in the source code only, and is not in the .hex file. But I'm saying the bug is in both the source and the compiled .hex, and that the bug only shows up on some machines. :)

Hey Guys, thanks for pointing this out and also suggesting the fix. Thats really a nasty bug and I did not notice during testing because of the connected z-rods.

I updated to 2.03 using marlin-conf and seemingly Z_DUAL_STEPPER_DRIVERS was replaced by NUM_Z_STEPPER_DRIVERS so marlin conf did not catch this. However, I sold my X1 last week so I cannot test to confirm but the sources indicated that the hex file must have this issue also. I'll provide an update asap, would be great if you can test as I do not have this printer anymore :-(

Thanks so much for all your hard work supplying the X1 community with improved firmware over the past few months. I'd be happy to help test a fixed 2.0.3, whenever it's ready, no rush.

I can confirm both z steppers (and x, y) are working correctly. I haven't done a thorough print test yet, but the z steppers issue is definitely fixed, well done Rob.

Wow tekhn, you are lightning fast! Thanks for your support. Please let me know once you completed a thorough print and I'll upload it for everybody.
Cheers,
Rob

I can confirm the fixed firmware is working as intended as well. It's a shame you sold your X1, I love this firmware and was looking forward to even more improvements in the future. Thanks for all your hard work!

Everything seems ok to me. PID autotune, linear advance, and thermal runaway protection all work. Basic test prints look fine.

Ah ok. The only people I know that had this issue ALSO did it by source, sorry I misunderstood you Tekhn.
Robscar, the suggestion of changing that 'NUM_Z_STEPPER_DRIVERS' to 'Z_DUAL_STEPPER_DRIVERS' I already tested on my machine and it solved my issue. Dont know about others but it SHOULD solve it for everyone really.

Also Robscar, is there any way to have the display do something like 'Auto Pid Tune Complete' or something. Also curious if it saves it to the Eeprom once its complete or should we be doing this once it starts its cooldown (cause right now, the noz cooling down is the only indicator that the PID has been complete)

It does save to eeprom after pid tune. I can see in the octopi terminal the save message.

Awesome. I dont use OPie so I wasnt sure, thanks for confirming.
Maybe a bed autotune could be added as well. I tend to do these myself, but its handy having it on the touch screen.

The auto pid tune on the touch screen tunes the hotend, and then it tunes the bed, then it saves to eeprom. :)

Again, this I did not know because the image only shows hotend so I just assumed.. You know that saying about people that Ass-u-me smacks forehead

Hi Rob

Will manual bed levelling act in the same way as mesh bed levelling with the Z- and Z+?

Hey Ben, no, not related to mesh bed leveling. It just allows you to move your bed up/down in very small steps without readjusting all four nobs. It is very helpful to get a perfect first layer. Also be aware the range of movement is limited by the Z-Axis Endstop, there is only minimal space before it will physically hit and possibly destroy the endstop. This is possible because of the optical sensor that leaves a little space before it triggers. Hope this makes sense.

Firmware 2.0.3 has a problem for me: Left side Z stepper motor does not work. I use the TFT to tram the gantry up and down and only the right Z stepper moves. I'm not using the Z sync belt so it's very obvious for me. The gantry becomes instantly crooked and the left stepper only passively moves due to sheer pressure of the crooked gantry.

Other people might not notice because their Z-belt will passively move the left Z stepper to keep it roughly in sync.

Anyone else can confirm this issue?

I rolled back to your previous firmware 2.0.x and both Z steppers work correctly again. I flashed back to 2.0.3 to see if it was just a freak thing, but confirmed the bug again. I confirmed the flash succeeded, and I also compared SHA1 checksums of the .hex file to that in the .zip to verify not a local file corruption issue.

I had this issue. Here is the fix:
Delete the following from Configuration_adv.h:

//
// For Z set the number of stepper drivers
//

define NUM_Z_STEPPER_DRIVERS 1 // (1-4) Z options change based on how many

if NUM_Z_STEPPER_DRIVERS > 1 //#define Z_MULTI_ENDSTOPS

if ENABLED(Z_MULTI_ENDSTOPS)

define Z2_USE_ENDSTOP XMAX

define Z2_ENDSTOP_ADJUSTMENT 0

if NUM_Z_STEPPER_DRIVERS >= 3

define Z3_USE_ENDSTOP YMAX

define Z3_ENDSTOP_ADJUSTMENT 0

endif

if NUM_Z_STEPPER_DRIVERS >= 4

define Z4_USE_ENDSTOP ZMAX

define Z4_ENDSTOP_ADJUSTMENT 0

endif

endif

endif

Replace the above with:

define Z_DUAL_STEPPER_DRIVERS

if ENABLED(Z_DUAL_STEPPER_DRIVERS)

//#define Z_DUAL_ENDSTOPS

if ENABLED(Z_DUAL_ENDSTOPS)

define Z2_USE_ENDSTOP XMAX

define Z_DUAL_ENDSTOPS_ADJUSTMENT 0

endif

endif

Once done, both axis should move together correctly

Yes I have the same issue on a sidewinder v4. I think the issue is that in line 511 in Configuration_adv.h it says #define NUM_Z_STEPPER_DRIVERS 1 instead of #define NUM_Z_STEPPER_DRIVERS 2

I tried changing that and it didnt fix it for me, thats why I changed it out

Mahlzeit!
Ich mache das hier der Einfachheit halber auf deutsch.

Bin ich der einzige, bei dem das PID-Tuning nur halb funktioniert? Oder ist es einfach noch keinem aufgefallen?
Wenn ich das PID tuning übers TFT starte, wunderte es mich schon von Beginn an, dass die LED-Farben gar nicht zu dem Beschriebenen passten.
Jetzt habe ich das mal näher unter die Lupe genommen und mir fiel auf, dass auch der Bauteil-Lüfter während des Tunings gar nicht läuft.

Bei mir ist das Verhalten folgendermaßen:
(Kein USB angestöpselt, Drucker komplett standalone, kein USB stick eingesteckt, keine SD Karte drin)
TFT
-> Start PID Tuning
-> Lüfter zuckt ganz kurz, bleibt dann aber wieder aus
-> LED ist bläulich/Violett...faded zu rot
-> Nozzle Heizt hoch
-> Nozzle-PID wird durchgeführt und anschließend werden die Werte auch übernommen

-> Lüfter zuckt wieder ganz kurz und geht direkt wieder aus
-> Bett heizt hoch
-> LED beginnt dabei blau, faded über violett hin zu rot
-> Bett-PID wird durchgeführt und Werte werden übernommen

Die werte habe ich vorher und nachher per Konsole ausgelesen und kontrolliert.

Die LED-Werte werden also irgendwo überschrieben.
Wieso der Lüfter nicht dreht, weiß ich nicht. Da er zuckt, wird er wohl im nächsten Moment wieder mit irgendwas überschrieben.

Ich habe die aktuelle Marlin 2.03 von dir auf dem Board und eine leicht abgeänderte TFT-FW von dir auf dem TFT (keine wilden Änderungen, eigentlich nur die Icons und die Reihenfolge beim Leveln...ich hänge 'meine' config nochmal hier an.

Ebenso nochmal den Code-Schnipsel deiner TFT-FW

In der Marlin-Config finde ich nichts bezüglich M42 P irgendwas....also scheint die Firmware selbst die LEDs nicht zu beeinflussen (würde mich auch wundern) - scheinbar überschreibt die TFT-Firmware selbst also die LED-Farben beim Heizen von Nozzle und Bed ...ebenso scheinbar die Lüfteransteuerung.

Bin ich da ernsthaft der einzige?

Hi FoFi, ja das hast Du Recht. Die LEDs werden von der Firmware angesteuert. Könnte man in Marlin abschalten

define PRINTER_EVENT_LEDS steuert das.

Gruß,
Rob

/**

  • Printer Event LEDs
  • During printing, the LEDs will reflect the printer status:
    • Gradually change from blue to violet as the heated bed gets to target temp
    • Gradually change from violet to red as the hotend gets to temperature
    • Change to white to illuminate work surface
    • Change to green once print has finished
    • Turn off after the print has finished and the user has pushed a button
      */

Oh...OK....danke

Dann bleibt dennoch das Phänomen, dass der Lüfter während des PID-Tunings nicht eingeschaltet bleibt, wenn man es über das TFT startet

kannst mal versuchen die komplette Zeile durch die zu ersetzen.

moreitem_button1_cmd:M106 S255;M303 S220 C8 U1;M303 E-1 S60 C8 U1;M500;
setzt den Lüfter auf 100%, macht dan Nozzle+Bed Tuning, dann speichern.

die mks_config.txt dann auf SD Karte kopieren und installieren. Die anderen Files brauchst du nicht, für die mks_config.txt zu verändern langt es nur diese drauf zu haben. Geht auch viel schneller. Zum Testen könntest du auch das Bett PID weglassen also den letzten M303 Befehl weglassen.

Ich hätte vielleicht noch erwähnen sollen, dass ich über ein Terminal mal nacheinander die Codes in genau der Reihenfolge an den Drucker geschickt habe, wie sie in deiner config abgearbeitet werden - dabei bleibt der Lüfter dann an (auch mit S117 - also 50%).
Mir scheint es wirklich so, als überschreibe das TFT beim absenden des M303-Befehls die Lüfterdrehzahl.

Ich kann das gerade nicht testen, weil der Drucker gerade läuft.

Tritt das Verhalten bei dir nicht auf?...das wäre ja kurios

So, ich kam nun endlich dazu zu probieren und spielen.
Ich habe oben schon gelesen, dass du gar keinen SWX1 mehr hast. Das ist schade, deine Arbeit gefiel mir sehr gut.
Nun denn also für die Nachwelt:

#Autotuning for nozzle+Bed + Auto-Save
>moreitem_button1_cmd:M106 S255;G4 S1;M303 E0 S200 C8 U1;G4 S1;M303 E-1 S60 C8 U1;G4 S1;M500;G4 S1;M107;G4 S1;

Damit geht alles.
Man muss tatsächlich einen G4 S1 nach dem Einschalten des Lüfters senden lassen, weil er sonst nicht anläuft.
Scheinbar ist das TFT ein wenig zu schnell beim abschicken...darum hab ich einfach nach jedem Befehl zur Sicherheit eine Sekunde warten lassen.

Das Ende des PID-Tunings von Nozzle und Bed merkt man daran, dass der Lüfter wieder aus ist und die LEDs erlöschen.

Den Rest habe ich nun auch nochmal komplett durch probiert - auch mit den LED-Farben der einzelnen Funktionen - mir fallen darin keine Fehler mehr auf.

Ich werde später ein Update bei meinem Remix deiner TFT-Version hochladen, vielleicht bringt's ja irgendwem mal was.

Danke für deine Arbeit und viel Spaß mit deinem neuen Drucker :)

Danke für das Feedback, freut mich. Als letzten Akt :-) werde ich noch die 2.03 ohne ZStepper Problem hochladen und ggf. noch Deinen Mod übernehmen. PinguinKeeper hat angeboten die X1 Firmware auf GitHub weiterzupflegen. Finde ich auch ne gute Idee.

Wenn Du magst, kannst du ja mit der gefixten 2.03 einen Druck laufen lassen und Rückmeldung geben ob es zuverlässig läuft. Tekhn hat schon bestätigt das beide Motoren wieder laufen. Habe nur den NUM_Z_STEPPER_DRIVERS auf 2 gestellt und auf aktuelle default PIDs geändert. Config Files sind enthalten.

https://1drv.ms/u/s!AosCfawsuJcGkrUqWzmgEixasJ7H6A?e=uJmKkW

Urgs...das ist ja ärgerlich.
Ich wollte dir die Arbeit abnehmen und hab mich selbst dran gemacht...
Gerade fertig geworden las ich dann deinen Post - tja...
https://www.thingiverse.com/thing:4168229

Kannst du noch erklären, wieso du
#define FIX_MOUNTED_PROBE
und
#define U8GLIB_SSD1306
aktiviert hast?

Ein schneller notepad++ Compare bringt zu Tage, dass unsre Versionen in allen relevanten Dingen identisch sind.
Da mein Test-Druck eben fertig wurde, "mein" remix also funktioniert, wird deine Version auch laufen.

Danke dafür

Artillery Sidewinder X1 - Firmware Marlin 2.0.3

HI Rob, I would like to see this thing on github.

can i use the usb to do this or does it have to be sd card dont currently have an sd card reader for the pc

Hello Rob!
Do you have possibility to add a mesh bed leveling to a firmware?

somebody already did, check those out:
without a probe: https://www.youtube.com/watch?v=Cqsp7piamck, for using a probe you can google waggster mod

Hello
I ve make the update but when i reboot the printer images wont show on TFT.Can you please tell me what is wrong?

hi, what do you mean with not showing up? old icons or blank screen? FYI, you have to run the tft upgrade on top of the marlin firmware upgrade, did both updates complete successful? If the tft is just black, you might have forgotten to attach the tft connector after upgrade?

i ve done both upgrades and attached the tft connector.The menu appears but the icons dont show.Every menu option works but the icons are not shown.I dont know what to do.

can you attach a picture, not sure what mean with menu

  • Posted with 3D Geeks Thingiverse Browser App

The system boot ok but icons are not loaded.I uploaded your hex file using PrusaSlicer Firmware update and after that i put back TFT cable and put the files on stick and started machine.After this i restarted and see the results in photos.

ok, never seen this before. I could think of the following:

  • try another micro SD Card, there are known issues especially bigger ones. Try a 32 GB or smaller, format to FAT32
  • if this does not work, maybe the 2.03 download is broken, try the one packed and attached to thingiverse bundled with the 2.0 Marlin version, the TFT part is the same as as in 2.03

please report back your findings, also in case it works :-)

Did it as you said nand still same issue.
On start SPI FLASH PIC ERASING.....PIC ERASE DONE ...and freeze like that.I think that is all.Must let more time?

at least this explains why the pictures are not showing, all the updates follow after his stage. And yes, this takes a while, give it a bit more time, at least its worth a try.
Cheers, Rob

I let the stick in this stage more than an hour and nothing happened after the message PIC ERASE DONE.

stick? not using microSD for this? If you are using a SD card <=32GB with no success try flashing back the original firmware from http://artillery3d.com/en/Content/490193.html

Sry...is a microsd 256mb. I cant explain why doesnt upload images

ok, try a different microSD(16 or 32 GB) using the original image from artillery.

The size of the microsd doesnt count.I tried with the artillery original tft files and was ok.The process dont freeze i dont even have time to read and says COMPLETE.After that the images still dont show becouse i have your firmware installed.I ve put the original firmware and everything is ok.I put again your firmware and try to put tft but the tft update process is freezing again after picture are erased.

Never heard this before, very strange. The marlin firmware on the printer and the tft should not interfere in terms of picture upload. At least you did not brick your printer and can go back. However, you could update your tft while running the original marlin firmware and afterwards upgrade to marlin 2.03. There is no way that should delete you icons form the tft.

PROBLEM SOLVED......all the issues was from the fking microsd card.I buyed a new 32gb microsd card and everything run smooth.For now i installed the ezy3d mod but after i evaluate this i will install your version.Thank you !

yeahhh! finally :-) glad to hear it worked out :-)

I tried to install another firmware from ezy3d lab and still images are not copied.Is there any way to put manually the images ?

Comments deleted.

Thanks for the new firmware! It works flawlessly for me.

thanks for the feedback, sounds great :-)

Hey thanks for all your work.

I have updated to 2.03 today but haven't had any other firmware before on the X1. The functionality is good but I have problems to enter the M92 code. Nothing happens if I try to send the M92 with new values. Tried to do it with S3D and Machine Control. M502 and M503 works and also M500 works.

Thanks

Peter

Hey Peter, what do you mean with nothing happens? No changes show up in M503 or it does not use the values? Have you done this before 2.03 and it worked as you expected it?

Comments deleted.

Also I seen someone ask if this works with BL touch and the answer was no. Just wanted to confirm this does NOT work with BL TOUCH correct?

I'm confused what to flash now. There is Marlin_010109_rcaTechtuned_firmware_v1.1.9 and firmware_marlin_2.0+tft_for_x1

Tho the firmware_marlin_2.0+tft_for_x1 has the ftf and board firmware. But the other only has the board. No idea what the best one is? Any ideas?

take the newly added 2.03 version. This has printer+tft firmware in the zip.

Hi Rob! I want to change the artillery logo when the printer stars, do you know which file(s) need to changed?

for customizing the images I used ImageConverter. You can download it here: https://github.com/makerbase-mks/Software/tree/master/MKS%20TFT%20image%20convert
Additionally, TechingTech covers image converting in his vid: https://www.youtube.com/watch?v=ncc7TRkCH-M @ about 6:15

Comments deleted.

Hallo
Ich habe eine Frage
Ist maximale Temperatur von Bed 100 Grad Celsius?
Warum geht nicht höher?
Danke

Hi Boris, gute Frage, ist mir vorher gar nicht aufgefallen. Weißt Du ob das mit der original Firmware/TFT Software ging? Einstellen kann man es ja aber auf dem StartScreen wird auch 100 als Target angezeigt, vielleicht limitiert das Display das? Geht das über Gcode mit zb : M140 S110 ? (habe den Drucker gerade nicht zur Hand)

Gruß, Rob

Ich habe in Marlin gefunden und dort geändert. Danke. Alles läuft gut.

added Marlinv2.03 and fixed it

Comments deleted.

Hello robscar, I'm using your Firmware "Marlin_010109_rcaTechtuned_firmware". After I used your P.I.D. autotuning feature the temperature stability up to ~220 degree is good and printer starts immediately, BUT when I try to print ASA with e.g. 250 degree the nozzle temperature oszillates quite much and printer doesn't start printing even after 30 minutes. Do you have an idea what the reason can be.?

yes, the temp of X1 is not the most stable one. You might improve it by PID Tuning for your target temperature of 250. The display code tunes against 220 degrees. You can manually exec M303 S250 C8 U1 using a terminal program and load different PID Values based on the temp your are printing. Use M301 for setting the PIDs in your slicer profile. If this does not help you might add a buffer capacitor to your boad. I did that which helped a lot.
Cheers, Rob

Ref:
https://marlinfw.org/docs/gcode/M301.html
https://marlinfw.org/docs/gcode/M303.html

indeed, the temp of X1 is not the most stable one. You might improve it by PID Tuning for your target temperature of 250. The display code tunes against 220 degrees. You can manually exec M303 S250 C8 U1 using a terminal program and load different PID Values based on the temp your are printing. Use M301 for setting the PIDs in your slicer profile. If this does not help you might add a buffer capacitor to your boad. I did that which improved stabiltiy a lot. Check out TechingTech Video for more details: https://www.youtube.com/watch?v=qCtL0Yd_w0I

Cheers, Rob

Ref:
https://marlinfw.org/docs/gcode/M301.html
https://marlinfw.org/docs/gcode/M303.html

yes, the temp of X1 is not the most stable one. You might improve it by PID Tuning for your target temperature of 250. The display code tunes against 220 degrees. You can manually exec M303 S250 C8 U1 using a terminal program and load different PID Values based on the temp your are printing. Use M301 for setting the PIDs in your slicer profile. If this does not help you might add a buffer capacitor to your boad. I did that which helped a lot.
Cheers, Rob

Ref:
https://marlinfw.org/docs/gcode/M301.html
https://marlinfw.org/docs/gcode/M303.html

TFT Tuning went well for me. Many Thanks.

great to hear, thanks for the feedback :-)

Any chance on the Marlin 2.02 update going in on this?

I just compiled Marlin 2.0.3 for u to test. However, I had no time to test myself. Please check it out and let us know how it works:
https://1drv.ms/u/s!AosCfawsuJcGkrUqNAsL-yyrAyZ88w?e=E6e42L

Is it me or is the link not working anymore ?

Can you please share your PrusaSlicer profile? Thank you!

Hello Rob
Many greetings from Germany and thank you for your great work.
I have flashed the fw and the tft as you described it and everything works well.
Unfortunately I did not understand the mesh bed levelling procedure.
Can you give me a quick step-by-step guide on how to level a mesh of, say, 9 points?
I move the extruder at any point, adjust it, do I have to save it to Eeprom after each point or at the end of the grid?
Sorry for my bad English, I am German.

Form where did you download the TFT firmware?

From https://www.thingiverse.com/thing:3856144/makes
You have to download with the "DOWNLOAD ALL FILES" button.
The zip-file contains all files.

Artillery Sidewinder X1 - Firmware / TFT Tuning
by robscar

Hi, freut mich, das alles soweit geklappt hat. Mesh Bed Leveling in dem Sinn gibt es bei der Firmware nicht. Was es gibt ist folgendes:

  • Manuelles Leveling: hier kannst du per Hand den Druckkopf und das Bett in alle Richtungen fahren und über den vier Schrauben/Federn den Abstand zum Bett einstellen. Lediglich der Z - Motor hält die Position. Du kannst aber genau so gut auch über das Display die Punkte anfahren lassen. Ich bevorzuge Anfangs die manuelle Methode, hier kannst du den Druckkopf nicht ins Bett "rammen"
  • Z Live Adjust: Sobald den Bett im Level ist und einmal ausjustiert ist kannst du über Z+/ Z- am Display die Höhe(auch während des Drucks) ändern ohne das Du alle vier Schrauben neu einstellen musst. Das ist hilfreich denn teilweise hat das Bett bei unterschiedlichen Drucktemps einen andere Ausdehnung und jedes mal die Schrauben neu justieren nervt. Voraussetzung ist aber immer, das Du das Bett vorher gelevelt hast.

Sollte Dein Bett stark verzogen sein, zb in der Mitte kann aber ein Leveling über viele Punkte sinnvoll sein. Hier hat zB jemand manuelles Meshbed Leveling ohne Probe für den X1 implementiert: https://www.youtube.com/watch?v=Cqsp7piamck

Hoffe das hilft Dir weiter, Gruß, Robert

Super, vielen Dank. Das hilft mir sehr.

I cant reach my pc with my printer theyre like 10ft apart! Also will this work with the skr 1.3?

where are the TFT files?

what files are the last ones and the best ones?

Hi Rob
I have tried for hours now and cant seem to get it to work.... Board firmware flash okay and also the TFT but on the screen on the menu "more" there is some missing icons and thoose icons there are only turn LED light on off and color..... ( photo of display )

I used the files in firmware_marlin_2.0+tft_for_x1

wow, never seen this before. If you touch it, will the command execute?
However, to break it down, you might use ImageConverter to load the bin files and check if they are display correctly. Alternatively, use a different MicroSD Card for flashing. I know e.g. there issues >32 GB.

I used ImageConverter. You can download it here: https://github.com/makerbase-mks/Software/tree/master/MKS%20TFT%20image%20convert

Cheers, Rob

Where is the folder for the TFT firmware?

I can touch it... evertihing works but just not in the menu "more"
I have tried 3 SD cards 4 GB 8 GB 16 GB....

But what is wierd is I did try some other firmwares everthing flash correct but all dont work in menu "more"
I can touch the screen and see I push the button but no command is sent
With image converter if look okay

Error found!!! The odds are slim but all the SD card was same brand (cheap) I did find one card more and gave that a try and is worked
All card was formatet the same way so that was not the case.

How i can see the .bin files of the photos? Any file explorer or something?

I don't have a micro sd card, could I use a usb stick to flash tft firmware?

Hey Rob! Thanks for your time building this, everything works like a charm!

But having some problems with Linear Advance... I have it enabled, and set the K factor through GCODE, and through M900 command, and still no joy. The extruder just pushing the filament non stop, like the L.A is disabled. I'm running Hemera extruder. Can you give me any hints on what might the problems?

Thanks!

you are welcome. Concerning Linear Advance: good advice can be found here: http://marlinfw.org/docs/features/lin_advance.html. There you can definitely tell if it is active or not and see how the various setting affect your Extruder.

IMPORTANT: make sure you are printing the calibration from SD not USB. USB seems to have issues with certain files, especially if they have plenty comments....

Hi robscar! First of all thank you for your work!
Second, i have an issue with the printer (v4), the printer doesnt boot after the firmware and tft upgrade after the factory one.
I'v just did how u explain in the tutorial (i disconnected tft from the board).
The LCD is not working(is black :D) and the only think is i hear the vents inside.
I bought the printer in november 2019 from gearbest.
Please help me! Thank you in advanced!

Please check that the tft connector cable is plugged in correctly again. This is the most common reason for this behaviour after an upgrade...

That was the problem, but now I see that the tft menu it's the same. I flash with prusa slicer marlin 2.0 and at the end says "flash succeeded". What seems to be the problem?

great, you also need to flash the TFT firmware, the tft firmware needs to be flashed using the micro/mini usb card, check description for more details...

I did that after I flashed with prusa slicer. I've copied all the files from tft folder to a micro SD card that has 64Gb.

ah good point. 64gb did not seem to work. use 32 or smaller

  • Posted with 3D Geeks Thingiverse Browser App

Hey would this work for x1 v3? Mine doesn't have the reset button.

frankly, I cannot tell for sure, I have never tried. However, I'm pretty sure it will work. If you test it, please provide feedback.

I am having issues with the PID auto tuning. After running the heat up times are longer and take a while to stabilise. Also the hotend is hotter than is being reported on the screen and not holding consistently. Is there a way to restore the factory PID gain values?

the temp stabi time frame was changed in marlin2.0. Mine does take longer but not too long, so I left it as-is. However, I uploaded a temp fix version to test for you, I have not tested this yet! You can test it if you like and report back the results. Due to the very annoying ongoing thingiverse outages i was not able to upload it. :-( You can find it here: https://drive.google.com/drive/folders/1dUK7Qqi_oyQgyySiS0HRQv-2yPmDq1By?usp=sharing

Concerning PIDs, you can set them manually if you like using gcode: M301 P14.58 I1.14 D46.57. These are the stock values for the Marlin 1.19 Version from artillery.

I used a version of the files you originally posted modified for the Genius from here: https://www.thingiverse.com/thing:4098371

Can I use the firmware you have posted above with the Genius or are changes needed first? (The hardware must be the same as the sidewinder other than the bed size and z height).

Also, I am intermittently getting the following message when attempting PID tuning or when the hot end is heating up for a print: "Error: Heating failed, system stopped! Heater_ID: 0" Could this be hardware related?

UPDATE: I was able to complete a PID auto tune but on the first print it failed due to thermal runaway shutdown. Not sure what is going on but it was definitely overheating.

Artillery Genius Firmware with Marlin 2.0.1

I ended up disassembling the hot end again and reassembled but was still having the issues with overheating and the x axis not homing. I pulled off the end caps on the x axis extrusion and unplugged everything (all ribbon cables including the connection into the base of the machine etc) then put it all back together again. It is all now working. I believe one of the cables must not have been making good contact and throwing off everything else connected on the x axis carriage including the hotend and hall sensor.

best would be to check with the author of the genius remix. Concerning Endstops, there is a pretty handy gcode to check the status: M119 will Endstop Status. So you can manually move your axis and make sure that your endstops trigger as you want them.

Hi Rosbcar,
thanks so much for this - really helpful for a newbie.

Could you post an alternate firmware with baby steps disabled and mesh levelling enabled, or at least the steps involved to just swap out the manual z buttons or something?
Someone has done so (https://www.youtube.com/watch?v=Cqsp7piamck), but trying to be careful and not mess up your firmware as I like your layout :)

i fear I will have no time for this in the near future. I recommend going with the firmware from the youtube video if want that feature. BTW, i think its really cool, have not seen this before :-)

No worries, will have to play around some - anything I need to avoid so I don't accidentally brick the thing?

Does this FW allows for BLTouch to work? Thanks!

nope, for this you need a probe. Just google for waggster mod, he implemented this.
This firmware allows to set the Z_Offset through software. This means, after you have manually leveled your bed (assuming it is not wrapped too much) you can adjust the z-height during print to get a perfect first layer without having to readjust all 4 knobs.

Thanks!!! :)

@robscar,

Is there any way to edit the TFT firmware ?
I would like to adapt it further for the Artillery Genius

Thanks

unfortunately you can only modify the mks_config.txt and the images the rest is closed source :-(
for customizing the images I used ImageConverter. You can download it here: https://github.com/makerbase-mks/Software/tree/master/MKS%20TFT%20image%20convert
Additionally, TechingTech covers image converting in his vid: https://www.youtube.com/watch?v=ncc7TRkCH-M @ about 6:15

Thanks for the info! :)

I note the comment about usb not working after the update which has happened to me. Can you please explain the steps to enable it again after the upgrade? Thanks.

In case your USB Stick does not work anymore after the upgrade, check the following option on your TFT: SET/File/USB. That was always there but defaulted back to SD after TFT Upgrade

Never mind. Thanks I figured it out (didn't realise it was a setting available from the menu system on the machine).

Updated both TFT and control board firmware successfully. 2 issues:

  1. PID tuning does not help to eliminate overshooting and oscillations, especially for the hot end. When heated to 215C, it overheats to 230C!
  2. After PID tuning prints do not start at all :( It heats up the bed to the target temperature (65C in my case), then the temperature hovers around that value (about 0.3-0.5C deviation) for about 5 minutes. Then it finally decides to heat up the hotend, reaches the set temp (215C), overshoots, then undershoots (see #1), stabilizes (deviation about 0.3-0.6C) and doesn't register, that the hotend is at temperature. It prints with the default config (after M502/M500), but the temperature is unstable

First: Thank you very much for our work and providing this!

My only problem is, that I have difficulties understanding which file/archive contains what or which came first or is based on what?

I understand, there is Marlin v1.1.9 and v2.0.x and also a firmware for the TFT. Im currently using the 1.1.9 firmware sources from Artillery with some custom changes and just wanted to compare the changes for this version with my own.

  • firmware_marlin_2.0+tft_for_x1.zip
    contains latest firmware + latest TFT updates, and marlin config files sources (configuration.h + configuration_adv.h)
  • Marlin_010109_rcaTechtuned_firmware_v1.1.9
    contains 1.19 firmware + older TFT updates
  • Marlin_v2.0_for_X1_Source
    full Marlin2.0 source, all files

Flashed to marlin 2.0, calibrated extruder stepper motor and added in default tft preheat buttons a few months ago, all works perfect but I find an issue after update, when printer get home command it's moving up then home x and y, and before home z it's move up again. How can I disabble that additional z move before home x, y? It doesn't bother me before, but when I resumed my print after power loss it home axis and resume printing in midair.

just wanted to double check before flashing the new firmware. I have a slightly warped bed and with your software i should be able to level the bed along multiple points and z offset will be saved automatically to adjust for the warp?

no, for this you need a probe. Google for waggster mod.
This firmware allows to set the Z_Offset through software. This means, after you have leveled your bed (assuming it is not wrapped) you can adjust the z-height to have a perfect first layer without having to readjust all 4 knobs.

Had my first filament runout last night and the sensor didn't trigger the pause/change code. I ran M412 to see what the status was and it doesn't even know M412. Is FILAMENT_RUNOUT_SENSOR configured?

the X1 is not using the marlin firmware filament runout code. The sensor is connected to the display unit which should take care. Same as before, there should be no difference when using this firmware. Give it a dry run on a dummy print, do not use octoprint or printing from PC as this might interfere with the display which is internally also connected using usb.

Ah.. so that's how it relays. I should have known better. I use Octoprint which as we know pretty much overrides our display (begs another question is it possible to repurpose the display while under Octo control since M117 doesn't do anything..). Do we have any solutions for an Octoprint + SX1 filament sensor? I'm guessing the only real answer is to trace it down and pull it off onto your Raspi or ditch it all together for a different external one?

yes, this display implementation has many negative drawbacks. the easiest would be to replace with a good old LCD Display. Then you could interact with the display, connect the filament sensor to the board and also use features like M600 for filament change. If somebody comes up with a nice LCD integration adapter I might give it a try :-)

I have a huge issue and fear i have bricked my printer , heres what happened:
I own the v4 version with the reset button.
after unplugging the power cable i flashed the firmware through prusa slicer with the premade hex, plugged the printer in, than i flashed the tft files through an sd card. now everything should be good to go, and looked like that, but nothing works, none of the buttons work, my laptop doesnt even recognize the printer, so i cant even reflash the firmware, even though the "mainboard" lights up.The only thing i have been able to do is flash the tft back to its original state, with the files found on their website, but this didnt help the problem of none of the buttons working and my laptop not even recognizing the printer ( pronterface and prusa slic3r dont recognize them)

Help would be much appreciated

+1 make sure you have plugged the TFT cables back on the right pins unfortunately the connector used is smaller and there are extra pins

thanks, i had worried about that too, but now looking at you pic i found that i have in in the same so that wasnt the issue

have u plugged in the TFT cable again? pls. dblcheck...

  • Posted with 3D Geeks Thingiverse Browser App

Yes of course, at least I believe so , I mean the tft works , the buttons simply don't, I can navigate through the menus, but none of the buttons do anything. What do you mean with tft cable? There are two cables going to the tft display , a big one and a very small 2 pin one? I gimply guessed you were talking about the big one, when talking about unplugging. Also if this matters , the thermistors don't have any temp readings

Yes the big connector. Power is coming through the small connector so the tft is powered but not working.

Well yeah that is plugged in, the tft doesn't work if it isn't plugged in, I can navigate through the menus , the buttons simply don't do anything.

very strange behavior, but I'm happy to help troubleshooting, some more steps and questions:

  • when did you buy the printer? please send me a picture of your motherboard...just to compare if there was a obvious change.
  • did you execute the M503 before upgrading? If yes please share the M503 output
  • did prusa slicer verify the image after flashing or did you already receive an error there?
  • which marlin version did you install?
  • unplug! the tft connector (the big one) and try to get a usb connection from your pc again (check baud settings, should be 250000). if that succeeds you can try flash the original firmware. if not, what error message do you get, do see an additional com port at all?
  • to further troubleshoot mail me your skype or whatsapp contact, lets talk...

Cheers, Rob

same problem flashed hex, reconnect tft, put in usb flash drive with tft files, turn on and no button works

Can these files be installed on an artillery genius? Any compatibility issues or changes needed?

sorry, i do not know

  • Posted with 3D Geeks Thingiverse Browser App

Hi Rob, thanks for the firmware! Works great. One small thing, bed temp can’t exceed 100degrees?

Keep up the good work.

Regards,

Lennart

Hi Lennart, the firmware limit is set to #define BED_MAXTEMP 110 degrees. So it should be capable to reach that. I have not tried this on my printer but I'm happy to test the next days. Meanwhile, if you use the latest version of the tft files(from marlin 2.0) the PID autotune should also autotune your bed settings. Maybe give this a try if you did not do so.

Cheers,
Rob

I got to the TFT flash part and that's not working. I've tried USB stick and mSD card, nothing happens when I reboot the printer. I used the avrdude method to flash the firmware and did receive a confirmation... it's just the TFT step that isn't doing anything. It just boots to the normal main screen.

Edit - THE FIX:
MAKE SURE YOU USE A CARD <32GB!!
It will NOT read larger cards.

Thank you robscar for your hard work on this, it's really great. I just need to figure out how to add bltouch support now... I don't suppose you can point me in the right direction? I like your TFT way more than the waggster one.

Actually, you can use SD cards greater than 32GB, but you have to format it as FAT32. I used a 128GB today, and had the same problem as you (printer not recognizing the card). Windows 10 would only let me format it as NTFS or exFAT but I found a free program called EaseUS partition manager that let me format the card to Fat32. Worked a treat.

Does this support bltouch or should I use the waggster mod firmware?

Is there a big difference between your firmware and the waggster one?

Not sure which way to go. I ordered a bltouch because the center of my build plate seems to dip down. Even when all corners are level the center is further from the nozzle and causing poor first layer quality.

No, it doesn't support BLTouch. You don't need a BLTouch - you can manually level the bed with Tiny Machines firmware. This firmware has Manual Bed Leveling and PID Tuning. I don't think it's using a Grid like with the Tiny Machines firmware.

get this message when i do pid.

echo:Unknown command: "M1M42 P4 S255"

didnt change anything

This error was reported before and I could not reproduce(scan the comments for the error)...I suspect the use of the TFT and the serial monitor is causing this..... you should only use one or the other... You can check if the pid was successfull if you reset the printer after full pid calib and check if the values got save (v2 only, v1 you need to run m500)

However, what version did you install? you can send me the full log via thing mail...lets have a look

I updated to v2 and when trying to save to EEPROM I get: "Error:EEPROM disabled." Other functions appear to work. Thoughts?

did you flash the provided hex file or did you compile your own? if its yours dbl check that it is enabled (~#define EEPROM_SETTINGS). Otherwise you might try a reset to factory defaults using M502...and then try to execute a M500

I used the included HEX file. Sending M502 followed by M500 did not work; same results.

Thanks for taking the time to reply. I'll continue to troubleshoot and will post results.

to me it sounds that the flashing of the printer firmware did not succeed. Check the output when connecting to the printer and verify the marlin version. You might have just flashed the TFT display firmware?

I did it again and this time loaded it through Prusa. I let it sit for a bit afterward, reboot it, queried firmware info and it's updated. Not sure what happened but at least I'm out of this rut. Thanks for your work. By the way, do you have a git repo started? Github, gitlab, Bitbucket, etc? If not - thoughts on doing that? I'll probably wind up forking this, regardless.

I'd agree it did not succeed but avrdude-slic3r verifies it's good. I can try using Prusa but suspect it'll do the same thing. I updated firmware without TFT plugged in (as outlined in the instructions), powered down, reconnected TFT, inserted uSD card and powered back on, letting it complete the upgrade process.

I'll continue to fiddle with it - thanks for the advice & thoughts.

I've read that already but I was thinking it could be a Windows driver issue, is the Mks GEN L board an arduino?

They share the same architecture.

Hi Rob
I've had this printer for a couple of weeks now, I'm trying to calibrate the e steps, but for some reason when I plug in my computer through the USB-By socket it doesnt recognise the printer although it shows up in device manager, I can send G code via USB stick and octoprint any ideas is this is a real headache and the is no other information out there.
Cheers Dean

the tft causes conflict with the usb port as they are using the same pins on the atmega2560, If you're trying to flash to calibrate esteps then you'll have to unplug the tft for the flash to work. But if you're just trying to calibrate esteps you should beable to set that in gcode and save to eeprom

Hey Dean, puhh, that could be plenty of things, I fear I cannot help in this context. However, if you want to calibrate E-Steps, why don't you use the connection of Octoprint? Cheers, Rob

Marlin_010109_rcaTechtuned_firmware.hex is customized firmware running on Marlin 1.1.9?
firmware_marlin2.0_for_x1.hex is customized firmware running on Marlin 2.0?
display_tft_firmware_x1 can be used for both?
What's the difference between Marlin_010109_rcaTechtuned_firmware.hex and firmware_marlin2.0_for_x1.hex?
Are the new features you've enabled or added functional with both firmware?
How do you customize the buttons? I'm a Graphic Designer. Do you want to make it prettier?

yes, you are correct with your version assumptions and display_tft_firmware_x1 could be used for both but the one that comes with marlin2.0 has some updates/fixes. If you scroll down the thing summary to the end you'll find 2.0 feature/update infos. Concerning the icons, it would be great to have a new design, do not hesitate to paste a remix of your iconset, its pretty straight foward:

I used ImageConverter. You can download it here: https://github.com/makerbase-mks/Software/tree/master/MKS%20TFT%20image%20convert
Additionally, TechingTech covers image converting in his vid: https://www.youtube.com/watch?v=ncc7TRkCH-M @ about 6:15

Maybe I am missing this somewhere. Is Manual Mesh Bed Leveling enabled if we want to to this through Octoprint custom commands?

No, it's not. Manual bed leveling is just a sequence of GCode commands that homes and then disables all motors except Z. This way you can manually move the printhead and/or bed in all directions and use the knobs to manually adjust the bed. You can view the mks_config.txt for the exact commands.

Any advice on utilizing the Linear Advanced Calibration?

good advice can be found here: http://marlinfw.org/docs/features/lin_advance.html. Mine ended up at K0.15 for PLA with stock extruder/hotend. Might be different for you but if you have a stock setup it is a good starting point.

Just make sure you are printing the calibration from SD not USB. USB seems to have issues with certain files, especially if they have plenty comments....

Comments deleted.

What am I doing wrong, I think I followed all the steps; the firmware reads Marlin 2.0.x in pronterface, the new Icons show up on the TFT but those buttons still change the LED color instead of the new functions

which button do you press? and which commands are logged in pronterface?

Hi ive tried to compile the marlin firmware in arduiino, i first got a U8glib library missing warning in the compiler.... I found a U8glib library in the arduino repository by Oliver and installed that.... Now the compile just throws tons of errors and files to compile...
Its been a few years since i compiled marlin, what am i doing wrong?

Just to add this error is happening since enabled ADVANCED PAUSE FEATURE.... as one of the bugs issues ive had with stock firmware is the printer when paused disengaged the motors and looses location. And when resumed doesnt home or do anything just assumes its at the same location at pause... Obvious when changing filament this tends to move the x carriage some.

hmmm...have not tried this. However, you get compile errors when enabling ADVANCED_PAUSE_FEATURE because it requires an LCD.

Hi, copy pasted from the comments below, once thingiverse is reliable up again I'll add this as a Q/A:

if you want to compile and flash your customized version of this thing, I think by far the easiest is marlin-configurator: https://github.com/akaJes/marlin-config/releases

Quick StepByStep for the X1:

Install Tool :-)
Select the Marlin branch you want for a start (v2 Release or v2 Bugfix)
Dropdown Upload, and select my modified files for the X1: Configuration.h and Configuration_adv.h
make your own changes
Dropdown Compile and set MegaAtmega2560
Dropdown _Consoles and choose Baudrate
Click on </>compile or Flash, depends on what you want to do
the firmware file will be in .\Marlin.pio\build\megaatmega2560\firmware.hex
That's it, really handy tool for quickly adopting marlin to any settings / printer

nods ive done all that, Well manually configured but still. The issue I was having was with pause releasing the motors... And so i wanted to use advanced pause features that better locked the motors

Also another issue... Since updating the tft firmware I cant use the USB any more.... Any ideas?

Copy/Paste from thing description :-) :
Update: 19.09.2019: In case your USB Stick does not work anymore after the upgrade, check the following option on your TFT: SET/File/USB. That was always there but defaulted back to SD after TFT Upgrade

ahh sorry i missed that :D

Hello, if I wanted to do this upgrade but have a hemera/bl touch would the correct path be. Download your 2.0 firmware - > do the hemera edits as in the hemera guide - > do the waggster BLtouch edits - > flash final firmware?

yes, sounds good. Do not forget the TFT updates. For editing and compiling / building I suggest:

I think by far the easiest is marlin-configurator: https://github.com/akaJes/marlin-config/releases

Quick StepByStep for the X1:

Install Tool :-)
Select the Marlin branch you want for a start (v2 Release or v2 Bugfix)
Dropdown Upload, and select my modified files for the X1: Configuration.h and Configuration_adv.h
make your own changes
Dropdown Compile and set MegaAtmega2560
Dropdown _Consoles and choose Baudrate
Click on </>compile or Flash, depends on what you want to do
the firmware file will be in .\Marlin.pio\build\megaatmega2560\firmware.hex
That's it, really handy tool for quickly adopting marlin to any settings / printer

Hey Rob, First off thanks for all the hard work!! I know what goes into what all you've done, and this is some serious time spent. :)
Anyway, things are looking good, haven't had a chance yet to test everything, waiting on my E3D Hemera, but I wanted to post a shot of one menu item and see if this is normal. The Save eeprom menu in mine is overlayed with a couple things.
Thanks again!

thanks for the feedback, I'm glad you like it. The Save EEPROM icon with the chip and blue disk is as designed. In fact, I just played around with the icon and completely forgot I changed it :-) and it made it into the release. As this is not the first time I get this question, i just uploaded your screenshot also. Cheers, Rob

i changed originale tmc to tmc2208 because the original didn't work properly. But now when enabling linadv the extruder stops working after a short time.
on github i found this: https://github.com/MarlinFirmware/Marlin/issues/15926
Could it be similar to SWx1?

I think that is likely the same issue. As they stated, does #define SQUARE_WAVE_STEPPING or MINIMUM_STEPPER_PULSE to 1 solve the issue for you also? Or replace E0 driver with a LV8729 driver?

I tested sqaure_wave_stepping yesterday. it was better. But i will test minimum_stepper_pulse also.
Could tmc2209 (standalone) solve the problem? Or is LV8729 the best solution?

Frankly, I have not tested the 2209 nor the LV8729.... with a 32 Bit board I might would try the 2209 with UART config on a 8 bit board I probably would go with the LV8729 with 32 or 64 steps. But this is just my gut feeling...

Hi.. i own a v4 sidewinder with resetbutton next to the display and did the following:
downloaded the files, extracted them. I disconnected the tft display, installed drivers for usb serial and seems to have connection on com 5 port.(using cura 4.3 for uploading) i uploaded the firmware via cura which worked and i got on "OK".
Reconnected tft, start the printer but i am unable to install the tft file..basically i do not know which one to use....the display shows the normal icons...but i do not know how to proceed...i also invested 4 hours in marlin2 but stopped without even trying? could someone please help..

you need to get a microsd card and put all the contents from the tft folder in the root of the microsd card put it in the printer and turn it on and it should upgrade from those files

Hi Mavericm1, thanks for your reply...well, i have been able to update via sd card(i formatted the sd new): display_tft_firmware_x1 this is the files i imported....how can i be sure the firmware is now updated...i have a stock sidewinder with no marlin changes...it seems, that the buttons follow no function.....the petg and pla button have no function if pushed? very frustrating?

at least the preheat buttons(PLA/PETG) should also work with no marlin firmware changes. however, the rest of the new functions will not work. If none of the buttons work for you(e.g. the moves), you might have forgotten to plug in the display cable again?

In order the get the features working you have to update marlin as detailed in the thing section, just try again. You can tell if the update was successful by connecting a serial monitor and booting up your printer, this will tell you the version in the log.

at least the preheat buttons(PLA/PETG) should also work with no marlin firmware changes. however, the rest of the new functions will no work. If none of the buttons works you, you might have forgotten to plug in the display cable again? You have to update marlin as detailed in the thing section to get the features. You can tell if the update was successful by connecting a serial monitor and booting up your printer, this will tell you the version in the log.

Hi I'm quite new to own 3D-printing. I've bought an X1 and quite fully modded it the last 2 weeks (including 2nd SSR for heat bed and housing). I'm using your firmware and TFT mods of 2019.12.09. It works much much better than the original. especially the extruder temp at > 240 is much more stable now.
Thanks a lot.

thanks for the feedback, I'm glad you like it.

I think i Would be a great idea to mention you DISABLED the filament runout detection on the 2.0 version as i found that out the hard way

Hey Lucifer Morningstar, how do you come to the conclusion that I disabled the filament runout detection?

after updating to your marlin 2.0 my sidewinder dodsnt pause if i cut the filament = no runout detection.

were you printing with octoprint ?

no i have never used octoprint or similar things but was printing via usb from my computer

Then this is why the filament sensor wasn't working. When you print via usb or octoprint its just running the gcode that is being fed to it and isn't using the filament sensor. try it with printing something on usb and try cutting the filament you'll see that it will work

in addition to mavericm1- the filamentsensor on the X1 is connected to the TFT Display Logic, the marlin firmware has no influence in this configuration, actually it is disabled in marlin, same as in the original x1 firmware.
Cheers, Rob

@robscar I noticed running with your pid max bang bang settings that my temps wildly wonder even after pid tuning not sure why that is i set it back to what i was running before and recompiled and tuned again and its holding solid

define PIDTEMP

define BANG_MAX 255 // Limits current to nozzle while in bang-bang mode; 255=full current

define PID_MAX BANG_MAX // Limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current

define PID_K1 0.95 // Smoothing factor within any PID loop

if ENABLED(PIDTEMP)

//#define PID_EDIT_MENU // Add PID editing to the "Advanced Settings" menu. (~700 bytes of PROGMEM)
//#define PID_AUTOTUNE_MENU // Add PID auto-tuning to the "Advanced Settings" menu. (~250 bytes of PROGMEM)
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
// Set/get with gcode: M301 E[extruder number, 0-2]

define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature

                              // is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.

// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it

Do you mean you had some problems with the temperatures and power consumption?

interesting, never had this on mine. It looks like you also changed PID_FUNCTIONAL_RANGE to 10. Just be careful with this because it might cancle the auto-tuning process completely if it overshoots more than hat, which is very likely on the X1. Maybe a good idea to just monitor pid autotune to make sure it successful runs through with this setting.

i ran pid autotune via terminal all is well. I'm not running the tft flash you've setup since its setup for manual leveling etc i just kept the waggster tft for now since its suited for bltouch. I'm planning to publish a remix but i'll have to publish what i'm running plus revert some things and recompile for the stock setup. Since i'm running a hemera so extruder is inverted and thermistor is changed also E steps.

ah ok, that might explain why it works with PID_FUNCTIONAL_RANGE with the lower value... it might not overshoot that much in your config.

Are you satisfied with the Hemera setup?

Yes was just finishing it up getting it completely dialed in last night. Its now passing .15mm tolerance tests with ease. As an interesting note with tuning linear advance it was best at a K value of .04 !!!!! That is pretty crazy because of how close the extruded driven gear is to the hot end. The ability to print flexibles with ease and with its design i think extrusion is very reliable and controlled

I'm nearly done changing the 2.0 version of your work here and adding the bltouch changes that the waggster mod had in them including the pin reassignments. Thanks for the work you've done here.

Did you ever finish this. I'm midway through adding a hemera and bltouch and the firmware part is confusing me.

Glad you like it. Please do not hesitate to post a remix if you have the BLTouch settings integrated and running.

Brilliant - You are hereby tipped sir!
Thanks :)

Thanks Feedrate, appreciated, glad you like it !

Gracias por tu trabajo y seguir actualizándolo, thanks!!

con mucho gusto hecho!

Thanks a lot for the effort provided on this firmware. I have just some doubts on how to use the features added in this V2 firmware/TFT that I hope someone can clarify to me:

1) How the P.I.D. must be used? I wait the process is terminated (green light) and then? will the temperature settings in the gcode be replaced by the optimal setting provided by P.I.D? what about if the P.I.D. settings are not stored in the eeprom? will they persist for the next prints until the shutdown/restart of the printer?
2) what's the meaning of the manual leveling icon? Should I press that button before using Z+/Z- buttons?
3) In the icon EEPROM a string "010109" and a floppy disk image is painted on top (I don't see it on your screenshots). Is it correct to see that on FW 2.0?
4) babystepping seems to have no effect during the first layer printing. I press Z+/Z- but I don't hear/see any change. Is there something wrong on the procedure I follow?

1) just updated the process, check update from 12.12.
2) manual leveling means that you can move your extruder/bed by hand, just the Z-Axis motors are powered and hold their positions. You do not have to press it before you use the Z+/Z- buttons, in fact, you do not have to use it at all if you prefer the automatic version :-)
3) yep, this is correct, just did not take a new picture of it, maybe I should update the number to 2.0.0 ;-)
4) to verify babystepping works, touch the z-coupler with your finger and leave it there for a while. Sometimes it is hard to see or hear the mini movements. Also, the babystep z-move is written into the g-code exec queue and might not be executed directly. Other moves in the buffer/queue have to be finished first. So there might be no instant feedback...just wait a little...

Hi robscar and thanks for nice work!
Played with your 1-st version for about week now and going to update to Marlin 2.
One thing is confusing(for me at least), Manual Bed Leveling?! What is the exact order of operations? Cant't get it work, my printbed is lower at center :(

So I'm doing like follows:

  1. Manual leveling // Printer homes and x and y axis free, led goes green.
    2 Moving nozzle by hand to the desired point and then adjusting Z up/down
  2. Store EEPROM
  3. Repeat 2 and 3 until done

Or should I probe all desired points manually first and after that hit Store EEPROM from TFT-screen???

Sorry about stupid question, it's my first printer and have had it about only 2 weeks in hand :)

Cheers

Teaching Tech just release a good video on this: https://www.youtube.com/watch?v=vcxM7-VK44k&t=367s
Great for understanding the overall process. However, it was designed for a LCD Screen and does not work as automated with the TFT. For the TFT to work you would have use GCODE to probe the points and store them. Maybe a good exercise for getting deeper into this. Details can be found here: http://marlinfw.org/docs/gcode/G029-mbl.html. Do not forget to share with others once you have a working gcode for this. Ah..., you have to disable Babystepping in order to compile with manual bed leveling....
Cheers, Rob

One more question about the PID auto tuning and your comment at the end of the description here and in the TFT config file.
Why not adding the auto-tuning of the heating bed in the same line / sequence?
Meaning firstly auto tuning of the hot end and then the heating bed? And maybe in addition, at the end of the tuning adding an automatic M500? I think, PID tuning is a one time job. Maybe it is not possible for any reason but maybe you know?...

yes, that would work, a good point for the next update.

Hi, great work with the Marlin2.0.x. Is it possible that you upload the source files as you did with the 1.1.9 so it would be alble to change some things in Marlin 2.0?

sure, uploaded. If you want to build your own version I think by far the easiest is marlin-configurator: https://github.com/akaJes/marlin-config/releases

Quick StepByStep for the X1:

  • Install Tool :-)
  • Select the Marlin branch you want for a start (v2 Release or v2 Bugfix)
  • Dropdown Upload, and select my modified files for the X1: Configuration.h and Configuration_adv.h
  • make your own changes
  • Dropdown Compile and set MegaAtmega2560
  • Dropdown _Consoles and choose Baudrate
  • Click on </>compile or Flash, depends on what you want to do
  • the firmware file will be in .\Marlin.pio\build\megaatmega2560\firmware.hex

That's it, really handy tool for quickly adopting marlin to any settings / printer

Ah, thanks for this. Needed 2 attempts until I got the tool running . Did not flash anything at the moment...have some Christmas prints to do in the next days, so I don´t need a construction site at the moment :-)

Marlin 2.0.x: did not a deep dive into the TFT FW you provided but is it possible to use the TFT FW of your Marlin 2.0.x package with Marlin 1.1.9 board FW?

yes, i would think so. Your bedleveling changes should also work... give it a try and let me know :-)

Yes it works! I´m running the new TFT FW from your Marlin 2.0.x package in combination with old Marlin 1.1.9 FW.
I like the new button design and you have additionally to the correction of the Leveling position buttons also corrected the buttons for the axis movement! Great!
I'm not sure if I really will go for Marlin 2.0.x in future since the difference seems not so big...I think.

However I have another question. In both versions you have enabled LINEAR ADVANCE. Does this really work with the Sidewinder X1 original hradware? I have heard that the used stepper drivers does not really work with this feature.

Great, thanks for the feedback. Linear Advance works good on the X1, I'm using for every print except vase mode. In Marlin V2.0 I also activated S_CURVE_ACCELERATION and ADAPTIVE_STEP_SMOOTHING and it is much quieter/smoother now when using Linear Advance i. With the stock Extruder for PLA a K value of 0.15 works good for me. Check it out! BTW, i changed Marlin v2.0 to the recently release version, not bugfix anymore.

I used 0.11 in 1.1.9. Is 0.15 in 2.0.0?

no, not necessarily, that was just my calibrated value, it is likely to vary based on filament and other factors. Stay with 0.11 and give it a try

Where did the control for the light go? I cannot find it after install.

No more light since the limited places for buttons with more usefull functions were needed. There are only LED WHITE and OFF left in the operations MORE menu during printing. However if you really like to use the bling bling LED´s you can enable or disable them with G-Code commands from Pronterface, Octoprint or you add them in the TFT menu command lines like I did ;-)

Commands are:

black M42 P4 S0;M42 P5 S0;M42 P6 S0;

white M42 P4 S255;M42 P5 S255;M42 P6 S255;

red M42 P4 S0;M42 P5 S255;M42 P6 S0;

green M42 P4 S255;M42 P5 S0;M42 P6 S0;

blue M42 P4 S0;M42 P5 S0;M42 P6 S255;

Hi Robscar,

thanks a lot for the great work you have done ! Is it posiible to store several Mesh points to the eeprom and achieve herewith a kind of manual mesh bed leveling which is considered in every print ?

Best regards

Michael

you could enable #define MESH_BED_LEVELING & disable #BABYSTEPPING. However, as we do not have a LCD in our SW1 you would have to configure the points manually using GCODE. But, if your bed is that uneven it would help you....or get a BLTouch Probe....

define MESH_BED_LEVELING:

  • Probe a grid manually
  • The result is a mesh, suitable for large or uneven beds. (See BILINEAR.)
  • For machines without a probe, Mesh Bed Leveling provides a method to perform
  • leveling in steps so you can manually adjust the Z height at each grid-point.
  • With an LCD controller the process is guided step-by-step.

Firstly I modified the original TFT display and the MKS board FW to my own needs.
However since some days I´m using your FW and transfered my modifications to yours.

One important point for me was to correct the wrong assignment of the bed leveling buttons. The buttons show a white sector but the print-head does not move to this positions.
Maybe you like to add this tiny modification in your TFT FW:

new configuration with correct assignement to the buttons white sector

cfg_point1:50,250
cfg_point2:250,250
cfg_point3:250,50
cfg_point4:50,50
cfg_point5:150,150

integrated your config in the newly released marlinv2.0 build. Thx!

thanks for sharing, its funny, I did not recognize until now :-) I'm happy to include it with the next update. I'm just testing the current release of Marlin2.0 with the X1, seems to work good so far. I'll bundle your changes with the 2.0 upload.

Thanks a lot!
I added some more minor changes in the FW like enabling Auto-Power-Off Mode 2 in combination with a little cheap Low-Level-trigger relais. Also I enabled debugging so I can use M43 to show all pins, their states and function if used. I use and will use more ununsed pins of the board for additional control of devices like an external fan and more. However I think those mods are not very interesting for other users.

Bringing Marlin 2.0 to the board is a big task. I have not done a big look into 2.0 but the only thing I have seen is that FW modification and flashing cannot be done by IDE anymore. However if so would be great if you will add a detailled "How to". Thanks a lot!

Indeed, there are many tools, I think by far the easiest is marlin-configurator: https://github.com/akaJes/marlin-config/releases
Quick StepByStep for the X1:

  • Install Tool :-)
  • Select the Marlin Branch, make you changes
  • Dropdown Compile and set MegaAtmega2560
  • Dropdown _Consoles and choose Baudrate
  • Click on </>compile or Flash
    Thats it, really handy tool for quickly adopting marlin to any settings / printer

Hi, I would like to install with my printer, the LV 8729 drivers, but must unlock or change this in the firmware is there a way? Thank you

yes, you can change this in Configuration.h, e.g. you can set x_driver_type to LV8729

hi

is the FW the Marlin 2.0 (I see in the github the latest commit was made in November)?
I have the Sidewinder V4. Do you know which FW version is provided in the V4 (is it older than the one provided here?)?

thx

No it is the 1.1.9 and the firmware on all Sidewinder X1 are the same. You can download the factory FW from the Artillery web page.
I´m using the Robscar FW since some days but did some more modifications and I have also the V4 version of the Sidewinder X1.

Thanks. Yes I saw later it was 1.1.9. I also downloaded and installed Marlin 2.0. But I will wait the new remix by Robscar with both FW and TFT updates.
Just an info about the reset button on the Sidewinder v4. Is the reset button equivalent to the commands to reset to factory setting explained by robscar? Or is it needed only to reboot the printer?

The (HW) reset button close to the TFT just boots the the sidewinder but not setting back to factory values.
I have noticed that because if you type in M503 in Pronterface you will see the Z value as a feedback. It shows something like Z-0.12 after I pressed Baby-Stepping button (+/0.025) several times and stored it with the EEPROM button on the display. After Reset it is still stored in the EEPROM and not set back to 0.

thanks for the info. It could be usefull to have a menu to reset to factory settings if it is possible

That is the M502 command. Unfortunately all places of the TFT "MORE-Menu" are occupied. But for those special cases I use Pronterface or Octoprint.
One idea: place the M502 command whin the Save EEPROM command line in the TFT FW like:

SaveToEEPROM

morefunc5_cmd:M42 P4 S0;M42 P5 S255;M42 P6 S0;M502;M500;G4 S1;M42 P4 S255;M42 P5 S0;M42 P6 S0;

just remember to remove the M502 after you used it once... otherwise all settings will be reset to factory defaults every time you try to save changes. You'll loose PID and Z_offset settings and have to restart from beginning

Got everything working on first try!
everything seems in order except for PID autotune saving command might have a typo or maybe I did something wrong?
echo:Unknown command: "M1M42 P4 S255"

what do you mean with PID autotune saving? Store To EEPROM? Where do you get the error?

it showed up right after pid finished, this is the log:
PID Autotune start
bias: 72 d: 72 min: 215.73 max: 230.50
bias: 71 d: 71 min: 214.80 max: 224.42
bias: 71 d: 71 min: 215.05 max: 224.20 Ku: 19.77 Tu: 26.38
Classic PID
Kp: 11.86 Ki: 0.90 Kd: 39.12
bias: 69 d: 69 min: 215.83 max: 224.02 Ku: 21.47 Tu: 25.89
Classic PID
Kp: 12.88 Ki: 1.00 Kd: 41.68
bias: 69 d: 69 min: 214.96 max: 223.71 Ku: 20.09 Tu: 26.54
Classic PID
Kp: 12.06 Ki: 0.91 Kd: 40.00
bias: 70 d: 70 min: 215.21 max: 223.39 Ku: 21.78 Tu: 25.39
Classic PID
Kp: 13.07 Ki: 1.03 Kd: 41.48
bias: 70 d: 70 min: 215.73 max: 223.66 Ku: 22.47 Tu: 25.56
Classic PID
Kp: 13.48 Ki: 1.06 Kd: 43.08
bias: 70 d: 70 min: 215.26 max: 223.88 Ku: 20.67 Tu: 26.54
Classic PID
Kp: 12.40 Ki: 0.93 Kd: 41.15
PID Autotune finished! Put the last Kp, Ki and Kd constants from below into Configuration.h

define DEFAULT_Kp 12.40

define DEFAULT_Ki 0.93

define DEFAULT_Kd 41.15

echo:Unknown command: "M1M42 P4 S255"

sorry, cannot reproduce...maybe the use of the TFT and the serial monitor is cause this..... you should only use one or the other...

did you make changes to mks_config.txt? If yes, search for M303, this is the line that gets executed when running PID autotune through the TFT. Or simply search the mks_config.txt for M1M42 P4 S255....and replace with original content.

I didnt change anything, all files were as provided. but I'll check for M1M42 P4 S255, which should I replace it with? just m303?
and thanks for all your support, I really appreciate it.

Is Color Change(Prusa SLicer) working with this Firmware?

I needed 4 trys until Flashing works Properly

no, unfortunately not. Slic3r injects gcode M600 for the color change. In Marlin, by default, M600 is only supported with a LCD&Button Display Unit.

I finally did it! It is possible to flash the arduino without opening the machine, nor disconnecting the LCD, so you don't lose the guaranty nor can crash any electronics.

Now I have to test it. I should update LCD yet.

just an fyi, you cant lose warranty for opening the bottom regardless of the false claiming sticker lol

I know (and that is debatable), but some people still don't want to touch the electronics, so you can do it without modifying or opening nothing. So you won't have issues reconnecting the LCD or breaking something like happened to some people (or it seems by the comments here).

LCD updated

PID tuned
Linear advance calibrated (K0.11)

It seems works good, now I'm doing osme testing prints.

EDIT: Command used to flash

./avrdude-slic3r -v -p atmega2560 -c wiring -P $(ls /dev/ttyUSB*) -b 115200 -D -U flash:w:0:~/Marlin_010109_rcaTechtuned_firmware.hex:i

any chance we can get a more detailed guide on how you did this?
Did you flash via usb using arduino?

  • any chance we can get a more detailed guide on how you did this?

Sure, I added a guide in the makes, so we can discuss there. See https://www.thingiverse.com/make:734108

I hope it helps you.

  • Did you flash via usb using arduino?

I used the prusa3d flasher

Artillery Sidewinder X1 - Firmware / TFT Tuning
by joskfg

I installed your files today on my SideWinder X1. I started getting weird pauses right away and then checksum errors during printing. I restored Artillery firmware (from their site) and this didn't fix the problem either. I replaced the cable between the TFT and controller too and was still getting these errors. Printing using USB from Simplify3D seemed to work perfectly. Finally, I changed the port speed to 115200 in both TFT and Marlin and at least for the past 15 minutes, I haven't had a single error. Who knows, maybe the connectors on my boards were not perfectly soldered and disconnecting the cable triggered this issue. I found some github discussions saying that it's possible that interrupts on the Arduino are disabled for too long using some Marlin options (possibly silent steppers or linear advance).

Now, assuming I caused this issue by disconnecting the TFT from the Arduino, do you think there might be a way to upgrade the Arduino code without disconnecting the TFT? More specifically, it takes far longer for the TFT to upgrade its software, so what if you boot the X1 with a TFT firmware upgrade SD-card and then flash the Arduino while the TFT is busy?

I made some other modifications to my Marlin config as well, most importantly lowering the BANG_MAX for the hot end to 192. The hot end heats up a bit slower, but hopefully this will make the ribbon cables last a bit longer (lower current to the hot end). I also reduced some acceleration and jerk values. Most of my testing was "air printing" and my first actual test print hasn't finished yet, so I don't know if these changes resulted in better print quality.

Thanks to Teaching Tech on Youtube for posting the BL-Touch installation video, as it also discussed and showed upgrading the firmware on this printer. And thank you Robscar for posting these files here.

P.S. That print finished and looks very good. The random pausing issues returned with the next print though and I haven't resolved them yet. Some people on Facebook claim that the printer can be flashed without disconnecting the TFT, but I haven't found a way (the Arduino SDK gives me timeouts if the TFT is on).

thanks for the feedback. I'm glad you got it working. I never had the checksum errors and I cannot think of any other way to flash the firmware without disconnecting the TFT. E.g.. as I'm working on a Marlin 2.0 upgrade for the X1 and did a lot of testing and reflasing I left the display disconnected and only use Octoprint to control the printer until I'm satisfied with the marlin 2,0 adoption for the X1. In newer builds I also reduced the bang_max to prevent the ribbon cable burn, lets see if it helps.... :-)

I used the hex file you provided and the TFT files without change, then did a restore to factory settings, PID autotune & store to EEPROM and I'm not seeing problems now. The main difference here is that I didn't compile the software in the Arduino SDK on my Mac. It's too early to say if the problem is fixed for good, because I thought I fixed it a few times already and then it just returned (that's the annoying part of intermittent/random problems), but the printer is 36% into printing a tree frog without errors or pauses.

It would be nice to at least get the BANG_MAX value changed (I think it requires a full recompile of Marlin). There's a chance that the BANG_MAX generated a square wave for the extruder that caused the interference, but then my attempts with unmodified Marlin would have fixed the problem way before this.

For now though, if the printer works and has your base mods applied, that's already better than I started with.

Actually, i still don't have it working 100%. I got two perfect prints and then the problems started again. The serial connection between the TFT and Marlin is losing data occasionally, pausing the print and leaving "random" blobs. I put the random in quotes because certain types of features in the print seem to trigger these issues more than others (but not every time). The last thing I did was to insulate the cable using alu tape & duct tape, but the test print after that still had a couple of blobs. I may also have to go the OctoPi way. I already have an old OctoPi running, but I'm not ready to give up on the TFT quite yet. Unfortunately the TFT firmware is not open source, so all we have are the binaries that are available.

Hey, how did you manage to create suitable icons in the bin file format? I really wanted to have some special icons, but can't figure out, how to do so?

Hey, I used ImageConverter. You can download it here: https://github.com/makerbase-mks/Software/tree/master/MKS%20TFT%20image%20convert
Additionally, TechingTech covers image converting in his vid: https://www.youtube.com/watch?v=ncc7TRkCH-M @ about 6:15

Please feel free to post a remix with your customized icons.

After copying the file from the tft folder and inserting it i dont have any pictures on the screen anymore ?

hmmm, strange. Is the screen just blank, is there anything at all?

Gracias por el trabajo...!!

Hello, thank you for the mod. Is it perhaps possible to display in the display the remaining time and the meters of the used filament. Find that always interesting. Maybe you could make it switchable. Great work, keep it up.

thanks for the feedback. Unfortunately the display combo is closed source, I'm not aware any possible tweak.

Hello what i must change to this if i want waggster bltouch mod ?

sorry, cannot tell you, I do not have the waggster mod.

I forgot to ask... did you implement the "RESTORE_LEVELING_AFTER_G28 to automatically keep leveling on after G28" in the firmware for mesh bed leveling ? :)

not sure to be honest, however, the source of what I have have compiled is also included in the zip, you can search for RESTORE_LEVELING_AFTER_G28

Hi Robscar! thx for this great firmware :)
Sorry for my bad english, im from denmark

I have flashed the firmware you listed with the mesh bed leveling active, but now the z-values in the tft screen with 0.025 values dosent work anymore.. they would be nice to have for fine tuning.

I have insted created my own buttons in octoprint with the custom control editor plugin and made some values with the G29 S1 commands to initiate the mesh tool. But is it possible for you to make the tft screen work again with Z-offsets. And maybe a version where you removed the manual leveling button.

not sure if I understand, what do you mean with firmware with mesh bed leveling active? Mine does not have mesh bed leveling, just Z-Offset adjust. Concerning the manual leveling icon, please feel free to edit and reupload mks_config.txt file. It is a simple text file and you can easily modify it. You could also make your own icons and post a remix. Seach the comments for icon and you'll find guidance for that.

Hi,

I've been trying to compile and transfer the firmware to my printer, as I need to make some firmware changes due to upgrading to a different extruder.
I'm completely stuck though. There just aren't any comprehensive guides to how I should be doing it.

To the best of my knowledge, I'm supposed to open the Marlin.ino file in the Arduino IDE, and then connect it to my printer and hit Send.
But I just can't get it to work. It will compile fine, but then time out when trying to send.
I've changed to what I believe is the right board type, I'm certain the serial port is correctly configured, and I even removed all occurences of "!!!" in the code (which apparently can cause problems)

What am I doing wrong?
You seem to know what you're doing. I'd love some help.

Hi, if you can compile fine, check serial connection first. Can you connect to the printer using the build-in Terminal of Arduino, check if you can send gcodes...? There is also a good guide from Tom: https://www.youtube.com/watch?v=lAKyZd63_ns, @ about 10mins.

Do you know the specific board & processor combo?
I can send Gcodes and stuff just fine through the terminal - but what did you do to flash the firmware to it?
It just times out every single time.
Can you just explain what your settings were to get this to work? What did you do?
It's seemingly impossible to figure this out. Just a few random people across the world seem to have figured it out, and nobody is willing to share how.

Make sure you don't have Cura running or any other software that will hog the COM port. Took me a few days to figure this out. Cura does not let you access the printer if it is running!

Board: Arduino/Genuino Mega or Mega 2560
Processor: ATmega 2560(Mega 2560)

Hello,
Thank you for this work.
After having this problem, I come to specify that you should not do as I do, and try to use a 64GB SD card.
It seems that 32GB is the maximum for this player....
Since I'm a little silly, I opened a ticket at Artillery's!
I will of course ask for it to be closed, but it is an information to be taken into account.....

Worked on both of my Machines. Thanks. :-)

great, thanks for the feedback :-)

Did someone know, if ADVANCED_PAUSE_FEATURE and PARK_HEAD_ON_PAUSE (gcode m600) is supported/activated?

That's not supported with the TFT screen so it's not enabled. For that to work, you'd need an LCD screen. Personally, I use Repetier-Host and just put an @pause in the gcode where I want the print to pause.

How can you adjust the LED setting? I read your response to an earlier comment about this and you said that the LED adjustment would show on the MORE menu when you are printing. Not seeing it. I do my printing through OctoPrint and when I start a print from there, I don't see the option of changing LED settings on the MORE menu. I also use OctoLapse and OctoPrint Anywhere and not being able to turn the LED off is a problem. Appreciate any help you can provide. Thanks.

when using octoprint you could send gcodes from Octoprint to control the LEDs. You could even set up buttons in Octoprint and assign gcodes to it, check this plug-in: https://plugins.octoprint.org/plugins/customControl/

Here are the example gcodes for Controlling the LEDs, you can use any value between 0-255 for the S Parameter.
black M42 P4 S0;M42 P5 S0;M42 P6 S0;
white M42 P4 S255;M42 P5 S255;M42 P6 S255;
red M42 P4 S0;M42 P5 S255;M42 P6 S0;
green M42 P4 S255;M42 P5 S0;M42 P6 S0;
blue M42 P4 S0;M42 P5 S0;M42 P6 S255;

Alternatively, if you want to control it using the TFT you can customize the TFT to your needs by editing and uploading mks_config.txt

Cheers, RoB

Appreciate the quick reply. Thank you very much!

  • Posted with 3D Geeks Thingiverse Browser App

Hi,

I have one question regarding the firmware change you made for the Sidewinder X1.
I use the Arduino IDE for modifying and flashing the firmware to the printer.
What I don't know is, how to modify, add or change the picture for the tft display.
I can't find anything in the Marlin software. Can you help me with this?
Thanks in advance for your help.

I used ImageConverter. You can download it here: https://github.com/makerbase-mks/Software/tree/master/MKS%20TFT%20image%20convert
Additionally, TechingTech covers image converting in his vid: https://www.youtube.com/watch?v=ncc7TRkCH-M @ about 6:15

Please feel free to post a remix with your customized icons.

Hi robscar,

thanks a lot for your help

Just updated the firmware on my V4 September sidewinder.
Everything went smoothly with no problems.
Mine has the glued in plugs on both boards, I just ran around the plug on the TFT board with a hobby knife and it came out easy.
I was having problems with the nozzle temperature, jumping around on the old firmware, loaded this firmware then ran the auto tune, saved to eeprom and now the temperature is rock steady.
Well done and thanks for sharing!

you are welcome and thanks for sharing your feedback. I'm glad it helped.
Concerning the nozzle temp, my nozzle was still pretty unstable after the autotune. So I tried the fix from teaching tech by adding a capacitor to 5V Line of the MKS Gen L. It worked out perfect. I'm nearly within 1 degree after this simple mod.

This firmware upgrade worked perfectly! Thank you so much for sharing this with the community!

thanks for the feedback, I'm glad you like it!

Thanks for providing your Firmware

I have a problem with P.I.D. Auto tune. I get the error message PID Autotune failed! - Temperature too high. I wanted to change that now in the temperature.cpp

OLD

// Did the temperature overshoot very far?

ifndef MAX_OVERSHOOT_PID_AUTOTUNE

    #define MAX_OVERSHOOT_PID_AUTOTUNE 20
  #endif

NEW

// Did the temperature overshoot very far?

ifndef MAX_OVERSHOOT_PID_AUTOTUNE

    #define MAX_OVERSHOOT_PID_AUTOTUNE 40
  #endif

So that he no longer reports the error message.
What I have to do download and what i have to select for compilation?

Thank you!

I have the same problem and was searching for a solution. I would agree to Rob not changing the temperature.cpp although could imagine that adding

define MAX_OVERSHOOT_PID_AUTOTUNE 40

into configuration.h could work, but not into deeps of Marlin.
For my understanding

ifndef MAX_OVERSHOOT_PID_AUTOTUNE

looks up if MAX_OVERSHOOT_PID_AUTOTUNE is defined somewhere(configuration.h ???) and if it's defned will step over the next line.

As said I'm far from being familiar with Marlin, but maybe someone with deeper knowledge can shed some light on this.

cheers Gerhard

this is strange I already up'ed PID_FUNCTIONAL_RANGE to 35. However, you could go higher. You'll find the setting in configuration.h, #define PID_FUNCTIONAL_RANGE. Anyhow, do not change anything in temperature.cpp.
In case you have a really strong heater cartridge you could also try to limit the max current to the heater cartridge by changing BANG_MAX to 200 as a start. Heats up slower but does not overshoot that strong, might also keep the temp more stable.

Additionally, you might succeed without changing the code by rerunning PID Autotune after it failed, it may work at 2nd/3rd attempt.

Just to make sure: Flashing a new FW works either with 1. or 2. under installation? (1. either unplugging the TFT screen and flashing via serial connection or 2. by using a SD card with the correct files on it and rebooting)? If so, why would someone want to use 1. rather than 2? The latter seems more easy, e.g. it doesn't involve opening the housing for example....

Thanks for some comments on this!

Ahhhh. got it. FW of the board AND the TFT will be upgraded. Got it! So 1 & 2 are required !

Hello from Germany, thanks for your great work!
I have to add that you have to install the ch340 drivers to your windows system to get it flashed.
Otherwise there ist a persistent "can not open com port" - error - though there is a com port shown in
the prusa flash dialog.
http://www.wch.cn/download/ch341ser_zip.html
This brings a install routine, and then it works...
Btw, it must be a microSD, not mini! #smart-ass-alarm: off ;-))

glad you like it and I appreciate the smart-ass-alarm ;-) I'll update it.
Cheers, Rob

I just got my artillery. My buildplate is ~0.1mm lower towards the Center. Is it possible to use manual mesh bed leveling with this printer. Im not asking for you to do it for me but if its possible to activate in the Firmware.

yes, you could activate it. In configuration.h, uncomment the following:

define PROBE_MANUALLY

define MESH_BED_LEVELING

and comment this:
//#define Z_MIN_PROBE_REPEATABILITY_TEST
//#define BABYSTEPPING
//#define FIX_MOUNTED_PROBE

and you would need to follow this: http://marlinfw.org/docs/gcode/G029-mbl.html. Unfortunately we have no LCD on our SW1 so you would have to use Mesh Bed Leveling from the host and send GCodes.

I added the compiled version with the changes above. If you like, you try it. However, I have not tested nor installed it. Use at your own risk.

Thanks for sharing. I just tried the easier way of updating using TFT but when I connected via terminal used M502 settings loaded but when using M500 to save it gave me erro "Error:EEPROM disabled" . Do I need to flash the full compiled hex to get eeprom?

Mine has all the connectors glued as well. I was able to carefully pull out the TFT's power connector. After unplugging the TFT power connector I could upload the firmware. I did notice that the TFT still displayed as if it was powered but the upload to the mainboard completed just fine. Now I can save my Autotune values to eeprom.

Which 2 cables did you pull there are many cables going from TFT to mainboard? any pictures

yes, this is correct. You need to flash hex file first to enable the features.

I opened it up today trying to flash the firmware but unfortunately, I found all connectors are glued so I didn't want to risk pulling them as my printer is still new just few prints. Main thing I needed is PID autotune as the temperature is shooting when I try to heat up the nozzle.

too bad...mine is also the newest version, the September Version having the Reset Button. All my connections are clued except the USB connection to the TFT. Check the picture. Alternatively, you could also pull the connector from the display mainboard, maybe there is no clue. Cheers, Rob

Thanks Rob, I checked both sides LCD and board side are glued almost every connection is glued & by the way the LCD cable in your machine looks different than mine.

hmmm... too bad they clue everything like hell... wanted to attached on oldstyle LCD to the EXP Ports but seemingly they pull voltage from there and also clued those to pins in... :-(

Thanks for this great work! I especially love the Z Live Adjust, but all functions are very useful!

Have you seen this video?
https://youtu.be/r6qj0y8tFPU
look at 37:15
He points out that there are missing parts in the print in the first layer. This happens with S3D and is caused by the many comments in the g-code. Those seem to fill the buffer between TFT and controller, so the printer starts with too less movement commands in the buffer.
I wonder if it would be possible to block sending comments from the TFT to the controller board at all.
Since you have changed also the TFT-board code, do you think you can implement this?
The g-code can also be fixed manually, but maybe you like the idea and hopefully it is a simple fix... :)

I'm glad you like it. Concerning the TFT, I did not alter any TFT source code. I just modified the mks_config.txt for the TFT Display and modded the pictures. So no way I could fix this.

However, I have also had issues with messed up prints but could trace it down to the USB source. Printing form SD never showed those issues. I have seen others talking about this also, not sure if the root cause is already known or fixed.

I also have problems to print over octopi and USB cable. I posted it in an help forum and someone told me that an increasing of the buffer_sice in the firmware could solve this. Maybe you can test it, because i am a Noob ;-)

How about the LED, is it it working? And how to activate it?

yep, still working. Once you start a print you can press options->Tools and switch the LEDs on or off. I just did not have any space left in the initial tools screen.

First of all, thanks for doing all this work for the community, this firmware is great!
I was wondering if it was possible to implement the M600 filament change with the TFT screen & a SD card or USB flash drive similar to how this firmware does it: https://www.thingiverse.com/thing:3249319

I noticed a lot of people in the Facebook communities asking for this functionality, but I'm not familiar enough with Marlin and the TFT config to make the required changes. No worries if it's too much work to implement, just food for thought.

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

I'm glad u like it. Thanks for sharing the link, impressive work. In Marlin, by default, M600 is only supported with a LCD&Button Display Unit. If at all possible it would be too much effort to implement. Maybe someone else goes down that road :-)

I just uploaded it and this output came up in the Arduino serial monitor and the last line keeps repeating. Does it mean it worked fine or what is causing the eeprom mismatch message?

start
echo:Marlin 1.1.9

echo: Last Updated: 2018-08-01 | Author: (RobStar, rob3dprint@gmail.com)
echo:Compiled: Sep 21 2019
echo: Free Memory: 4903 PlannerBufferBytes: 1664
echo:EEPROM version mismatch (EEPROM=? Marlin=V55)
echo:Hardcoded Default Settings Loaded
ok T:15.94 /0.00 B:16.05 /0.00 @:0 B@:0

never had this... try M502 and M500 then M501

  • Posted with 3D Geeks Thingiverse Browser App

i believe that is what it was, because it was just changed from no eeprom to having it enabled, the eeprom was blank until those were ran.

Thx mate for the work! super easy to do. For PID tune i just have to press pid and let it go?

Nearly :-) , please check the autotune section in the thing description:

P.I.D. Autotune
PID Tuning improves your hotend/bed temperatur stability and will positively impact print quality. This command initiates a process of heating and cooling to determine the proper PID values for your hotend. This may take up to 5 minutes. During the tuning process the LED will stay Red. Once the process is finished, the LED will turn Green. Make sure you wait! Your machine specific PID values are now in use. However, if you want to persist your PID settings you must execute “Store to EEPROM”.

Hi, glad I did a search for X1 on Thingiverse today, I where just going to do this myself.
One question? Is yours based on latest Marlin 1.9.x?

I do have a BLTouch, but my printbed is so flat there is no need to mod it, but I do like the Live-Z - for use when printing other filaments like PetG and such - to avoid adjusting the nobs.

Tanks in advance!

I'm glad you like it.

Concerning your question: as base I used the original firmware and only modified settings. The file "version.h" in the attached source points to the release version of 1.1.9:
An excerpt from the included source points to the release version:
!#define SHORT_BUILD_VERSION "1.1.9"
!#define STRING_DISTRIBUTION_DATE "2018-08-01"

Thanks, I`m on my Phone now, so have not yet downloaded it - but that sounds great (y) Will give this one a go, and give feedback if there should ever be a reson for doing so.

Edit, I will download when I get home, Im also wondering if its Linear Advanced 1.5 in this one. On my Prusa that works realy great.

yep, its LinAdv v1.5, but be careful, Prusa uses different K-Values, best would be to calibrate for your printer, I added the calibration link in the documentation. E.g. for PLA mine calibrated best at K0.2

Yeah, I always calibrate each printer by itself when using LA.

Thanks for the added features. Like it. Unfortunately I'm mostly printing via Octoprint and it seems as the features like baby step adjusting ist just working, when printing from SD-Card/USB, right?
Also noticed, when pause/resuim the print, that the resume speed is higher then it was, before paused. Not sure why ;-)

Hmmm, good questions, I have not tried to combine with Octoprint. As both the TFT and Octoprint communicate using serial I'm not sure how this works together, I would have to test. However, if you adjust your bed using LiveAdjustZ before and save this to EEPROM it must be used for prints started with Octoprint. The LiveAdjustZ get stored into the Z-Offset, you can query this using octoprint terminal with M851 or M503. As this is stored into firmware it does not make a difference if you start the job with Octoprint or from USB

Also, to be really sure the LiveAdjustZ does not work using Octoprint put your finger on the motor before issuing the command through tft and leave it there for a while, the LiveAdjustZ is normally written in to the command line Q, sometimes it takes a while until its applied. (The steps are so small you barely cannot see them but feel them). Or compare values before/after with M851.
PS: The LiveAdjustZ is just a GCODE: M290 Z0.025 / M290 Z-0.025. You could also integrate this with custom buttoms into Octoprint, that should work for sure.

Let us know the outcome :-)

Ok, will check it again, maybe I was impatient and the code wasn't processed because the printer was busy clearing his buffer.

How about the speed inconsistency when pause/resume a print. The difference is only persistent on the current layer, on layer change the originally in the gcode saved speed is applied again.

Hmmm, good questions, I have not tried to combine with Octoprint. As both the TFT and Octoprint communicate using serial I'm not sure how this works together, I would have to test. However, if you adjust your bed using BabySteps before and save this to EEPROM it must be used for prints started with Octoprint. The babysteps get stored into the Z-Offset, you can query this using octoprint terminal with M851 or M503. This is stored into firmware so it does not make a difference if you start the job with Octoprint or from USB

Also, to be really sure the Babystep adjustment does not work using Octoprint put your finger on the motor before issuing the command through tft and leave it there for a while, the Babystep is normally written in to the command line Q, sometimes it takes a while until its applied. The steps are so small you barely cannot see them but feel them. Or compare values before/after with M851.
PS: The Babystepping is just a GCODE: M290 Z0.025 / M290 Z-0.025. You could also integrate this with custome buttoms into Octoprint, that should work for sure.

Let us know the outcome :-)

Comments deleted.

glad you like it, you are welcome.

Muchas gracias por la aportación, se podría activar el Mesh leveling en Marlin y utilizarlo desde la TFT?

Hola, I have no probe so I'm not using Meshbed leveling. However, the source is included in the ZIP in case you want to activate it on your own.

Very cool...could do without the rca "branding" but very cool will check out later today!

Hey, find this "thing" today and love it:) do you think it is possible to install a Option for color change like prusa do?
Greetings from Germany.

glad you like it :-) What exactly do you mean with color change? I'm asking because there is already a Change Filament function built in the TFT Options. This can be used for Layerbased Color changes

I can't speak for Flipps, But, Do you have Advanced pause features enabled? Specifically the M600 filament change gcode.

no, none of them unfortunately. I would like to but those require interaction with LCD Screen and TFT ist not supported.

Is there any gcode command that would start the TFT option for changing filament? Or does the TFT function only work for manually watching over the print to change filament?

Hello all and I love my sidewinder printer but have a question I bought this printer a month ago but have only used it a couple of times as I have 28 3D printers. I have been looking a this mod because of the temperature swings on the hot end so wanted the auto tune. I finally decide to do the mod and it went with no issues. After that I did the auto tune and loaded my filament. A few days later I wanted to do a big print ( palette pro 2 stand I started a print and 15 minutes I noticed that it had stopped with a error bed temp runaway. After that the bed would never heat and cancel all prints. Luckily I bought this off amazon and it went out one day before my warranty with them would have expired and so the sent me a new printer. I got it today and its printing like a champ with no hot end temp swings like the other but now to afraid to try this mod as the last was working perfectly before the mod. What do you guys think?

Dude I just started having this issue too! And I didn't upgrade my firmware to this, YET. I was about to, thinking it'd hopefully fix my problem, then thankfully I ran into this comment.
It's driving me crazy! I've tried just about everything and checked just about everything with the connections on the printer. NOTHING stood out to be incorrect. I've only had the printer for about a week, granted I've probably put 100 hours on it, but that's nothing in the 3D printer world!

If anyone else has a potential solution to this it'd mean a lot!

So when mine went out I removed the bottom cover to verify if I was getting power to the bed. On this printer it takes DC voltage and converts it to AC that's why the bed heats up to fast. There is a electronic block does this and I checked voltage and it has 24 volts going into the block. When I went to heat up the bed there is a red light that would turn on so I checked the voltage going out and it was zero. If the printer doesn't see the voltage increasing it would kick out and display an error and the like would go out. AC heating beds are new from what I know and looked online to find a replacement but couldn't find one even going to the manufactures web site. So I sent that one back to amazon and they sent me a new one. Go check if yours is doing the same.

Good to know. I'm about to order a new ceramic bed heater. Before I do so, do you have any other recommendations of what to buy that may fix this issue? It sucks that this issue is a flaw within the design of the printer itself...

My bad I looked again on Amazon and they had all the replacement parts for this printer. I bought 2 replacement solid state heater relays for 20 each and the entire bed heater for 40. I don't like having a printer down so these parts were worth the money.

My bad I looked again on Amazon and they had all the replacement parts for this printer. I bought 2 replacement solid state heater relays for 20 each and the entire bed heater for 40. I don't like having a printer down so these parts were worth the money.

wow...28 3D printers...are you running a farm? Too bad your X1 failed.
concerning the bed temp runaway failure. No changes have been made to how the bed is controlled, it was at PIDTEMPBED before, just replaced with PID Autotune values. Scanning through the web on X1 and temp/runaway error reveals many hits which indicates that there might be an issue. I recommend to install e.g. these mods to make sure you protect the cables for hotend and bed. Also, if you have no hotend swings with the new version anymore and this is the reason why you installed this mod than you might not need it anymore.

https://www.thingiverse.com/thing:3857756
https://www.thingiverse.com/thing:3721087

Artillery Sidewinder X1 Extruder Cable Strain Relief
Artillery Sidewinder X1 Bed Cable Strain Relief
by Mwww

I wish I knew about these two files before my bed thermal runaway error began to appear. :(