LinuxCNC tourne sur la carte BeagleBone Black

  • Auteur de la discussion Marc PELTIER
  • Date de début
C

coredump

Compagnon
machinekit est encore très proche de linuxcnc, par contre si tu bosses sur des cartes mesa, il faut rester sur linuxcnc car c'est la que le developpement se fait.
 
C

carlos78

Compagnon
Lorsqu'on installe machinekit, on se retrouve dans un environnement classique de Linuxcnc.
Avec des cartes comme BBB ou Raspberry, faut-il se servir de stepconf pour créer une machine ?
A tout hasard, J'ai essayé stepconf mais ça ne colle pas car très rapidement on est confronté au problème de l'affectation des broches.
Il n'y a pas de port // sur ces cartes... Comment fait-on alors pour dire à machinekit qu'on veut utiliser les broches entrées/sorties dispo sur la carte ?

Carlos
 
S

speedjf37

Compagnon
Lorsqu'on installe machinekit, on se retrouve dans un environnement classique de Linuxcnc.
Avec des cartes comme BBB ou Raspberry, faut-il se servir de stepconf pour créer une machine ?
A tout hasard, J'ai essayé stepconf mais ça ne colle pas car très rapidement on est confronté au problème de l'affectation des broches.
Il n'y a pas de port // sur ces cartes... Comment fait-on alors pour dire à machinekit qu'on veut utiliser les broches entrées/sorties dispo sur la carte ?

Carlos

Bonjour,

Les test sont fait sur une Raspberry ? quelle modèle?
Un lien sur le Machinekit utilisé svp.

Je ferai bien des test sur un Pi pour voir !

JF
 
C

carlos78

Compagnon
Salut,

Je regarde en ce moment avec une Raspberry Pi2.

J'ai d'abord installé l'image "2015-11-21-raspbian-jessie.zip" sur une microSD de 16Go pour découvrir l'univers Raspberry sans LinuxCNC.
A défaut d'avoir un écran PC compatible en HDMI, j'ai visionné le résultat sur un grand écran TV. C'est plutot bien.
Le wifi est reconnu à l'installation et on retrouve les applications habituelles de Linux.

A partir de là j'ai essayé d'ajouter Machinekit mais ... j'ai échoué.
J'ai finalement installé cette image prête à l'emploi "RPi2-machinekit-1.0.img.nz" sur la microSD.
Elle s'installe sur la Raspberry Pi2 sans problème, mais c'est assez minimaliste.
La définition de l'écran est moins bonne que précédement, le wifi ne fonctionne pas et le clavier sans fil est reconnu mais pas configurable en azerty.

Chouette, on retrouve l'onglet CNC habituel de LinuxCNC.

Pour info, le latency test sur la télé donne environ 100 000ns ... c'est 30 fois moins bien que le PC que j'utilise en ce moment sur mon tour.
--> Bizarrement, stepconf bride le paramètre Base Period Maximum Jitter à 50000ns.
--> La valeur du latency est-elle liée à l'écran, sa taille, sa définition ?

Avec cette valeur bridée, stepconf défini une valeur de min base period d'environ 60000 ns et un Max Step Rate d'environ 15000 Hz.
(Ces valeurs dépendent des paramètres step time, step space, direction hold et direction setup des drivers).

Si le latency ne chute pas avec un autre écran, ça risque d'être insuffisant : actuellement mes PAP ont besoin d'environ 10000 Hz et le codeur 100points avec une rotation de 2000 tr/mn atteint 13333 Hz

Et puis il reste toujours l'affectation des pins.
MachineKit présente des exemples de configurations par interface (MESA, ...) ou ARM pour la Beaglebone (BeBoPr, CRAMPS, XYLOTEX, ...)

Je ne sais pas s'il existe un exemple de config adapté au RaspBerry ... je commence à avoir un gros doute.

Carlos
 
Dernière édition:
S

speedjf37

Compagnon
Salut,

--> Bizarrement, stepconf bride le paramètre Base Period Maximum Jitter à 50000ns.
Carlos

C'est le Max dans Stepconf.

Salut,
Je ne sais pas quelle exemple de config serait le mieux adapté pour la RaspBerry Py2
Carlos

j'ai vu que les config Raspberry avaient une carte additionnelle PIC32 en spi pour gérer les axes et I/O
https://github.com/kinsamanka/PICnc-V2

https://www.raspberrypi.org/forums/viewtopic.php?f=37&t=33809&start=500

JF
 
C

carlos78

Compagnon
C'est apparemment une possibilité, mais l'approche PIC32 rajoute une carte, et puis il faut une bonne dose de savoir faire (que je n'ai pas) pour se lancer dans cette aventure.

Carlos
 
Dernière édition:
F

f1oat

Apprenti
J'utilise Machinekit avec une Beaglebone Black.
L'intérêt est qu'il y a 2 coprocesseurs appelés PRU pour gérer les I/O à bas niveau.
Du coup, on peut mettre BASE_PERIOD=0 car les impulsions PAP sont générées par le PRU.
Les performances temps-réel sont très bonnes avec cette approche.
Il y a aussi une gestion hardware pour les encodeurs en quadrature. Très pratique pour suivre la rotation d'une broche, même avec une cadence d'impulsions élevée.
A ma connaissance, ceci n'existe pas sur le RPi.
Après avoir retrofité un CN Intelys C3000 en Machinekit, je travaille actuellement sur un Emco Turn 120P.
http://blog.f1oat.org/2016/02/20/emco-turn-120p-retrofit/

[div=none][div=none]
Emco120-Machinekit-Electronics-V03.jpg
[/div][/div]
 
Dernière édition:
F

f1oat

Apprenti
Voici mes paramètres
[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 0
SERVO_PERIOD = 1000000
 
G

gaston48

Compagnon
Merci,
Ah c'est bien, ça nous fait une boucle de calcul en flottant de 1 Khz
tu as déjà essayé une régulation PID sur la broche ou de baisser
le SERVO_PERIOD jusqu'à des alarmes (à condition qu'il y a des servothread dans hal) ?
 
F

f1oat

Apprenti
Je n'ai pas de PID dans ma config.
Oui, il y a des servothread, mais je n'ai pas essayé de changer la période.
 
G

gaston48

Compagnon
Linuxcnc est aussi utilisé pour commander des axes avec un asservissement de position
Plus la fréquence des servothread est rapide, meilleur est l'asservissement.
 
S

speedjf37

Compagnon
Bonsoir,

@f1oat
Est 'il possible de piloter la broche par RS485 ?

Si oui comment la câbler (hors USB)

JF
 
Dernière édition:
F

f1oat

Apprenti
Je passe par un PLC qui me convertit le MODBUS/TCP en RS485 pour aller vers le VFD.
Ca doit être possible en direct, il y a des UART sur la BBB. Mais je n'ai pas essayé.
Une piste : http://www.pmdx.com/Doc/PMDX-432-K9_Quick_Start_Rev0_5.pdf
A priori ils utilisent les proches P9/21 et P9/22
Par contre je ne vois pas comment ils commandent le transceiver.
Frederic.
 
S

speedjf37

Compagnon
Je passe par un PLC qui me convertit le MODBUS/TCP en RS485 pour aller vers le VFD.
Ca doit être possible en direct, il y a des UART sur la BBB. Mais je n'ai pas essayé.
Une piste : http://www.pmdx.com/Doc/PMDX-432-K9_Quick_Start_Rev0_5.pdf
A priori ils utilisent les proches P9/21 et P9/22
Par contre je ne vois pas comment ils commandent le transceiver.
Frederic.

la PMDX-432-K9 est en double port //
Il faudrait une autre broche pour commander l' émission/réception ,à moins qu'il le gère dans le cpld .

dans la description:http://www.pmdx.com/pmdx-432
8) The RS-485 serial port has screw terminals for MODBUS or other RS-485 devices. The circuit provides auto-direction control. LEDs for RX and TX data traffic are provided.


The PMDX-432 with the RTC is priced at 129.00

The PMDX-432 is currently out of stock. Contact PMDX for further information.

JF
 
D

Djibi

Apprenti
Depuis le temps, n'y a t'il pas de carte plus pertinente, moins cher, plus puissante et plus disponible pour utiliser linux cnc.
La BBB semble quand même accumuler pas mal de défauts.
 
J

Jijo

Nouveau
Bonjour,
J'utilise la BBB avec Machinekit, linuxcnc se lance parfaitement. Mais en ce qui concerne la commande des moteurs pas-à-pas , une fois le Gcode terminé, (par exemple) sur la pin de sortie vers le moteur responsable de l'axe x (stepx) , j'ai un "signal pas-à-pas" qui continu à être généré (normalement il ne dois plus y avoir de signal). Je soupçonne la rétroaction, car sur mes moteurs je n'ai aucun dispositif qui mesure leur position.
 
Dernière édition:
C

coredump

Compagnon
Je me suis assemblé une carte CRAMPS pour la BBB: http://reprap.org/wiki/CRAMPS
Du coup il me reste des PCB car c'est fabriqué par batch de 10.
Si il y en a qui sont intéressés je vendrais ceux que je n'ai pas utilisé (probablement 8) sur le forum a prix coûtant (environ 3 euros).
Attention ce n'est que le circuit imprimé, ensuite il faut acheter et assembler tout les composants, ça demande de l’expérience vu la petitesse des CMS.
 
Haut