diff --git a/.github/workflows/build_multiple.yaml b/.github/workflows/build_multiple.yaml index 316a4f770a65..8e25cb081009 100644 --- a/.github/workflows/build_multiple.yaml +++ b/.github/workflows/build_multiple.yaml @@ -24,7 +24,7 @@ jobs: # and empty/commit the builds directory. basic: - name: "Build: Basic ${{ matrix.lang }}" + name: "Build: Basic ${{ inputs.null }}" strategy: fail-fast: false matrix: @@ -55,7 +55,7 @@ jobs: secrets: inherit en: - name: "Build: en" + name: "Build: en ${{ inputs.null }}" if: ${{ github.event_name == 'release' }} needs: basic strategy: @@ -98,7 +98,7 @@ jobs: secrets: inherit fr: - name: "Build: fr" + name: "Build: fr ${{ inputs.null }}" if: ${{ github.event_name == 'release' }} needs: basic strategy: @@ -134,7 +134,7 @@ jobs: secrets: inherit de: - name: "Build: de" + name: "Build: de ${{ inputs.null }}" if: ${{ github.event_name == 'release' }} needs: basic strategy: @@ -201,7 +201,7 @@ jobs: secrets: inherit # lesimprimantes3d: - # name: "Build: lesimprimantes3d" + # name: "Build: lesimprimantes3d ${{ inputs.null }}" # if: ${{ github.event_name == 'release' }} # needs: basic # strategy: diff --git a/.github/workflows/build_single.yaml b/.github/workflows/build_single.yaml index 948d6ce317d6..a6828d49a04d 100644 --- a/.github/workflows/build_single.yaml +++ b/.github/workflows/build_single.yaml @@ -179,8 +179,8 @@ jobs: (inputs.head != 'STD' && '-') || '', (inputs.head != 'STD' && inputs.head) || '', (inputs.experiment != 'NONE' && '-EXPERIMENTAL-') || '', - (inputs.experiment != 'NONE' && inputs.experiment) || '', - '.hex') }} + (inputs.experiment != 'NONE' && inputs.experiment) || '' + }} name: "Build: ${{ (inputs.screen == 'NONE' && 'nolcd') || inputs.lang }} ${{ (inputs.screen != 'NONE' && inputs.screen != 'STD' && inputs.screen) || '' }} @@ -245,7 +245,7 @@ jobs: uses: actions/upload-artifact@v4 # https://github.com/marketplace/actions/upload-a-build-artifact with: - name: ${{ env.BUILD_FILE }} + name: ${{ env.BUILD_FILE }}.hex path: .pio/build/mega2560/${{ env.BUILD_FILE }}.hex compression-level: 9 if-no-files-found: error diff --git a/.gitignore b/.gitignore index 6a7b0807a0ea..c36ba3fcce2e 100755 --- a/.gitignore +++ b/.gitignore @@ -170,3 +170,4 @@ tags *.bak *.zip /*.pdf +!/docs/*.pdf \ No newline at end of file diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 14c7aeedec1e..d1323d21ace3 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -840,7 +840,7 @@ #if TEMP_SENSOR_BED #define TEMP_BED_RESIDENCY_TIME 10 // (seconds) Time to wait for bed to "settle" in M190 - #define TEMP_BED_WINDOW 1 // (°C) Temperature proximity for the "temperature reached" timer + #define TEMP_BED_WINDOW 3 // (°C) Temperature proximity for the "temperature reached" timer #define TEMP_BED_HYSTERESIS 3 // (°C) Temperature proximity considered "close enough" to the target #endif @@ -938,9 +938,17 @@ #define DEFAULT_Kd_LIST { 114.00, 114.00 } #else // Dagoma DiscoEasy200 hotend E3D-v6 1,75mm - #define DEFAULT_Kp 32.48 - #define DEFAULT_Ki 6.40 - #define DEFAULT_Kd 41.25 + + // Dagoma values (from before PID autotuning) + // #define DEFAULT_Kp 32.48 + // #define DEFAULT_Ki 6.40 + // #define DEFAULT_Kd 41.25 + + // Discussion on how following values were obtained at: + // https://github.com/Marlin-DE200/Marlin-DiscoEasy200/wiki/Hotend:Bed-PID-Tuning + #define DEFAULT_Kp 64.3 + #define DEFAULT_Ki 12.6 + #define DEFAULT_Kd 81.8 #endif #else #define BANG_MAX 255 // Limit hotend current while in bang-bang mode; 255=full current @@ -959,7 +967,7 @@ #define MPC_AUTOTUNE_MENU // Add MPC auto-tuning to the "Advanced Settings" menu. (~350 bytes of flash) #define MPC_MAX 255 // (0..255) Current to nozzle while MPC is active. - #define MPC_HEATER_POWER { 40.0f } // (W) Heat cartridge powers. + #define MPC_HEATER_POWER { 30.0f } // (W) Heat cartridge powers - E3D v6 24v 1.75mm bowden. #define MPC_INCLUDE_FAN // Model the fan speed? @@ -1019,8 +1027,9 @@ * * With this option disabled, bang-bang will be used. BED_LIMIT_SWITCHING enables hysteresis. */ -//#define PIDTEMPBED - +#if ENABLED(DE200_WARPING_BED_ANY) + #define PIDTEMPBED +#endif #if ENABLED(PIDTEMPBED) //#define MIN_BED_POWER 0 //#define PID_BED_DEBUG // Print Bed PID debug data to the serial port. @@ -2163,9 +2172,9 @@ // With multiple runout sensors use the %c placeholder for the current tool in commands (e.g., "M600 T%c") // NOTE: After 'M412 H1' the host handles filament runout and this script does not apply. #if ENABLED(DE200_EXTRUDER_BICOLOR) - #define FILAMENT_RUNOUT_SCRIPT "M600 T%c I-1 U5 V195 X195 Y195" + #define FILAMENT_RUNOUT_SCRIPT "M600 T%c #else - #define FILAMENT_RUNOUT_SCRIPT "M600 I-1 U5 V195 X195 Y195" + #define FILAMENT_RUNOUT_SCRIPT "M600" #endif // After a runout is detected, continue printing this length of filament @@ -2307,7 +2316,8 @@ #define MESH_TEST_BED_TEMP 60 // (°C) Default bed temperature for G26. #define G26_XY_FEEDRATE 40 // (mm/s) Feedrate for G26 XY moves. #define G26_XY_FEEDRATE_TRAVEL 90 // (mm/s) Feedrate for G26 XY travel moves. - #define G26_RETRACT_MULTIPLIER 5.0 // G26 Q (retraction) used by default between mesh test elements. + // E3D v6 retraction must be < 5mm according to datasheet. + #define G26_RETRACT_MULTIPLIER 4.0 // G26 Q (retraction) used by default between mesh test elements. #endif #endif @@ -2601,7 +2611,7 @@ #if ENABLED(NOZZLE_PARK_FEATURE) // Specify a park position as { X, Y, Z_raise } - #define NOZZLE_PARK_POINT { (X_MAX_POS - 10), (Y_MAX_POS - 10), 20 } + #define NOZZLE_PARK_POINT { (X_MIN_POS), (Y_MAX_POS - 10), 20 } #define NOZZLE_PARK_MOVE 0 // Park motion: 0 = XY Move, 1 = X Only, 2 = Y Only, 3 = X before Y, 4 = Y before X #define NOZZLE_PARK_Z_RAISE_MIN 2 // (mm) Always raise Z by at least this distance #define NOZZLE_PARK_XY_FEEDRATE 100 // (mm/s) X and Y axes feedrate (also used for delta Z axis) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index a154f378b3d8..8e0716002dd7 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -726,7 +726,9 @@ // If you want endstops to stay on (by default) even when not homing // enable this option. Override at any time with M120, M121. -//#define ENDSTOPS_ALWAYS_ON_DEFAULT +#if ALL(SDSUPPORT, DE200_SCREEN_NONE) + #define ENDSTOPS_ALWAYS_ON_DEFAULT +endif // @section extras @@ -1664,9 +1666,11 @@ * This feature is enabled with 'M540 S1' or from the LCD menu. * Endstops must be activated for this option to work. */ - //#define SD_ABORT_ON_ENDSTOP_HIT + #if ENABLED(DE200_SCREEN_NONE) + #define SD_ABORT_ON_ENDSTOP_HIT + #endif #if ENABLED(SD_ABORT_ON_ENDSTOP_HIT) - //#define SD_ABORT_ON_ENDSTOP_HIT_GCODE "G28XY" // G-code to run on endstop hit (e.g., "G28XY" or "G27") + #define SD_ABORT_ON_ENDSTOP_HIT_GCODE "G27" // G-code to run on endstop hit (e.g., "G28XY" or "G27") #endif //#define SD_REPRINT_LAST_SELECTED_FILE // On print completion open the LCD Menu and select the same file @@ -2475,7 +2479,7 @@ * Currently handles M108, M112, M410, M876 * NOTE: Not yet implemented for all platforms. */ -//#define EMERGENCY_PARSER +#define EMERGENCY_PARSER // Enabled to support Host Action Command Prompt responses /** * Realtime Reporting (requires EMERGENCY_PARSER) @@ -2558,7 +2562,7 @@ #define MIN_AUTORETRACT 0.1 // (mm) Don't convert E moves under this length #define MAX_AUTORETRACT 10.0 // (mm) Don't convert E moves over this length #endif - #define RETRACT_LENGTH 3 // (mm) Default retract length (positive value) + #define RETRACT_LENGTH 4 // (mm) Default retract length (positive value) #define RETRACT_LENGTH_SWAP 13 // (mm) Default swap retract length (positive value) #define RETRACT_FEEDRATE 45 // (mm/s) Default feedrate for retracting #define RETRACT_ZRAISE 0 // (mm) Default retract Z-raise @@ -2681,45 +2685,45 @@ #define PAUSE_PARK_RETRACT_FEEDRATE 60 // (mm/s) Initial retract feedrate. #define PAUSE_PARK_RETRACT_LENGTH 4.5 // (mm) Initial retract. // This short retract is done immediately, before parking the nozzle. - #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 66 // (mm/s) Unload filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_UNLOAD_FEEDRATE 100 // (mm/s) Unload filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_UNLOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. #define FILAMENT_CHANGE_UNLOAD_LENGTH 950 // (mm) The length of filament for a complete unload. // For Bowden, the full length of the tube and nozzle. // For direct drive, the full length of the nozzle. // Set to 0 for manual unloading. - #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE 10 // (mm/s) Slow move when starting load. + #define FILAMENT_CHANGE_SLOW_LOAD_FEEDRATE 5 // (mm/s) Slow move when starting load. #define FILAMENT_CHANGE_SLOW_LOAD_LENGTH 40 // (mm) Slow length, to allow time to insert material. // 0 to disable start loading and skip to fast load only - #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 6 // (mm/s) Load filament feedrate. This can be pretty fast. + #define FILAMENT_CHANGE_FAST_LOAD_FEEDRATE 50 // (mm/s) Load filament feedrate. This can be pretty fast. #define FILAMENT_CHANGE_FAST_LOAD_ACCEL 25 // (mm/s^2) Lower acceleration may allow a faster feedrate. #define FILAMENT_CHANGE_FAST_LOAD_LENGTH 840 // (mm) Load length of filament, from extruder gear to nozzle. // For Bowden, the full length of the tube and nozzle. // For direct drive, the full length of the nozzle. //#define ADVANCED_PAUSE_CONTINUOUS_PURGE // Purge continuously up to the purge length until interrupted. #define ADVANCED_PAUSE_PURGE_FEEDRATE 2 // (mm/s) Extrude feedrate (after loading). Should be slower than load feedrate. - #define ADVANCED_PAUSE_PURGE_LENGTH 50 // (mm) Length to extrude after loading. + #define ADVANCED_PAUSE_PURGE_LENGTH 2 // (mm) Length to extrude after loading. // Set to 0 for manual extrusion. // Filament can be extruded repeatedly from the Filament Change menu // until extrusion is consistent, and to purge old filament. #define ADVANCED_PAUSE_RESUME_PRIME 0 // (mm) Extra distance to prime nozzle after returning from park. - //#define ADVANCED_PAUSE_FANS_PAUSE // Turn off print-cooling fans while the machine is paused. + #define ADVANCED_PAUSE_FANS_PAUSE // Turn off print-cooling fans while the machine is paused. // Filament Unload does a Retract, Delay, and Purge first: - #define FILAMENT_UNLOAD_PURGE_RETRACT 13 // (mm) Unload initial retract length. + #define FILAMENT_UNLOAD_PURGE_RETRACT 10 // (mm) Unload initial retract length. #define FILAMENT_UNLOAD_PURGE_DELAY 5000 // (ms) Delay for the filament to cool after retract. - #define FILAMENT_UNLOAD_PURGE_LENGTH 8 // (mm) An unretract is done, then this length is purged. + #define FILAMENT_UNLOAD_PURGE_LENGTH 30 // (mm) An unretract is done, then this length is purged. + // Dagoma FILAMENTCHANGE_AUTO_INSERTION_PURGE_LENGTH #define FILAMENT_UNLOAD_PURGE_FEEDRATE 25 // (mm/s) feedrate to purge before unload #define PAUSE_PARK_NOZZLE_TIMEOUT (5*60) // (seconds) Time limit before the nozzle is turned off for safety. #define FILAMENT_CHANGE_ALERT_BEEPS 10 // Number of alert beeps to play when a response is needed. #define PAUSE_PARK_NO_STEPPER_TIMEOUT // Enable for XYZ steppers to stay powered on during filament change. - //#define FILAMENT_CHANGE_RESUME_ON_INSERT // Automatically continue / load filament when runout sensor is triggered again. #if ENABLED(DE200_EXTRUDER_PLUS) #define FILAMENT_CHANGE_RESUME_ON_INSERT // Automatically continue / load filament when runout sensor is triggered again. #endif //#define PAUSE_REHEAT_FAST_RESUME // Reduce number of waits by not prompting again post-timeout before continuing. - //#define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. + #define PARK_HEAD_ON_PAUSE // Park the nozzle during pause and filament change. //#define HOME_BEFORE_FILAMENT_CHANGE // If needed, home before parking for filament change #define FILAMENT_LOAD_UNLOAD_GCODES // Add M701/M702 Load/Unload G-codes, plus Load/Unload in the LCD Prepare menu. @@ -3893,7 +3897,7 @@ */ #define HOST_ACTION_COMMANDS #if ENABLED(HOST_ACTION_COMMANDS) - //#define HOST_PAUSE_M76 // Tell the host to pause in response to M76 + #define HOST_PAUSE_M76 // Tell the host to pause in response to M76 //#define HOST_PROMPT_SUPPORT // Initiate host prompts to get user feedback #if ENABLED(HOST_PROMPT_SUPPORT) //#define HOST_STATUS_NOTIFICATIONS // Send some status messages to the host as notifications diff --git a/README.md b/README.md index 6900c916ae40..3fa1bf860f4e 100644 --- a/README.md +++ b/README.md @@ -4,20 +4,22 @@ This repo is a fork of the Marlin repo configured specifically for various versi The intention is to support all Dagoma versions of the DiscoEasy200 including: +* Screen / No screen (Dagoma screen is assumed - other screens may be supported in the future) * Bicolor * Extruder+ (with a filament sensor) -* No screen (Dagoma screen is assumed - other screens may be supported in the future) * Black thermistor (white is assumed) -* Trapezoidal z-screws +* Expert pack - Trapezoidal z-screws * XL * English, French & German languages -* Arc support (G2/G3) The configuration settings for these options have been taken -directly from the Dagoma soure code and should work, -however the author has only tested the stock+LCD+White Thermistor version. +directly from the Dagoma soure code and should work. -All these standard Dagoma options are built automatically. +All these standard Dagoma options are built automatically based on common configuration settings, +so all functionality tested on the author's stock+LCD+White Thermistor DE200 should work fine +on these other variants. + +Every combination of the above are compiled automatically for each formal release. In addition, several selected community enhancements are also supported as options: @@ -29,166 +31,27 @@ In addition, several selected community enhancements are also supported as optio The configuration settings for these options have been taken from various Thingiverse things and Github repos that purport to support these modifications, -however none of these configurations have been tested. - -Because the number of options is multiplicative, -adding these options to automated builds would -produce an unreasonable number of options. -(Each language currently produces about 160 builds, -so for the 3 languages we already produce almost 500 builds!!) - -However a build workflow is available on Github to build any option -and you can then download the firmware Hex file from the Github Actions artifacts list. -If you need help with this please open a Github issue. - -The stock Dagoma firmware was based on the beta version of Marlin available -when the DiscoVery was first launched (v1.1.0 RC6), -with substantial bespoke functionality added to support the Dagoma hardware functions. - -The builds in this repo are based on the very latest Marlin v2, -allowing some of the more advanced functionality available in V2 -to be enabled providing more capabilities than the stock Dagoma firmware, -though this is limited by the maximum firmware size supported by the motherboard. -The additional functionality currently enabled includes: - -* Support for all Marlin languages -* Probe Offset Wizard - alternative to the Dagoma App to set the z-offset - - [youtube video](https://www.youtube.com/watch?v=2gRfU26aTDs) -* [Linear Advance](https://marlinfw.org/docs/features/lin_advance.html) - is enabled as standard with a factor of 0 (= off). - Changing the K value from the screen or using M900 K (and M500). - -There is still a lot of newer functionality available in Marlin v2 -that has not been enabled as standard due to lack of testing with the DE200, -and the author would welcome users testing these options and -submitting PRs (with before and after test evidence). - -In particular the following features are -available as experimental features using the Single Build workflow, -but not currently enabled for standard builds -because they will need to be tested **and** tuned. - -* Bilinear bed-levelling rather than linear bed-levelling as this handles non-flat beds better - ([as recommended by Marlin](https://marlinfw.org/docs/features/auto_bed_leveling.html)) -* [Unified Bed Levelling](https://marlinfw.org/docs/features/unified_bed_leveling.html) -* [Input shaping](https://marlinfw.org/docs/features/input_shaping.html) -* [S-Curve Acceleration](https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained) -* [Model Predictive Temperature Control](https://marlinfw.org/docs/features/model_predictive_control.html) -* [Junction deviation](https://www.reddit.com/r/3Dprinting/comments/dx8bdb/here_is_why_you_should_disable_junction_deviation/) - -The following advanced Marlin features are available for evaluation, -but do not currently have even Single Build support - -* [Direct stepping](https://reprap.org/wiki/Direct_Stepping) / [Step Daemon](https://github.com/colinrgodsey/step-daemon) - -Memory usage does not appear to be a major issue at present. -The largest current build is the experimental Unified Bed Levelling -which comes in at c. 187k of a maximum 248KB. - -The implementation of this version has been designed to be flexible and to allow for both -easy updating as new stock versions of Marlin are released, and -additions of more configurations for publicly available mods such as bltouch. - -Discussions inc. feedback, Issues and Pull-Requests are all welcome, -particularly where you have tested the improvements yourself, -and the author is favourable to supporting -any DE200 configuration using commonly available components -other than already supported here. - -As an illustration of the information needed to support additional mods, -the reasons that e.g. bltouch has not been included are: - -* bltouch connection pins are not standardised -* bltouch mounting positions are not standardised - and so the nozzle-offsets are unknown -* there are no standarised Thingiverse Things for either the mount or for the firmware that - can be used as the basis for configuration, the closest being a Z122 head + bltouch that does - not have matching firmware or the nozzle-offsets defined +however none of these configurations have been tested either. -### DISCLAIMER +Some combinations of these options with Standard builds are compiled for the release, +but a firmware build every single combination of options can be manually initiated and +built automatically using the same Github Actions workflow. + +### Documentation + +There is a [wiki](https://github.com/Marlin-DE200/Marlin-DiscoEasy200/wiki) +which already gives a lot more detail about these builds, +with an intention to extend this further. -At present this is Work in Progress. -Most versions are untested and, -whilst the author has made reasonable efforts to configure it correctly, -***you use these versions at your own risk***. - -### Marlin-by-Dagoma vs stock Marlin - -A comparison of the Marlin-by-Dagoma stock firmware -(which claims to be (based on) 1.1.0 RC6) -against stock Marlin 1.1.0 RC6 suggests that it was indeed based on this release, -but it was ***VERY*** heavily modified by Dagoma -(probably to add functionality that simply didn't exist at the time). - -To analyse each of these changes made by Dagoma -and see whether they were included in later versions of Marlin, -and if so whether they are compatible, -would be a task of massive proportions - -so to create these versions of Marlin-for-DiscoEasy200 firmware -I have assumed that later versions of stock Marlin will work on the DE200 -without modification. - -The availability of other people's later versions -of stock Marlin for DE200 suggests that it will work fine, -and anecdotal evidence suggests that -the print quality will be significantly better, -presumably due to numerous bugs having been fixed in base Marlin -which were never fixed in Marlin-by-Dagoma. - -Therefore as starting point, -we have carefully configured stock Marlin v2.1.x -to have the same configuration settings as the Marlin-by-Dagoma 1.1.0 RC6, -leaving all newer Marlin configuration settings at default. -This delivers all newer functionality that is enabled by default -in Marlin. - -In addition, where optional (typically minor) functionality looks like it might be beneficial, -we have enabled that too. - - -### Detailed functional changes from Dagoma stock firmware - -This is unlikely to be a definitive list - -please add to it when you spot something that is different. - -* 25% faster Z-feedrate when homing - 5mm/s instead of 4mm/s -* More bed levelling points -* Optimised bed-levelling Z speeds. -* Bed size reduced from 205x205 to 204x204 because of a bug (centre calculated using integer arithmetic). -* Bed-levellinbg margin increased from 10mm to 21mm because of a bug (to do with the inductive sensor position). -* Quick home - X & Y homing are done at the same time. -* XY Frequency limit - reduce shaking and ringing-artifacts on prints by limiting short zigzags to 10 per second. -* Beep to warn you when you change the feedrate % by turning the knob when printing and on the status page. -* Transmit buffer - to improve status OK responses to a USB host during USB printing. -* Detect broken endstop -* Firmware settings are automatically reset when new firmware is loaded or if they get corrupted. - (Firmware setting storage may not be compatible between versions.) -* SD card CRC and retry is enabled -* Encoder (knob) direction reversed because it makes more sense. -* Encoder (knob) improved accuracy. -* Menus return to Info screen after 20s rather than Dagoma 10s or Marlin 15s -* Fan noise reduction (using software PWM rather than hardware PWM) -* SD-card file list sorting enabled -* SD card autostart - menu item + support for both `autoN.g` and `dagomaN.g` -* Scrolling status messages (that are wider than display) -* Temp stability time for M109 reduced from 15s to Marlin default 10s -* M701/M702 codes for filament load/unload enabled -* Support [Host Action Commands](https://reprap.org/wiki/G-code#Action_commands) - so that e.g. [Octoprint](https://docs.octoprint.org/en/master/bundledplugins/action_command_prompt.html)for - can provide alternative functionality for printers without LCDs. -* Probe Offset Wizard - alternative to the Dagoma App to set the z-offset - - [youtube video](https://www.youtube.com/watch?v=2gRfU26aTDs) -* M73 support so that a [matching Octoprint plugin](https://plugins.octoprint.org/plugins/m73etaoverride/) can set the % progress bar. -* Positions of Filament Change and Printer Information menus swapped. -* G26 enabled for Bilinear or Unified Bed levelling testing plus a custom menu - -The following stock functions have not been configured (because we cannot work out how) -and probably won't work: - -* Use of Y end-stop switch to pause the print - -If anyone knows or can work out how to make these work, please let us know. - -### Untested versions +### Open Source + +The source code is open, and you are welcome to copy this for your own use - +however the author believes that a single flexible source for DE200 Firmware +would be the best solution for the community and would like to open +the administration and ownership of this to the DE200 community +for use as a shared resource. + +### DISCLAIMER I created this site because I wanted an up-to-date version of Marlin for my specific DE200 configuration stock+LCD+english), @@ -197,16 +60,17 @@ and the firmware for this version has been tested. However unless I get reports for other versions working OK, I cannot say for certainty that they will work. -In most cases, due to the close simularities, -these other versions should work just fine, -however based on intuition I do wonder whether the following problems -might need to be addressed (feedback requested): +That said, the Marlin software is tried and tested, +I have comprehensively tested the Stock+LCD+White-Thermistor variant on +my own DE200 and use it in production, +and all other variants are minor variations of the standard configuration. + +However, in the end most versions are untested and, +whilst the author has made reasonable efforts to configure them correctly, +***you load these version onto your printer and use them at your own risk***. -* For trapezoidal Z-screws do we need to keep the Z-steppers energised to prevent the head from descending? - (By default, z-steppers are de-energised automatically in certain circumstances.) - In the stock Dagoma firmware for trapezoidal screws, the z-steppers are de-energised in - exactly the same way as for non-trapezoidal screws, so it should be ok. - However, if not the fix is not difficult - so let me know. +The author will provide support to the best of his ability, +and is extremely open to sharing support and ownership with other community experts. ## Marlin 3D Printer Firmware

MarlinFirmware's logo

diff --git a/docs/Atelier3D Kit Plateau Chauffant v10.pdf b/docs/Atelier3D Kit Plateau Chauffant v10.pdf new file mode 100644 index 000000000000..337678578ffc Binary files /dev/null and b/docs/Atelier3D Kit Plateau Chauffant v10.pdf differ diff --git a/docs/E3D V6 Datasheet 2019.pdf b/docs/E3D V6 Datasheet 2019.pdf new file mode 100644 index 000000000000..fcb422aa4f7a Binary files /dev/null and b/docs/E3D V6 Datasheet 2019.pdf differ diff --git a/docs/MKS-BASE.pdf b/docs/MKS-BASE.pdf new file mode 100644 index 000000000000..019295e3c211 Binary files /dev/null and b/docs/MKS-BASE.pdf differ diff --git a/docs/MKS_BASE_PINS.pdf b/docs/MKS_BASE_PINS.pdf new file mode 100644 index 000000000000..ddf83c4b1869 Binary files /dev/null and b/docs/MKS_BASE_PINS.pdf differ