Skip to content
Foxies edited this page Jul 7, 2023 · 96 revisions

7.1.📌 Marlin vs Klipper

Klipper and Marlin are being compared more and more:

Klipper is often cited for its printing speed with good quality, but its implementation is difficult for a beginner. Moreover, you need a RaspBerry to use it,

  • you lose control of your main screen,
  • it requires a good knowledge of macro-command programming,
  • to have a good base on networks.
  • the link between your board and the raspberry is always limited to USB and these connection problems. There is no "plug and play" configuration because everyone has configured his printer by hand.

So to be reserved for advanced users: The best base to work with is there

As for Marlin, it is "Plug and Play". Of course you will go slower (<160mm/s) but the quality will only depend on your slicer settings.

Another advantage of Marlin is that all settings are accessible through the advanced menu and in REAL TIME:

7.1.1 MENUS

  • Speed, acceleration, jerk, temp, .... MenuAdv-Accel MenuAdv-Temp MenuAdv-Jerk

  • filament flow, linear feed, filament loading and unloading length, Menu-Filament

  • Setting of currents and threshold of TMC stepper drivers (UART mode) MenuAdv-TMC MenuAdv-TMC1 MenuAdv-TMC2

  • 🌐Change the language of your country (5 choices: English, French, German, Spanish, Italian),

  • Light control if you have put a NeoPixels led strip.

  • and more ;-)

7.2. Delta printer

  • Calibration:

    FYI:The iterations correspond to the precision and stability of the measurements. The more iterations you have, the more it shows that your machine is a bit too flexible. The progression of iterations stops when the set of different measurements in the sequence (iteration) does not decrease anymore. This is called the standard deviation (std dev.) For the calibration of the dimensions, it is necessary to do it after a good calibration and not to move the machine, tighten its belts or redo a calibration because it will cancel all your adjustments.

7.3. Hardware

7.3.1 Stepper Drivers

To adjust the Vref of your TMCs, you must have the characteristics of your stepper motor (its operating current per phase (Imax). From there, you will be able to adjust your Vref very quickly.

Some users say:

"My print skips steps..."

"My extruder motor is very hot ..."

"My print pauses but never in the same place"

"I put in TMC220x and my stepper motors always make noise"

.....

Yes, this is why it is necessary to adjust the Vref so that it is in accordance with the maximum and effective torque of the stepper motor. For TMC=Vref=Inom Stepper Motor. ex: stepper motor= 1.5A, Inom = 1.06A.

Underpowered, it will lose its torque and may even vibrate without being able to keep its stable position.

Supercharged, it will make a lot of noise by resonance and of course overheat (the stepper driver also on the other hand reactions).

  • 📌Note on LIN_ADVANCE and TMC2208 (Thanks to John D. for this comment)

In linear feed mode, the Marlin firmware generates a large number of short step pulses outside of the step interruption. This can disrupt the TMC2208 (depending on the TMC builder) on the extruder and cause the extruder driver to shut down and the stepper motor to effectively shut down. While it is theoretically possible to optimize the software to account for this, it would require a significant rewrite of the planer code. A potential solution for this is to connect the UART port to adjust it in real time and increase the HYBRID_THRESHOLD value to have a wider range of speeds in StealthChop mode (50 vs 30 in my firmware). This might not work, so a better solution is to use the TMC2209 module.

🔧7.3.2 Update and flash

To perform a good update of your printer, follow these tips:

  • use an SDCard of less than 32GB (some advanced users may compartmentalize their card)
  • Format your SD card in FAT32 mode but with clusters of 4096 or 2048, unflag quick (I use a portable tools RUFUS for that).
  • MultiOS (Windows/MacOS) tools to format your SDCard sdcard.org
  • Place all your firmware files (Board or TFT) at the root of your card :

Name of the Marlin firmware file:

  • "Q5" => Robin_nano.bin
  • "Q5v1.3" => Robin_nano35.bin
  • "QQS-Pro" => Robin_mini.bin(chip STM32) or Robin_nano.bin(chip GD32)
  • "SR" with SKR board => firmware.bin
  • "SR" with MKS board nanov3 => Robin_nano_v3.bin

Name of the FLSUN(Stock) firmware file:

  • "Q5" => Robin_nano.bin + Robin_nano_config.txt + drawers fonts and pictures (picture).

  • "QQS" => Robin_mini.bin + Robin_mini_config.txt + drawers fonts and pictures (picture).

  • "SR" => firmware.bin or Robin_nano_v3.bin

  • Turn off your printer, insert the SD card, turn on ...... and the procedure will run automatically.

Screen-Update

  • Recover your SD card and check on your computer that certain files have been renamed with the ".CUR" extension. If this is the case, your operation was successful.

After the update is done and the files are renamed in capital letters with the extension ".CUR"., it is possible to reuse them again. To do so, change the extension of the element(s) to the pre-update extension (.bin or .txt) and start the update process again.

Note2: In some QQSPs(GD32 chip), the flash is blocked because of the screen. To unblock it, you need to remove the shielding from the wire ribbon that connects the MoBo to the screen and reflash the firmware.

  • Here are two screenshots of the contents of an SDCard for a "QQS" or "Q5" factory printer:

Before UPDATE,

Before-Update

After UPDATE.

After-Update

  • For Marlin flash, all you need is the firmware file at the root of your SDCard.

7.3.3 📺Reset TFT screen

Stock Screen: with GCode command "M995" via terminal or press and hold (3sec) bottom left to start screen calibration.

BTT TFT screen:Put on your SD card a text file named "reset" with the file-extension "txt. Place in your printer and power on your TFT screen.

7.3.4 RaspBerry

rpi-serial-console

Link to explanation Connection_SERIAL

7.3.5 Wiring of the effector part

Here is the wiring of the whole effector of a QQS-Pro printer.

QQSP-Wiring

7.3.6 Fix for the Stock extruder

Many users encounter problems with their SuperRacer BMG extruder and replace it with another. Here are some simple tips for solving filament guiding and PTFE tube mounting problems.

  • Add washers (green circle) to the locking gear shaft to eliminate gear backlash.

  • Chamfer the end of the PTFE tube (blue circle) at 60° with a cutter blade to improve filament glide (purple arrows).

  • The PTFE tube should protrude slightly (orange circle) from the aluminum block to ensure good contact with the BMG block during reassembly.

BMG-Fix

7.3.7 Wiring for stepper motor

Stepper motor wiring on FLSun is standardized by color: 1->1A=Black, 2->2A=Green,3->1B=Red,4->2B=Blue.

The order on the connector is therefore Black, Green, Red, Blue, as on the stock wiring.

If you want to reverse the direction of the stepper motor, the order on the connector is: Blue, Red, Green, Black.

Here is the wiring for a DirectDrive system with LDO motor 36STH17.

LDO-Wiring

Note: You can also reverse the direction of the stepper motor by reversing the order of the wires, as if you were turning the connector 180°.

7.4.🔨Build your own firmware

(Prefer the stable FLSUN branch on my GitHub)

1- Download VSC (VisualStudioCode), run the installation and after add the Platformio extension and install it.

2- Download the ZIP pack of the latest stable version of Marlin 2.1.x (.zip) from the "FLSUN" branch or my latest released version for FLSun Deltas. Unzip it wherever you want.

3- Go to VSC and load Platformio (PIO Home) and declare by "Quick Access" a new "open project", then choose the Marlin directory you have unzipped.

4- On the vertical banner on the left of the window, choose the first icon (Explore). You have a file architecture that corresponds to your previously unzipped directory. Choose the file platformio.ini which is the starting point of a compilation.

MenuVSC-VSC

5- Define the used environment for example

  • QQS-Pro => "env = flsun_hispeedv1".
  • Q5v1.2 => "env = mks_robin_nano_v1v2".
  • Q5v1.3 => "env = mks_robin_nano_v1_3_f4
  • SR-NanoV3.0 => "env = mks_robin_nano_v3_usb_flash_drive_msc".
  • SR-NanoV3.1 => "env = mks_robin_nano_v3_1_usb_flash_drive_msc".
  • SR-Skr13 => "env = LPC1768

MenuVSC-VSC1

6- Modify the file FLSUNQ_Config.h to add/modify/remove other parameters (read the comments to enable or disable the functions). Active functions start with "#Define xxxx" and they are disabled by adding "//" in front of the line.

MenuVSC-VSC2

7- Start the creation of your firmware by clicking on the "V" icon at the bottom of the VSC window.

MenuVSC-VSC3

8-📦️If you succeeded (result message in green), you will find the firmware in the directory (dot.pio/build/NAME_OF_ENV/) at the root of the source directory.

  • QQS-Pro => "env = flsun_hispeedv1/Robin_mini.bin".
  • Q5v1.2 => "env = mks_robin_nano_v1v2/Robin_nano.bin".
  • Q5v1.3 => "env = mks_robin_nano_v1v2/Robin_nano35.bin".
  • SR-NanoV3.0 => "env = mks_robin_nano_v3_usb_flash_drive_msc/Robin_nano_v3.bin".
  • SR-NanoV3.1 => "env = mks_robin_nano_v3_1_usb_flash_drive_msc/Robin_nano_v3.bin".
  • SKR_Family => "env = environment SKR/firmware.bin".

MenuVSC-VSC4

7.5. Slicers

Resume printing for multiple files => merge it into one and rename with max 22characters name.

  • PAUSE with PrusaSlicer:

    The pause works great on Marlin and not just the filament change (M600). By the menu or by the slicer by inserting the GCodes "M1 click to continue" or "M125 L2" (Pause Park and retract 2mm)

    M125 [L] [P] [X] [Y] [Z]

For users who print by SD card, you insert M25 (Pause SD Print)

info links:

Command M125

Command M25

PS-Pause

  • Another tip for the user who does not use Octoprint but the Mks_Wifi module to send these print files to the printer. You can use this script with PrusaSlicer, "Print Settings" tab, "Output Options" field "Post processing".

The link and all the info => MKS-WIFI_PS

7.6.🥅The leveling

Some people add the command "M420 S1" after the command G29. This command is often used with the ABL leveling mode and allows to activate the bed level correction. In fact, it is used to memorize in slot "1", the mesh made by G29.

In my firmware we use the UBL leveling mode, the bed correction is activated as soon as we make a G28 with the last used mesh.

To load/change the mesh we are going to use, we use the command G29 L(1/2/3).

Either we put it in the general start GCode (Cura/Prusa) or in the filament start GCode (Prusa). This is more logical because it corresponds to the choice of filament used (PLA, PETG, ABS, TPU, ....).

📌Note: The leveling of the mesh bed is based on the SQUARE and we have a CIRCLE so we will always be missing inaccessible points. That's why we fill these points with values identical to the closest values of these points.

Example: 8 points mesh on my firmware => 8x8 = 64 points (square) but only 32 points can be used/probed.

if you choose 10 points mesh, you have 10x10= 100points(square)= 53points (circle).

MeshOnDelta

📌TIPS-LEVELLING

  • Starting with V2.0.10, the mesh locations in the "Special Delta" menu have changed: 0=Default, 1=PLA, 2=PET and 3=ABS/ASA. Don't forget to use the right number to load your leveling (G29 L1/2/3) in your slicer.

  • You have 4 locations: so you can save (G29 Sx) different meshes at different bed temperature. (ie: 0 for Default or last used, 1 for PLA, 2 for PETG, 4 for FLEX, etc. ) and call them back when you slice from the PLA by command "G29 L0" in the startGCode* of your filament. (*=PrusaSlicer).

📌TIPS-BABYSTEPPING

To adjust or refine your ideal layer height, you can use the BABYSTEPPING function during the first few lines of printing. To do this you have three methods available:

  • By double tapping on the screen: once on the "Gear" icon and then a second time on the "status info" line quickly. You get the adjustment screen.
  • By tapping on the center bar "X.. Y...Z... "You get the movement screen where only the "Z_OffSet" adjustment is available.
  • By tapping on the "Gear" icon and then the "Tune/Probe Z_OffSet" menu.

7.7. GCodes_Tips

You can use the output of the M503 command from a terminal/console to record information about your settings in a text file. Some lines of the GCode can be reused after a reset of your EEPROM to reduce the time of some settings like eStep or the nozzle or bed PID.

The "M115" command also allows you to see the active options entered in your firmware.

Here are some useful GCodes commands:

If the SD card isn't fast enough to write the recovery PLR file (Prefer a Class10 card for this).

  • Problem with SD card recovery:

M413 S0 ; Disable the power loss.

  • Extruder, steps per unit:

M92 Zxxx ; Adjust your eSteps.

  • Z-Probe Offset:

M851 Z-16.20 ; (mm)

  • Stepper driver current (Only TMC UART mode):

M906 X980 Y980 Z980 ; Adjust your current to XYZ

M906 T0 E380 ;Adjust your current to Extruder

  • Driver stepping mode:

M569 S1 X Y Z ; Enable silent mode or S0 to disable this mode.

M569 S1 T0 E ; Enable silent mode for extruder

  • Filament load/unload lenght:

M603 L60.0000 U110.0000 ; (mm)

  • Filament runout sensor:

M412 S1 D190.0 ; Activate the sensor and continue the extrusion for 190mm (distance between sensor and extruder)

  • UI Language:

M414 S0 ; Choose your langage (0:En, 1:Fr, 2:De, 3:Es, 4:It)

7.8. Finishing touch✨

  • ======♻️======PLA=========♻️========

    Smooth with methylene chloride.

    Methylene chloride is highly toxic,

    Be sure to read the instructions before using this chemical.

  • ======♻️======ABS=========♻️========

    Smooth with Acetone.

    ACETONE vapors are toxic,

    Be sure to read the instructions before using this chemical.


🚸Go_To_Home 🚸Go_To_Index


Clone this wiki locally