Le module GPIO (General Purpose Input Output) est un PCB supplémentaire en option qui peut être connecté aux Original Prusa MK4/S, MK3.9/S ou MK3.5/S.
Le module offre des fonctionnalités étendues en permettant le contrôle de périphériques externes via des connexions aux broches de la carte GPIO, qui peuvent fonctionner soit en mode ENTRÉE, soit en mode SORTIE. Cette polyvalence ouvre un large éventail de cas d’utilisation potentiels.
Partagez et discutez de vos projets avec les autres membres de la communauté Prusa sur notre forum officiel. Nous avons créé une section GPIO dédiée.

Idées de cas d'utilisation
Le module peut contrôler l'obturateur d'un appareil photo à un moment précis, ce qui le rend idéal pour créer des time-lapses visuellement parfaits, où chaque image est capturée exactement au même moment.
Au-delà du contrôle de l'obturateur d'un appareil photo, le module peut être utilisé pour diverses autres applications. Par exemple, il peut déclencher un éclairage externe pour éclairer la zone d’impression à des étapes spécifiques du processus d’impression, garantissant ainsi des conditions d’éclairage optimales pour les contrôles de qualité ou la photographie. De plus, il peut être configuré pour activer des ventilateurs de refroidissement ou d'autres périphériques, tels que des extracteurs ou des alarmes, en fonction de l'exécution de G-code personnalisé pendant les impressions, contribuant ainsi à maintenir des conditions de fonctionnement optimales et à améliorer la sécurité et l'efficacité de l'environnement d'impression 3D.
Un autre cas d’utilisation puissant est l’intégration d’un clavier macro, où chaque pression sur une touche peut déclencher l’exécution de commandes G-Code spécifiques. Cette configuration permet un contrôle manuel rapide des fonctions de l'imprimante, telles que le démarrage ou la mise en pause d'une impression, le réglage des températures ou le déplacement de la tête d'impression vers une position exacte. La possibilité de déclencher des actions personnalisées avec une simple pression sur une touche peut considérablement rationaliser les flux de travail, faisant du module d'extension GPIO un outil polyvalent et indispensable pour ceux qui cherchent à personnaliser et optimiser entièrement leur installation d'impression 3D.
La sécurité avant tout !
Bien que la possibilité de déclencher du G-Code via des entrées GPIO ajoute une grande flexibilité, elle comporte également des limitations et des risques potentiels. Une utilisation incorrecte ou mal temporisée des commandes G-Code peuvent interférer avec le processus d'impression, entraînant des échecs d'impression ou même des dommages à l'imprimante. Il est essentiel de tester minutieusement toutes les configurations de G-code personnalisées dans un environnement contrôlé avant de les déployer dans des travaux d'impression réels pour éviter des conséquences imprévues.
Schémas
Les schémas sont open source et disponibles sur notre page Open Source chez Prusa Research.

Comment installer la carte GPIO
- Assurez-vous que l’imprimante est refroidie à température ambiante et éteignez-la.
- Ouvrez le capot du boîtier de la xBuddy en retirant quatre vis M3x6.
- Connectez le câble GPIO au port I2C.
- Fermez le capot du boîtier de la xBuddy.
- Assurez-vous que le GPIO ne touche aucune partie métallique du boîtier de la xBuddy ou de son capot.
- Bon projet !
Broches
La carte comporte 8 broches, numérotées de 0 à 7. Les broches 0 à 3 peuvent être utilisées comme sortie et les broches 4 à 7 peuvent fonctionner comme entrée ou comme sortie. Chaque broche est de type à drain ouvert lorsqu'elle est utilisée comme sortie, ce qui signifie qu'elle est contrôlée par un transistor qui relie la broche à la masse (0 V) lorsqu'elle est active. Lorsque la broche est inactive, elle reste "flottante", ce qui signifie qu'elle n'est connectée à aucune tension spécifique, mais en raison de résistances de tirage internes, la tension sur la broche peut osciller autour de 3,3 V.
Le comportement des broches dans un état de drain ouvert lorsqu'elles sont utilisées comme sorties peut être expliqué comme suit :
- Broche mise à 0 (BAS) : La broche est éteinte et est dans un état "flottant", ce qui signifie qu’elle n'est pas connectée à une tension spécifique. Dans cet état, la tension sur la broche peut fluctuer et n'est pas bien définie à moins d'être stabilisée par une résistance de tirage.
Cet état "flottant" peut amener la broche à capter du bruit électrique aléatoire ou des interférences, ce qui peut entraîner un comportement inattendu s'ils ne sont pas correctement gérés.
- Broche mise à 1 (HAUT) : La broche est allumée et connectée à la masse (0 V), ce qui fait chuter la tension sur la broche à 0 V. Cet état est clair et n'entraîne aucune ambiguïté dans la détection du signal.
Lorsque les broches sont utilisées comme entrées, elles peuvent détecter le niveau de tension qui leur est appliqué. L'état d'entrée est influencé par la présence de résistances de tirage, qui peuvent aider à garantir une tension constamment haute (3,3 V) lorsqu'aucune autre source de tension n'est appliquée.
Résistances de tirage
La carte permet la connexion de résistances de tirage externes via des ponts de soudure étiquetés JP4 à JP7. Ces ponts de soudure sont situés au centre de la carte et sont connectés aux broches correspondantes :
- JP4 est connecté à la Broche 4
- JP5 est connecté à la Broche 5
- JP6 est connecté à la Broche 6
- JP7 est connecté à la Broche 7
Les ponts de soudure JP7 à JP4 peuvent être utilisés pour connecter des résistances de tirage intégrées, ce qui garantit que les broches restent à une tension haute (3,3 V) lorsqu'elles ne sont pas activement tirées vers le bas par une source externe ou par l'état de sortie de la broche. Ces résistances de tirage ont une valeur de 10K ohms, ce qui est une valeur standard pour fournir une tension stable sans consommation de courant excessive. Si aucune résistance n'est connectée au pont de soudure, la broche peut rester dans un état flottant, ce qui peut entraîner un comportement instable. JP signifie "jumper" et si aucune résistance n'est connectée, cela ne crée aucune résistance.
Pour les utilisateurs moins expérimentés, il est important de comprendre que les sorties à drain ouvert ne produisent pas intrinsèquement une tension haute (3,3 V) mais permettent plutôt une connexion à la masse (0 V). Les résistances de tirage sont nécessaires pour garantir que la broche reste à une tension haute lorsqu'elle est éteinte ou lorsqu'elle est utilisée comme entrée. Si elle n'est pas gérée correctement, une tension "flottante" peut provoquer la captation de bruit électrique par la broche, entraînant une commutation indésirable ou une instabilité du système.
Configuration du GPIO via un G-code personnalisé
Informations générales
Voici une séquence de commandes G-Code personnalisées utilisées pour contrôler la carte GPIO. Elle vous permet de configurer les états de sortie, de lire les états d'entrée et de gérer d'autres paramètres avancés sur la carte via des instructions G-Code, en les intégrant de manière transparente au flux de travail de votre imprimante 3D.
Contrôle des broches via G-Code
Pour contrôler les broches de sortie sur la carte GPIO, vous pouvez utiliser les commandes G-Code suivantes :
- Définir le mode de broche (sortie ou entrée)
M262 P B<0 ou 1>- P<0-7> : Sélectionne le numéro de broche à configurer (de 0 à 7).
- B<0 ou 1> : Définit le mode de broche.
- 0 - configure la broche comme sortie
- 1 - la configure comme entrée.
- Exemple : M262 P0 B0 - Configure la broche 0 comme broche de sortie.
- Écrire l'état sur une broche de sortie
M264 P B<0 ou 1>
- P<0-7> : Sélectionne le numéro de broche sur laquelle écrire (de 0 à 7).
- B<0 ou 1> : Écrire 0 pour régler la broche sur BAS, ou 1 pour régler la broche sur HAUT.
- Exemple : M264 P0 B1 - Définit la broche de sortie 0 sur HAUT (1).
- Basculer l'état de la broche de sortie
M265 P
- P<0-7> : Sélectionne le numéro de broche à basculer (de 0 à 7).
- Cette commande inverse l’état actuel de la broche sélectionnée.
- Exemple : M265 P0 - Bascule la broche 0.
- Configuration avancée des registres (pour les utilisateurs expérimentés)
M267 R<1-3> B<0-255>
- R<1-3> : Sélectionne le registre à configurer :
- 1 : Registre de sortie.
- 2 : Registre de polarité.
- 3 : Registre de configuration.
- B<0-255> : Définit la valeur à écrire dans le registre sélectionné.
- Exemple : M267 R3 B255 - Configure le registre de configuration avec la valeur 255 (toutes les broches définies en entrées).
- R<1-3> : Sélectionne le registre à configurer :
Pour lire l'état des broches ou définir des configurations, utilisez les commandes G-Code suivantes :
- Lire l'état de la broche
M263 P
- P<0-7> : Sélectionne le numéro de la broche à lire (de 0 à 7).
- La valeur renvoyée indiquera si la broche est HAUTE (1) ou BASSE (0).
- Exemple : M263 P6 - Lit l'état de la broche 6 (renvoie 32 pour HAUT ou 0 pour BAS).
- Lire l'intégralité du registre d'entrée
M261 A B S