Problèmes avec xl320 + carte PIXL + PI4 sous rasbian 64bit

Bonjour
Je n’arrive pas à communiquer avec des XL320 via une carte PIXL branchée sur un PI4 sous rasbian 64bits (raspios-bullseye-arm64):
j’ai installer pypot (et le reste) via pip
le code suivant

import pypot.dynamixel
import time

ports=pypot.dynamixel.get_available_ports()
print(ports)
dxl_io = pypot.dynamixel.Dxl320IO(ports[0])

me renvoie [’/dev/ttyAMA0’]

Par contre un scan avec motors = (dxl_io.scan(range(0,60)))
me donne une erreur
DxlCommunicationError: instruction packet not entirely sent after sending DxlPingPacket(id=0)

J’ai essayé de changer le baudrate sans succes, le moteur est neuf,

Pensez bien à configurer votre Pi au niveau système, vous pouvez vous inspirer du script de raspoppificaiton qui est utilisé pour générer les images des Poppy..

Vous pouvez utiliser une image déjà configurée pour Raspberry Pi 2/3/4 ici mais il faudra désactiver le logiciel Poppy: sudo service puppet-master stop puis, pour que ce soit définitif : sudo systemctl disable puppet-master.service

Les erreurs de communication (DxlCommunicationError ou DxlError) sont souvent dûes à du matériel fatigué cf le troubleshooting :

  • vérifier que l’alimentation est stable et de bonne qualité (certaines alimentation Aliexpress génèrent du bruit)
  • changer les câbles des moteurs Dynamixel, surtout s’ils sont anciens
  • changer votre carte Pixl ou USB2AX

En creusant un peu plus hier soir j’ai résolu mon problème :

A l’activation du port série dans les paramètres du rasp (port série ouvert, console série fermé), il faut aussi désactiver le bluetooth sur l’UART. J’ai suivi la consigne du site Activer le port série TTL du Raspberry Pi et vérifier qu'il fonctionne.
en envoyant les commandes:

echo "dtoverlay=disable-bt" | sudo tee -a /boot/config.txt
sudo systemctl disable hciuart

Après un reboot, le problème est réglé.

C’est dommage que les méthodes “clef en main” traînant sur le web (Raspberry Pi | Robotique) soient propre au PI3 et ne fonctionnent pas sur le PI4. Je n’ai peut être pas regardé au bon endroit.