"HandWheel" XHC-HB04 et LinuxCNC

  • Auteur de la discussion SkippyLeChat
  • Date de début
SkippyLeChat
SkippyLeChat
Compagnon
20 Août 2011
1 010
Nantes
  • Auteur de la discussion
  • #1
Bonjour,
Avant de bosser pour rien (ça s'est vu !), est-ce que ça intéresse quelqu'un de savoir comment configurer LinuxCNC pour utiliser une "handwheel" prévue pour Mach3 ?
C'est faisable, la preuve :
A+
Skippy

XHC-HB04 LinuxCNC.jpg
 
rddt
rddt
Ouvrier
25 Avr 2010
464
toit du Var
Salut SkippyLeChat

Oui oui, ça m'intéresse fortement, j'espere qu'il y aura d'autres candidats. :smt023
@++
 
SkippyLeChat
SkippyLeChat
Compagnon
20 Août 2011
1 010
Nantes
  • Auteur de la discussion
  • #3
Bon ben ça va être mon boulot de demain...
Pour ce qui est de l'affichage et de la commande des déplacements X,Y,Z avec la handwheel, ça marche...
Pour de qui est des boutons, je suis à faire une adaptation... à mes habitudes. Qui ne conviendront pas forcément à tout le monde. J'essayerai d'expliquer le principe.
La Handwheel en question est la XHC-HB04. J'utilise celle-là, mais il y a en a d'autres (sans fil par exemple) qui iront pareil !
A suivre...
Skippy
 
SkippyLeChat
SkippyLeChat
Compagnon
20 Août 2011
1 010
Nantes
  • Auteur de la discussion
  • #4
HandWheel" XHC-HB04 et LinuxCNC

********************************************************************
EDIT 1/1/2017
Cette procédure est obsolète : avec LinuxCNC 2.7 (Debian) l'installation d'une XHC-HB04 est beaucoup plus simple.
Voir en page 4 de cette discussion

********************************************************************
C’est parti !

Tout d’abord, une précision : je ne suis pas l’auteur la chose. Celle-ci est l’œuvre d’un développeur anglophone qui a mis à disposition ses travaux dans le wiki de Linuxcnc.org. Malheureusement, comme beaucoup de dieux vivants de l’informatique, il est très fort pour réaliser un soft complexe, mais semble ne pas voir la nécessité d’explications basiques pour les simples mortels comme vous et moi.

J’ai donc essayé de ramener ça à une dimension plus humaine – et en bon français - pour que l’adaptation soit réalisable par quelqu’un dont le niveau correspond à savoir comment lancer le terminal de Linux, se doute à quoi sert une commande comme « sudo gedit… » et est capable de se balader dans les répertoires avec « cd ..» et « dir ». Ce qui est à peu près mon niveau sous Linux ! Petit rappel : contrairement à DOS, Linux fait la différence entre majuscule et minuscule… Ne pas s’énerver et se relire avant de taper Entrèe !

[glow=red]La Handwheel Xhc-HB04[/glow]

Si aujourd’hui (le 3/3/2014) on tape « handwheel » dans la fenêtre de recherche d’ebay, on trouve un ancien modèle venant de Hong-kong et pour lequel a été développé le soft. Il a 16 boutons dont X=0, Y=0, Z=0. Si on étend la recherche au monde entier, on trouve un modèle chinois plus récent, avec cordon usb et équipé de 18 boutons. En cherchant encore un peu on trouve des modèles similaires « whireless ». Sur les modèles récents les boutons X=0, Y=0, Z=0 ne sont plus là et ce sera une des causes de nos petits soucis. Il existe également un modèle avec pleins de boutons et pas de molette = pas ça !
Les prix, whireless ou pas se situent entre 75€ et 90€
J’utilise le modèle chinois avec 18 boutons, une molette et un cordon Usb. C’est celui-là dont au sujet duquel je vais causer. Pour l’anecdote, il a mis 2 ½ mois à venir à pied de la Chine, parce que j’ai été assez couillon pour le commander au moment du nouvel an chinois !

On va procéder en 2 étapes :
1 - D’abord faire marcher la handwheel proprement dite et son affichage de position.
2 - Ensuite voir ce que l’on peut faire avec les boutons qui, s’ils conviennent à Mach3 ne sont pas adaptés à l’interface Axis de LinuxCNC.

J’ai supposé que l’installation de Linuxcnc a été faite de façon standard (nom des répertoires, etc.) Sinon, faudra s’adapter…

Les liens utiles :
=> la page wiki de LinuxCNC.org où est – succinctement - décrite la manip.
=> un échange sur le forum LinuxCNC.org où l’auteur papote avec des amis.
=> la liste de Pins Halui qui sera bien utile pour configurer sur les boutons.
=> je ne vous fais pas l'injure d'un lien vers le manuel Gcode :-D Mais personnellement j'en ai toujours besoin !

[glow=red]I- Faire marcher la Handwheel et l’affichage[/glow]

a) Installer les outils et bibliothèques nécessaires. Dans le terminal, passer les commandes suivantes :

sudo apt-get install linuxcnc-dev
sudo apt-get install libc6-dev
sudo apt-get install libusb-1.0-0-dev


(Si ces modules sont déjà installés, ça le dira, mais ce n’est pas grave…)

b) Créer un fichier « 90-xhc.rules » dans le répertoire protégé « /etc/udev/rules.d ». Pour cela, dans le terminal, passer la commande :

sudo gedit /etc/udev/rules.d/90-xhc.rules


L’éditeur Gedit ouvre le nouveau fichier, copier la ligne suivante et coller-là dans le nouveau fichier :

SYSFS{idProduct}=="eb70", SYSFS{idVendor}=="10ce", MODE="666", OWNER="root", GROUP="users"


Ce fichier est indispensable pour permettre l’accès au port USB. Un reboot de la machine est nécessaire pour qu’il soit pris en compte.

c) Dans le terminal, créer un répertoire réservé aux fichiers sources de la XHC-HB04 avec les 2 commandes suivantes :

cd linuxcnc
mkdir XHC-HB04


d) Télécharger le fichier archive upload:xhc-hb04-V06.tgz

e) Extraire les fichiers dans le répertoire nouvellement créé : XHC-HB04. L’extracteur créé un sous-répertoire \src… tant pis !

f) Avec le terminal, aller dans ce sous-répertoire et lancer les make suivants

(cd linuxcnc) <= si nécessaire
cd src
make
make install

(A noter que pour revenir en arrière, la commande est make clean)

[glow=green]A partir d'ici, si vous souhaiter adopter ma config, ou vous en servir de base pour créer la vôtre, vous pouvez sauter les étapes suivantes et passer à "II- Configuration des boutons"[/glow]

g) Copier les fichiers xhc-hb04.hal et xhc-hb04-layout*.ini dans le répertoire « config » de la machine CNC qui utilisera la handwheel

h) Pour commencer les tests, il va vous falloir rajouter a minima une ligne dans la section [HAL] du fichier <mamachine>.ini :

[HAL]
...
HALFILE = xhc-hb04.hal


A noter que si vous utilisez stepconf pour modifier la config de cette machine, cette ligne (et les autres que vous aurez été amené à rajouter) disparaitra. Il est donc prudent d’archiver les modifications du fichier <mamachine>.ini dans un autre fichier pour pouvoir les récupérer !

Dans le fichier xhc-hb04.hal on peut choisir si on utilise un modèle 16 boutons (layout1.ini) ou 18 boutons (layout2.ini) en adaptant la ligne :

loadusr -W xhc-hb04 -I xhc-hb04-layoutN.ini -H

[glow=red]Premiers tests [/glow]

Si toutes les étapes précédentes ont été menées correctement, lorsque vous allez lancer Linuxcnc... Et ça ne marchera pas ! Ha ha ! Je vous ais bien eu ! :lol: Non, je déconne. Ça ne marchera probablement pas, mais avec les informations de débogage, on peut s’en sortir.

Dans le fichier Linuxcnc errors (qui s’ouvre automatiquement quand ça plante), à la rubrique « debug file information » et après des chouineries can’t find gna gna, on trouve des lignes utiles comme :

xhc-hb04.hal:31: Pin ‘halui.jog.3.plus’ does not exist

Cette ligne veut dire qu’il y a une erreur dans le fichier hal à la ligne 31. On va en ligne 31, on met un caractère # devant la ligne (elle devient un commentaire) et on refait un test.

Comme annoncé plus haut, il est probable que toutes les lignes relatives aux boutons X=0, Y=0, Z=0 vont devoir être passées en commentaires : normal, ces boutons n'existent pas

Si la ligne d’erreur parle d’autre chose que les Pins de hal (accès à l’usb par exemple, c’est que vous avez loupé une étape… vérifiez et recommencez)

Normalement, ça va finir par marcher et à ce stade de l’affaire on doit pouvoir commander les déplacements en X, Y, et Z. L’affichage est mis à jour avec les positions absolues et relatives.

Pour les boutons, c’est une autre paire de manche.

[glow=red]II- Configuration des boutons[/glow]

La configuration des boutons dépendra des habitudes et préférences de chacun. L'un voudra ci, l'autre ça... Et puis je ne suis pas sûr d'être le plus représentatif des utilisateurs de LinuxCNC. Donc, ce que je vous propose : vous téléchargez ma config (fichier joint), je vous la commente, et si elle vous plaît tel quel vous l'adoptez sinon vous l'adaptez :-D

Donc, pour mettre la config que je vous propose en service, il faut :
- supprimer du répertoire config de la machine qui utilisera le handwheel tous les fichiers qu'on a pu y mettre lors de la première étape (ça fera du ménage). C'est à dire les fichier xhc-hb04-layout*.ini, le fichier xhc-hb04.ini, xhc-hb04.hal, etc.
- décompresser le fichier xhc-hb04-skippy.tar dans le répertoire config
- aller dans le fichier Lisez-moi-xhc-hb04.txt pour y chercher les lignes à copier dans le fichier <mamachine>.ini

Il y a aussi le fichier bouton-xhc-hb04.pdf avec l'image qui m'a servi à faire un masque pour "habiller" la handwheel (photo)

En résumant, les boutons du XBC-HB04 peuvent être associés à des Pins halui ou bien associés à des commandes manuelles en GCode (mdi commands) :
- Ces commandes mdi sont écrites dans une section [HALUI] du fichier <mamachine>.ini
- La déclaration (le nommage) des boutons est faite dans le fichier xhc-hb04.ini
- l'association entre boutons et pins halui ou commandes mdi est faite dans le fichier xhc-hb04.hal (les 2 derniers paragraphes)

A partir de là, le mieux est de regarder comment c'est fait ! Et puis, vu le déchaînement de passions pour ce topic :-D - je vais pas y passer la nuit non plus ! Félicitations à ceux qui m'ont lu jusqu'au bout. N'étant pas nombreux, ils ont le droit de faire un petit coucou en laissant un post : je me sentirai moins seul ! Si par miracle, mon boulot permet à quelqu'un d'adapter une handwheel... là ce serait la consécration !
A+
Skippy

Normalement, tout est dans le fichier archive...
Edit : si ça peut rassurer les inquiets : je viens de configurer une machine "vierge" en suivant la procédure pas à pas. = à peine 10 minutes, marche du premier coup.
A noter que le module libc6-dev était déjà présent et qu'il manquait la ligne HALUI=halui dans le .ini Voir la pièce jointe xhc-hb04-skippy.tar
 
Dernière édition:
P
pascalp
Compagnon
30 Août 2007
1 067
Perpignan
Mais non, tu n'est pas seul ! Et merci pour m'avoir re-motivé.
Je finirais bien un jour par installer un de ces appendices sur mon système.
Ce type de commande m'inspire beaucoup plus qu'un gamepad bidouillé.

edit : je viens de passer la phase 1, la commande du paddle

Pour la fiche "boutons", une impression couleur plastifiée c'est bon ?
Pour le Z, je préfère assigner un 0 origine en position haute (switch fin de course). C'est la seule position indépendante de l'outil installé.
 
SkippyLeChat
SkippyLeChat
Compagnon
20 Août 2011
1 010
Nantes
  • Auteur de la discussion
  • #6
Ah mais je suis tout motivé là ! Miaou !
Pour le "patch" des boutons... C'est pas très brillant non plus mon truc. En fait j'ai fait le dessin sur Autocad , j'ai imprimé à l'échelle sur du papier auto-collant et je fais tenir le tout par dessus les boutons d'origine avec du BelnDerm qui trainait sur l'établi.
C'est sûr que si il a moyen un jour de faire sérigraphier un truc en plastique, ce serait royal !
Si tu veux, je peux te dessiner une config personnalisée... C'est pas le temps que ça prend. Suffit de me dire où tu veux tes boutons
Je me remets à faire préparer les fichiers .ini et .hal
A+
Skippy

Edit : C'est fait... le dossier doit être complet . A vous de jouer !
 
toff
toff
Compagnon
1 Nov 2008
879
FR-60 Elincourt ste Marguerite
Je n'ai toujours pas de quoi tester mais je garde ton post sous le coude. Et merci pour le travail fourni :wink:
 
rddt
rddt
Ouvrier
25 Avr 2010
464
toit du Var
Bonjour a tous

Skippy
Merci d'avoir partager tes connaissances sur le sujet, il ne me reste plus qu'a achetez une handweel, le nouvelle ans Chinois étant passer ca devrait arriver plus vite que la tienne.
Une fois quelle sera la, un verre d'eau un tube d'aspirine et je m'attaquerais a Linux, a hal, ini et toute sa bande :mrgreen:

vu le déchaînement de passions pour ce topic
Il est vrai qu'il y a pas foule, mais je pense que beaucoup de cniste utile Mach3 car la plupart des pc sont équipe de windobe, et de trifouiller dans des fichiers systèmes n'est pas donner a tout le monde quand on a peu de connaissance en la matière, et il y a ceux qui on Linux simplement pour faire fonctionner leur bécane sans trop vraiment savoir ce que ce soft a dans le ventre, puis il y a ceux qui reste dans l'ombre.
Perso je trouve dommage qu'il n'y ai pas plus de monde qui s’intéresse a ce soft, car en plus d’être génial, performant, il est open source.

Si par miracle, mon boulot permet à quelqu'un d'adapter une handwheel... là ce serait la consécration !
Je ne pense pas que sa soit une question de miracle mais plutôt de motivation, car quand il y a motivation la consécration suis. :wink:

++
 
SkippyLeChat
SkippyLeChat
Compagnon
20 Août 2011
1 010
Nantes
  • Auteur de la discussion
  • #9
Bonsoir Rddt !
Si tu n'as pas encore commandé ta HandWheel...
J'utilise celle avec un fil. Et je me demande si je n'ai pas fait une erreur : c'est long, chiant et ça traîne partout.
A tout hasard, je te signale que les wireless ne coûtent pas beaucoup plus cher.
Il y a aussi un truc pratique sur ces boitiers : il y a des aimants sur le fond et c'est bien pour peu qu'on fixe un bout de ferraille là ousqu'on veut le ranger.
Bref,
Dès que que tu as reçu le bazar, n'hésite pas à me relancer par un MP si tu as besoin d'aide. L'aspirine ne sera pas nécessaire : ce matin j'ai fait la manip sur une machine "vierge" et cela m'a pris à peine 10mn. Recommandations : suivre scrupuleusement mon doc et surtout se relire avant de faire "entrée"
A+
Skippy
 
P
pascalp
Compagnon
30 Août 2007
1 067
Perpignan
J'en ai commandé une avec fil, il y a bien assez de parasites dans les airs.
 
P
pascalp
Compagnon
30 Août 2007
1 067
Perpignan
J'ai reçu le paddle. La première impression à l'ouverture du carton est bonne.
Je viens de le brancher et de vérifier la connexion avec mach3 (sans la cnc), ça fonctionne.
Prochaine étape linuxcnc, puis le fonctionnement avec la CNC en ligne.
 
vax
vax
Modérateur
5 Mar 2008
7 720
Guipavas (près de Brest)
Coucou Skippy, merci merci beaucoup pour ce partage,

Promis que si j'avais vu ton post avant je me serais manifesté plus tôt pour t'encourager dans ce travail de rédaction très clair.
Encore un grand merci.
 
B
Barbidou
Compagnon
1 Nov 2012
605
Yvelines
Bonsoir,

N'étant pas très régulier ici ces derniers temps, je découvre tout juste ce sujet...

Eh bien ce "handwheel" sera certainement une des premières option que l'on s'offrira quand notre machine de la SAF tournera...

Un grand merci pour ce tuto qui nous servira très certainement.

Il nous reste quand même à finir la machine à mettre au bout du fil...
 
P
pascalp
Compagnon
30 Août 2007
1 067
Perpignan
Ca dialogue/fonctionne avec linuxcnc.
J'ai pas pris trop de risque, c'est dans une machine virtuelle avec la cnc AXIS de test !
 
SkippyLeChat
SkippyLeChat
Compagnon
20 Août 2011
1 010
Nantes
  • Auteur de la discussion
  • #15
Vraiment content d'avoir fait avancer le schmiliblic...
Dans vos actions de grâces, n'oubliez pas cependant l'auteur principal : un certain Frederic dont le pseudo est f1oat sur le forum Linuxcnc :prayer:

Pour le clavier, j'avais fait ailleurs un appel aux idées et suite à la suggestion de notre ami Coredump le problème me semble résolu :
J'ai trouvé en grande surface (Leclerc) un produit qui est très bien : Autocollant extérieur. C'est compatible avec une imprimante jet d'encre.
Destiné à un usage agressif (clavier) j'ai collé par dessus un autre plastique transparent autocollant pour le protéger.
Coté collage, ça à l'air de bien accrocher.

Skippy

XHC-HB04 LinuxCNC.jpg
 
Haut