### Liens utile [https://www.meca-line.com/charlyrobot/sav-charlyrobot-charlyrobot-cra2-cra4-2u-4u-outils-fraise-gravure-fraise-cnc-usinage-javelot-pointe-diamante-isel-rack-sav-charlyrobot2013-10-01-12-19-02/depannage-charlyrobot-depannage-mecanumeric-maintenance-mecanumeric-maintenance-charlyrobot-procedures-documentations-exercices-tutorial-machines-charlyrobot-4u-2u-cra2-cra4-tour-4t2014-05-28](https://www.meca-line.com/charlyrobot/sav-charlyrobot-charlyrobot-cra2-cra4-2u-4u-outils-fraise-gravure-fraise-cnc-usinage-javelot-pointe-diamante-isel-rack-sav-charlyrobot2013-10-01-12-19-02/depannage-charlyrobot-depannage-mecanumeric-maintenance-mecanumeric-maintenance-charlyrobot-procedures-documentations-exercices-tutorial-machines-charlyrobot-4u-2u-cra2-cra4-tour-4t2014-05-28) Modification de la charlyrobot par un fablab [http://reso-nance.org/wiki/projets/charly_robot_grbl/accueil](http://reso-nance.org/wiki/projets/charly_robot_grbl/accueil) Grbl Esp32 https://github.com/bdring/Grbl_Esp32/wiki https://www.tindie.com/products/33366583/grbl_esp32-cnc-development-board-v35/ Voir le status des endstop https://discuss.inventables.com/t/guide-using-grbl-to-debug-your-homing-switches/16588 https://www.thingiverse.com/thing:24187 Zip tie sert cable avec double face http://takayama-shoji.co.jp/rego/pdf/13_technical_information.pdf https://www.probotix.com/wiki/index.php/PBX-2 ### La machine AVANT MODIFICATION : - Elle mesure X562 Y705 ou Y770 capot ouvert Z670 ou Z855mm capot ouvert pour un poids de 62Kg - Son volume d'usinage est de X300 Y210 Z100mm avec des pas de 640/mm à une resolution de 1/16 ça fait 40 step/mm en full step - Entrenement par vis à bille de diamètre 16mm et de pas 5mm - Des moteurs 35v 3A continue et 5A peak avec un couple de 90Ncm soit 0,9Nm de référence VRDM 266/50 L8A dont la nouvelle designation est VRDM 266/50L 3G8A. La datasheet donne un couple de 85Ncm et un courant d'également 3A donc ça semble coherent. - Une alimentation 38 ou 32,5V avec un toroid 35v 4A et un fusible 35v 6,3A puis 29v 2,5A - Une broche de 600W qui utilise des collets ERxx Kress (6 et 3mm actuellement) - Tuyau 30mm pour l'aspiration ### La machine APRES MODIFICATION : Les led rouges ainsi que le solenoid et le relais qui déclanche la spindle sont tous relié à un régulateur 29v --> 24v. L'alimentation de ce régulateur est controlé par l'esp via la pin spindle et une carte relais opto isolé Fusible de l'alimentation sur le rail 35v changé pour un 10A instantané car le 6,3 a pas tenu Tips and tricks grbl (esp32) : pour cncjs après s'être connecté en usb (avoir ouvert le port) il faut cliquer sur le bouton rouge "réinitialiser" reset pour que cncjs fasse l'initialisation de grbl et que l'esp réponde La pin reset de l'esp c'est "en" mais ça marche pas du coup si le bouton reset software de cncjs et hardware via le bouton noir sur la machine marche pas faut débrancher puis rebrancher le cable usb; LTV817 Opto coupleur pour isoler les endstop https://github.com/gnea/grbl/wiki/Wiring-Limit-Switches Pour trouver la coil A et B du stepper moteur simplement utiliser le multimètre en mode continuité Le smoothing sur fusion 360 remplace pleins de commande gcode de petite ligne par une commande arc. Ca libère le buffer de la machine et j'imagine les accelerations aussi. Les numéros d'outils c'est important M5 = spindle off M3 = spindle on Setup le G28 (position safe de la machine) est actuellement identique à la position de home En envoyant ? ou en activant le verbose mode grbl report status. Ici on vois qu'il est en alarme, sa position de travail ainsi que son buffer et la vitesse de travail feedrate. Pn: Donne le status des endstop. Ici le X est trigger Commande de job envoyé par l'interface web $J=G91 G21 F1000 X-10 ### CONFIG GRBL_ESP32 CRA4: - Augmenter le temps de démarrage de la spindle à 3-4sec - Activer la carte sd OK - Ne pas ignorer les pin de contrôle qui sur un esp seul n'ont pas de pullup et pose problème contrairement à ici. Cycle Start | Feed Hold | Reset | Safety Door OK - Inverser la logique de commande de la spindle. 3.3vHIGH = off 0vLOW = on OK - Possibilité de desactivé la pwm sur la spindle qui n'est ici pas utilisé - Augmenter le BLOCK_BUFFER_SIZE et RX_BUFFER_SIZE OK - Comme les capas de filtrages et les résistances de pullup suffisent pas activer ENABLE_SOFTWARE_DEBOUNCE (faudrait des optos coupleurs normalement et des endstop en >12v au lieu de 3.3v) OK ### PINOUT GRBL_ESP32 CRA4 (v3.5) Stepper disable sur GPIO 2 (c'est celle ou il y a led bleu relié sur l'esp car si utilisé en input il y a des problèmes) X_LIMIT_PIN GPIO_NUM_13 #ifdef CPU_MAP_ESP32 // This is the CPU Map for the ESP32 CNC Controller R2// It is OK to comment out any step and direction pins. This // won't affect operation except that there will be no output // form the pins. Grbl will virtually move the axis. This could // be handy if you are using a servo, etc. for another axis. #define CPU_MAP_NAME "CPU_MAP_ESP32" #define X_STEP_PIN GPIO_NUM_12 #define X_DIRECTION_PIN GPIO_NUM_26 #define X_RMT_CHANNEL 0 #define Y_STEP_PIN GPIO_NUM_14 #define Y_DIRECTION_PIN GPIO_NUM_25 #define Y_RMT_CHANNEL 1 #define Z_STEP_PIN GPIO_NUM_27 #define Z_DIRECTION_PIN GPIO_NUM_33 #define Z_RMT_CHANNEL 2 // OK to comment out to use pin for other features #define STEPPERS_DISABLE_PIN GPIO_NUM_2 // *** the flood coolant feature code is activated by defining this pins // *** Comment it out to use the pin for other features #define COOLANT_FLOOD_PIN GPIO_NUM_16 //#define COOLANT_MIST_PIN GPIO_NUM_21 // If SPINDLE_PWM_PIN is commented out, this frees up the pin, but Grbl will still // use a virtual spindle. Do not comment out the other parameters for the spindle. #define SPINDLE_PWM_PIN GPIO_NUM_17 #define SPINDLE_PWM_CHANNEL 0 // PWM Generator is based on 80,000,000 Hz counter // Therefor the freq determines the resolution // 80,000,000 / freq = max resolution // For 5000 that is 80,000,000 / 5000 = 16000 // round down to nearest bit count for SPINDLE_PWM_MAX_VALUE = 13bits (8192) #define SPINDLE_PWM_BASE_FREQ 5000 // Hz #define SPINDLE_PWM_BIT_PRECISION 8 // be sure to match this with SPINDLE_PWM_MAX_VALUE #define SPINDLE_PWM_OFF_VALUE 0 #define SPINDLE_PWM_MAX_VALUE 255 // (2^SPINDLE_PWM_BIT_PRECISION) #ifndef SPINDLE_PWM_MIN_VALUE #define SPINDLE_PWM_MIN_VALUE 1 // Must be greater than zero. #endif #define SPINDLE_ENABLE_PIN GPIO_NUM_22 #define SPINDLE_PWM_RANGE (SPINDLE_PWM_MAX_VALUE-SPINDLE_PWM_MIN_VALUE) // if these spindle function pins are defined, they will be activated in the code // comment them out to use the pins for other functions //#define SPINDLE_ENABLE_PIN GPIO_NUM_16 //#define SPINDLE_DIR_PIN GPIO_NUM_16 #define X_LIMIT_PIN GPIO_NUM_13 #define Y_LIMIT_PIN GPIO_NUM_4 #define Z_LIMIT_PIN GPIO_NUM_15 #define LIMIT_MASK B111 #define PROBE_PIN GPIO_NUM_32 #define CONTROL_SAFETY_DOOR_PIN GPIO_NUM_35 // needs external pullup #define CONTROL_RESET_PIN GPIO_NUM_34 // needs external pullup #define CONTROL_FEED_HOLD_PIN GPIO_NUM_36 // needs external pullup #define CONTROL_CYCLE_START_PIN GPIO_NUM_39 // needs external pullup #endif