Welcome! Log In Create A New Profile

Advanced

MK4Duo per Hephestos modifiche firmware “importanti” per farlo funzionare

Posted by coolcasa 
MK4Duo per Hephestos modifiche firmware “importanti” per farlo funzionare
October 11, 2016 07:00AM
Ciao a tutti,
mi sono messo ad aggiornare il firmware per la mia Hephestos passando da una vecchissima versione a la nuova MK4duo del Mago.
Come prima cosa disattivato il configuration.h
//#define CONFIGURATION_OVERALL
E ho successivamente settato tutti i parametri in:
- Configuration_Basic.h
- Configuration_Cartesian.h
- Configuration_Feature.h
- Configuration_Temperature.h
Faccio la verifica con Arduino v. 1.6.12 e durante la compilazione mi dava sempre l’errore
#error "Z_ENDSTOP_SERVO_NR must be less than NUM_SERVOS."
Pur avendo settato I parametri in questo modo (credo in modo corretto)
In Configuration_Cartesian.h
// Z Servo Endstop
// Remember active servos in Configuration_Feature.h
// Define nr servo for endstop -1 not define. Servo index start 0
#define Z_ENDSTOP_SERVO_NR 0
#define Z_ENDSTOP_SERVO_ANGLES {11,180} // Z Servo Deploy and Stow angles
//#define AUTO_BED_LEVELING_3POINT
#define AUTO_BED_LEVELING_LINEAR
//#define AUTO_BED_LEVELING_BILINEAR

/**
 * Enable detailed logging of G28, G29, G30, M48, etc.
 * Turn on with the command 'M111 S32'.
 * NOTE: Requires a lot of PROGMEM!
 */
//#define DEBUG_LEVELING_FEATURE

/** if ENABLED(AUTO_BED_LEVELING_LINEAR) or ENABLED(AUTO_BED_LEVELING_BILINEAR) **/
// Set the number of grid points per dimension
#define ABL_GRID_POINTS_X 2
#define ABL_GRID_POINTS_Y 2

// Set the boundaries for probing (where the probe can reach).
#define LEFT_PROBE_BED_POSITION 40 
#define RIGHT_PROBE_BED_POSITION 180
#define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 132

// The Z probe minimum outer margin (to validate G29 parameters).
#define MIN_PROBE_EDGE 10

// Probe along the Y axis, advancing X after each column
#define PROBE_Y_FIRST
/** END **/

/** if ENABLED(AUTO_BED_LEVELING_3POINT) **/
// 3 arbitrary points to probe.
// A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15
#define ABL_PROBE_PT_2_Y 15
#define ABL_PROBE_PT_3_X 180
#define ABL_PROBE_PT_3_Y 15
/** END **/

/**
 * Commands to execute at the end of G29 probing.
 * Useful to retract or move the Z probe out of the way.
 */
#define Z_PROBE_END_SCRIPT "G1 Z10 F8000\nG1 X10 Y10\nG1 Z0.5"
e in Configuration_Feature.h
#define ENABLE_SERVOS
// Number of servos
// If you select a configuration below, this will receive a default value and does not need to be set manually
// set it manually if you have more servos than extruders and wish to manually control some
// leaving it defining as 0 will disable the servo subsystem
#define NUM_SERVOS 1
// Servo index starts with 0 for M280 command
//
// Servo deactivation
// With this option servos are powered only during movement, then turned off to prevent jitter.
#define DEACTIVATE_SERVOS_AFTER_MOVE

// Delay (in microseconds) before turning the servo off. This depends on the servo speed.
// 300ms is a good value but you can try less delay.
// If the servo can't reach the requested position, increase it.
#define SERVO_DEACTIVATION_DELAY 300
Poi dopo svariati tentativi mi sono accorto che pur avendo
//#define CONFIGURATION_OVERALL
Se non inserivo i valori anche all’intero del file configuration_overall.h continuava a uscirmi l’errore
#error "Z_ENDSTOP_SERVO_NR must be less than NUM_SERVOS."
Quindi ho modificato il file base.h da cosi
#include "src/macros.h"
#include "src/types.h"
#include "Boards.h"
#include "src/mechanics.h"

#include "Configuration_Version.h"

#ifndef CONFIGURATION_OVERALL
  #include "Configuration_Basic.h"
#endif

#include "Configuration_Overall.h"

#ifndef CONFIGURATION_OVERALL
  #if MECH(CARTESIAN)
    #include "Configuration_Cartesian.h"
  #elif MECH(COREXY)
    #include "Configuration_Core.h"
  #elif MECH(COREYX)
    #include "Configuration_Core.h"
  #elif MECH(COREXZ)
    #include "Configuration_Core.h"
  #elif MECH(COREZX)
    #include "Configuration_Core.h"
  #elif MECH(DELTA)
    #include "Configuration_Delta.h"
  #elif MECH(SCARA)
    #include "Configuration_Scara.h"
  #endif

  #include "Configuration_Temperature.h"
  #include "Configuration_Feature.h"
  #include "Configuration_Overall.h"
#endif
A così
#include "src/macros.h"
#include "src/types.h"
#include "Boards.h"
#include "src/mechanics.h"
#include "Configuration_Version.h"
#include "Configuration_Basic.h"
#include "Configuration_Cartesian.h"
#include "Configuration_Temperature.h"
#include "Configuration_Feature.h"
e il problema è sparito, ovvero adesso quando setto I valori in:
- Configuration_Basic.h
- Configuration_Cartesian.h
- Configuration_Feature.h
- Configuration_Temperature.h
E carico tutto su Hephestos tutto funziona correttamente

Ora scatta una domanda……ho trovato qualche problemino ne settare
// Set the boundaries for probing (where the probe can reach).
#define LEFT_PROBE_BED_POSITION 20
#define RIGHT_PROBE_BED_POSITION 180
#define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 180
Ovvero mi saltava fuori l’errore dal sanitycheck.h
#error "The given LEFT_PROBE_BED_POSITION can't be reached by the Z probe."
#error "The given BACK_PROBE_BED_POSITION can't be reached by the Z probe."
Facilmente risolvibile settando
// Set the boundaries for probing (where the probe can reach).
#define LEFT_PROBE_BED_POSITION 40 (valore Massimo oltre scatta l’errore)
#define RIGHT_PROBE_BED_POSITION 180
#define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 132 (valore Massimo oltre scatta l’errore)
Caricato tutto eseguito il G29 per ABL, il probe usa dei punti sia per i LEFT che per BACK molto “centrali” nel senso che ci sarebbe ampiamente del margine per settare valori più bassi per i LEFT e più alti per i BACK; quindi mi sono messo a fare una ricognizione nel sanitycheck.h per capire quale era il motivo per cui saltava fuori l’errore e ho visto che:
#if LEFT_PROBE_BED_POSITION < MIN_PROBE_X
        #error "The given LEFT_PROBE_BED_POSITION can't be reached by the Z probe."
      #elif BACK_PROBE_BED_POSITION > MAX_PROBE_Y
        #error "The given BACK_PROBE_BED_POSITION can't be reached by the Z probe."
      #endif
Ora la cosa che non capisco è:
#if LEFT_PROBE_BED_POSITION < MIN_PROBE_X
Quindi il LEFT_PROBE_BED_POSITION è il valore che ho impostato e fin qui tutto ok ma MIN_PROBE_X da dove lo va a pescare? Che valore è? e dove lo trovo all’interno dei vari file?

forse mi sono dilungato un po' troppo

cmq grazie a tutti in anticipo
Re: MK4Duo per Hephestos modifiche firmware “importanti” per farlo funzionare
October 11, 2016 10:50AM
In primis ti domando se la Hephestos è di default oppure no...così da capire cosa hai e cosa non ti interessa del codice.
Detto questo tu, a quando ho inteso, stai compilando il fw a mano e non con il configuratore online... giusto?

Hai un bed level automatico mediante servo ?


Manuel
Prusa i3 - disassemblata
Ultimaker 2**HC (Marlin+ e3d 1.75 +estrusore made by Andrea Lillia)
SIENCI cnc
Re: MK4Duo per Hephestos modifiche firmware “importanti” per farlo funzionare
October 11, 2016 12:59PM
No no no... Overall sovrascrive sempre tutti i valori, quindi non devi modificarli nei file originali...
Se vuoi modificare i file originali cancella totalmente overall, non il file ma il suo contenuto... Oppure scarica il fw da github...


COMPRA ITALIANO - sostieni le nostre aziende - sostieni la nostra gente - sostieni il tuo popolo - sosterrai te stesso.
Alberto C. felice possessore di una Kossel K2
My Blog - My Thingiverse
Re: MK4Duo per Hephestos modifiche firmware “importanti” per farlo funzionare
October 25, 2016 03:43PM
ok grazie delle info
Sorry, only registered users may post in this forum.

Click here to login