Utilisation bCNC

asclepios76
Messages : 14
Enregistré le : 29 oct. 2018 13:19

Utilisation bCNC

Message par asclepios76 »

Bonsoir,
Je souhaite utiliser la CNC directement avec bCNC via le micro-usb de la STM32 et bypasser l'écran ( peut être adjoindre un raspberry avec écran pour faire tourner bCNC)!
Pourquoi? Je souhaite utiliser bCNC pour ses multiples outils et j'ai remarqué une latence énorme si je passe par le STM32.
J'ai deja essayé plusieurs firmware font usbcnc mais sans succès !
Est-ce possible ?
Merci
Bonne soirée !
mstrens
Messages : 2611
Enregistré le : 27 févr. 2018 12:58

Re: Utilisation bCNC

Message par mstrens »

La latence en passant par l'ESP32 était-elle en utilisant l'USB ou bien était-ce avec la liaison telnet.
Je pense que c'est seulement dans le 2 ème cas qu'il y a une grande latence.

En principe c'est possible de se passer de L'ESP32 et de connecter le pc directement au STM32.

Il y a en principe 2 possibilités:
- utiliser un convertisseur USB/série 3V (ex: FTDI - coût 2 € environ)
- utiliser le port USB du STM32; dans ce cas, Il y a au minimum un paramètre à changer dans le fichier de config. De mémoire, il s'agit d'un #define USE_USB. Je devrais vérifier l'orthographe exacte. Après avoir fait ce changement, il faut recompiler et reflasher le STM32.
Si je me rappelle bien j'avais personnellement eu quelques soucis avec cette seconde solution. Il est possible que je devais presser le bouton reset du STM32 pour que la liaison USB se fasse correctement.
asclepios76
Messages : 14
Enregistré le : 29 oct. 2018 13:19

Re: Utilisation bCNC

Message par asclepios76 »

Merci de cette réponse rapide!!

La latence se produit via liaison USB sur l'ESP32 .C'est dommage car pour le jog ,le nunchuck est très performant et pratique!

En effet en compilant ton firmware ,en branchant en USB sans l'écran, le port est non reconnu donc à voir cette piste du #define USE_USB !
Je vais tester!

J'ai voulu essayé de flasher le firmware de base CNC-6-AXIS... mais mes axes ne bougent que dans une direction !
Merci pour les pistes de recherche!
asclepios76
Messages : 14
Enregistré le : 29 oct. 2018 13:19

Re: Utilisation bCNC

Message par asclepios76 »

mstrens a écrit : 30 juin 2019 23:14 La latence en passant par l'ESP32 était-elle en utilisant l'USB ou bien était-ce avec la liaison telnet.
Je pense que c'est seulement dans le 2 ème cas qu'il y a une grande latence.
La latence est énorme tant a l'émission de commande qu'à la récupération des coordonnées de la machine (avec bCNC).
Dans mon cas c'était en USB .Je ne sais pad si cela peut venir de ma configuration matérielle!
mstrens
Messages : 2611
Enregistré le : 27 févr. 2018 12:58

Re: Utilisation bCNC

Message par mstrens »

peux tu quantifier de combien est la latence.
Est-ce de l'ordre d'une seconde ou de 1/10 de seconde?
Est-ce constant ou par moment?
En principe, je ne vois pas de raison pour avoir une latence importance via l'USB.
Les caractères transmis par le PC sur l'USB sont convertis sur un port série par un circuit spécialisé installé sur le module ESP32. L'ESP32 les reçoit via un port série et les retransmet directement (caractère par caractère) sur un autre port série vers le STM32. Le processus est le même mais dans l'ordre inverse pour les caractères venant du STM32 à destination du pc.
Toutefois ce traitement au niveau de l'ESP32 se fait dans une boucle générale qui fait aussi d'autres tâches (lecture du touch screen, affichage de la position de la machine). C'est peut-être ces tâches qui ralentissent le processus à certains instants.

A priori je m'attendrais une latence de l'ordre de 1 msec la pluspart du temps et de l'ordre de 50 msec quand la position de la machine doit être actualisée. Pour être certain, je devrais toutefois faire un test avec digital scope.
asclepios76
Messages : 14
Enregistré le : 29 oct. 2018 13:19

Re: Utilisation bCNC

Message par asclepios76 »

Salut mstrens,
mstrens a écrit : 01 juil. 2019 07:29 peux tu quantifier de combien est la latence. Est-ce de l'ordre d'une seconde ou de 1/10 de seconde? Est-ce constant ou par moment?
Pour compléter la description de la latence :
C'est de l'ordre largement de la seconde ! de l'ordre du 1/10 de seconde c'est presque imperceptible et c'est largement utilisable .
Ce qui m'a fait essayer de me passer de l'ESP32 et de l'écran c'est que les positions Mpos et Wpos s'actualisent bien sur le touchscreen (de l'ordre du 1/10 de seconde effectivement ) mais sur bCNC c'est plusieurs secondes plus tards.
mstrens a écrit : 01 juil. 2019 07:29
Est-ce constant ou par moment?
La latence est présente des le début mais , elle me semble évoluer à la hausse au cours du temps mais surtout du nombre de commandes effectuées

Et j'ai l’impression que si l'on fait plusieurs commandes à la suite ce temps augmente . Par contre les commandes restent "en mémoire" et sont effectuées plus tard.

Les commandes de mouvement à partir de bcnc mettent parfois plusieurs secondes à être exécutées .Elles sont exécutées normalement sinon !

concernant ma recherche sur une éventuelle fonction USEUSB , j'ai bien trouvé des occurrences dans les fichiers de configurations mais rien de mis en commentaire ou possibilité d'activer cette fonction .
J'ai essayé de comparer avec le firmware d'origine CNC-6-AXIS... mais rien de probant.

Ce qui est sûr et vérifié c'est que le firmware "use_usb" sur github permet d'aller un peu plus loin : je peux brancher l'ESP32 en micro-usb , il est reconnu en port COM/LPT , j'arrive à me connecter à la CNC mais à partir de là ca dérape !!! les axes ne bougent que dans un sens , même en modifiant les mask via $3 , le sens change mais cela reste unidirectionnel et sur bCNC la commande des axes ne correspond pas aux axes qui bougent (surement un problème d'affectation de PIN je pense) .

Par contre les commandes sont fluides sans latences et les coordonnées Mpos et Wpos sont en temps réel (erronées mais en temps réel !)

bonne soirée !!!
mstrens
Messages : 2611
Enregistré le : 27 févr. 2018 12:58

Re: Utilisation bCNC

Message par mstrens »

La configuration des pins (et sans doute aussi d'autres paramètres) ont été adaptés pour le shield RD-CNC32.
Il faut donc utiliser le firmware prévu et non l'original.

J'ai vérifié et le paramètre est USEUSB et non USE_USB comme indiqué précédemment.
En fait ce paramètre n'est pas défini dans un fichier config mais directement dans les paramètres utilisés par Atollic pour la compilation.

Pour le trouver, il faut donc ouvrir Atollic puis prendre
- le menu Project et le sous menu build settings.
- dans la liste de gauche sélectionner C/C++ builds et Settings
- dans la partie droite prendre l'onglet Tool settings,
- a gauche dans l'onglet, prendre C Compiler puis Symbols
- à droite apparaît alors la liste des paramètres utilisés (c'est l'équivalent de directive #define)
- dans mon cas, (mais il se pourrait que ce ne soit pas la version publiée par Romain), je trouve dans la liste le texte "USEUSBX" (juste en dessous de STM32F103C8). En fait initialement ce texte était USEUSB et j'ai ajouté le X pour justement déactiver le USEUSB tout en gardant un moyen simple de le réactiver.

J'espère que c'est assez clair.

Pour le reste, je ne comprends pas pourquoi il y a une latence de 1 sec.
D'autres sur le forum pourraient éventuellement confirmer s'ils ont également le cas.
Je peux tester à l'occasion mais sûrement pas cette semaine.
asclepios76
Messages : 14
Enregistré le : 29 oct. 2018 13:19

Re: Utilisation bCNC

Message par asclepios76 »

mstrens a écrit : 01 juil. 2019 20:47
Il faut donc utiliser le firmware prévu et non l'original.

J'ai vérifié et le paramètre est USEUSB et non USE_USB comme indiqué précédemment.
En fait ce paramètre n'est pas défini dans un fichier config mais directement dans les paramètres utilisés par Atollic pour la compilation.

Pour le trouver, il faut donc ouvrir Atollic puis prendre
- le menu Project et le sous menu build settings.
- dans la liste de gauche sélectionner C/C++ builds et Settings
- dans la partie droite prendre l'onglet Tool settings,
- a gauche dans l'onglet, prendre C Compiler puis Symbols
- à droite apparaît alors la liste des paramètres utilisés (c'est l'équivalent de directive #define)
- dans mon cas, (mais il se pourrait que ce ne soit pas la version publiée par Romain), je trouve dans la liste le texte "USEUSBX" (juste en dessous de STM32F103C8). En fait initialement ce texte était USEUSB et j'ai ajouté le X pour justement déactiver le USEUSB tout en gardant un moyen simple de le réactiver.

J'espère que c'est assez clair.
Limpide!!
Après vérification USEUSB est bien tel quel donc fausse piste !!!
Au delà cela dépasse mes compétences !

Merci de tes infos
mstrens
Messages : 2611
Enregistré le : 27 févr. 2018 12:58

Re: Utilisation bCNC

Message par mstrens »

J'ai oublié de préciser que dans Atollic, il y avait 2 set de paramètres: l'un sous "debug" et l'autre sous "release"
Les paramètres peuvent être différents dans les 2.

Chez moi je compilais avec "debug" et c'est seulement dans celle là que j'ai mis USEUSBX (à la place de USEUSB) pour déactiver l'USB
asclepios76
Messages : 14
Enregistré le : 29 oct. 2018 13:19

Re: Utilisation bCNC

Message par asclepios76 »

mstrens a écrit : 01 juil. 2019 22:21 J'ai oublié de préciser que dans Atollic, il y avait 2 set de paramètres: l'un sous "debug" et l'autre sous "release"
Les paramètres peuvent être différents dans les 2.
J'ai bien passé le set release à "active" mais même résultat USEUSB bien présent !! :lol:
;)
Répondre