LinuxCNC tourne sur la carte BeagleBone Black

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

Marc PELTIER

Compagnon
Bonsoir à tous!

Je voulais signaler que LinuxCNC (Emc2) tourne désormais sur la carte BeagleBone Black (45€). Il semble que les premières applications ne concernent que des axes PAP sur des imprimantes 3D. Mais comme LinuxCNC est capable de gérer directement des boucles d'asservissement, cela ouvre des possibilités pour créer des systèmes économiques avec axes sur servos, gérés directement par LinuxCNC.
http://bb-lcnc.blogspot.fr/

N'étant pas un cador de la programmation de micro-contrôleurs, je pensais déléguer le décodage des signaux en quadrature à un circuit spécialisé, comme celui-ci :
http://www.robogaia.com/two-axis-encoder-counter-mega-shield-version-2.html , mais cette approche est contradictoire avec la recherche d'économie. Je pense que la carte BeagleBone devrait pouvoir gérer efficacement les signaux en quadrature de nombreux axes, notamment grâce à son coprocesseur PRU, qui, dans le portage cité ci-dessus, prend déjà en charge les tâches temps réel de Linux/LinuxCNC.

L'objectif est de disposer d'une solution complète à servos, encore moins chère que celle à moteurs PAP, pour nos petites machines (hors moteurs/encodeurs, bien sûr, mais il y a la récup', et ebay...). Pour info, la carte BeagleBone gère aussi les périphériques permettant d'assurer l'autonomie du système (vidéo, usb hôte, Ethernet...).

Qu'est-ce que ça vous dit ?
 
Dernière édition par un modérateur:
N

nopxor

Compagnon
Bonsoir,

La carte BBB présente beaucoup d'atouts. La Cubieboard2 (double core) a l'air pas mal aussi avec son port Sata et 1 Giga de RAM.
Leur grand nombre de pins I/O (92 et 96) est très intéressant.
Il faudrait faire des test de latence pour voir leur capacité à faire tourner LinuxCNC sur d'autres cibles que les imprimantes 3D.
 
M

Marc PELTIER

Compagnon
Je ne connaissais pas la Cubieboard2. Merci pour l'info!

Il est certain que l'on verra fleurir de nombreuses cartes d'ordinateurs complets sous Linux ou Androïd, très peu chers, au format carte de crédit. Après tout, on peut les voir comme des smartphones sans écran ni périphériques gadgets. Certaines de ces cartes, comme Raspberry Pi, semblent orientées vers l'image (flux vidéo HD, caméra dediée...). La Cubieboard semble apte à se placer comme système informatique universel très compétitif.

Ce qui fait l'intérêt de la BBB, à mon avis, c'est la position d'équilibre entre la carte hardware exposant pas loin de 90 pins d'entrées/sorties avec tout le confort moderne, et le système informatique disposant, lui aussi, de tout le confort. Au prix modique où elle est vendue (45€), c'est une excellente alternative pour LinuxCNC, par rapport aux ordinateurs obsolètes avec port(s) parallèle(s) habituellement utilisés.

Pour ce qui est de la latence, si j'ai bien compris de ce que j'ai lu, le portage du noyau temps réel sur BBB a mobilisé un coprocesseur dédié présent dans le processeur de la BBB, appelé PRU, avec des résultats foudroyants. Le PRU tourne à 200 MHz (dans un processeur ARM Cortex-A8 à 1 GHz), en n'utilisant que des instructions exécutables en un seul cycle. Une fréquence de pas de 50 KHz ne semble pas poser de problème, sans FPGA ni rien d'autre que la carte BBB elle-même. L'architecture est exposée ici :
http://www.element14.com/community/community/knode/single-board_computers/next-gen_beaglebone/blog/2013/05/22/bbb--working-with-the-pru-icssprussv2

L'avantage déterminant est aussi, évidemment, que tout ce travail de portage du kernel temps réel a déjà été fait sur BBB, et reste à faire sur les autres, ce qui ne semble pas trivial.

Je reviens donc à ma question : est-ce que quelqu'un se sent les compétences pour programmer des compteurs d'encodeurs en quadrature, gérés en temps réel, dans le PRU d'une BBB? Il n'y a que cela qui sépare la carte à L298 que je viens d'acheter pour 5€ sur ebay, d'un driver tout ce qu'il y a de performant pour deux axes asservis... :smt002
 
Dernière édition par un modérateur:
M

Marc PELTIER

Compagnon
Je me réponds à moi-même.
En fait, il semble que LinuxCNC intègre déjà une fonction appelée encoder, qui fait l'analyse de deux signaux en quadrature (jusqu'à 8 canaux simultanés), et peut fournir, entre autres, l'état d'un compteur en binaire, une position mise à l'échelle en virgule flottante, ou encore une valeur de vitesse en virgule flottante. http://linuxcnc.org/docs/html/man/man9/encoder.9.html

Je vais donc essayer de faire fonctionner un système minimum à deux axes comme esquissé ci-dessous.
BBB_LinuxCNC.jpg

Toute aide ou conseil des experts émérites de ce forum est évidemment bienvenue.
Merci d'avance !
 
Dernière édition par un modérateur:
M

Marc PELTIER

Compagnon
Bonjour,

Je continue ma documentation sur BeagleBone Black supportant LinuxCNC:
La carte d'interface BeBopr Plus regroupe tous les drivers hardware pour piloter une imprimante 3D (dont 5 axes en pas-à-pas).

Pour répondre au souci de nopxor à propos de la vitesse, la combinaison BBB + BeBopr débite les pas à 60kHz sur tous les axes simultanément. C'est plus du double de ce que j'obtiens sur mon vieux PC actuellement, avec trois axes.

Pas mal, je trouve...
A +
 
N

nopxor

Compagnon
Bonjour,

Oui c'est impressionnant.
Seul bémol, la carte tampon BeBoPr coûte 3 fois le prix de la BBB... Cela fait cher les connecteurs.
Cela vaut peut être le coup d'attendre que les chinois sortent une breakboard dédiée à 10€ , ou de sortir son fer à souder.
 
M

Marc PELTIER

Compagnon
Je suis d'accord, ce n'est pas la solution à suivre immédiatement. Je ne la citais qu'à cause des performances.

Sinon, il y a aussi eu l'adaptation d'une RAMPS (shield d'arduino très utilisé sur les imprimantes 3D) à la BBB, en prenant garde aux quelques signaux qu'il faut convertir de 3,3 à 5V.
L'adaptation publiée utilise une carte intermédiaire, mais on peut imaginer de câbler à la main la vingtaine de signaux nécessaires, ce n'est pas hors d'échelle...
 
M

Marc PELTIER

Compagnon
Suite du feuilleton LinuxCNC sur BBB :

Le consortium Arduino avait annoncé début octobre la carte Arduino TRE, qui semble être le fruit des amours d'une carte Arduino Méga et d'une carte BBB. Les organisations BeagleBoard et Arduino ont collaboré à la conception.
http://arduino.cc/en/Main/ArduinoBoardTre

Le même processeur TI Sitara à 1 GHz, avec ses deux co-processeurs PRU spécialisés dans les tâches temps réel, est utilisé aussi bien sur la BBB que sur l'Arduino TRE, qui semble cumuler les standards de broches de l'Arduino et de la BBB. Cela signifie que l'on pourra probablement insérer, sans autre forme de procès, une carte RAMPS (5 axes pour moteurs PàP <2,5A + 3 voies PWM 7A + 3 entrées analogiques + 6 fins de course). Ces cartes sont archi-éprouvées dans le monde des imprimantes 3D.

On ne connait pas encore le prix de l'Arduino TRE, mais, comme on trouve aujourd'hui sur Ebay des cartes RAMPS complètes à 50€, on disposera probablement au printemps 2014 d'une solution électronique complète pour 5 axes sous LinuxCNC, avec des performances à faire rêver, à guère plus de 100€.

A ce prix-là, je vais tout numériser dans l'atelier, même les tournevis ! :lol:
 
Dernière édition par un modérateur:
A

amorgen

Nouveau
C'est tout à fait ce que je recherche pour mon projet CNC.
A terme la solution des vieux pc avec port parallele ne sera plus viable (ça fait longtemps que je n'ai plus cette connectique chez moi).
Et sur auduino faut quand meme un pc pour streamer.
Hâte de voir des retour de portiques pilotés par arduino Tre !
cdlt
 
T

tranquille

Compagnon
Bizarre que ce post ne soit pas plus suivi, il y a de la bonne nouveauté là dedans

Merci à Marc Peltier de nous faire partager ses avancées
 
C

coredump

Compagnon
Très intéressant, même si il faut tempérer la pérennité de telles cartes car les processeurs utilisés ont tendances a avoir des cycles de vie très court (entre 2 et 4 ans max).
Pour info j'ai été très étonné de voir un header pour port parallèle sur une carte mère intel très récente, comme quoi il n'est toujours pas mort.

Ce qui serait encore plus intéressant c'est d'avoir des cartes de pilotages de moteurs CC aussi performantes que les cartes MESA mais avec une interface adaptée a ce genre de carte (SPI, I2C ou autre).
 
A

ATV325

Compagnon
tranquille a dit:
Bizarre que ce post ne soit pas plus suivi

en même temps, écrire en langage ésotérique ne permet pas au plus grand nombre de s'y intéresser ... !!!
 
T

tranquille

Compagnon
Je pense que je n'y pige pas beaucoup plus que toi, mais je sens bien une avancée technologique dans ces cartes CPU qui reçoivent une version de LinuxCNC

Comme dit plus haut, il faut s'affranchir de ce port parallèle, avec Linux ou sans
Partir sur une CNC toute neuve et travailler avec un vieux PC sous XP qui peut tomber en rade dans quelques temps sans rien pour le remplacer, ce n'est pas bon
"une chaine résiste comme son maillon le plus faible"
On se rapproche d'une électronique embarquée à laquelle on donne une carte mémoire chargée avec un programme GCODE

Avoir un ordi à l'atelier, c'est pas évident, avoir une CNC dans son bureau non plus
 
M

Marc PELTIER

Compagnon
Bonsoir à tous!
Suite du feuilleton LinuxCNC sur BeagleBone Black (BBB) :

http://webshop.juve.ro/index.php?main_page=product_info&cPath=1_2&products_id=1&zenid=qEnZoA1xvCCOSFq2o1CGm2

Il s'agit d'une carte d'interface entre la BBB et un port parallèle DB25 et/ou des connecteurs regroupant les signaux destinés à des drivers de moteurs séparés. La carte distribue les signaux pour quatre axes via le port parallèle, ou six axes par six connecteurs indépendants. Elle est vendue 22€.

Traduction :
1 - On peut désormais brancher (22€), sur une BBB (45€), une carte chinoise 4 axes à TB6550 (45€), pour faire tourner LinuxCNC. Chic et pas cher!
2 - Ou bien on peut construire un système avec des drivers de moteurs séparés, d'ampérage quelconque, jusqu'à six axes. Carrément pro !

Dans les deux cas, la carte BBB, au format carte de crédit, remplace très avantageusement le gros ordinateur obsolète et poussif qui peinait à générer les pas à vitesse suffisante. Là, on parle de 60 kHz sur tous les axes simultanément...

Je viens de recevoir ma BBB, et bien que je n'aie pas beaucoup de temps pour expérimenter, il devrait y avoir des nouvelles bientôt.
 
Dernière édition par un modérateur:
L

Laurent_CNC

Compagnon
Bonjour Marc, et merci pour les nouvelles.

Vivement les réponses du Latency Test !

Par contre, prendre une carte chinoise à base de TB6600, c'est la nouvelle génération beaucoup mieux. J'ai ça sur mon Haulin transformé et je verrais bien un Raspberry à la place de mon gros PC...

Laurent
 
C

carlos78

Compagnon
Je n'y connais rien, mais je ne comprend pas comment une petite carte du type BeagleBone Black peut remplacer un PC.
Ou sont les interfaces écran, clavier, souris, disque dur, carte graphique, reseau, etc ... pour faire tourner normalement LinuxCNC.
Je vois déja qu'il faut rajouter une autre petite carte pour avoir juste le port parallèle.
J'aimerais voir ce que serait une installation hardware complète avec ces cartes pour comprendre et me faire une idée.

Carlos78
 
M

Marc PELTIER

Compagnon
@Carlos78
La BBB est un ordinateur complet et comporte bien les entrées / sorties écran, clavier, souris, Ethernet, USB...
La sortie vers un écran est au format micro-HDMI, et, moyennant le câble adéquat, peut attaquer n'importe quelle télé ou moniteur équipé de cette connectique. Résolution jusqu'à 1920x1080@30Hz.
Souris et clavier se branchent sur le port hôte USB.
Accès à Internet en Wifi sur USB, ou par Ethernet.
Mémoire de masse sur carte micro-SD, et disque dur externe USB.
RAM 512Mo
Bref, tout ce qu'il faut...

Mais aussi, et contrairement à un ordinateur:
90 broches d'entrées/sorties, dont des convertisseurs A/N et PWM, des timers, des bus I2C, SPI, etc...
et, last but not least, deux co-processeurs RISC spécialisés dans les tâches temps réel, les PRUs.
Toutes ces entrées/sorties rendent le port parallèle complètement inutile, et d'ailleurs largement dépassé. Je rappelle qu'un port parallèle DB25 ne peut gérer que 17 signaux, dont 5 en entrée seulement, et avec des limitations diverses. La carte d'interface vers un port parallèle dont j'ai parlé récemment n'a été créée que pour permettre le branchement direct à des cartes intégrées existantes, très économiques, ce n'est pas un optimum technologique, loin de là!
beaglebone-specs.png
 
C

carlos78

Compagnon
OK. C'est donc en sorte une mini carte-mère.
J'ai toujours du mal à imaginer un système complet. Faut-il tout programmer soi-même, ou existe-t-il l'équivalent d'un système genre Linux ?
Sinon c'est vrai que pour 45$ c'est très étonnant.
 
M

Marc PELTIER

Compagnon
La carte supporte d'emblée un système Linux (Angström Linux).

Mais le plus intéressant est que quelqu'un s'est occupé de l'intégration de LinuxCNC, d'un noyau temps réel pour Linux (Xenomai), et de toutes les petites bricoles qui vont avec.

Ce bienfaiteur s'appelle Charles Steinkuehler, et propose sur son blog une image de la configuration complète sur carte SD 4 Go, appelée MachineKit.
http://bb-lcnc.blogspot.fr/p/machinekit_16.html

Il faudra penser à lui édifier une statue à l'entrée du forum...
 
Dernière édition par un modérateur:
A

ATV325

Compagnon
et merci à vous de nous expliquer tout cela :smt023

le tout petit utilisateur d'informatique que je suis en reste :shock:
 
L

Laurent_CNC

Compagnon
Salut à tous,

C'est exactement pour ça que je lorgne sur un BBB moi aussi...
Je verrais très bien un écran tactile de 7 pouces en façade d'un boitier qui contiendrait toute mon électronique...

Ca ferait une super visu en manuel et un mini pc très intéressant...

Vivement la suite !

Laurent qui pilote son Haulin 300P en mode fraiseuse avec une TB6600 et un gros PC ....
 
C

carlos78

Compagnon
Donc, si j'ai bien compris :
- je branche un écran sur la prise mini HDMI, un ensemble souris+clavier sur la prise USB, j'utilise la config Machinekit via la prise micro SD, j'interface la carte de ma CNC sur le connecteur Entrée/sortie, Comme Linux est intégré ça marche !
Je suis impatient de voir ça.

Carlos78
 
C

carlos78

Compagnon
extensions BBB.jpg
Apparemment, même les cartes d'interco avec la CNC existent toutes faites ...
Je ne comprend pas pourquoi c'est pas répandu ?
 
M

Marc PELTIER

Compagnon
Ca va l'être : ces cartes sont toutes très récentes! ...sauf la RAMPS, celle qui a les refroidisseurs en cuivre. Mais elle ne se branche pas directement sur BBB, il faut une carte intermédiaire, comme celle de droite, qui elle, a moins de deux mois.
 
Haut