Notifications
Clear all

Original MK3s with Marlin FW possible ?  

  RSS
Linux User Group Oberschwaben
(@linux-user-group-oberschwaben)
Estimable Member
Original MK3s with Marlin FW possible ?

Hi

 

I want to flash marlin to my original MK3s.

The reason is:

 

 

I want to use a volcano hotend and i installed it successfully. However the pinda does not find the bed. And it a hit and miss sometimes it gets found. Sometimes it does not get found. This happens without changing anything on the printer. So basicly ist ist just unreliable.... I installed a mod so i dont have to mess with the frimware and can use the whole space of the printer. So its not that i did forget to change the fw...

 

 

So i want to flash marlin and basicly just use it as it is. without plugging anything in or out. As marlin can use pinda sensors this should be possible i think....

 

 

However i understand that it is not that easy and i probably have to modify firmware and so on. My main hope is that marlin will be easier to configure than sifting throough the prusa source (What i do right now and i understand very little...).

 

 

My wish would be that the pinda can be used with marlin and it just works for the most part. I know that some things like filament sensors will probaly not work but i am prepared to sacrifice that.

 

 

So basicly im asking, can i just run marlin 2.0.x on the einsy with the prusa mk3s and change very little on the wireing if possible nothing and just get the pinda work reliably ?

 

 

What do i have to modify in Marlin 2.0 to get it running ?

 

 

Background:

 

 

It is unreliable with the bed find because i installed a mod for the volcano wich puts the bed lower so to spreak because the rods go higher and there is a Constant in the source code who defines how far the pinda will search for the bed if it is not in that range the printer will kill itself and even after i changed that part of the firmware it does not work reliably.

 

 

To make it work reliably it should just: "Go down till endstop is found" while now it is: "Go down to find endstop but max 1mm or 10mm if position is not known"

 

 

Even after i changed the code the finding of the pinda is not reliable.

 

 

If we could fix that code it would also work but i have low hopes on that.

 

 

So basicly i want to try out marlin with pinda and then if that does not work i want to install a bl touch and make it work with mk3s and marlin. This will need support from the community here because im no coder by trade and some things are not clear all the way.

 

Here are the relevant code snippets:

Code:


// Go down until endstop is hit
const float Z_CALIBRATION_THRESHOLD = 40.f;
if (!find_bed_induction_sensor_point_z((has_z && mesh_point > 0) ? z0 - Z_CALIBRATION_THRESHOLD : -45.f, nProbeRetry)) { //if we have data from z calibration max allowed difference is 1mm for each point, if we dont have data max difference is 10mm from initial point
printf_P(_T(MSG_BED_LEVELING_FAILED_POINT_LOW));
break;
}
if (init_z_bckp - current_position[Z_AXIS] < 0.1f) { //broken cable or initial Z coordinate too low. Go to MESH_HOME_Z_SEARCH and repeat last step (z-probe) again to distinguish between these two cases.
printf_P(PSTR("Another attempt! Current Z position: %f\n"), current_position[Z_AXIS]);
current_position[Z_AXIS] = MESH_HOME_Z_SEARCH;
plan_buffer_line_curposXYZE(Z_LIFT_FEEDRATE, active_extruder);
st_synchronize();

if (!find_bed_induction_sensor_point_z((has_z && mesh_point > 0) ? z0 - Z_CALIBRATION_THRESHOLD : -45.f, nProbeRetry)) { //if we have data from z calibration max allowed difference is 1mm for each point, if we dont have data max difference is 10mm from initial point
printf_P(_T(MSG_BED_LEVELING_FAILED_POINT_LOW));
break;
}
if (MESH_HOME_Z_SEARCH - current_position[Z_AXIS] < 0.1f) {
printf_P(PSTR("Bed leveling failed. Sensor disconnected or cable broken.\n"));
break;
}
}
if (has_z && fabs(z0 - current_position[Z_AXIS]) > Z_CALIBRATION_THRESHOLD) { //if we have data from z calibration, max. allowed difference is 1mm for each point
printf_P(PSTR("Bed leveling failed. Sensor triggered too high.\n"));
break;
}

40.f; was originally 1.f
-45.f was originally -10.f

 

 

Here is the link for the volcano mod: https://www.thingiverse.com/thing:2989361

 

 

Ok i hope i made my case and hope for a lot of contributions 🙂

Posted : 30/05/2020 9:06 pm
Share: