Weedo X40 Firmware for professional users (X40 PRO)

Actually, the plan for the X40 community project was to use the original Weedo firmware. Since Weedo has still not released a satisfactory firmware after more than 6 months of waiting, I did it myself. The X40 community firmware is only used to operate the printer with an original Cura and the X40 community Cura configuration. It may therefore not be possible to use the Weedo Slicer with this firmware.


The use of the community firmware is at your own risk. There is no liability whatsoever for any damage! 



X40 PRO is intended for professional users such as mechanical engineers, designers, model maker and experienced users who want to use the newest Ultimaker Cura version with the Weedo X40.

3D printing beginners should first use the Weedo X40 with the Stock Firmware 1.2.5 or newer and the Weedo Cura to learn how to print and use Cura properly. A direct entry into X40 PRO can overwhelm beginners, since e.g. a printer calibration is required to achieve good print results.


Printer and Release designation

To make it clear that this is a special firmware for a Weedo X40 with the X40 community cooling system for the Ultimaker Cura Slicer, the device is displayed as X40V1 PRO or X40V2 PRO BMG. See Machine information on the printer.


X40 PRO definition


X40 PRO BMG definition

  • X40 PRO definition and BMG Extruder upgrade with X40 PRO BMG firmware
    The BMG firmware variant cannot be used together with the Weedo X40 extruder because the direction of rotation of the right extruder has been reversed for the BMG! The range of functions is identical to the standard version for the Weedo extruder. With Slicer, no change is necessary for the BMG variant. Use the Ultimaker Cura Weedo X40 PRO configuration.


X40 PRO HT definition


X40 PRO BMG HT definition


In order to be able to understand the software status, the release number is given as follows:

Weedo Release. X40 PRO Community Release =>



X40 PRO / X40 PRO BMG / X40 PRO HT / X40 PRO BMG HT firmware advanced feature

(Optimized firmware for Ultimaker Cura)

  • Heating failed error has been fixed by changing settings
  • Auto bed leveling has been optimized
  • Waiting over the print object when changing the extruder has been fixed with new M922 and M923 commands (problem only when using Ultimaker Cura). The nozzle now waits in the park position and the nozzle is cleaned by moving it left and right over the brush. With the M922 you can switch off the filament pre extrusion and use a prime tower.
  • Z baby steps in 0.02mm steps instead of 0.05mm
  • Speed settings are adjustable from 25% to 400%
  • Filament type selection has been expanded and provided with temperature information. Filament feed speed has been reduced.
  • Z offset steps are now possible in 0.04 mm steps. After setting the Z offset, the print head now moves back to the park position.
  • Default feedrate bug fixed
  • At the request of some users, the G2/G3 command has been enabled.
    To use the line pieces must be converted to an arc. You can use the Cura plugin or Octopi to do this. According to the Marlin changelog, various changes were made to the G2/G3 command after the Marlin version used by Weedo. Among other things, a division by zero has been fixed. It is therefore possible that the printer hangs due to the G2/G3 commands.
    If you want to have the errors fixed, you can send me a corresponding patch.
  • Linear Advance is enabled but doesn't work with TMC2208 driver.
  • The M0 command for a pause has been integrated (only works via the MicroSD card!). With the help of the pause function you can e.g. embed a nut for a blind hole thread.
  • The display of firmware parameters has been expanded
  • The firmware parameter backup function has been expanded. All important printer parameters are now saved on the MicroSD card. The data should be backed up before each firmware update.
  • German translation has been revised
  • The BMG variant enables the use of a BMG extruder, which generates significantly more power and the filament no longer slips through or the nozzle does not clog as quickly. Due to the gear ratio on the extruder, the filament can be guided more precisely and the printing result is improved.
  • The printer self-test is now disabled by default and can be re-enabled if required.
  • The XYZ axis has been calibrated, allowing for more accurate prints. AddNorth E-PLA was used as reference material (flow 100%). With all other Cura printing profiles, the flow may be adjusted so that an accurate parts comes out. Please calibrate the Weedo X40 printer for accurate prints.
  • 5 x 5 Points bed leveling
  • Z-offset is useing the EEPROM data for mesh
  • Enable/Disable Runout sensor via gcode is fixed
  • The HT (High Temperature) version enables printing temperatures up to 280°C, for example PA or PC Filament. With the HT version, the material selection has been changed for the material feed. Temperatures from 200°C to 280°C are now available




To install the X40 community firmware, you need a PC with a Windows operating system. Download the firmware and flashing software. Unzip the flashing software and install the CH341 driver. Connect the PC and printer with a suitable USB cable. Turn on the printer and start the flashing software. Open the firmware file, click on Update and start uploading the firmware. Wait until the printer has restarted before closing the software. In order to be able to use the original Weedo firmware again, you must import the firmware X40_V1.2.0_Community_to_Official.bin in the same way. Copy the flash.wfm file to the microSD card and to the update again. It is now possible to update the Weedo firmware via the microSD card again. 


Weedo X40 Hardware Version

In version 1, the Y-rails end in front of the control panel. With version 2 the Y-rails end above the control panel, see picture.

  • X40 V1: The first mass production version (Kickstarter Version). The production time is from November 2020 to June 2021.
  • X40 V2: The second production version. The production batch start from July 2021. The length in the Y-axis direction has been shortened. The Y-axis coordinate has been changed from (-2,310) to (-11,303).
  • X40 V3: In the V3 version, the Heatbrake was exchanged for a bimetal version compared to the V2 version and the possible printing temperature was increased. The V2 firmware should therefore also work with the V3 hardware, but the nozzle temperature is limited to a maximum of 260°C by the X40 PRO firmware.

If the BMG Extruder upgrade is installed, then an X40 PRO BMG firmware variant must be use. With the BMG variant, not only the E-Steps for the gear ratio are adjusted, but also the direction of rotation because of the mirrored extruders.



Before updating the firmware, please check the information on your printer :

  • Device Name: X40, X40V1, X40 PRO or X40V1 PRO or X40V1 PRO BMG=> Hardware Version 1
  • Device Name: X40V2 or X40V2 PRO or X40V2 PRO BMG=> Hardware Version 2

Please use the correct firmware version for your hardware, otherwise it may be damaged! Support only for X40 Community member!


Weedo X40 V1 PRO (with default Weedo Extruder)

  • Weedo X40 Flashing Software and Driver (Only for Windows)
  • X40 V1 PRO Firmware (only for X40-Community member)
  • X40 V1 PRO Firmware (only for X40-Community member)
  • X40 V1 PRO Firmware (only for X40-Community member)
  • X40 V1 PRO Firmware (only for X40-Community member)
  • X40 V1 PRO Firmware (only for X40-Community member)
  • X40V1_1.2.5_Community_to_Official Firmware (Only required if you want to switch back to the Weedo 1.2.5 stock firmware) 


Weedo X40 V2 PRO (with default Weedo Extruder)

  • Weedo X40 Flashing Software and Driver (Only for Windows)
  • X40 V2 PRO Firmware (only for X40-Community member)
  • X40 V2 PRO Firmware (only for X40-Community member)
  • X40 V2 PRO Firmware (only for X40-Community member)
  • X40 V2 PRO Firmware (only for X40-Community member)
  • X40 V2 PRO Firmware (only for X40-Community member)
  • X40V2_1.2.5_Community_to_Official Firmware (Only required if you want to switch back to the Weedo 1.2.5 stock firmware) 


Weedo X40 V1 PRO BMG  (with BMG Extruder upgrade)

  • X40 PRO BMG Firmware (only for X40-Community member)
  • X40 PRO BMG Firmware (only for X40-Community member)
  • X40 PRO BMG Firmware (only for X40-Community member)
  • X40 PRO BMG Firmware (only for X40-Community member)


Weedo X40 V2 PRO BMG (with BMG Extruder upgrade)

  • X40 PRO BMG Firmware (only for X40-Community member)
  • X40 PRO BMG Firmware (only for X40-Community member)
  • X40 PRO BMG Firmware (only for X40-Community member)
  • X40 PRO BMG Firmware (only for X40-Community member)



Download High Temperature Version (HT)

Attention, for the high temperature version a conversion of the hotend is necessary. The stainless steel heat brake from Weedo is not suitable for temperatures above 260°C, as the PTFE decomposes with highly toxic gases from 260°C.
Please see X40 PRO High Temperature upgrade


Weedo X40 V1 PRO HT (with default Weedo Extruder and X40 PRO High Temperature upgrade)

  • X40 V1 PRO HT Firmware


Weedo X40 V2 PRO HT (with default Weedo Extruder and X40 PRO High Temperature upgrade)

  • X40 V2 PRO HT Firmware


Weedo X40 V1 PRO BMG HT  (with BMG Extruder upgrade and X40 PRO High Temperature upgrade)

  • X40 V1 PRO BMG HT Firmware


Weedo X40 V2 PRO BMG HT  (with BMG Extruder upgrade and X40 PRO High Temperature upgrade)

  • X40 V2 PRO BMG HT



Source code

The source code will be published on github at the end of the project. You don't have to write to me either, the intermediate results will only be published as a bin file in the cloud.



Changelog X40 PRO / X40 PRO BMG / X40 PRO HT / X40 PRO BMG HT Firmware

Test Version Beta 2 (not public)

  • Linear Advanced disabled and removed from parameter list. Linear Advanced doesn't work with the installed TMC2208 driver.
  • Add PID to parameter list and backup function. Please note that the firmware uses the parameters from the left hotend (T0) for both hotends.



  • Added High Temperature (HT) variants (280-300°C). The material menu for the material feed has been revised for the HT variants.
  • Runout Sensor control via gcode command fixed. The Runout function from the new Cura plugin 1.1 works now.
  • With the Z-Offset Tune function, the automatic bed leveling is replaced by the measurement data from the EEPROM.



  • The reference coordinate system was shifted slightly to the right so that the right print head can move to X0 without colliding. The fix results in a new offset value. The nominal offset is no longer 353mm, but 347mm. Please don't forget to change the X offset by 5mm, otherwise the dual mode will not work. Also, the new park position of the left extruder is X-53. Cura 5.0.0 approaches X0 Y0 with some dual mode prints, which is not possible without the fix. When using the firmware, the Cura start code must be adjusted! The parking position X-47 needs to be changed to X-53.

  • The corresponding parameters were adjusted against the heating failed error in dual mode with two filaments with a printing temperature of 260°C.
  • Bed leveling extended from 3x3 to 5x5 measuring points. With the additional measuring points, the printer can better compensate for the inaccuracy of the printing bed and this improves the adhesion of the first layer, especially with large prints.
  • The correction adjustment to the center point has been removed from the bed leveling display. The display thus corresponds to the mesh data from the EEPROM.
  • English translation has been slightly revised
  • Manual bed leveling has been optimized
  • Unnecessary bed leveling has been removed from Z Offset and replaced with M420 S1
  • Bed Leveling crash after feeding with the right nozzle is fixed



  • Fine tuning against heating failed error
  • Adjusted default values for axis steps
  • Unnecessary movements during bed leveling reduced
  • The parameter backup function has been expanded. All important parameters (M218, M851, M92, M201, M203, M204; M907) are now saved from the printer on the MicroSD card. Your printer calibration is secured!



  • Fine tuning against heating failed error
  • Calibration fine tuning of the XYZ-axis . The 20mm reference cube with the AddNorth E-PLA reference material now maintains the edge length of 20mm +/- 0.05mm.
  • In the firmware parameter display, the Linear Advance value has been changed to two decimal places
  • Swap prime speed (TOOLCHANGE_FIL_SWAP_PRIME_SPEED ) decresed from 600mm/m to 200mm/m
  • Selftest disabled by default
  • German translation from the selftest revised
  • Added new variant for the BMG extruder (X40 PRO BMG)
  • On the file information page, the incorrectly calculated weight was replaced by the start extruder. In order to complete the File Information page, corresponding parameters were entered in the current Cura X40 PRO configuration.
    T0 = Left Extruder

    T1 = Right Extruder

    For more information see X40 PRO Cura parameters for File Information



  • Feature und bug fixes from Weedo 1.2.5 release integrated
  • Speed settings extended to 25% to 400%
  • Nozzle temperature limited to 260°C (Against heating failed error) 
  • Thermal protection parameters fine tuning
  • Print acceleration changed to 800mm/s/s and jerk to 8
  • Calibration of the Z-axis changed (reference cube was not 20mm high, Command M92) 
  • Multiple nozzle wipes function optimized
  • The display of the firmware parameters has been expanded. The backup function is unchanged.



  • Pause Command M0 add. With the M0 command in the gcode, the pause function is called up by the touch display. The printing is stopped and the print head moves to the park position. Simply use the touch display to continue printing. With the pause function you can, for example, insert a nut into the print and embed it. The command only works by printing from the microSD card!
  • Fix german translation
  • The linear advance feature has been enabled (Default K-Factor 0.0). Linear Advance improves the print quality at edges and corners. To use it, the M900 command must be inserted in the g-code. The easiest way to do this is with the Cura plugin "Linear Advance Settings". How to determine the correct K-factor can be found on the Marlin Linear Advance homepage.
    It is planned to provide the X40 community print profiles for Cura with a tested K-factor later.
    Here a Youtube Video about Linear Advance
  • G2/G3 command enabled
  • The thermal protection parameters have been refined (The heating failed error reappeared unexpectedly).
  • Default max feedrate from the Z-axis changed to 120



  • The thermal protection parameters have been refined. New PID parameters against the Heating Failed Error have been added (with X40 Community coolingsystem).
  • When using the original Ultimaker Cura g-code, the extruder is no longer heated over the print object, but in the park position (patch by Ronny)
  • Added M922 and M923 commands to control the purging (Patch from Ronny). M922 is usefull is you want to use a purgetower without using the wipers of the X40.
    M922 S0/S1 - Turn automatic filament extrusion Off/On (S1 is the default behavior of the original Printer).
    M923 S0/S1 - Turn multiple nozzle wipes Off/On (S0 is default for Weedo, S1 is default FW)
    To activate, simply insert the commands M922 S1 and M923 S1 into the g-code or send the commands via Octopi. For permanent activation or deactivation, you can also insert the commands into the Cura start code.


  • PID parameters and extruder calibration adapted to the X40-Community Cura project. The PID and extruder calibration in the start code can therefore be omitted.
  • The thermal protection parameters have been revised. It is now possible to use the print bed up to 80°C without "Heating failed" occurring. If necessary, 90°C can also be used for the first layer. Complete printing with a 90°C print bed should not be carried out for reasons of stability. Unfortunately, the Heating Failed Error cannot be eliminated 100% because the power supply unit is too weak. The error is no longer as severe as with Weedo. You get a Heating Failed Error if a print with 260 ° C nozzle temperature and 80 ° C heating bed is canceled and a new one is started shortly afterwards. Let the printer cool down a little before you start printing again. 
  • Z offset steps reduced to 0,04mm. After setting the Z offset, the printhead moves back to the parking position.
  • The temperature information when changing the filament has been changed and expanded. So that the soft TPU filament does not click off, it is extruded more slowly.

  • The spread of the speed setting has been reduced.

  • German translations optimized
  • Z Babysteps reduced to 0,02mm


Known bugs

Please note that we cannot fix all errors that the UI is closed source. Some errors can therefore only be fixed by Weedo. A change / extension of the graphical user interface is not possible!

  • Some texts in the UI are cut off. We can only shorten the texts. It is not possible to change the UI. Unfortunately, ÖöÄä does not work with German texts, so oe etc. is used.
  • The G2/G3 implementation most likely contains bugs from the Marlin release.
  • The Weedo and X40 PRO firmware is not good at handling gcode from Linux, MacOS. Then the preview image and the additional information such as layer height etc. are not displayed. But printing works. The error can be fixed by converting gcode unix2dos. The conversion is also integrated in the Cura Thumbnail plugin.
  • Linear Advance doesn't work properly because the Weedo X40 uses the TMC 2208 drivers and Marlin 2.0.5 can't handle it. The problem was recognized and there is also a patch that would have to be integrated into the firmware.



Joomla templates by a4joomla