Aller au contenu

GO Print

Rétrofit d'une fraiseuse 4 axes de 2006


bracame

Messages recommandés

Bonjour,

Depuis presque 15 ans, j'ai ma fraiseuse 4 axes à la maison.

La construction m'a pris un an car j'était pas pressé de dépenser tout d'un coup ( Environ 1000 € Broche et PC compris).

Une présentation à l'époque : ICI.

La CN était composée de LinuxCnc qui pilotait le port parallèle du PC pour piloter une carte :

La MC433 (10A, mode 1/2 pas !!! ça c'est du demi milliion de microstepping 🙃)  et en mode unipolaire !!! (On a bien moins de couple dans ce mode):

Et bien, elle en fait du copeau cette fraiseuse !!! Et elle était presque parfaite à mes yeux 😍.

Et la -> C'est le drame !! J'achète une imprimante 3D (Une U30 Alfawise) ... Pas super fiable donc je m'interesse à ces composants.

Et alors la : Je découvre que l'offre de contrôleurs moteurs pas à pas a explosée , Il y en a pour tous les usages et remplacer ma MC433 devient possible à un coût très correct.

Quand on a une imprimante et que l'on a l'habitude de partager les infos (les savoirs) on vient ICI. (Mon Ami @Antho.breizh m'en avait parlé)

Et en papotant avec des pationnés de CN : @Titi78, @Jean-Claude Garnier, @Locouarn né l'envie de mettre à jour ma machine au niveau de l'électronique.

Le boulot est en cours, la présentation suit : 

 

Modifié (le) par bracame
Cosmetic 2006 !!
Lien vers le commentaire
Partager sur d’autres sites

il y a 19 minutes, bracame a dit :

Quand on a une imprimante et que l'on a l'habitude de partager les infos (les savoirs) on vient ICI

En effet "La connaissance est la seule matière qui s’accroive lorsqu’on la partage » (Socrate, un geek à la grammaire approximative)

....à ne pas confondre avec  image.png.4e197dfed92374520b4496364b610a51.png

.... Dont je suis sûr que @fran6p apprécie la fine subtilité...

  • Haha 2
Lien vers le commentaire
Partager sur d’autres sites

Hum ! Certaines formes de désirs décroissent fonction de la température de l'eau dans laquelle le "matériel" est plongé monsieurs @Jean-Claude Garnier.

-> J'habite dans le Cotentin : Je connais 🤣.

Revenons à nos moutons, mes moteurs :

Avec la carte MC433 : Utilisation en Unipolaire à 2.8A par phase.(Ce que je fait depuis 14 ans)

En Bipolaire, on multiplie le couple par 1.414 (racine de 2) environ .. Intéressant .

Petite recherche parmi le choix pour les imprimantes 3D : Le DRV8825 "tient" 2.5A (Bien refroidis !!!) et c'est le seul qui convient à mes moteurs donc si je veux pas perdre de "patate".

Si on lis bien la doc, il faut 4A en bipolaire série et "que" 2A en parallèle.

Le problème du mode parallèle est que l'on augmente l'inductance des bobinages : Le courant max met plus de temps à s'établir.

-> Il faut donc une tension d'alim élevée par rapport aux besoins des moteurs.

Test avec des DRV8825 réglés à un peut plus de 2A : Avec un système de refroidissement "étudié" ça passe tout seul : (Un câble en 2.5² rigide sert de caloduc)

-> Prix de revient : Heux 10- 15€ pour les 4 moteurs !! (DRV8825 + "Caloduc maison") 🤑

 

IMG_20200129_180016.jpg

FL57STH76-2808B.pdf

Modifié (le) par bracame
Lien vers le commentaire
Partager sur d’autres sites

Une petite précision sur ce mode de refroidissement:

Pour bien faire, il faut lire la doc, le "datasheet" du DRV8825. Les résistances thermiques sont de (voir page 5) :

"RθJC(top) Junction-to-case (top) thermal resistance(3) 15.9

RθJB Junction-to-board thermal resistance(4) 5.6

En C/W" ....

En clair Un dissipateur placé sur le dessus du DRV8825 sera 3X moins efficace que placé en dessous ('to board" qu'ils disent) car ce circuit intégré est conçus pour être refroidis par le dessous.

Modifié (le) par bracame
datasheet
Lien vers le commentaire
Partager sur d’autres sites

Bon, j'ai pas fini !

Les sieurs @Jean-Claude Garnier et @Locouarn m'ont fait mieux comprendre l’intérêt de  GRBL (Merci à vous)!

-> GRBL est très bien écrit, conçu dans les règles de l'art de la commande numérique : Ça sent les PROS !! (Je connais très bien cela ...)

Donc ma CN passe sous GRBL ...Un GRBL  perso ,

-> Avec ce "pinout" : (Mes ajouts principaux sont un axe A, un potentiomètre pour gérer les vitesses d'avances rapide et travail plus une led qui indique le mode de fonctionnement en cours.)

MY_GRBL%20Mega%202560.png?raw=true

Et c'est pas fini !!

Modifié (le) par bracame
Lien vers le commentaire
Partager sur d’autres sites

Ben oui c'est pas fini car le coromerdique est dans l'air donc il faut s'occuper : Sans cette M..... je l'aurai fait quand même ...plus lentement)

-> Depuis des mois je rassemble les éléments du rétrofit et la ... On compte les points (Ben ya presque tout, on improvise pour le reste ...)

Une photo de l'avant avec un logo gravé avec les drv et le Méga2560 en l'air (Bon ça fait beauf mais c'est ma crise de la cinquantaine😉)

 

IMG_20200319_165849.jpg

  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

  • 4 weeks later...

salut Bracame,

Je viens de voir ton post cool lamise à jour de cette CNC je crois qu'elle va encore faire du copeau pour plusieurs années avec cette cure de rajeunissement ...

A fond partout ...

Bon week end et confinement à tous .

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...

intéressé par les travaux de @bracame et ne voulant pas pourrir son sujet je lui ai envoyé un MP , dans sa réponse il m'indique que ça ne pourrit pas son post mais que ça le fait vivre 

je vous livre donc notre echange:

Citation

 

bonjour bracame 

je me permet de te contacter en MP car pour ne pas pourrir ton sujet sur le rétrofit de ta fraiseuse 4 axes car j'ai lu avec beaucoup d'interet ton sujet et je souhaiterais te poser quelques questions 

je suis moi même en phase de construction d'une fraiseuse (dremel cnc de nicodème bartnik) ayant a disposition en fond de tiroir une carte Makerbase MKS GenL (carte a base de Mega 2560 et ramps 1.4) j'ai réussi a y installer et paramétrer (création de définition pour ma carte dans cpu_map.h) GRBL 5X et tout semble fonctionner correctement 

a la suite de la lecture de ton sujet et après telechargement et "étude du code" de ta version de GRBL je suis très intéressé par tes 2 add-on (led & Potentiomètre feed rate ) , pense tu qu'il soit possible de les intégrer a GRBL 5x

détail des ports disponibles sur ma carte :

pour l'add-on led

  • port L0 libre
  • port L1 : Direction Z
  • port L2 : non utilisable
  • port L3 : Step z
  • port L4 : non utilisable
  • port L5 : Led verte de ton add-on
  • port L6 : non utilisable
  • port L7 : Led rouge de ton add on

pour l'add-on Potentiomètre feed rate:

  • port B0 : coolant flood
  • port B1 : coolant mist (sortie 0 5v)
  • port B2 : libre
  • port B3 : libre
  • port B4 : coolant mist (sortie sur mosfet E0)
  • port B5 : pot feed rate (sortie servo 1) pour le coté pratique  car il y a un connecteur 3 pin 0_5v_signal
  • port B6 : non utilisable 
  • port B7 : led D8 sur la carte MKS GenL

je suppose qu'il faut :

  • ajouter leds.c,  leds.h, feed_rate_pot.c, feed_rate_pot au dossier GRBL 
  • ajouter #define USE_STATUS_LED  et  #define USE_FEED_RATE_POT a mon fichier cpu_map.h

y a t'il autre chose a modifier / ajouter

 

réponse de bracame :

 

Citation

 

Bonjour supernono,

Stp, n'hésite pas à poster sur le sujet : Ce n'est pas le pourrir mais plutôt le nourrir !

Ce sont les échanges qui font avancer...

Concernant les ajouts : Pas de soucis pour la led : L5 et 7  feront l'affaire :

#define STATUS_LED_DDR    DDRL
#define STATUS_LED_PORT   PORTL
#define GREEN_LED_BIT    5
#define RED_LED_BIT       7
#define GREEN_LED         (1<<GREEN_LED_BIT)
#define RED_LED           (1<<RED_LED_BIT)
#define STATUS_LED_MASK   (GREEN_LED | RED_LED) // 2 output (pin mask)

Pour le potentiomètre (super pratique 😉: Il faut une entrée analogique donc obligatoirement une pin du port F ou K.

Si aucune est dispo, pas possible de mesurer un potar.

Ensuite, oui il faut ajouter les fichiers,  les #define au cpu_map.h et aussi tout le code contenu dans ces #define.

Par exemple : Dans main.c

int main(void)
{
  Power_Status = 0; // Power supply is OFF
  // Initialize system upon power-up.
  serial_init();   // Setup serial baud rate and interrupts
  settings_init(); // Load Grbl settings from EEPROM
  stepper_init();  // Configure stepper pins and interrupt timers
  system_init();   // Configure pinout pins and pin-change interrupt
  #ifdef USE_FEED_RATE_POT
  InitFeedratePot();
  #endif // USE_FEED_RATE_POT
  #ifdef USE_STATUS_LED
  InitStatusLeds();
  #endif

  memset(sys_position,0,sizeof(sys_position)); // Clear machine position.
  sei(); // Enable interrupts.......................................................

Et cela pour tous forcement (il y en a quelques un).

Voila, espérant être clair.

Bon week end et (je répète) n'hésite pas à poster ;-).

 

Modifié (le) par supernono
Lien vers le commentaire
Partager sur d’autres sites

je continu donc ici

pour le potentiomètre feed rate effectivement j'ai pas réfléchi il faut une pin analogique F5 est dispo de plus elle est sur un connecteur (AUX2)  regroupant les boutons RESET / FEED HOLD / CYCLE START /  0v / +5v tout cela allant vers mon panneau de controle c'est parfait je peux aussi y ajouter les 2 sorties pour les leds

pour les "define " bien entendu j'ai bien compris qu'il faut mettre la partie de code qui va avec 

Citation

bracame:

Et cela pour tous forcement (il y en a quelques un).

par contre ça je ne comprend pas trop 

pour le moment je compare tous les fichiers du dossier GRBL des 2 versions avec notepad++ pour trouver ce qui change (c'est long et fastidieux !!)

j'y vais petit a petit j'ai commencer par les leds et j'ai déjà un soucis : elle est allumé en orange quel que soit l'état de grbl cycle / homing / alarme  c'est toujours orange !! j'ai du oublier un truc quelque part 

pour la led c'est bien une led bicolore cathode commune ? 

Modifié (le) par supernono
Lien vers le commentaire
Partager sur d’autres sites

Oui, c'est ce type de led, n'oublie pas les résistances série pour limiter le courant 😉 (C'est. surement déjà fait)

Pour ce qui est de "la comparaison fastidieuse" : Ouvre tous mes fichiers avec Notepad++ et fait une recherche des #defines dans "tous les fichiers ouverts" -> Toutes les réponses en une fois. Ce qui'il faut chercher, c'est "#ifdef USE_STATUS_LED" ou plus largement "USE_STATUS_LED" pour trouver ou j'ai placé du code spécifique à cette fonction.

La pin F5 sera ok pour l'utilisation du potar d'avance, mais il va falloir modifier le masque pour l'utilisation de cette pin.

Lien vers le commentaire
Partager sur d’autres sites

ok je check ça et te tiens au courant

EDIT:

@bracame bon alors ça fonctionne presque bien il n'y a que lors du homing que ça ne va pas :

  • si je fais le homing avant de déverrouiller la led reste rouge lors du homing
  • si je fais le homing après avoir déverrouillé la led reste verte lors du homing 

c'est comme si STATE_ALARM OU STATE_IDLE avaient la priorité sur STATE_HOMING

sinon c'est top cette indication visuel de l'état de la machine

j'utilise CNCjs mais je ne pense pas que ça influe sur les leds 

je vais m'attaquer au feed rate maintenant si je trouve un potentiomètre dans mes tiroirs

tu m'a dit dans ton message précédant :

Citation

La pin F5 sera ok pour l'utilisation du potar d'avance, mais il va falloir modifier le masque pour l'utilisation de cette pin.

est ce que bout de code te semble correcte :

 // FEED_RATE_POT
#define USE_FEED_RATE_POT
#define FEED_RATE_POT_DDR       DDRF
#define FEED_RATE_POT_PORT      PORTF
#define FEED_RATE_POT_INPUT     5
#define FEED_RATE_POT_PIN       (1<<FEED_RATE_POT_INPUT)

sachant que pour le port F j'ai:

  • F0 : Step X
  • F1 : Dir X
  • F2 : Enable Y
  • F3 : Non utilisable
  • F4 : Non utilisable 
  • F5 : Potentiomètre feed rate
  • F6 : Step Y
  • F7 : Dir Y
Modifié (le) par supernono
Lien vers le commentaire
Partager sur d’autres sites

Déverrouillée ou pas, j'ai pas ce comportement ... Mais on a peut être pas la même config.

La led clignote vert/rouge (0.5Hz) lors de la prise d'origine (obligatoire ici).

Ensuite pour l'entrée analogique, tes lignes de code sont ok -> Cela va définir la pinoche comme une entrée.

Reste à remplir les registres du convertisseur analogique/numérique pour qu'il s'occupe que de cette pin ;-).

Je vais regarder quel code correspond à cette config.

Edit : Et la, "il faut lire la "bible" (Cela ce passe page 282 - 283).

Modifié (le) par bracame
Lien vers le commentaire
Partager sur d’autres sites

moi aussi prise d'origine obligatoire , je vais continuer à comparer les fichiers 

pour la suite ça se complique pour moi autant en arduino je me débrouille autant en C C+ C++ , registre et compagnie  j'y panne que dalle !!

merci pour ce qui fonctionne déjà , je vais essayer de me plonge dans la bible , advienne que pourra !! 

je n'ai trouver qu'un potar de 1k dans mes tiroirs , je vais tenter de faire quel que test demain 

Lien vers le commentaire
Partager sur d’autres sites

Il y a 16 heures, supernono a dit :

... autant en arduino je me débrouille autant en C C+ C++ , registre et compagnie  j'y panne que dalle !!

Bonjour, moi : C'est le contraire, je connais pas (et j'ai pas envie) Arduino car j'aime "parler" directement à la machine.

Fait signe si besoin.

EDIT : Pour F5 (AIN5) cela doit donner ..

void InitFeedratePot()
{
  FEED_RATE_POT_DDR &= ~(FEED_RATE_POT_PIN); // Configure as input pin
  FEED_RATE_POT_PORT &= ~(FEED_RATE_POT_PIN); // Configure no pullup
  ADMUX = ADC_VREF_TYPE | bit(MUX2) | bit(MUX0); // 5V reference + AIN5
  ADCSRA = bit(ADEN) | bit(ADPS2) | bit(ADPS1) | bit(ADPS0); // ADC enabled, pre-scaler division=128.
  ADCSRB = 0; // AIN0 to AIN7
  ADMUX = FEED_RATE_POT_INPUT|ADC_VREF_TYPE; // select input
  ADCSRA |= (1 << ADSC); // Start first AD conversion
}

 

La conversion se fait "en temps masqué" et ne fait pas donc pas perdre de temps à la boucle principale.

Modifié (le) par bracame
Lien vers le commentaire
Partager sur d’autres sites

bon j'ai continuer mes investigations sur les indications par la led bicolore , en fait c'est JOG et HOMING qui ne fonctionnent pas correctement

pour m'aider au diagnostique et ayant le port L0 de libre (rappel rouge L7 / vert L5) j'y ai mis une led bleu déclarée et configurée comme il faut

j'ai modifier le fichier led.c pour n'avoir que ALARM sur le rouge et que IDLE sur le vert et j'ai tester les autres fonctions une par une sur le bleu 

résultat :

  • JOG OK ->  la led bleu clignote comme demandé par la configuration de led.c 
  • HOMING KO -> impossible d'allumer la led bleu  que se soit déverrouillé ou pas elle ne 's'allume pas
  • EDIT: en fait JOG KO en JOG il se passe ce qui est définit dans STATE_CYCLE !!!!!!

j'ai poussé les test en mettant ceci dans le led.c :

        

        case STATE_HOMING :
          RED_LED_OFF;
          GREEN_LED_OFF;
          BLUE_LED_ON;           
            break;

rouge ou vert reste allumé en lançant un homing  déverrouillé ou pas ; comme si  case STATE_HOMING n'était jamais vrai ou à 1 ou que IDLE ou ALARM prenait le dessus 

j'ai remis le fichier led.c dans sa configuration initiale sauf le JOG qui reste sur bleu et j'ai commenté ce qui concerne le HOMING et j'arrive a un fonctionnement plus correcte et qui me convient 

ce n'est pas très grave je n'aurais pas d'indication HOMING mais le homing tu le fait au démarage de la machine et tu vois que ça s'éxécute .

solution :

je pense donc mettre une led RVB et le JOG me donnera une couleur résultant du vert et du bleu , cyan ? on verra bien 

merci encore pour ton aide  je passe sur le potar feed rate 

juste deux questions :

tu as moyen de savoir a quel pourcentage tu te trouves ? 

sur ma carte il y a juste un condensateur  entre la masse et la pin 98 AREF c'est bon ? ou il faut la connecter au 5v ? 

Modifié (le) par supernono
Lien vers le commentaire
Partager sur d’autres sites

j'ai fais comme tu m'a dis plus haut : une recherche dans notepad++ pour STATE_JOG , pour STATE_HOMING et pour USE_STATUS_LED dans tout tes fichiers et j'ai comparer avec tous les miens rien trouve de notable 

ce qui me "chiffonne" c'est que  si je modifie ce qui est définit dans case STATE_CYCLE ça change le comportement pendant le JOG et tous ce qui est définit dans case STATE_JOG n'a aucun effet

Lien vers le commentaire
Partager sur d’autres sites

Peut être que la définition de STATE_CYCLE et de se copains ont été modifiés pas Gauthier (L’auteur du firmware que tu utilise).

A demander à l'auteur .... (Il est pas sur ce Forum ?)

Modifié (le) par bracame
Aur t'o graffe
Lien vers le commentaire
Partager sur d’autres sites

j'essaierais de le contacter pour voir , sinon ça me vas comme c'est pour le moment

j'ai testé le pot feed rate ça marche du 1er coup juste une légère instabilité (-2% à +2%) mais j'ai qu'un potar de récup chinois de 1K ou un ajustable multitours 50k c'est un peux plus stable avec le multitours +-1%

tu utilise quoi comme potar toi ?

encore merci pour tes 2 add-on c'est vraiment top  !

Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
  • Sur cette page :   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
  • YouTube / Les Imprimantes 3D .fr

×
×
  • Créer...