MiniFab est un système intelligent de gestion multimodale pour machines de fabrication basé sur Klipper. Il transforme une seule machine en trois outils distincts : une fraiseuse CNC, une imprimante 3D et un traceur de dessin. Grâce à sa détection automatique d'outils via CAN bus, MiniFab configure dynamiquement votre machine selon l'outil connecté.
La documentation complète du projet est disponible dans le dossier docs/
:
- Structure du projet
- Guide de configuration :
computer_setup_procedure.md
Pour comprendre l'architecture du projet, vous pouvez examiner les fichiers clés :
src/scripts/autofirmware.py
: Système de détection d'outilssrc/scripts/confswap.py
: Gestion des configurationssrc/config/change.cfg
: Macros pour changement de modesrc/config/main_printer.cfg
: Configuration de base
- Raspberry Pi (recommandé : Pi 4)
- Carte contrôleur compatible Klipper avec CAN bus
- Têtes d'outils compatibles (fraiseuse, extrudeur, traceur)
- Carte SD (min. 16 Go)
Important
Assurez-vous que votre matériel est compatible avec Klipper et dispose d'une interface CAN bus fonctionnelle. Les UUIDs CAN doivent être configurés correctement pour chaque tête d'outil.
- Flashez l'OS sur votre Raspberry Pi en suivant le guide dans
docs/computer_setup_procedure.md
- Connectez-vous via SSH à votre Raspberry Pi
- Clonez le dépôt :
git clone https://github.com/DeVinci-FabLab/MiniFab
- Lancez le script d'installation :
cd MiniFab/src/scripts && python setup.py
Note
Le script d'installation configurera automatiquement Klipper, Moonraker, Mainsail et les autres dépendances nécessaires.
Après installation et redémarrage, vous pouvez accéder aux interfaces suivantes :
- Interface Mainsail/Fluidd :
http://[IP_RASPBERRY]:80
- Interface de monitoring MiniFab :
http://[IP_RASPBERRY]:8000
Pour changer de mode de fonctionnement :
- Automatique : Connectez simplement la tête d'outil désirée au CAN bus
- Manuel : Utilisez l'interface web MiniFab et cliquez sur le bouton du mode souhaité
- Via G-code : Utilisez la commande
M453 T[1-3]
où :- T1 : Mode Fraiseuse CNC
- T2 : Mode Imprimante 3D
- T3 : Mode Traceur
En cas de problèmes avec MiniFab, voici quelques solutions :
-
La détection d'outil ne fonctionne pas :
- Vérifiez les connexions CAN bus
- Consultez les logs via l'interface web (
http://[IP_RASPBERRY]:8000/logs
) - Vérifiez que l'UUID dans la configuration correspond à celui de l'outil
-
Erreurs après changement de mode :
- Redémarrez Klipper via l'interface Mainsail/Fluidd
- Vérifiez les erreurs dans les logs Klipper
-
Problèmes de connexion à l'interface :
- Vérifiez que les services sont actifs :
systemctl status klipper moonraker
- Redémarrez le Raspberry Pi
- Vérifiez que les services sont actifs :
Tip
L'interface de monitoring MiniFab affiche l'état actuel du système et les erreurs récentes, ce qui facilite le diagnostic.
- Raspberry Pi : Testé sur Pi 4
- Systèmes d'exploitation : Raspberry Pi OS (Lite), MainsailOS
- Firmware : Klipper (testé avec version 0.11.0 et supérieure)
- Interfaces CAN : Testé avec les cartes EBB et Octopus BTT
MiniFab offre plusieurs fonctionnalités clés :
-
Détection automatique d'outils :
- Reconnaissance des têtes d'outils via CAN bus
- Configuration dynamique de la machine
- Interface utilisateur adaptative
-
Mode Fraiseuse CNC :
- Contrôle précis de la broche (M3/M4/M5)
- Arrêt d'urgence lié à l'ouverture de porte
- Procédure assistée de changement d'outil (M6)
- Paramètres optimisés pour l'usinage
-
Mode Impression 3D :
- Gestion des températures (extrudeur et lit chauffant)
- Calibration automatique du lit (mesh)
- Contrôle des ventilateurs
- Support pour les fonctionnalités avancées de Klipper
-
Mode Traceur :
- Paramètres de mouvement adaptés au dessin
- Interface utilisateur simplifiée
- Gestion optimisée des déplacements
-
Interface web de monitoring :
- Surveillance de l'état du système
- Logs et diagnostics
- Possibilité de forcer un mode spécifique
-
Extension des G-codes :
- Support de l'axe B (rotation)
- Commandes spéciales (M453) pour changement de mode
- Macros personnalisées pour chaque mode
- Ajout de nouveaux types d'outils (laser, etc.)
- Amélioration de l'interface utilisateur
- Optimisation du temps de transition entre les modes
- Support pour la communication sans fil avec les têtes d'outils
- Intégration avec des logiciels CAM/CAD
-
Détection automatique des outils via CAN -
Interface web de monitoring
Si vous souhaitez contribuer au projet, veuillez consulter notre guide de contribution qui détaille le processus de GitFlow, les conventions de commit et les exigences de documentation.
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
Développé par DeVinci Fablab - [email protected]