So the question is - where else should I remove the 2nd tool/extruder?

Thanks.


lmcbmai

Looks like I fixed the issue with the error by commenting out the following 3 lines in Configuration_io.h

HEAT_MANAGER_PID(HeaterExtruder2, 'E', 1, TempExt2, PWMExtruder2, 260, 255, 1000, 10, 20000, 20.0, 0.6, 65.0, 40, 220, false)

TOOL_EXTRUDER(ToolExtruder2, 16.775, 0.615, -0.97, HeaterExtruder2, /*AL2Motor */ E2Motor, 1.75, 147.0, 5, 30, 5000, 40, "M117 Extruder 2\nM400\nM340 P0 S1500 R600\nG4 P300", "M340 P0 S800 R600\nG4 P300", &Fan1PWM)

JAM_DETECTOR_HW(JamExtruder2, E2Motor, IOJam2, ToolExtruder2, 220, 10, 500)

The question about z_min in M119 printout remains.

Thanks


Repetier

It might be that you need
ENDSTOP_NONE(endstopZMin)
so you only have z probe for z m in measuring. That is what you physically have anyway.

Removing the 3 lines is correct. As soon as you define something with macros it gets initialized. You just did not add it to all loops, so it did not get used in reports but was working and as you can see can also create errors. Therefor only define pins and devices that you really have.


lmcbmai

I have tried that. It takes out both - Zmin and Z-probe from M119 printout

<blockquote class="Quote">SENDING:M119
ok 0
endstops hit: x_max:L y_max:L z_max:H

I think that happens because of the following line, which points to endstopZMin

<blockquote class="Quote">CONFIG_VARIABLE_EQ(EndstopDriver, *ZProbe, &endstopZMin)

Then I decided to "improvise" and made the following changes and it gave me correct printout, however I don't know if this will break anything else.

// IO_INPUT(IOEndstopZMin, ORIG_Y_MIN_PIN)

IO_INPUT(IOEndstopZprobe, ORIG_ZPROBE)

ENDSTOP_NONE(endstopZMin)

// ENDSTOP_SWITCH_HW(endstopZMin, IOEndstopZMin, Z_AXIS, false)

ENDSTOP_SWITCH_HW(endstopZprobe, IOEndstopZprobe, Z_AXIS, false)

<blockquote class="Quote">// CONFIG_VARIABLE_EQ(EndstopDriver, *ZProbe, &endstopZMin)

CONFIG_VARIABLE_EQ(EndstopDriver, *ZProbe, &endstopZprobe)

Here is my latest

>>>M119
SENDING:M119
ok 0
endstops hit: x_max:L y_max:L z_max:H Z-probe state:H

Thanks


lmcbmai

After (hopefully) finishing with endstop setup I started testing fans and heaters and found out that only heat bed is working. Neither of fans or extruder heaters would turn on. I checked the voltage and discovered that + pins of fan and heater connectors had no power. Meanwhile heat bed was getting +24V as expected. I was using M104, M140 and M106/M107 GCodes for testing.

After several hours of troubleshooting I was ready to conclude that my board is defective, but then, just because I was out of other ideas, I tried to load Marlin firmware and all the sudden it worked.

Long story short, and I am purely speculating here, looks like +24V to all fans and extruders on SKR2 is supplied via common mosfet or some kind of other component controlled by CPU, because when I run Marlin, couple of seconds after powering on the board the green LED comes up next to power connector and fans and extruders get +24V. When running Repetier, this LED remains off and there is no power.

I wanted to upload the picture to show the exact location of the LED, but unfortunately these forums do not have such option.

Thanks


lmcbmai

I found the MOSFET that kills power of extruders, fans and steppers. It is controlled by CPU pin PC13. This pin is defined as SAFE_POWER_PIN but not used anywhere in the code. It needs to be set into UP state after booting up the board.


lmcbmai

Found the code switching power on in MarlinCore.cpp file

#if PIN_EXISTS(SAFE_POWER)
#if HAS_DRIVER_SAFE_POWER_PROTECT
SETUP_RUN(stepper_driver_backward_check());
#else
SETUP_LOG("SAFE_POWER");
OUT_WRITE(SAFE_POWER_PIN, HIGH);
#endif
#endif

I think the following code would solve the issue but I am unsure where would be the right place to add it. Should be somewhere in the startup sequence

#if defined(STM32F4) || defined(INI_SKR2)
#ifdef SAFE_POWER_PIN
pinMode(SAFE_POWER_PIN, OUTPUT);
digitalWrite(SAFE_POWER_PIN, HIGH)
#endif
#endif


lmcbmai

Yes, that was it. I added below lines to Printer.cpp right before

#if defined(ENABLE_POWER_ON_STARTUP) && ENABLE_POWER_ON_STARTUP && (PS_ON_PIN > -1)

and the board got power.

#ifdef SAFE_POWER_PIN
pinMode(SAFE_POWER_PIN, OUTPUT);
digitalWrite(SAFE_POWER_PIN, HIGH);
#endif

@Repetier I will wait for you to update the code "the proper way" and then will retest.

Thanks


Repetier

Thanks. I have added a variation of your solution that should work. Just a bit earlier, also I do not think it is that important how early it gets enabled. Have committed the fix.


lmcbmai

@Repetier Tested your fix. It is working!

Many Thanks!!


Poikilos

lmcbmai said:

Looks like I fixed the issue with the error by commenting out the following 3 lines in Configuration_io.h

HEAT_MANAGER_PID(HeaterExtruder2, 'E', 1, TempExt2, PWMExtruder2, 260, 255, 1000, 10, 20000, 20.0, 0.6, 65.0, 40, 220, false)

TOOL_EXTRUDER(ToolExtruder2, 16.775, 0.615, -0.97, HeaterExtruder2, /*AL2Motor */ E2Motor, 1.75, 147.0, 5, 30, 5000, 40, "M117 Extruder 2\nM400\nM340 P0 S1500 R600\nG4 P300", "M340 P0 S800 R600\nG4 P300", &Fan1PWM)

JAM_DETECTOR_HW(JamExtruder2, E2Motor, IOJam2, ToolExtruder2, 220, 10, 500)

The question about z_min in M119 printout remains.

Thanks

Can someone please explain what version of Marlin has Configuration_io.h or what provides or generates it?


Repetier

@Poikilos
This is repetier-firmware thread! configuration_io.h is a config file in repetier-firmware V2.x!


Privacy Policy  |  About Us