MarlinFirmware / Marlin

Marlin is an optimized firmware for RepRap 3D printers based on the Arduino platform. Many commercial 3D printers come with Marlin installed. Check with your vendor if you need source code for your specific machine.
https://marlinfw.org
GNU General Public License v3.0
16.34k stars 19.26k forks source link

[BUG] Changes in pins.h/pins_RAMPS.h breaks pin mapping for MSK GEN L #23478

Closed drug123 closed 1 year ago

drug123 commented 2 years ago

Did you test the latest bugfix-2.0.x code?

Yes, and the problem still exists.

Bug Description

Default pin mapping for heaters and fan on MKS GEN L V1.0 in 2.0.9.2 and earlier was corresponding to silkscreen on the board as the following:

Bug Timeline

2.0.9.3

Expected behavior

Mapping should be as in prev. version:

Actual behavior

Default mapping in the 2.0.9.3 (incl. bugfix) is the following:

Steps to Reproduce

N/A

Version of Marlin Firmware

2.0.9.3

Printer model

Creality Ender 3

Electronics

MKS GEN L

Add-ons

Custom dual extruder

Bed Leveling

UBL Bilinear mesh

Your Slicer

Simplify3D

Host Software

OctoPrint

Additional information & file uploads

No response

ellensp commented 2 years ago

This looks to work from my testing

In Marlin/src/pins/ramps/pins_MKS_GEN_L.h

delete

define MOSFET_D_PIN 7

add

define MOSFET_B_PIN 7

define MOSFET_C_PIN 8

define FAN_PIN 9

drug123 commented 2 years ago

@ellensp thanks, as a temporary fix for myself I had to add a board check in pins.h to disable FETORDER defines: `#if !defined BOARD_MKS_GEN_L

if NONE(FET_ORDER_EEF, FET_ORDER_EEB, FET_ORDER_EFF, FET_ORDER_EFB, FET_ORDER_SF)`

borland1 commented 2 years ago

In Configuration_adv.h have enabled

#define FAN_PIN -1
#define E0_AUTO_FAN_PIN 9 

so there is no difference if I change in pins file pins_MKS_GEN_L.h, from

line 38 #define MOSFET_D_PIN 7 to line 38 #define MOSFET_D_PIN 9

However if I change to

line 38 #define FAN_PIN 9

I get a complier error in PlatformIO. "You cannot set E0_AUTO_FAN_PIN equal to FAN_PIN"

Why is that?

My Configuration.h :

#define MOTHERBOARD BOARD_MKS_GEN_L
#define IS_RAMPS_EFB
drug123 commented 2 years ago

@borland1 This is totally unrelated to described bug.

PS: You have an issue because you confusing Extruder Fan and Cooling Fan. They cannot be connected to the same pin. If you wish to use auto fan feature you should have only one extruder (this is the case OPPOSITE to described setup) and connect extruder fan to E1 connector on MKS GEN_L and then use #define E0_AUTO_FAN_PIN. Also do not change MOSFET_D_PIN value, IS_RAMPS_EFB should be enough.

ellensp commented 2 years ago

@borland1 FAN_PIN is a gcode controlled fan (ie M106/M107) can be turn on/off at any time. E0_AUTO_FAN_PIN is an auto fan, turns when hotend is over a certain temperature. These are mutually exclusive functions.

descipher commented 2 years ago

IS_RAMPS_EFB

IS_RAMPS_EFB is now FET_ORDER_EFB

borland1 commented 2 years ago

IS_RAMPS_EFB is now FET_ORDER_EFB

Yes, thanks. Still on v2.07.2, but will change that when updating to later version.

Charmandrigo commented 2 years ago

This issue also affected the MKS Gen 1.4, fans stopped working on this update, the temporal fix from ellensp brought back the function

thinkyhead commented 2 years ago

Please test the bugfix-2.0.x branch to see where this stands. If the problem has been resolved then we can close this issue. If the issue isn't resolved yet, then we should investigate further.

thisiskeithb commented 1 year ago

Fixed in https://github.com/MarlinFirmware/Marlin/pull/25717

github-actions[bot] commented 1 year ago

This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.