Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

compilazione grblhal/nucleo + esp32 + mksdlc32 v.2.1 #77

Open
distebia opened this issue Aug 31, 2023 · 47 comments
Open

compilazione grblhal/nucleo + esp32 + mksdlc32 v.2.1 #77

distebia opened this issue Aug 31, 2023 · 47 comments

Comments

@distebia
Copy link

Salve, sono giorni che cerco di compilare grblhal/nucleo + esp32 + mksdlc32 v.2.1 ma, anche leggendo e rileggendo, non riesco a farlo. qualcuno mi potrebbe aiutare in questa "impresa"? Nello specifico mi serve solo l'homing xy, con possibilità di spostare comunque la Z e di aumentare il parametro DEFAULT_SPINDLE_PWM_MIN_VALUE a un valore che mi permette di avere l'uscita laser al 1% (utilizzando il valore 1000 in lightburn (non 255). Grazie

@terjeio
Copy link
Contributor

terjeio commented Sep 1, 2023

Bruk Web Builder for å kompilere?

@distebia
Copy link
Author

distebia commented Sep 1, 2023

Salve e grazie per la risposta...ho visto ma trovo la mks dlc32 v.2.0, io ho la v2.1. è che non ne capisco tanto di compilazione...ho seguito la guida si grblhal/esp32 ma ottengo errori. poi non ho capito se partire dal nucleo, aggiungere esp32 e poi mks dlc32 o altro modo. ho editato anche il config.h ma non vengo a capo di homing solo xy e DEFAULT_SPINDLE_PWM_MIN_VALUE

@distebia
Copy link
Author

distebia commented Sep 1, 2023

in particolar modo non capisco questo:
/*! @name $44 - Setting_HomingCycle_1
*/
///@{
#if !defined DEFAULT_HOMING_CYCLE_0 || defined DOXYGEN
#define DEFAULT_HOMING_CYCLE_0 (Z_AXIS_BIT) // REQUIRED: First move Z to clear workspace.
#endif
///@}

/*! @name $45 - Setting_HomingCycle_2
*/
///@{
#if !defined DEFAULT_HOMING_CYCLE_1 || defined DOXYGEN
#if COREXY
#define DEFAULT_HOMING_CYCLE_1 (X_AXIS_BIT) // OPTIONAL: Then move X.
#else
#define DEFAULT_HOMING_CYCLE_1 (X_AXIS_BIT|Y_AXIS_BIT) // OPTIONAL: Then move X,Y at the same time.
#endif
#endif
///@}

/*! @name $46 - Setting_HomingCycle_3
*/
///@{
#if !defined DEFAULT_HOMING_CYCLE_2 || defined DOXYGEN
#if COREXY
#define DEFAULT_HOMING_CYCLE_2 (Y_AXIS_BIT) // OPTIONAL: Then move Y.
#else
#define DEFAULT_HOMING_CYCLE_2 0 // OPTIONAL: Uncomment and add axes mask to enable
#endif
#endif
///@}

/*! @name $47 - Setting_HomingCycle_4
*/
///@{
#if (defined A_AXIS && !defined DEFAULT_HOMING_CYCLE_3) || defined DOXYGEN
#define DEFAULT_HOMING_CYCLE_3 0 // OPTIONAL: Uncomment and add axes mask to enable
#endif
///@}

/*! @name $48 - Setting_HomingCycle_5
\ref axismask
*/
///@{
#if (defined B_AXIS && !defined DEFAULT_HOMING_CYCLE_4) || defined DOXYGEN
#define DEFAULT_HOMING_CYCLE_4 0 // OPTIONAL: Uncomment and add axes mask to enable
#endif
///@}

/*! @name $49 - Setting_HomingCycle_6
*/
///@{
#if (defined C_AXIS && !defined DEFAULT_HOMING_CYCLE_5) || defined DOXYGEN
#define DEFAULT_HOMING_CYCLE_5 0 // OPTIONAL: Uncomment and add axes mask to enable
#endif
///@}

come dovrei settare per avere soltanto l'homing di x e y contemporaneamente? se possibile anche i comandi $hx, $hy e $hz

@distebia
Copy link
Author

distebia commented Sep 2, 2023

Utilizzare Web Builder per compilare?

ma basta solo questo per fare il flash?

@terjeio
Copy link
Contributor

terjeio commented Sep 3, 2023

v2.1 = v2.0 for pinout?

come dovrei settare per avere soltanto l'homing di x e y contemporaneamente? se possibile anche i comandi $hx, $hy e $hz

$44=3
$45=0
$22=33

ma basta solo questo per fare il flash?

Yep.

@distebia
Copy link
Author

distebia commented Sep 3, 2023

ok, grazie...il firmware è stato caricato ma ho problemi con dei pin che usavo prima e che ora sono per altri usi, tipo gpio4 che usavo per il coolant floor (da spostare su gpio5) per liberare cycle start dal pin4 (che non uso)..(al comando ? ho Pn.S...è CYCLE_START_PIN?). Domani faccio delle prove e le faccio sapere se va bene. non riesco a trovare un wiki che spiega il perchè $44=3 fa solo homing xy e cosa significa $22=33. mi piace conoscere i vari scenari (magari per usi futuri). poi se tutto funziona come dovrebbe sono curioso di provare il grbl cluster con lightburn. grazie e alla prossima.

@distebia
Copy link
Author

distebia commented Sep 4, 2023

ho una macchina co2 autocostruita di 1300x1000, ho integrato anche il diodo. oltre ai finecorsa x e y ho montato un induttivo su z. vorrei lasciare l'asse Z senza homing iniziale (non eseguito con $H) ma consentire il $hz. vorrei anche disattivare i limiti soft solo per l'asse z. per mettere a fuoco il laser co2 con lente 1.5" (da ramp test 3.5mm dall'ugello) di solito faccio:
$27= (la distanza che mi serve per il fuoco)
$HZ
$27=(il valore di pull off predefinito per tutti gli assi)
non potendo eseguire il HZ l'asse la posso solo scendere, se provo a salire mi dice che supero le dimensioni della macchina. come dovrei impostare tutto questo?

@terjeio
Copy link
Contributor

terjeio commented Sep 4, 2023

Nye settinger, se wiki.
Hjelp/informasjon er også tilgjengelig for settinger via $$=<setting id>, f.eks $$=22 gir:

    0 - Enable (1)
    1 - Enable single axis commands (2)
    2 - Homing on startup required (4)
    3 - Set machine origin to 0 (8)
    4 - Two switches shares one input pin (16)
    5 - Allow manual (32)
    6 - Override locks (64)
    7 - Keep homed status on reset (128)
Enables homing cycle. Requires limit switches on axes to be automatically homed.
When `Enable single axis commands` is checked, single axis homing can be performed by $H<axis letter> commands.
When `Allow manual` is checked, axes not homed automatically may be homed manually by $H or $H<axis letter> commands.
`Override locks` is for allowing a soft reset to disable `Homing on startup required`.

Du kan slå av soft-limit for Z-aksen ved å sette $132=0. $22=3 er muligens settingen du kan bruke for å "home" Z-aksen med $HZ.

@distebia
Copy link
Author

distebia commented Sep 4, 2023

bit0 - enable homing. Only when this bit is set can the other bits be set. 1
bit1 - enable single axis homing commands. 2
bit2 - homing on startup required.
bit3 - set machine origin to 0. 8
bit4 - two switches shares one input pin.
bit5 - allow manual homing of axes not automatically homed. 32
bit6 - override locks, allow reset to clear homing on startup required alarm.
bit7 - keep homed status on reset if possible.

ho fatto 32+8+2+1=43 ma non mi permette di effettuare $hz. ok per $132=0

@distebia
Copy link
Author

distebia commented Sep 4, 2023

eccomi, $132=0 ha funzionato, muovo l'asse liberamente sopra e sotto. $HZ non mi riesce, devo mettere bit5 in quanto è un asse non $h automatico (32), ho bisogno di avere x0y0 all'avvio (8), devo abilitare singoli assi, $hx e $hy (2) e abilitare bit0, quindi 43 totale. anche cambiando in $22=3 ottengo che $hz non è abilitato. non so come andare avanti. con $HZ ottengo questo
$hz
<Home|MPos:581.005,191.001,0.000|FS:0,0>
[MSG:]
ok
se poi lancio una foto a 8000mm/min ottengo questo
image
cosa devo cambiare?

@terjeio
Copy link
Contributor

terjeio commented Sep 5, 2023

Prøv med $22=11 (8+2+1), tillater separat automatisk homing av Z. Bit 5 gjør at hjemmeposisjon settes til Z-posisjonen når $HZ ble sendt.

cosa devo cambiare?

Error 22 = "Feed rate has not yet been set or is undefined." F mangler etter G93 eller G94?

@distebia
Copy link
Author

distebia commented Sep 5, 2023

image
ho impostato da $22=43 a $22=11, eseguo $hz e ottengo questa immagine e non ho nessun movimento di Z.

"Errore 22 = "La velocità di avanzamento non è stata ancora impostata o non è definita." Fmangler etter G93 o G94?"
non lo so dove è l'errore, eseguo una foto a 8000mm/min. certe volte la fa, altre volte (il 90%) mi restituisce questo errore. non so cosa fare

@distebia
Copy link
Author

distebia commented Sep 5, 2023

ok
$$
$0=10.0
$1=255
$2=0
$3=4
$4=7
$5=0
$6=1
$9=1
$10=509
$11=0.010
$12=0.002
$13=0
$14=6
$15=1
$16=0
$17=0
$18=0
$19=0
$20=1
$21=0
$22=11
$23=3
$24=1000.0
$25=5000.0
$26=250
$27=2.100
$28=0.100
$29=0.0
$30=1000.000
$31=0.000
$32=1
$33=10000.0
$34=0.0
$35=9.0
$36=100.0
$37=0
$39=1
$40=0
$43=1
$44=3
$45=0
$46=0
$62=0
$63=3
$64=0
$65=0
$70=79
$73=0
$74=1
$75=biagio1975
$76=grblHAL_AP
$77=grblHALpwd
$100=79.977
$101=79.874
$102=640.000
$110=20000.000
$111=20000.000
$112=200.000
$120=4000.000
$121=200.000
$122=50.000
$130=1100.000
$131=890.000
$132=0.000
$310=grblHAL_AP
$312=192.168.5.1
$313=192.168.5.1
$314=255.255.255.0
$320=grblHAL
$322=192.168.5.1
$323=192.168.5.1
$324=255.255.255.0
$325=23
$326=80
$327=81
$328=21
$330=admin
$331=user
$341=0
$342=30.0
$343=25.0
$344=200.0
$345=200.0
$346=1
$370=0
$372=0
$384=0
$396=30
$397=0
$398=35
$481=0
ok

questi i miei valori $

se eseguo $# ottengo questo:
image

@terjeio
Copy link
Contributor

terjeio commented Sep 5, 2023

Beklager, $22=11 og $132=0 går ikke sammen - $132 definerer distansen og den kan ikke være 0. Bruk $22=41, flytt Z-aksen til ønsket hjemmeposisjon og send $HZ.

error: 7 er fra korrupte data i EEPROM (flash), prøv med $RST=# for å nullstille offsets.
error 22: zip gcode (de første linjene til og med linjen som feiler) og legg til i en kommentar.

@distebia
Copy link
Author

distebia commented Sep 5, 2023

Beklager, $22=11 og $132=0 går ikke sammen - $132 definerer distansen og den kan ikke være 0. Bruk $22=41, flytt Z-aksen til ønsket hjemmeposisjon og send $HZ.

il valore iniziale di $132 era 170. è stato portato a 0 su VS consiglio per permettere l'esclusione dei soft limiti per l'asse Z. quindi imposto $132=170 e $22=41 per eseguire $HZ singolarmente, ma ho sempre i soft limit attivati?
se è così potrei fare una macro lightburn con:
$132=170
$22=41
$27=2.1 (la distanza di messa a fuoco)
$hz
$27=1.5
$132=0

error: 7 er fra korrupte data i EEPROM (flash), prøv med $RST=# for å nullstille offsets.

dopo che ho ricevuto questo errore ho riportato a zero la scheda mediante https://www.espressif.com/en/support/download/other-tools ma una versione + vecchia...con la 3.9.5 non funzionava. successivamente ho caricato un salvataggio da Lightburn e aggiustato i parametri $14, $15, invertito la sonda e qualcos'altro ancora. forse fra backup e restore di lightburn è successo qualcosa.

error 22: zip gcode (de første linjene til og med linjen som feiler) og legg til i en kommentar.

per questo problema posso salvare il progetto in .gc e inviare le prime righe stasera quando torno a casa.
Grazie

@distebia
Copy link
Author

distebia commented Sep 5, 2023

image
in questo modo non funziona.
image
ma funziona con $22=11 e $132=170...finalmente $hz.

@distebia
Copy link
Author

distebia commented Sep 5, 2023

image
image
stesso errore, sia a 8000 che 15000mm/min.

@terjeio
Copy link
Contributor

terjeio commented Sep 5, 2023

Ok, ny variant av cluster formatet som jeg ikke har sett før. F blir satt i en egen linje uten clusters i de som jeg har testet med:

; LightBurn 1.2.02
; GRBL device profile, absolute coords
; Bounds: X20.01 Y50.05 to X179.99 Y59.89
G00 G17 G40 G21 G54
G90
; GCode clustering enabled (max 16)
G4 P1
M4
; Image @ 40000.02 mm/min, 55% power
M9
G0 X20.011Y50.046
; Layer PorcheFull
G91
G1 X30F40000.02S0
G1 X0.96S253.3:253.3:251.2:266.3:264.2:253.3:253.3:272.8:270.7:257.7:262:264.2:262:259.8:249:266.3

Dette betyr at jeg må endre koden til å støtte F når den finnes i en cluster.

@distebia
Copy link
Author

distebia commented Sep 6, 2023

ok, grazie per l'aiuto.
ritornando al $hz potrei fare una macro in LB in questo modo:
$132=170
$22=11
$27=3 (la mia distanza di fuoco)
$hz
$27=1 (pulloff predefinito per tutti)
$132=0 (per avere i soft limit disabilitati per l'asse z)

secondo te funziona oppure no?

@terjeio
Copy link
Contributor

terjeio commented Sep 6, 2023

secondo te funziona oppure no?

Prøv?

Laserburn cluster plugin er nå oppdatert til å håndtere formatet med F ord (og eventuelt andre parameter) i clusterlinjer.

@distebia
Copy link
Author

distebia commented Sep 6, 2023

oggi proverò sicuramente. circa il plugin LB lo acquisisco generando il firmware da http://svn.io-engineering.com:8080/ ? oppure devo seguire altre strade?

@terjeio
Copy link
Contributor

terjeio commented Sep 6, 2023

oggi proverò sicuramente. circa il plugin LB lo acquisisco generando il firmware da http://svn.io-engineering.com:8080/ ? oppure devo seguire altre strade?

Web Builder er oppdatert så kan brukes.

@distebia
Copy link
Author

distebia commented Sep 6, 2023

$132=170
$22=11
$27=3 (la mia distanza di fuoco)
$hz
$27=1 (pulloff predefinito per tutti)
$132=0

tutto questo funziona...quello che non funziona è il cluster
image

@terjeio
Copy link
Contributor

terjeio commented Sep 6, 2023

Cluster virker når jeg tester med en fil jeg har modifisert, her er firmware jeg tester med (generert av Web Builder):

firmware.zip

Jeg har ikke en LightBurn lisens så kan ikke generere gcode selv, kan du zippe en av dine filer som feiler og legge ved en kommentar?

@distebia
Copy link
Author

distebia commented Sep 6, 2023

image
mio_firmware_gcode.zip
questo è con versione lightburn 1.3.01 e firmware (da web build) per mks dlc32 con solo clusterig selezionato.

fra un pò, il tempo di settare la macchina con il tuo firmware, ti rimando il file + errori

@distebia
Copy link
Author

distebia commented Sep 6, 2023

image
caricando il tuo firmware e usando sempre lo stesso file, precedentemente allegato, ottengo lo stesso errore, ma con valori diversi

@terjeio
Copy link
Contributor

terjeio commented Sep 6, 2023

Firmware fungerer fint hos meg med 1.gc, over 420000 linjer så langt:

image

Mulig du må resette flash igjen før programmering?

@distebia
Copy link
Author

distebia commented Sep 6, 2023

quindi è il tuo firmware con il mio file e funziona? mi potresti dare i comandi per fare un'installazione pulita? magari usare i programmi giusti da usare? la tua immagine è iosender? ho provato ma non mi trova il controller (connesso su com3)

@terjeio
Copy link
Contributor

terjeio commented Sep 6, 2023

quindi è il tuo firmware con il mio file e funziona?

Yep. Men mulig jeg har funnet en årsak, prøv denne versjonen:

firmware(2).zip

mi potresti dare i comandi per fare un'installazione pulita?

Kjør ERASE i ESP32 FLASH DOWNLOAD TOOL før programmering.

image

la tua immagine è iosender?

Yep.

ho provato ma non mi trova il controller (connesso su com3)

Com port viser ikke i denne dialogen?

image

Hvis ikke hvordan ser portnavnet ut i Device Manager;

image

Det var tidligere et problem med en oversatt versjon av Windows (ikke engelsk) som gjorde at porten ikke viste, det kan være noe tilsvarende?

@distebia
Copy link
Author

distebia commented Sep 6, 2023

eseguo il flash del firmware con ESP32 FLASH DOWNLOAD TOOL ma la versione 3.6.5, la 3.9.5 non funziona per me, e prima di fare il flash uso sempre erase con la porta com selezionata. circa iosender all'avvio mi informa che manca il file di configurazione e lo crea, scelgo la porta com3 a 115200 (la stessa porta che uso per LB) ma restituisce l'errore "non trovato" o qualcosa del genere. la porta viene vista in gestione dispositivi e anche presente nel menù a discesa all'avvio di iosender.
ho scaricato il firmware e lo vado a provare

@distebia
Copy link
Author

distebia commented Sep 6, 2023

tutto sembra funzionare, non ho errori...domani farò altri test e mi faccio sentire. Grazie

@distebia distebia closed this as completed Sep 9, 2023
@distebia
Copy link
Author

quindi è il tuo firmware con il mio file e funziona?

Sì. Ma potrei avere una funzione per un anno, prova questa versione:

firmware(2).zip

potrei osare i comandi per fare un'installazione pulita?

Migliore ERASE in ESP32 FLASH DOWNLOAD TOOL per la programmazione.

Immagine

la tua immagine è iosender?

Sì.

ho provato ma non ho trovato il controller (connesso su com3)

La porta com non è visualizzata in questa finestra di dialogo?

Immagine

Se non è necessario utilizzare Portnavnet in Gestione dispositivi;

Immagine

Prima c'era un problema con una versione eccessiva di Windows (non inglese) che non vedeva la porta, potrebbe non essere disponibile?

Mi scuso per aver riaperto questa vecchia discussione ma sono giorni che esco pazzo e non ne vengo a capo.
In sostanza stavo programmando un mks dlc32 con processore esp32 e mi succede che se genero il firmware da web build questo non viene caricato mentre se carico quello che mi aveva inviato a settembre tutto funziona perfettamente. Come allora ed anche adesso utilizzo lo strumento esp32 versione 3.6.5 e riesco a caricare senza problemi la vecchia versione del firmware

image

image

Cosa è cambiato da settembre ad oggi che mi impedisce di caricare il firmware scaricato adesso e nessun problema con quello generato a settembre?

@distebia
Copy link
Author

image in questo modo non funziona. image ma funziona con $22=11 e $132=170...finalmente $hz.

Hi, I apologize for reopening this discussion but the problem of homing the z-axis arises again, but this time on a new construction and corexy kinematics and firmware of 23/10/2024...mks dlc32 board (esp32)
On an old firmware of 29/12/2023, with values ​​$22=11 and $132=0, homing of the Z-axis only works for me by setting (on a Lightburn macro) the following sequence:
$132=170
$22=11
$27=5
$hz
$27=1
$132=0
and I get homing of Z but the position of x and y are maintained

Now on a new machine, mks, corexy and firmware of 23/10/24, I use the same settings as above, it regularly performs homing but, if I read the position of the machine, it I find it on x0y0 ... basically homing only Z brings the whole machine to zero coordinates. If instead I home as a $H command I find the coordinates at x1y1 (essentially $27=1)... in the old machine however $H gives me the value x0y0

@terjeio
Copy link
Contributor

terjeio commented Nov 21, 2024

There is a bug in the corexy code that has been there for a long time that affects homing if force positions to 0. I'll fix that in the next commit.

FYI I have just added a plugin that allows setting different pulloff distances for each axis, and on my todo list for an upcoming settings revision I'll add a setting for specifying which axes soft limits should apply to. This means that you can reduce/get rid of on-the-fly settings changes if you want to.

@distebia
Copy link
Author

ok, thanks...I saw the plugin for the pulloff... I need to position the plane at a certain height and the only way to do this from a macro is to put $132=0 in the firmware and run the $hz at the pulloff distance (in the macro)...but what really doesn't work is that if I do all this, for example, at x200y200, after the $hz command I find myself all at x0y0...but I was at the center of the plane.

@terjeio
Copy link
Contributor

terjeio commented Nov 21, 2024

Fix committed.
I am not sure why you want $132=0 after homing, it is for disabling soft limits for Z right?

@distebia
Copy link
Author

distebia commented Nov 21, 2024 via email

@distebia
Copy link
Author

ok, thanks...i saw the plugin for pulloff...i need to position the plane at a certain height and the only way to do it from a macro is to put $132=0 in the firmware and run $hz at the pulloff distance (in the macro)...but what doesn't really work is that if i do all this at, for example, x200y200, after the $hz command i end up at x0y0...but i was in the center of the plane.

basically just homing the Z axis brings me to zero (as coordinates, no movement) also the other axes...if the machine is at x200 and y200 and I do $hx the coordinates are x0y200, then for $hy the coordinates update to x0y0...if instead they are at x200y200 and I do only $hz I find the coordinates at x0y0z0

@distebia
Copy link
Author

C'è un bug nel codice corexy che esiste da molto tempo e che influisce sul ritorno se si forzano le posizioni a 0. Lo risolverò nel prossimo commit.

Per vostra informazione, ho appena aggiunto un plugin che consente di impostare diverse distanze di pulloff per ogni asse e nella mia lista di cose da fare per una prossima revisione delle impostazioni aggiungerò un'impostazione per specificare a quali assi devono essere applicati i limiti soft. Ciò significa che potete ridurre/eliminare le modifiche delle impostazioni al volo, se volete.

I tried to compile by activating the plugin (uncommenting #define HOMING_PULLOFF_ENABLE 1 but I get a compilation error

image

if instead I do not activate the plugin, therefore leaving everything as //#define HOMING_PULLOFF_ENABLE 1 the compilation occurs without problems, also testing by loading it into the card

image

@terjeio
Copy link
Contributor

terjeio commented Nov 28, 2024

Oops, I have committed with the source for the misc plugins commented out. I'll fix it in the next commit, remove the comment until then.

@distebia
Copy link
Author

perfect, I made the change to ESP32/main
/CMakeLists.txt and it compiles correctly, I still have to upload the firmware to the board...one more thing...but can I manage 2 pwm spindles on mks dlc32 esp32?

@terjeio
Copy link
Contributor

terjeio commented Dec 11, 2024

but can I manage 2 pwm spindles on mks dlc32 esp32?

With the current board map no. If spindle direction output is added to the board map the PWM spindle can be cloned, the spindle direction signal will then be used as enable for the second spindle and the PWM output will be shared.

Another option is to configure a pin as analog output and use that for PWM and at least one other auxiliary output for the enable signal. This way an independent second PWM spindle can be enabled in my_machine.h:

#define SPINDLE0_ENABLE         SPINDLE_PWM0_NODIR
#define SPINDLE1_ENABLE         SPINDLE_PWM2

I have not tested this with the ESP32 and I do not know which pins, if any, are usually used for such a setup.

@distebia
Copy link
Author

ok, thanks, I have to find the pin with pwm on mks that I can use...tests to do

@distebia
Copy link
Author

distebia commented Dec 14, 2024

ma posso gestire 2 mandrini pwm su mks dlc32 esp32?

Con l'attuale mappa della scheda n. Se l'uscita della direzione del mandrino viene aggiunta alla mappa della scheda, il mandrino PWM può essere clonato, il segnale della direzione del mandrino verrà quindi utilizzato come abilitazione per il secondo mandrino e l'uscita PWM verrà condivisa.

Un'altra opzione è configurare un pin come output analogico e usarlo per PWM e almeno un altro output ausiliario per il segnale di abilitazione. In questo modo è possibile abilitare un secondo spindle PWM indipendente in my_machine.h:

#define SPINDLE0_ENABLE         SPINDLE_PWM0_NODIR
#define SPINDLE1_ENABLE         SPINDLE_PWM2

Non ho testato questa funzionalità con l'ESP32 e non so quali pin, se presenti, vengono solitamente utilizzati per una configurazione di questo tipo.

but is this enough in my_machine.h? or do I have to change something? I added this on my_machine_map.h

#if DRIVER_SPINDLE_PWM2_ENABLE
#define SPINDLE_PWM2_PIN GPIO_NUM_33
#else
#if DRIVER_SPINDLE_ENABLE
#define AUXOUTPUT4_PIN GPIO_NUM_26
#else
#define AUXOUTPUT4_PIN GPIO_NUM_33
#endif
#endif

#if DRIVER_SPINDLE_ENABLE
#if DRIVER_SPINDLE_PWM2_ENABLE
#define SPINDLE_ENABLE_PIN GPIO_NUM_26
#else
#define SPINDLE_ENABLE_PIN GPIO_NUM_33
#endif
#else
#define AUXOUTPUT5_PIN GPIO_NUM_26
#endif

@terjeio
Copy link
Contributor

terjeio commented Dec 17, 2024

I have just commited updated code and a modified board map for the MKS DLC32 that should support both PWM1 and PWM2 spindles. FYI the PWM2 spindle, which is implemented as a generic plugin, claims auxiliary ports - one analog or one or two digital output ports are required and has to be defined in the board map. The PWM1 spindle is driver specific and uses the same syntax for pin definitions as the PWM0 spindle.

@distebia
Copy link
Author

Thanks for the change...but I don't know how to test...do I have to find valid pins and replace them in mks_dlc32_2_0_map.h? also on my_machine.h I have to add
#define SPINDLE0_ENABLE SPINDLE_PWM0_NODIR
#define SPINDLE1_ENABLE SPINDLE_PWM2

and make the change in config.h
#define N_SPINDLE 2 ?

I did a test with FluidNC by first defining gpio33 as the second pwm output, then I tried with gpio25, I got the pwm output controlled by the sender but the pwm s1000 value was 3.3v (maybe this depends on esp32?)

@terjeio
Copy link
Contributor

terjeio commented Dec 17, 2024

Thanks for the change...but I don't know how to test...do I have to find valid pins and replace them in mks_dlc32_2_0_map.h?

Yes, if the ones I have provided cannot be used. Config is ok.

... the pwm s1000 value was 3.3v (maybe this depends on esp32?)

The ESP32 is a 3.3V device, you will have to add a level translator of some kind if you need a higher voltage. Could be as simple as a transistor circuit or more complicated such as op-amp(s) and filtering if you need a DC output.

FYI U2 is an on-board level translator to 5V connected to pin 32, the output is available on J18 (LC-0). There is also an open-drain mosfet (Q1) connected to it that can switch voltages up to 12V (J7, pin1) to ground via a load resistor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants