fran6p Posté(e) Aout 24 Posté(e) Aout 24 (modifié) Échauffement Le contenu du colis du «koikesse» ayant été découvert, je relaterai dans ce sujet ma découverte de cette imprimante, la Q2, avant de publier le test final sur le blog du site. En échauffement, un petit rappel : le colis pèse 24 kg, l'imprimante elle-même ne pesant qu'un peu plus de 18 kg. La marque Qidi est moins connue que d'autres constructeurs asiatiques. Elle n'est pas pourtant pas récente dans le monde de l’impression 3D puisqu’elle a entamé ses activités en 2014 sous le nom Qidi Tech devenu Qidi fin 2024. Qidi développe ses propres outils matériels et logiciels, par exemple un trancheur (slicer) maison dérivé de BambuStudio pour ses modèles les plus récents. Cette société possède un support technique spécialisé via un Wiki et également via une chaine Youtube. Sur le site de Qidi, la Q2 est présenté ici. C'est une imprimante «rapide» à l'instar des modèles d'autres constructeurs : vitesse maximale de 600 mm/s, accélérations de 20 000 mm/s². Les caractéristiques techniques sont décrites dans le comparateur du forum. Je rerprends ici les principales : SPÉCIFICATIONS Q2 Caisson fermé à chauffage actif Cinématique CoreXY Volume d'impression de 270x270x256 mm Températures maximales : 370 °C (buse), 120 °C (lit), 65 °C (enceinte) Compatibilité avec de nombreux matériaux, y compris les plus techniques Autonivellement à l'aide d'une jauge de pression située dans la tête d'impression Système de filtration de l'air 3-en-1 (préfiltre, HEPA, charbon actif) Wifi (2,4Ghz) et Ethernet Écran capacitif de 4,3" Caméra interne (surveillance, timelapses, détection des problèmes d'impression) Certifications (MET, IECEE CB, CE, …) Tous ces points seront bien évidemment testés et vérifiés lors du test. Comme la majorité des imprimantes rapides actuelles, Klipper est le firmware faisant fonctionner celle-ci. Trop souvent ce n'est pas la version pure («vanilla») de Klipper, mais une version modifiée par le fabricant, sans remise au pot commun de ces modifications, enfreignant la licence originelle GPL v3.0. Nous y reviendrons lors de l'examen du système d'exploitation et de l'écosystème Klipper utilisé. Pour rappel, Klipper se compose de deux éléments : un firmware installé sur la carte contrôleur, gérant uniquement les éléments matériels (unité de contrôle) «klippy» installé sur un Small Board Computer (SBC), en français, on parle d'ordinateur monocarte, chargé lui de l'impression (unité de calcul) Pour plus de détails sur Klipper je vous renvoie à ce sujet du forum. Déballage Le Wiki de Qiditech permet d'accéder à un document texte accompagné de photos ainsi quầ une vidéo de déballage : À l'intérieur du carton, se trouvent deux manuels papier, un plus complet en anglais d'une dizaine de pages, le second plus succinct en six langues (Anglais, Chinois, Italien, Français, Espagnol et Allemand), quatre pages par langue (à noter que le titre de la première page du français est en italien «introduzione alla stampante» ). Quelques photos L'ouverture du carton donne accès au manuel, à la vitre supérieure, le support de bobine, le carton contenant l'écran et la clé USB : Ce premier étage de polystyrène est bien protégé aux quatre coins, une fois celui-ci extrait, on aperçoit la Q2 dans son emballage plastique. Une étiquette nous explique comment sortir l'imprimante du carton : Ne reste plus qu'à sortir l'imprimante de l'emballage plastique et retirer les dernières protections (encore du plastique) : Au fond du carton se trouvent deux petites boites (tool box 1 et 2) : La boite 1 contient un câble Ethernet de 2 m, une clé plate de 7, un jeu de clé Allen (1,27/1,5/2,0/2,5/3,0) et quelques pièces de remplacement (coupe-filament, essuie buse, fusible). L'autre boite (2) contient le câble d'alimentation secteur, un tournevis plat, une spatule, l'axe support de bobine et un échantillon de filament (20 g) : Avant de poursuivre, un examen du capot arrière m'intrigue. Une étiquette indique que cette imprimante est configurée pour fonctionner sur la tension secteur 220-240 V. L'alimentation ne serait donc pas auto-configurable comme sur la plupart des concurrentes ? L'accès à l'alimentation au-dessous de l'imprimante le confirme. Il est de ce fait préférable de bien vérifier que la tension a bien été paramétrée : Voilà, c'est tout pour aujourd'hui. Il me reste à monter l'imprimante jusqu'à mon bureau à l'étage, lui trouver une place, la brancher et lancer les premières impressions… ce sera l'objet du prochain article. À suivre… bientôt. Modifié (le) Aout 24 par fran6p 6 4
fran6p Posté(e) Aout 24 Auteur Posté(e) Aout 24 (modifié) Premiers ressentis L'imprimante a trouvé sa place dans mon bureau. À côté de «grosse Bertha» (ma XMax3 libérée), elle paraît toute petite : Esthétiquement, je la trouve jolie avec sa combinaison de coques plastique «aluminium anodisé», verre (porte/capot) / plexiglas (façades des côtés) teinté en bleu/violet. La façade arrière, elle aussi en plastique, est de couleur noire. L'écran, une fois installé, peut s'incliner légèrement de 45° vers l'arrière. Les deux tiges filetées trapézoïdales sont couvertes de graisse (aucun risque qu'elles ne s'oxydent même après un long séjour en milieu humide ) : Après plusieurs montées / descentes du plateau, il va falloir penser à retirer ces surplus : Le bas du caisson est muni d'une échancrure, ce qui facilitera le nettoyage des résidus de filaments tombés au fond (la Xmax3 n'en était pas munie, pire, il y avait un creux à l'avant qui accumulait les scories ). Une sérigraphie sur le capot indique qu'il peut coulisser vers l'arrière pour faciliter l'impression de filaments comme le PLA et le PETG, sans devoir le retirer complètement. Des verrous permettent d'éviter que ce capot ne bascule. Étant en verre, sa rencontre avec le sol lui serait sans doute préjudiciable. Sous le capot, sur le pourtour de la coque plastique est collée une bande d'étanchéité, de même pour la porte (exceptée au niveau de l'échancrure). Ces bandes d'étanchéité devraient réduire les déperditions caloriques. Un article ultérieur reviendra sur les éléments utilisés sur cette Q2. Mise en route L'imprimante est installée. Les films plastiques protégeant les plexiglas des côtés, de la porte et du capot (il est protégé sur chaque face) retirés, il reste à brancher la fiche secteur (j'ai vérifié, malgré la présence du sticker sur l'arrière indiquant que cette imprimante est paramétrée pour du 230V, que le sélecteur de tension sur l'alimentation est bien positionné) et le câble Ethernet relié à un de mes switchs réseau. Qidi via son Wiki montre le déballage (vidéo + texte avec photos). C'est parti, l'interrupteur d'alimentation passe de O à I, l'écran s'allume sur le logo Qidi. Après une grosse minute, celui-ci est remplacé par l'écran de choix de la langue d'affichage. Je reste dans un premier temps en anglais (les traductions en français laissant parfois à désirer). Une fois la langue sélectionnée, un didacticiel prend en main l'utilisateur en lui montrant les manipulations à faire. retirer les quatre vis immobilisant le plateau au fond du caisson valider via l'écran le retrait des vis, le plateau s'élève permettant d'ôter les cales de mousse au-dessous débloquer la tête et l'axe X en coupant les colliers Rilsan enlever le carton de protection de la tête, libérer l'axe X en retirant la cale de mousse, finir en introduisant le tube PTFE sur la tête Une fois validées ces manipulations sur l'écran, un ensemble de tests et vérifications sont effectués test de chauffe de l'extrudeur test de chauffe du lit test de chauffe et ventilateur de l'enceinte test du ventilateur de refroidissement test du ventilateur de refroidissement auxiliaire test du ventilateur d'extraction d'air auto-nivellement compensation de résonances (input shaping) Pour un débutant, le bruit engendré par ce test peut faire «peur». Rien d'anormal, le laisser aller à sa fin . Une fois ce dernier test réalisé, valider pour avoir le dernier message de félicitations L'ensemble de ces vérifications, tests prend une bonne quinzaine de minutes. Seuls l'auto-nivellement et la compensation de résonances seront à refaire de temps en temps. En résumé, à partir d'un extrait de la vidéo de déballage de Qidi, j'ai fait une image animée rappelant ces étapes (on peut apercevoir au tout début du didacticiel les étapes montrant comment retirer la QidiBox de l'intérieur de la Q2 quand le modèle est la Q2Combo) : L'imprimante est prête à imprimer. Dans un premier temps, j'utilise les gcodes pré-tranchés enregistrés dans la mémoire de l'imprimante. J'utilise un reste de filament d'une vieille bobine de PLA Eryone Galaxy silver (gris) juste stockée dans un sac hermétique avec un sachet de dessicant. Révélation Les ayatollahs du séchage à tout va vont sans doute voir leurs poils se hérisser Test du Benchy (annoncé pour dix-sept (17) minutes d'impressions, il a fallu plus de ving-cinq minutes en ajoutant la phase (longue) de mise à l'origine, nettoyage de la buse, auto Z, nivellement, …). Le résultat ne présente pas de défaut majeur (je referai des photos rapprochées plus tard) : La vidéo timelapse : On continue par le torture-test KickStarter : Je n'ai pas encore calculé le score total des différents tests, mais hormis pour certains pontages qui se sont affaissés, les autres parties sont très bonnes. Et on termine aujourd'hui par le cube Voron. Là encore qualitatif. En résumé de ces premières impressions, aucun problème de nivellement, la buse est parfaitement nettoyée de toute scorie (mais ça prend du temps). Les pièces se sont imprimées sans se décrocher et une fois le plateau redescendu sous les trente (30) degrés, elles se sont décollées facilement. À bientôt pour la suite (qui arrivera bientôt ) Révélation Modifié (le) Aout 28 par fran6p 2 4
fran6p Posté(e) Aout 24 Auteur Posté(e) Aout 24 (modifié) Composants matériels La structure est constituée d'un solide cadre acier associé à des parois en matière plastique. Une porte et un capot en verre fumé bleu/violet complètent l'habillage. Ces parois plastiques incorporent un retardateur de feu, d'après le fabricant. Cinématique CoreXY La tête d'impression se déplace dans le plan à la fois en X et en Y, les deux moteurs agissent de conserve. Plus d'explications techniques à propos de la cinématique CoreXY ici. Les avantages théoriques de cette cinématique CoreXY : espace réduit (le lit chauffant ne se déplace que de haut en bas), structure cubique permettant de fermer celle-ci afin d'obtenir une enceinte étanche, les deux moteurs pas à pas se complètent pour réaliser les mouvements X/Y, rapide et précis lorsque utilisé avec une tête d'impression légère Mais peut aussi présenter quelques inconvénients : la tension des courroies est critique, nécessite un cadre parfaitement rigide et d'équerre, le système de poulies et la longueur du cheminement des courroies La tête d'impression est située sur l'axe X, un rail de guidage (MGN12) permet les déplacements (gauche - droite) : Cet axe X est guidé sur l'axe Y via une tige linéaire de diamètre 8 mm associée à une douille à billes LMU8UU (une tige et douille de chaque côté). Le déplacement de la tête utilise des courroies de 7 mm de pas 1,5 mm assurant d'après Qidi plus de précision et moins de phénomène de VFA (Ellis ' Guide). Ces courroies peuvent être retendues si nécessaire (voir le Wiki de Qidi pour les explications), après avoir dévissé un peu (pas complètement ) les quatre vis pour chaque moteur, on déplace la tête suivant le parcours préconisé puis on resserre toutes les vis. Chacun des tendeurs est muni d'un ressort assurant la bonne tension. Les vis (4) qui maintiennent les moteurs en position sont vissées directement dans le plastique. Éviter de procéder fréquemment à la re-tension des courroies. Plateau d'impression Le plateau chauffant (24 V) est constitué d'une plaque d'aluminium de 3 mm recouverte d'une base magnétique. Il peut atteindre la température maximale de 120 "C. De chaque côté, celui-ci est guidé par deux tiges linéaires de 10 mm associées à des douilles à billes LMU10UU. La montée / descente est réalisée par une vis trapézoïdale également de diamètre 10 mm. Un tour complet monte / descend le plateau de 4 mm. La vis mère est de type T10/4 (pas de 2 mm, 2 filets). Le paramètre rotation_distance de la section [extruder] du fichier printer.cfg, a pour valeur 4 (pas_vis * nombre_de_filets), elle permet d'atténuer la descente du plateau par gravité lorsque les moteurs Z ne sont plus alimentés. Un moteur pour chaque tige trapézoïdale permet d'ajuster de manière indépendante l'inclinaison du plateau. Cet ajustement est réalisé au départ de chaque nouvelle impression (Z_TILT_ADJUST), contribuant à une meilleure adhérence. Le maintien de la plaque de tôle flexible et amovible sur le plateau chauffant se fait en la positionnant sur la plaque magnétique collée sur le lit chauffant. Le support du plateau est muni à chaque coin arrière de rebords assurant le centrage de la tôle. Au cas où l'utilisateur oublierait de repositionner la tôle recouverte de PEI, un rappel est inscrit sur la base magnétique. Rappel qu'il vaut mieux respecter afin d'éviter toute déconvenue . Sous le plateau chauffant, il n'y a aucun isolant thermique. Cela permettrait d'assurer une répartition plus homogène de la température. Les déperditions caloriques contribuent toutefois au chauffage interne du caisson. Ventilation De nombreux ventilateurs permettent le refroidissement ou l'évacuation de l'air interne. À l'intérieur de l'enceinte, trois ventilateurs : Un axial 8025 à l'arrière, permet d'évacuer l'air «vicié» à l'extérieur du caisson. Un filtre HEPA+charbon actif filtre les émanations( Wiki, comment le remplacer). Il est possible de monter un conduit d'évacuation vers l'extérieur, les trous de fixation d'un adaptateur préexistent : Sur le côté droit, le ventilateur de refroidissement du filament auxiliaire, probablement un radial de 120 mm (pas eu le courage de le démonter ) Sur le côté gauche, le ventilateur de chauffage de l'enceinte (un radial de 92 mm). Il aspire l'air en haut et le rejette en bas, créant un flux de circulation. Le chauffage PTC est alimenté par la tension secteur via un SSR / Mosfet), capable de chauffer l'enceinte jusqu'à 65 °C, il est muni d'une sécurité anti-emballement thermique. À l'arrière de l'imprimante, la carte contrôleur est refroidie par un petit ventilateur axial 4010, fixé sur la paroi. Celui-ci est régulé par la mise en marche des pilotes de l'axe Z. Qidi, les active dès le démarrage de la machine, il souffle donc tout le temps. Il n'y a qu'à la fin d'une impression, qu'ils sont désactivés, ce qui stoppe le refroidissement de la carte contrôleur. Au-dessous de l'imprimante se trouve l'alimentation secteur munie d'un ventilateur. Non régulé, il souffle constamment. Les derniers ventilateurs de cette Q2 sont situés dans la tête d'impression. Un 5015 radial refroidit le filament et un 2510 axial refroidit le radiateur quand la température de la buse passe au-dessus de 50 °C. Tête d'impression (extrudeur / tête de chauffe) La tête d'impression de cette Q2 est plutôt compacte : 54 x 88 x 120mm (largeur x profondeur x hauteur). Son capot avant est facile à enlever (faire levier en bas du capot pour déboiter les magnets, puis lever pour le sortir des deux ergots de maintien). Comme aucun ventilateur n'y est attaché, on peut le poser où on veut . À l'arrière, une trappe coulissante permet d'accéder au PCB de la carte électronique. Pour des dépannages, il n'y aura donc aucune vis à retirer . En plus des ventilateurs déjà vus, la tête d'impression est composée de deux principaux éléments : l'extrudeur, la tête de chauffe. Entre les deux se trouve le coupe-filament, actionné par un levier quand la tête vient en butée sur l'avant gauche de la Q2. Avec cette tête, c'est la buse à l'aide d'une jauge de pression qui fait office de détecteur de fin de course. Ce système oblige à avoir une buse parfaitement propre. La présence d'un résidu de filament fausserait la mesure. Raison pour laquelle, même si le processus de nettoyage semble long, qu'il soit réalisé régulièrement et méthodiquement. Extrudeur L'engrenage d'entrainement du filament consiste en deux roues dentées en acier durci (ce qui devrait être plus durable avec des filaments chargés (fibre de carbone ou verre, …)). Le double entrainement est effectué via un moteur Nema14 circulaire. Au-dessus de ces roues d'entrainement, on trouve un interrupteur détectant la présence (ou l'absence) de filament, mais pas de détection d'un filament bloqué . Tête de chauffe La tête de chauffe autorise une température jusqu'à 370 ”C. Températures permettant l'impression de filaments techniques (PET, PA, PPS, PC, …). Elle se compose : d'un radiateur (zone froide) refroidi par le ventilateur précédemment vu, d'un corps de chauffe en céramique, d'une buse «tout-en-un» de longueur ≃ 53 mm et d'une chaussette en silicone pour protéger cette partie chauffante. La buse est légèrement plus longue que celle de la Qidi Plus4 (51,5 mm). Qidi l'indique d'ailleurs sur son site de vente des accessoires : En haut une buse pour la Plus4, en bas celle de la Q2 : Elle est constituée de quatre parties : buse proprement dite incorporant une pointe en acier durci (longueur ≃ 30 mm) transition en céramique ( 3 mm) heatbreak (≃ 10 mm) tube d'entrée du filament (≃ 10 mm), c'est lui qui est un peu plus long sur la Q2 Sur le haut du radiateur se trouve la jauge de pression, le mécanisme détectant par contact quand la buse est au niveau de la surface d'impression. On y reviendra lors de l'examen de la plaque PCB de la tête d'impression (sans trop divulgâcher, la puce électronique (convertisseur ADC) est une CS1237 (déjà vue sur les Anycubic Kobra S1) . Nettoyage / purge filament Le nettoyage de la buse s'effectue sur la partie arrière de l'imprimante. Ce nettoyage doit être le plus parfait possible. Tout résidu de filament restant sur la buse fausserait les mesures de la jauge de pression utilisée pour détecter le point 0 du plateau. Trois zones sont utilisées pour le nettoyage du filament : parking de la tête sur l'éjecteur de purge une lamelle métallique un racloir des lamelles en silicone la tôle flexible (PEI) possède un débordement. C'est là que se positionne la buse lors des montées / descente de températures utilisées pour le nettoyage un tapis silicone permettant de nettoyer la buse (mouvement de va-et-vient) De gauche à droite, la tête positionnée aux différents endroits utilisés lors de la procédure de nettoyage et purge du filament (parking, PEI, brosse silicone) : Vidéo du processus de nettoyage de la buse ; Voilà, c'est fini… pour aujourd'hui Cette partie matérielle sera poursuivie par l'examen de l'électronique. À bientôt Modifié (le) Septembre 18 par fran6p 4 1
fran6p Posté(e) Aout 24 Auteur Posté(e) Aout 24 (modifié) On continue l'exploration des entrailles de la Q2. Alimentation électrique L'alimentation électrique est située sous l'imprimante. Sa puissance de 350 W (24 V / ≃ 15 A) est suffisante pour alimenter les cartes électroniques, les ventilateurs, les moteurs et le lit chauffant. Son ventilateur tourne constamment et est audible machine à l'arrêt (idle). Une plaque de protection permet, une fois retirée d'accéder au câblage. Contrairement à bon nombre de ses concurrents, Qidi utilise encore des alimentations où la tension secteur est commutable via un sélecteur à deux positions (230 V / 120 V). Une étiquette sur la façade arrière de la Q2 indique la tension de l'imprimante réglée en usine, mais rien n'empêche d'aller la vérifier (on n'est jamais trop prudent, brancher l'imprimante sur du 230 V alors que l'alimentation est en 120 V conduira l'utilisateur à des déboires (l'inverse sera moins destructeur )). Le chauffage de l'enceinte est lui directement connecté au secteur (230 V en France) piloté par un SSR. Qidi a obtenu une certification MET. Le label MET indique que la sécurité du produit a été évaluée par un laboratoire indépendant agréé conformément aux normes nationales nord américaines. Les équipements électriques et électroniques testés et certifiés peuvent être utilisés en toute sécurité sur le lieu de travail (USA / Canada). Si j'ai bien compris, pour nous, Français, ce serait le label CB qui assure la conformité (toutefois, je ne suis pas un spécialiste, donc à prendre sous toutes réserves). Électronique La gestion de Klipper est assurée par plusieurs cartes électroniques propriétaires. Pour plus d'informations sur Klipper, je vous renvoie vers ce tutoriel. Carte OS (unité de calcul) L'accès à cette carte se fait à l'intérieur de l'enceinte, côté gauche, sous une protection plastique au-dessus du chauffage de l'enceinte (deux vis à retirer). Cette carte contient le système d'exploitation (Debian Bullseye (v11)) installé sur une eMMC de 32 Go. C'est par l'intermédiaire de liaisons série que la communication s'établit avec : la carte contrôleur gérant les matériels de l'imprimante, la tête d'impression, la Qidi Box branchée sur une platine fixée sur la façade arrière. La sérigraphie indique le modèle : X-9-1 (v1.5). Qidi n'a pour le moment fourni aucune documentation quant à celle-ci. On y trouve plusieurs composants électroniques : un processeur Rockchip, modèle RK3305B-S refroidit par un gros radiateur (vert) (datasheet: C2928030.pdf), une puce de mémoire vive (RAM) Winbond de 512 Mo (1 Go aurait été mieux), une puce eMMC soudée de 32 Go, taille suffisante pour accueillir l'OS et les fichiers gcodes / timelapses, une puce Wifi Realtek RTL8821cs (datasheet: RTL8821CS-Realtek.pdf). Cette puce fournit une connectivité Wifi sur les bandes 2,4 et 5 Ghz ainsi que le Bluetooth, une prise pigtail sur laquelle est connectée l'antenne Wifi (collée à l'intérieur sur la paroi gauche), un connecteur pour l'Ethernet (prise RJ45 déportée), un connecteur pour la nappe allant vers l'écran tactile, un connecteur pour la caméra (USB), un connecteur pour la liaison vers la carte contrôleur, … Sous réserve, en attendant que Qidi fournisse des schémas de câblage et d'attribution des broches, comme cela s'est fait pour les autres modèles, mon analyse : Carte contrôleur (unité de contrôle) L'accès à cette carte se fait après avoir retiré la façade arrière. Pour enlever complètement cette façade, il est nécessaire de déclipser le connecteur de tube PTFE (retirer le clip bleu, presser la collerette du pneufit noir, sortir le PTFE) : Une fois la façade retirée, les composants électroniques se trouvent dans la partie basse. Cette partie ne possède pas d'ouverture sur l'intérieur de l'imprimante, ce qui est une bonne chose pour éviter des transferts de chaleur. À noter que les moteurs (X et Y) sont, eux aussi, placés hors de l'enceinte, ce qui devrait leur assurer une meilleure longévité. On peut noter, en tout cas par rapport aux modèles de la Serie 3, qu'un effort a été réalisé pour le cheminement des câbles. La sérigraphie sur le PCB de la carte indique X-9-3 (v1.3.0). C'est elle qui gère les éléments matériels via le firmware Klipper installé dans la mémoire du microcontrôleur STM32. Les composants électroniques principaux : microcontrôleur STM32F407 @ 168 MHz, quatre pilotes moteurs (drivers) TMC équipés de gros radiateurs : 2 TMC2240 (axes X et Y), 2 TMC2209 (axes Z1 et Z2 indépendants) quelques MOSFETs De nombreuses prises (certaines non utilisées) pour connecter : ventilateurs moteurs thermistances : lit chauffant chauffage enceinte … La connexion de cette carte X-9-3 (unité de contrôle) avec la carte X-9-1 (unité de calcul) se fait en mode série (le serial:/dev/serial/by-id/usb-Klipper_QIDI_MAIN_V2_1.0.0_52A832373534350534343539-if00 de la section [mcu] du printer.cfg). Qidi n'a pas encore fourni le schéma électronique de cette carte avec les attributions de broches (pins). Sous réserve, en attendant que Qidi fournisse des schémas de câblage et d'attribution des broches, comme cela s'est fait pour les autres modèles, mon analyse : Carte fille (tête d'impression) L'accès à cette carte (A-10) s'effectue en retirant la trappe à l'arrière de la tête : Elle communique avec la carte X-9-1 en mode série. Ce n'est pas à proprement parler de l'USB, car la tension qui passe dans les câbles d'alimentation est de 24 V. Une fois la machine éteinte, les prises déconnectées, je peux accéder aux trois vis qui maintiennent le PCB sur l'arrière de la tête. De nombreuses puces sont recouvertes d'une grosse goute de vernis qui ne facilitent pas la lecture des inscriptions à l'aide de mon microscope électronique (amateur). Sous réserve, en attendant que Qidi fournisse des schémas de câblage et d'attribution des broches, comme cela s'est fait pour les autres modèles, mon analyse (face composant, face pistes) : Pour l'accéléromètre (LIS2DW), je ne suis pas certain de son emplacement . Écran tactile 4,3" Là, honnêtement, je n'ai pas eu le courage de désassembler la carte de son boitier. Les seules infos proviennent des sorties de dmesg : le tactile : input: Goodix Capacitive TouchScreen as /devices/platform/ff070000.i2c/i2c-3/3-005d/input/input0 communication apparemment via un framebuffer (fb) : rockchip-drm display-subsystem: [drm] fb0: rockchipdrmfb frame buffer device [drm] Initialized rockchip 3.0.0 20140818 for display-subsystem on minor 0 Dans le dossier utilisateur (mks), le dossier QD_Q2 contient le binaire (client) gérant l'affichage. Les images de l'écran (format .bin) ne sont pas directement lisibles. Elles se trouvent dans ~/QD_Q2/access. On peut y trouver quelques GIFs. mks@linaro-alip:~$ ls -al QD_Q2/ total 16 drwxr-xr-x 4 mks netdev 4096 Jan 15 2025 . drwxr-xr-x 19 mks netdev 4096 Aug 24 10:50 .. drwxr-xr-x 24 mks netdev 4096 Aug 23 18:14 access drwxr-xr-x 2 mks netdev 4096 Aug 23 18:14 bin mks@linaro-alip:~$ ls -al QD_Q2/bin total 13072 drwxr-xr-x 2 mks netdev 4096 Aug 23 18:14 . drwxr-xr-x 4 mks netdev 4096 Jan 15 2025 .. -rwxr-xr-x 1 mks netdev 13372952 Aug 20 10:50 client -rwxr-xr-x 1 mks netdev 181 Aug 20 10:50 start.sh mks@linaro-alip:~$ ls QD_Q2/access add_icon.bin box_two_icon.bin extruder_icon.bin layer_icon.bin popup start_logo.bin type_icon.bin adjust chamber_icon.bin extruder_red_icon.bin leveling preview startup weight_icon.bin back_pre.bin chamber_red_icon.bin file main printing stop_icon.bin z_offset_icon.bin back_rel.bin common flow_icon.bin multi_color printing_setting sub_icon.bin boot_logo.bin confirm_icon.bin home multi_colored_icon.bin setting switch_default.bin box_dry consumables hotbed_icon.bin multi_colored_icon_hot.bin setting_icon.bin switch_off.bin box_four_icon.bin control hotbed_red_icon.bin navi speed_icon.bin switch_on.bin box_one_icon.bin dry keyboard others start_error.bin switch_selected.bin box_three_icon.bin exclude_object language pause_icon.bin start_icon.bin time_icon.bin La prise USB sur le côté droit de l'écran permet le transfert de fichiers tranchés (gcode) et également la mise à jour du système (les fichiers de mise à jour sont alors placés dans un répertoire nommé QD_Update à la racine de la clé). Caméra Située à l'intérieur du caisson à droite, elle permet d'avoir une vue d'ensemble du plateau. Il faut juste ne pas oublier de retirer le film de protection de la lentille . Sa résolution fixée en usine à 640x480, peut être augmentée en modifiant le fichier crowsnest.conf. Pour ma part je l'ai passée à 1280x720 et 10 fps. Pas eu le courage de la démonter pour accéder à ses entrailles. lsusb et la lecture du périphérique indiqué dans le fichier de configuration indique une puce de la société chinoise icSpring (modèle CH9221) : Citation mks@linaro-alip:~$ lsusb Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 004: ID 1d50:614e OpenMoko, Inc. QIDI_MAIN_V2_1.0.4 Bus 002 Device 003: ID 32e6:9221 icSpring icspring camera Bus 002 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Je compléterai ce sujet au fur et à mesure de mes découvertes (ou pas). D'ici là, un peu de patience pour la suite Modifié (le) Septembre 23 par fran6p 5 1
fran6p Posté(e) Aout 24 Auteur Posté(e) Aout 24 (modifié) OS, écosystème Klipper Nous aborderons dans ce sujet la partie logicielle, à savoir : le système d'exploitation (Debian), l'écosystème Klipper (Klipper, Moonraker, Fluidd) Debian Les imprimantes précédentes de Qidi utilisaient une seule carte pour faire fonctionner Klipper, carte regroupant l'unité de calcul et l'unité de contrôle. La Q2 utilise deux cartes séparées. L'unité de contrôle (Klipper) se trouve à l'arrière de la Q2. Elle pilote les matériels et utilise un micro-contrôleur STM32 (STM32F407). L'unité de calcul se trouve dans l'enceinte sous un cache plastique, à gauche au-dessus du système de chauffage interne. C'est un ordinateur monocarte (Small Board Computer en anglais (SBC)) utilisant un contrôleur Rockchip RK3308B-S. Celui-ci fonctionne avec un système d'exploitation Debian. La section «Information système» de l'interface Web Fluidd, nous donne la version Debian : une Bullseye (version 11). Dommage que depuis la sortie récente de la version Trixie (v13), cette v11 soit désormais passée au statut «oldoldstable». L'accès en ssh au système est possible en utilisant comme identifiant mks et comme mot de passe makerbase . L'accès ssh directement en root (mot de passe inconnu) n'est pas possible, mais une fois connecté en tant que mks, il est possible via "sudo su" de monter en privilèges (attention tout de même à éviter un "rm -rf /" qui serait fatal ). Un extrait de "dmesg" confirme le processeur utilisé (Rockchip RK3308B-S) : Citation r[ 0.000000] Linux version 5.10.160 (root@menson-virtual-machine) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 10.3.1 20210621, GNU ld (GNU Toolchain for the A-profile Architecture 10.3-2021.07 (arm-10.29)) 2.36.1.20210621) #1 SMP PREEMPT Thu Feb 27 14:22:34 CST 2025 [ 0.000000] Machine model: Rockchip RK3308B-S evb analog mic v11 board Citation mks@linaro-alip:~$ cat /proc/device-tree/model Rockchip RK3308B-S evb analog mic v11 board lscpu permet de lister les caractéristiques de ce processeur (ARM Cortex-A35, quatre cœurs, fréquence 1,1 Ghz) qui n'est pas un foudre de guerre avec ses 48 BOGOMIPS : Citation mks@linaro-alip:~$ lscpu Architecture: aarch64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 Vendor ID: ARM Model: 2 Model name: Cortex-A35 Stepping: r0p2 CPU max MHz: 1104.0000 CPU min MHz: 408.0000 BogoMIPS: 48.00 Vulnerability Itlb multihit: Not affected Vulnerability L1tf: Not affected Vulnerability Mds: Not affected Vulnerability Meltdown: Not affected Vulnerability Mmio stale data: Not affected Vulnerability Retbleed: Not affected Vulnerability Spec store bypass: Not affected Vulnerability Spectre v1: Mitigation; __user pointer sanitization Vulnerability Spectre v2: Not affected Vulnerability Srbds: Not affected Vulnerability Tsx async abort: Not affected Flags: fp asimd aes pmull sha1 sha2 crc32 cpuid Plus d'infos avec "cat /proc/cpuinfo" Citation mks@linaro-alip:~$ cat /proc/cpuinfo processor : 0 BogoMIPS : 48.00 Features : fp asimd aes pmull sha1 sha2 crc32 cpuid CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x0 CPU part : 0xd04 CPU revision : 2 processor : 1 BogoMIPS : 48.00 Features : fp asimd aes pmull sha1 sha2 crc32 cpuid CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x0 CPU part : 0xd04 CPU revision : 2 processor : 2 BogoMIPS : 48.00 Features : fp asimd aes pmull sha1 sha2 crc32 cpuid CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x0 CPU part : 0xd04 CPU revision : 2 processor : 3 BogoMIPS : 48.00 Features : fp asimd aes pmull sha1 sha2 crc32 cpuid CPU implementer : 0x41 CPU architecture: 8 CPU variant : 0x0 CPU part : 0xd04 CPU revision : 2 Serial : ffafcc58365658be Combien de RAM ? 512 Mo (les modèles précédents (Serie3, Q1 Pro, Plus4) avaient 1 Go). Citation mks@linaro-alip:~$ cat /proc/meminfo MemTotal: 498752 kB MemFree: 16640 kB MemAvailable: 211932 kB Buffers: 70552 kB Cached: 121208 kB SwapCached: 0 kB Active: 115516 kB Inactive: 306332 kB Active(anon): 564 kB Inactive(anon): 232064 kB Active(file): 114952 kB Inactive(file): 74268 kB Unevictable: 2184 kB Mlocked: 2184 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 496 kB Writeback: 0 kB AnonPages: 232280 kB Mapped: 83036 kB Shmem: 796 kB KReclaimable: 17308 kB Slab: 38536 kB SReclaimable: 17308 kB SUnreclaim: 21228 kB KernelStack: 2960 kB PageTables: 4288 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 249376 kB Committed_AS: 1174888 kB VmallocTotal: 263061440 kB VmallocUsed: 7756 kB VmallocChunk: 0 kB Percpu: 448 kB CmaTotal: 32768 kB CmaAllocated: 1172 kB CmaReleased: 31596 kB CmaFree: 0 kB L'eMMC (capacité de 32 Go) est soudée (avec les modèles précédents, elle était amovible). La partition contenant l'OS (/dev/mmcblk0p6) est montée à la racine au format ext4. Citation mks@linaro-alip:~$ sudo fdisk -l Disk /dev/mmcblk0: 29.14 GiB, 31289507840 bytes, 61112320 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 0D5E0000-0000-4371-8000-0BCA000015A0 Device Start End Sectors Size Type /dev/mmcblk0p1 8192 12287 4096 2M unknown /dev/mmcblk0p2 12288 16383 4096 2M unknown /dev/mmcblk0p3 16384 18431 2048 1M unknown /dev/mmcblk0p4 18432 59391 40960 20M unknown /dev/mmcblk0p5 59392 77823 18432 9M unknown /dev/mmcblk0p6 77824 61112286 61034463 29.1G unknown mks@linaro-alip:~$ mount /dev/mmcblk0p6 on / type ext4 (rw,relatime,sync) devtmpfs on /dev type devtmpfs (rw,relatime,size=231392k,nr_inodes=57848,mode=755) proc on /proc type proc (rw,relatime) sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,noexec,size=248608k,nr_inodes=62152) devpts on /dev/pts type devpts (rw,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,nodev,size=99444k,nr_inodes=819200,mode=755) tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k,nr_inodes=62152) cgroup2 on /sys/fs/cgroup type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate,memory_recursiveprot) pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) configfs on /sys/kernel/config type configfs (rw,relatime) debugfs on /sys/kernel/debug type debugfs (rw,relatime) fusectl on /sys/fs/fuse/connections type fusectl (rw,nosuid,nodev,noexec,relatime) adb on /dev/usb-ffs/adb type functionfs (rw,relatime) tmpfs on /run/user/1001 type tmpfs (rw,nosuid,nodev,relatime,size=49720k,nr_inodes=12430,mode=700,uid=1001,gid=111) Un seul module du noyau est chargé : le Wifi Citation mks@linaro-alip:~$ lsmod Module Size Used by 8189fs 1400832 0 La version Debian est ancienne (v11. , Bullseye). Citation mks@linaro-alip:~$ cat /etc/debian_version 11.8 mks@linaro-alip:~$ cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 11 (bullseye)" NAME="Debian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/" OS="debian" BUILD_INFO="root@menson-virtual-machine Sun Jan 7 21:27:16 CST 2024" KERNEL="5.10 - rk3308_linux_defconfig" Une tentative de mise à jour des dépôts se solde par un échec. En plus, les dépôts pointent sur des miroirs Debian chinois (a minima, moins rapides que des serveurs locaux) : Citation mks@linaro-alip:~$ sudo apt update [sudo] password for mks: Get:1 http://mirrors.ustc.edu.cn/debian bullseye InRelease [75.1 kB] Get:2 http://mirrors.ustc.edu.cn/debian-security bullseye-security InRelease [27.2 kB] Get:3 http://mirrors.ustc.edu.cn/debian bullseye-updates InRelease [44.0 kB] Ign:4 http://mirrors.ustc.edu.cn/debian bullseye-backports InRelease Err:5 http://mirrors.ustc.edu.cn/debian bullseye-backports Release 404 Not Found [IP: 202.38.95.110 80] Get:6 http://mirrors.ustc.edu.cn/debian-security bullseye-security/contrib Sources [1128 B] Get:7 http://mirrors.ustc.edu.cn/debian-security bullseye-security/main Sources [251 kB] Get:8 http://mirrors.ustc.edu.cn/debian-security bullseye-security/main arm64 Packages [386 kB] Get:9 http://mirrors.ustc.edu.cn/debian-security bullseye-security/main Translation-en [260 kB] Get:10 http://mirrors.ustc.edu.cn/debian-security bullseye-security/contrib arm64 Packages [2868 B] Get:11 http://mirrors.ustc.edu.cn/debian-security bullseye-security/contrib Translation-en [2512 B] Get:12 http://mirrors.ustc.edu.cn/debian bullseye-updates/main Translation-en.diff/Index [12.8 kB] Get:13 http://mirrors.ustc.edu.cn/debian bullseye-updates/main Translation-en T-2025-07-21-2004.39-F-2025-07-21-2004.39.pdiff [47 B] Get:13 http://mirrors.ustc.edu.cn/debian bullseye-updates/main Translation-en T-2025-07-21-2004.39-F-2025-07-21-2004.39.pdiff [47 B] Reading package lists... Done E: The repository 'http://mirrors.ustc.edu.cn/debian bullseye-backports Release' no longer has a Release file. N: Updating from such a repository can't be done securely, and is therefore disabled by default. N: See apt-secure(8) manpage for repository creation and user configuration details. N: Repository 'http://mirrors.ustc.edu.cn/debian bullseye InRelease' changed its 'Suite' value from 'oldstable' to 'oldoldstable' N: Repository 'http://mirrors.ustc.edu.cn/debian-security bullseye-security InRelease' changed its 'Suite' value from 'oldstable-security' to 'oldoldstable-security' N: Repository 'http://mirrors.ustc.edu.cn/debian bullseye-updates InRelease' changed its 'Suite' value from 'oldstable-updates' to 'oldoldstable-updates' C'est normal, car Bullseye étant dorénavant en statut «oldoldstable», les dépôts Backports ne sont plus joignables à l'ancienne adresse. Le contenu du fichier /etc/apt/sources.list doit être modifié pour que la mise à jour des dépôts se fasse, permettant maintenant la mise à jour des paquets du système ou l'installation de logiciel (git par exemple qui a dû être installé, utilisé puis supprimé ). Pour le fichier sources.list, voilà le contenu du mien : Citation mks@linaro-alip:~$ cat /etc/apt/sources.list #deb http://mirrors.ustc.edu.cn/debian bullseye main contrib #deb-src http://mirrors.ustc.edu.cn/debian bullseye main contrib #deb http://mirrors.ustc.edu.cn/debian-security bullseye-security main contrib #deb-src http://mirrors.ustc.edu.cn/debian-security bullseye-security main contrib #deb http://mirrors.ustc.edu.cn/debian bullseye-updates main contrib #deb-src http://mirrors.ustc.edu.cn/debian bullseye-updates main contrib #deb http://mirrors.ustc.edu.cn/debian/ bullseye-backports main contrib #deb-src http://mirrors.ustc.edu.cn/debian/ bullseye-backports main contrib # Dépôt principal, sections libre et non libres deb http://deb.debian.org/debian/ bullseye main contrib non-free #deb-src http://deb.debian.org/debian/ bullseye main contrib non-free # Dépôt de correctifs de sécurité deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free #deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free # Dépôt de mises à jour intermédiaires deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free #deb-src http://deb.debian.org/debian/ bullseye-updates main contrib non-free # Dépôt de "rétroportages" (backports) deb http://archive.debian.org/debian/ bullseye-backports main contrib non-free #deb-src http://archive.debian.org/debian/ bullseye-backports main contrib non-free Avec ces liens «corrects», la mise à jour des dépôts va jusqu'au bout : Citation mks@linaro-alip:~$ sudo apt update Hit:1 http://archive.debian.org/debian bullseye-backports InRelease Hit:2 http://deb.debian.org/debian bullseye InRelease Hit:3 http://deb.debian.org/debian-security bullseye-security InRelease Hit:4 http://deb.debian.org/debian bullseye-updates InRelease Reading package lists... Done Building dependency tree... Done Reading state information... Done 175 packages can be upgraded. Run 'apt list --upgradable' to see them. mks@linaro-alip:~$ sudo apt list --upgradable Listing... Done base-files/oldoldstable 11.1+deb11u11 arm64 [upgradable from: 11.1+deb11u8] bluez-obexd/oldoldstable-security 5.55-3.1+deb11u2 arm64 [upgradable from: 5.55-3.1+deb11u1] bluez/oldoldstable-security 5.55-3.1+deb11u2 arm64 [upgradable from: 5.55-3.1+deb11u1] bsdextrautils/oldoldstable,oldoldstable-security 2.36.1-8+deb11u2 arm64 [upgradable from: 2.36.1-8+deb11u1] bsdutils/oldoldstable,oldoldstable-security 1:2.36.1-8+deb11u2 arm64 [upgradable from: 1:2.36.1-8+deb11u1] bubblewrap/oldoldstable-security 0.4.1-3+deb11u1 arm64 [upgradable from: 0.4.1-3] busybox/oldoldstable-security 1:1.30.1-6+deb11u1 arm64 [upgradable from: 1:1.30.1-6+b3] curl/oldoldstable-security 7.74.0-1.3+deb11u15 arm64 [upgradable from: 7.74.0-1.3+deb11u11] distro-info-data/oldoldstable-security 0.51+deb11u9 all [upgradable from: 0.51+deb11u4] dnsmasq-base/oldoldstable-security 2.85-1+deb11u1 arm64 [upgradable from: 2.85-1] e2fsprogs/oldoldstable-security 1.46.2-2+deb11u1 arm64 [upgradable from: 1.46.2-2] fdisk/oldoldstable,oldoldstable-security 2.36.1-8+deb11u2 arm64 [upgradable from: 2.36.1-8+deb11u1] ffmpeg/oldoldstable-security 7:4.3.9-0+deb11u1 arm64 [upgradable from: 7:4.3.7-0+deb11u1] gir1.2-gdkpixbuf-2.0/oldoldstable-security 2.42.2+dfsg-1+deb11u3 arm64 [upgradable from: 2.42.2+dfsg-1+deb11u1] gir1.2-gtk-3.0/oldoldstable 3.24.24-4+deb11u4 arm64 [upgradable from: 3.24.24-4+deb11u3] git-man/oldoldstable-security 1:2.30.2-1+deb11u4 all [upgradable from: 1:2.30.2-1+deb11u2] gstreamer1.0-plugins-base/oldoldstable-security 1.18.4-2+deb11u3 arm64 [upgradable from: 1.18.4-2+deb11u1] gstreamer1.0-plugins-good/oldoldstable-security 1.18.4-2+deb11u3 arm64 [upgradable from: 1.18.4-2+deb11u2] gstreamer1.0-x/oldoldstable-security 1.18.4-2+deb11u3 arm64 [upgradable from: 1.18.4-2+deb11u1] gtk-update-icon-cache/oldoldstable 3.24.24-4+deb11u4 arm64 [upgradable from: 3.24.24-4+deb11u3] less/oldoldstable,oldoldstable-security 551-2+deb11u2 arm64 [upgradable from: 551-2] libaom0/oldoldstable-security 1.0.0.errata1-3+deb11u2 arm64 [upgradable from: 1.0.0.errata1-3+deb11u1] libarchive13/oldoldstable-security 3.4.3-2+deb11u2 arm64 [upgradable from: 3.4.3-2+deb11u1] libavahi-client3/oldoldstable-security 0.8-5+deb11u3 arm64 [upgradable from: 0.8-5+deb11u2] libavahi-common-data/oldoldstable-security 0.8-5+deb11u3 arm64 [upgradable from: 0.8-5+deb11u2] libavahi-common3/oldoldstable-security 0.8-5+deb11u3 arm64 [upgradable from: 0.8-5+deb11u2] libavcodec58/oldoldstable-security 7:4.3.9-0+deb11u1 arm64 [upgradable from: 7:4.3.7-0+deb11u1] libavdevice58/oldoldstable-security 7:4.3.9-0+deb11u1 arm64 [upgradable from: 7:4.3.7-0+deb11u1] libavfilter7/oldoldstable-security 7:4.3.9-0+deb11u1 arm64 [upgradable from: 7:4.3.7-0+deb11u1] libavformat58/oldoldstable-security 7:4.3.9-0+deb11u1 arm64 [upgradable from: 7:4.3.7-0+deb11u1] libavresample4/oldoldstable-security 7:4.3.9-0+deb11u1 arm64 [upgradable from: 7:4.3.7-0+deb11u1] libavutil56/oldoldstable-security 7:4.3.9-0+deb11u1 arm64 [upgradable from: 7:4.3.7-0+deb11u1] libblkid1/oldoldstable,oldoldstable-security 2.36.1-8+deb11u2 arm64 [upgradable from: 2.36.1-8+deb11u1] libblockdev-fs2/oldoldstable-security 2.25-2+deb11u1 arm64 [upgradable from: 2.25-2] libblockdev-loop2/oldoldstable-security 2.25-2+deb11u1 arm64 [upgradable from: 2.25-2] libblockdev-part-err2/oldoldstable-security 2.25-2+deb11u1 arm64 [upgradable from: 2.25-2] libblockdev-part2/oldoldstable-security 2.25-2+deb11u1 arm64 [upgradable from: 2.25-2] libblockdev-swap2/oldoldstable-security 2.25-2+deb11u1 arm64 [upgradable from: 2.25-2] libblockdev-utils2/oldoldstable-security 2.25-2+deb11u1 arm64 [upgradable from: 2.25-2] libblockdev2/oldoldstable-security 2.25-2+deb11u1 arm64 [upgradable from: 2.25-2] libbluetooth3/oldoldstable-security 5.55-3.1+deb11u2 arm64 [upgradable from: 5.55-3.1+deb11u1] libbpf0/oldoldstable-security 1:0.3-2+deb11u1 arm64 [upgradable from: 1:0.3-2] libc-bin/oldoldstable-security 2.31-13+deb11u13 arm64 [upgradable from: 2.31-13+deb11u7] libc-dev-bin/oldoldstable-security 2.31-13+deb11u13 arm64 [upgradable from: 2.31-13+deb11u7] libc-l10n/oldoldstable-security 2.31-13+deb11u13 all [upgradable from: 2.31-13+deb11u7] libc6-dev/oldoldstable-security 2.31-13+deb11u13 arm64 [upgradable from: 2.31-13+deb11u7] libc6/oldoldstable-security 2.31-13+deb11u13 arm64 [upgradable from: 2.31-13+deb11u7] libcaca0/oldoldstable-security 0.99.beta19-2.2+deb11u1 arm64 [upgradable from: 0.99.beta19-2.2] libcap2-bin/oldoldstable-security 1:2.44-1+deb11u1 arm64 [upgradable from: 1:2.44-1] libcap2/oldoldstable-security 1:2.44-1+deb11u1 arm64 [upgradable from: 1:2.44-1] libcom-err2/oldoldstable-security 1.46.2-2+deb11u1 arm64 [upgradable from: 1.46.2-2] libcups2/oldoldstable-security 2.3.3op2-3+deb11u9 arm64 [upgradable from: 2.3.3op2-3+deb11u6] libcurl3-gnutls/oldoldstable-security 7.74.0-1.3+deb11u15 arm64 [upgradable from: 7.74.0-1.3+deb11u11] libcurl4/oldoldstable-security 7.74.0-1.3+deb11u15 arm64 [upgradable from: 7.74.0-1.3+deb11u11] libdav1d4/oldoldstable,oldoldstable-security 0.7.1-3+deb11u1 arm64 [upgradable from: 0.7.1-3] libexempi8/oldoldstable-security 2.5.2-1+deb11u1 arm64 [upgradable from: 2.5.2-1] libexpat1-dev/oldoldstable-security 2.2.10-2+deb11u7 arm64 [upgradable from: 2.2.10-2+deb11u5] libexpat1/oldoldstable-security 2.2.10-2+deb11u7 arm64 [upgradable from: 2.2.10-2+deb11u5] libext2fs2/oldoldstable-security 1.46.2-2+deb11u1 arm64 [upgradable from: 1.46.2-2] libfastjson4/oldoldstable-security 0.99.9-1+deb11u1 arm64 [upgradable from: 0.99.9-1] libfdisk1/oldoldstable,oldoldstable-security 2.36.1-8+deb11u2 arm64 [upgradable from: 2.36.1-8+deb11u1] libfreetype6/oldoldstable-security 2.10.4+dfsg-1+deb11u2 arm64 [upgradable from: 2.10.4+dfsg-1+deb11u1] libgdk-pixbuf-2.0-0/oldoldstable-security 2.42.2+dfsg-1+deb11u3 arm64 [upgradable from: 2.42.2+dfsg-1+deb11u1] libgdk-pixbuf2.0-bin/oldoldstable-security 2.42.2+dfsg-1+deb11u3 arm64 [upgradable from: 2.42.2+dfsg-1+deb11u1] libgdk-pixbuf2.0-common/oldoldstable-security 2.42.2+dfsg-1+deb11u3 all [upgradable from: 2.42.2+dfsg-1+deb11u1] libglib2.0-0/oldoldstable-security 2.66.8-1+deb11u6 arm64 [upgradable from: 2.66.8-1] libglib2.0-bin/oldoldstable-security 2.66.8-1+deb11u6 arm64 [upgradable from: 2.66.8-1] libglib2.0-data/oldoldstable-security 2.66.8-1+deb11u6 all [upgradable from: 2.66.8-1] libgnutls30/oldoldstable-security 3.7.1-5+deb11u8 arm64 [upgradable from: 3.7.1-5+deb11u3] libgsf-1-114/oldoldstable-security 1.14.47-1+deb11u1 arm64 [upgradable from: 1.14.47-1] libgsf-1-common/oldoldstable-security 1.14.47-1+deb11u1 all [upgradable from: 1.14.47-1] libgssapi-krb5-2/oldoldstable-security 1.18.3-6+deb11u7 arm64 [upgradable from: 1.18.3-6+deb11u4] libgstreamer-plugins-base1.0-0/oldoldstable-security 1.18.4-2+deb11u3 arm64 [upgradable from: 1.18.4-2+deb11u1] libgstreamer1.0-0/oldoldstable-security 1.18.4-2.1+deb11u1 arm64 [upgradable from: 1.18.4-2.1] libgtk-3-0/oldoldstable 3.24.24-4+deb11u4 arm64 [upgradable from: 3.24.24-4+deb11u3] libgtk-3-common/oldoldstable 3.24.24-4+deb11u4 all [upgradable from: 3.24.24-4+deb11u3] libgtk2.0-0/oldoldstable 2.24.33-2+deb11u1 arm64 [upgradable from: 2.24.33-2] libgtk2.0-common/oldoldstable 2.24.33-2+deb11u1 all [upgradable from: 2.24.33-2] libicu67/oldoldstable-security 67.1-7+deb11u1 arm64 [upgradable from: 67.1-7] libimlib2/oldoldstable 1.7.1-2+deb11u1 arm64 [upgradable from: 1.7.1-2] libk5crypto3/oldoldstable-security 1.18.3-6+deb11u7 arm64 [upgradable from: 1.18.3-6+deb11u4] libkrb5-3/oldoldstable-security 1.18.3-6+deb11u7 arm64 [upgradable from: 1.18.3-6+deb11u4] libkrb5support0/oldoldstable-security 1.18.3-6+deb11u7 arm64 [upgradable from: 1.18.3-6+deb11u4] libmount1/oldoldstable,oldoldstable-security 2.36.1-8+deb11u2 arm64 [upgradable from: 2.36.1-8+deb11u1] libmpg123-0/oldoldstable-security 1.26.4-1+deb11u1 arm64 [upgradable from: 1.26.4-1] libndp0/oldoldstable,oldoldstable-security 1.6-1+deb11u1 arm64 [upgradable from: 1.6-1+b1] libnghttp2-14/oldoldstable-security 1.43.0-1+deb11u2 arm64 [upgradable from: 1.43.0-1+deb11u1] libnginx-mod-http-geoip/oldoldstable-security 1.18.0-6.1+deb11u5 arm64 [upgradable from: 1.18.0-6.1+deb11u3] libnginx-mod-http-image-filter/oldoldstable-security 1.18.0-6.1+deb11u5 arm64 [upgradable from: 1.18.0-6.1+deb11u3] libnginx-mod-http-xslt-filter/oldoldstable-security 1.18.0-6.1+deb11u5 arm64 [upgradable from: 1.18.0-6.1+deb11u3] libnginx-mod-mail/oldoldstable-security 1.18.0-6.1+deb11u5 arm64 [upgradable from: 1.18.0-6.1+deb11u3] libnginx-mod-stream-geoip/oldoldstable-security 1.18.0-6.1+deb11u5 arm64 [upgradable from: 1.18.0-6.1+deb11u3] libnginx-mod-stream/oldoldstable-security 1.18.0-6.1+deb11u5 arm64 [upgradable from: 1.18.0-6.1+deb11u3] libnss3/oldoldstable-security 2:3.61-1+deb11u4 arm64 [upgradable from: 2:3.61-1+deb11u3] libntfs-3g883/oldoldstable 1:2017.3.23AR.3-4+deb11u4 arm64 [upgradable from: 1:2017.3.23AR.3-4+deb11u3] libopenjp2-7/oldoldstable-security 2.4.0-3+deb11u1 arm64 [upgradable from: 2.4.0-3] libpam-systemd/oldoldstable-security 247.3-7+deb11u7 arm64 [upgradable from: 247.3-7+deb11u4] libpoppler-glib8/oldoldstable-security 20.09.0-3.1+deb11u2 arm64 [upgradable from: 20.09.0-3.1+deb11u1] libpoppler102/oldoldstable-security 20.09.0-3.1+deb11u2 arm64 [upgradable from: 20.09.0-3.1+deb11u1] libpostproc55/oldoldstable-security 7:4.3.9-0+deb11u1 arm64 [upgradable from: 7:4.3.7-0+deb11u1] libpython3.9-dev/oldoldstable-security 3.9.2-1+deb11u3 arm64 [upgradable from: 3.9.2-1] libpython3.9-minimal/oldoldstable-security 3.9.2-1+deb11u3 arm64 [upgradable from: 3.9.2-1] libpython3.9-stdlib/oldoldstable-security 3.9.2-1+deb11u3 arm64 [upgradable from: 3.9.2-1] libpython3.9/oldoldstable-security 3.9.2-1+deb11u3 arm64 [upgradable from: 3.9.2-1] librabbitmq4/oldoldstable-security 0.10.0-1+deb11u1 arm64 [upgradable from: 0.10.0-1] libsepol1/oldoldstable-security 3.1-1+deb11u1 arm64 [upgradable from: 3.1-1] libsmartcols1/oldoldstable,oldoldstable-security 2.36.1-8+deb11u2 arm64 [upgradable from: 2.36.1-8+deb11u1] libsoup-gnome2.4-1/oldoldstable-security 2.72.0-2+deb11u2 arm64 [upgradable from: 2.72.0-2] libsoup2.4-1/oldoldstable-security 2.72.0-2+deb11u2 arm64 [upgradable from: 2.72.0-2] libsqlite3-0/oldoldstable-security 3.34.1-3+deb11u1 arm64 [upgradable from: 3.34.1-3] libsqlite3-dev/oldoldstable-security 3.34.1-3+deb11u1 arm64 [upgradable from: 3.34.1-3] libss2/oldoldstable-security 1.46.2-2+deb11u1 arm64 [upgradable from: 1.46.2-2] libssh2-1/oldoldstable 1.9.0-2+deb11u1 arm64 [upgradable from: 1.9.0-2] libssl1.1/oldoldstable-security 1.1.1w-0+deb11u3 arm64 [upgradable from: 1.1.1w-0+deb11u1] libswresample3/oldoldstable-security 7:4.3.9-0+deb11u1 arm64 [upgradable from: 7:4.3.7-0+deb11u1] libswscale5/oldoldstable-security 7:4.3.9-0+deb11u1 arm64 [upgradable from: 7:4.3.7-0+deb11u1] libsynctex2/oldoldstable-security 2020.20200327.54578-7+deb11u2 arm64 [upgradable from: 2020.20200327.54578-7+deb11u1] libsystemd0/oldoldstable-security 247.3-7+deb11u7 arm64 [upgradable from: 247.3-7+deb11u4] libtasn1-6/oldoldstable-security 4.16.0-2+deb11u2 arm64 [upgradable from: 4.16.0-2+deb11u1] libtiff5/oldoldstable-security 4.2.0-1+deb11u6 arm64 [upgradable from: 4.2.0-1+deb11u5] libudev1/oldoldstable-security 247.3-7+deb11u7 arm64 [upgradable from: 247.3-7+deb11u4] libudisks2-0/oldoldstable-security 2.9.2-2+deb11u2 arm64 [upgradable from: 2.9.2-2+deb11u1] libuuid1/oldoldstable,oldoldstable-security 2.36.1-8+deb11u2 arm64 [upgradable from: 2.36.1-8+deb11u1] libuv1/oldoldstable,oldoldstable-security 1.40.0-2+deb11u1 arm64 [upgradable from: 1.40.0-2] libvpx6/oldoldstable-security 1.9.0-1+deb11u4 arm64 [upgradable from: 1.9.0-1+deb11u2] libwpa-client-dev/oldoldstable-security 2:2.9.0-21+deb11u3 arm64 [upgradable from: 2:2.9.0-21] libxml2/oldoldstable-security 2.9.10+dfsg-6.7+deb11u8 arm64 [upgradable from: 2.9.10+dfsg-6.7+deb11u4] libxslt1.1/oldoldstable-security 1.1.34-4+deb11u2 arm64 [upgradable from: 1.1.34-4+deb11u1] linux-libc-dev/oldoldstable-security 5.10.237-1 arm64 [upgradable from: 5.10.205-2] locales/oldoldstable-security 2.31-13+deb11u13 all [upgradable from: 2.31-13+deb11u7] login/oldoldstable-security 1:4.8.1-1+deb11u1 arm64 [upgradable from: 1:4.8.1-1] logsave/oldoldstable-security 1.46.2-2+deb11u1 arm64 [upgradable from: 1.46.2-2] mount/oldoldstable,oldoldstable-security 2.36.1-8+deb11u2 arm64 [upgradable from: 2.36.1-8+deb11u1] nano/oldoldstable 5.4-2+deb11u3 arm64 [upgradable from: 5.4-2+deb11u2] net-tools/oldoldstable-security 1.60+git20181103.0eebece-1+deb11u2 arm64 [upgradable from: 1.60+git20181103.0eebece-1] nginx-common/oldoldstable-security 1.18.0-6.1+deb11u5 all [upgradable from: 1.18.0-6.1+deb11u3] nginx-core/oldoldstable-security 1.18.0-6.1+deb11u5 arm64 [upgradable from: 1.18.0-6.1+deb11u3] nginx/oldoldstable-security 1.18.0-6.1+deb11u5 all [upgradable from: 1.18.0-6.1+deb11u3] ntfs-3g/oldoldstable 1:2017.3.23AR.3-4+deb11u4 arm64 [upgradable from: 1:2017.3.23AR.3-4+deb11u3] openssh-client/oldoldstable-security 1:8.4p1-5+deb11u5 arm64 [upgradable from: 1:8.4p1-5+deb11u3] openssh-server/oldoldstable-security 1:8.4p1-5+deb11u5 arm64 [upgradable from: 1:8.4p1-5+deb11u3] openssh-sftp-server/oldoldstable-security 1:8.4p1-5+deb11u5 arm64 [upgradable from: 1:8.4p1-5+deb11u3] openssl/oldoldstable-security 1.1.1w-0+deb11u3 arm64 [upgradable from: 1.1.1w-0+deb11u1] openvpn/oldoldstable-security 2.5.1-3+deb11u1 arm64 [upgradable from: 2.5.1-3] passwd/oldoldstable-security 1:4.8.1-1+deb11u1 arm64 [upgradable from: 1:4.8.1-1] python3-idna/oldoldstable 2.10-1+deb11u1 all [upgradable from: 2.10-1] python3-pkg-resources/oldoldstable-security 52.0.0-4+deb11u2 all [upgradable from: 52.0.0-4] python3-setuptools/oldoldstable-security 52.0.0-4+deb11u2 all [upgradable from: 52.0.0-4] python3-urllib3/oldoldstable-security 1.26.5-1~exp1+deb11u1 all [upgradable from: 1.26.5-1~exp1] python3.9-dev/oldoldstable-security 3.9.2-1+deb11u3 arm64 [upgradable from: 3.9.2-1] python3.9-minimal/oldoldstable-security 3.9.2-1+deb11u3 arm64 [upgradable from: 3.9.2-1] python3.9/oldoldstable-security 3.9.2-1+deb11u3 arm64 [upgradable from: 3.9.2-1] rfkill/oldoldstable,oldoldstable-security 2.36.1-8+deb11u2 arm64 [upgradable from: 2.36.1-8+deb11u1] rsync/oldoldstable-security 3.2.3-4+deb11u3 arm64 [upgradable from: 3.2.3-4+deb11u1] ssh/oldoldstable-security 1:8.4p1-5+deb11u5 all [upgradable from: 1:8.4p1-5+deb11u3] sudo/oldoldstable-security 1.9.5p2-3+deb11u2 arm64 [upgradable from: 1.9.5p2-3+deb11u1] systemd-sysv/oldoldstable-security 247.3-7+deb11u7 arm64 [upgradable from: 247.3-7+deb11u4] systemd-timesyncd/oldoldstable-security 247.3-7+deb11u7 arm64 [upgradable from: 247.3-7+deb11u4] systemd/oldoldstable-security 247.3-7+deb11u7 arm64 [upgradable from: 247.3-7+deb11u4] tar/oldoldstable 1.34+dfsg-1+deb11u1 arm64 [upgradable from: 1.34+dfsg-1] tzdata/oldoldstable-security 2025b-0+deb11u1 all [upgradable from: 2021a-1+deb11u11] ucf/oldoldstable-security 3.0043+deb11u2 all [upgradable from: 3.0043] udev/oldoldstable-security 247.3-7+deb11u7 arm64 [upgradable from: 247.3-7+deb11u4] udisks2/oldoldstable-security 2.9.2-2+deb11u2 arm64 [upgradable from: 2.9.2-2+deb11u1] usb.ids/oldoldstable 2024.07.04-0+deb11u1 all [upgradable from: 2023.01.16-0+deb11u1] util-linux/oldoldstable,oldoldstable-security 2.36.1-8+deb11u2 arm64 [upgradable from: 2.36.1-8+deb11u1] vim-common/oldoldstable-security 2:8.2.2434-3+deb11u3 all [upgradable from: 2:8.2.2434-3+deb11u1] vim-runtime/oldoldstable-security 2:8.2.2434-3+deb11u3 all [upgradable from: 2:8.2.2434-3+deb11u1] vim-tiny/oldoldstable-security 2:8.2.2434-3+deb11u3 arm64 [upgradable from: 2:8.2.2434-3+deb11u1] wget/oldoldstable-security 1.21-1+deb11u2 arm64 [upgradable from: 1.21-1+deb11u1] wireless-regdb/oldoldstable-security 2025.02.20-1~deb11u1 all [upgradable from: 2022.04.08-2~deb11u1] wpasupplicant/oldoldstable-security 2:2.9.0-21+deb11u3 arm64 [upgradable from: 2:2.9.0-21] xserver-common/oldoldstable-security 2:1.20.11-1+deb11u16 all [upgradable from: 2:1.20.11-1+deb11u10] xserver-xorg-core/oldoldstable-security 2:1.20.11-1+deb11u16 arm64 [upgradable from: 2:1.20.11-1+deb11u10] xxd/oldoldstable-security 2:8.2.2434-3+deb11u3 arm64 [upgradable from: 2:8.2.2434-3+deb11u1] Un «sudo apt upgrade -Y» met à jour les paquets système (175 paquets au moment de ce test). Vérification de la zone horaire : Citation mks@linaro-alip:~$ timedatectl Local time: Sun 2025-08-24 18:24:18 IDT Universal time: Sun 2025-08-24 15:24:18 UTC RTC time: n/a Time zone: Asia/Jerusalem (IDT, +0300) System clock synchronized: yes NTP service: active RTC in local TZ: no Pourquoi mon matériel utilise cette zone (Jerusalem) ? Correction : Citation mks@linaro-alip:~$ sudo timedatectl set-timezone Europe/Paris [sudo] password for mks: mks@linaro-alip:~$ timedatectl Local time: Sun 2025-08-24 17:27:38 CEST Universal time: Sun 2025-08-24 15:27:38 UTC RTC time: n/a Time zone: Europe/Paris (CEST, +0200) System clock synchronized: yes NTP service: active RTC in local TZ: no Date et heures sont à présent correctes . KIAUH KIAUH (Klipper Installation And Update Helper) est installé dans le dossier de l'utilisateur mks. Un premeir test d'utilisation (./kiauh/kiauh.sh) affiche des erreurs (j'ai oublié des faire des copies écrans ). Plutôt que chercher à savoir ce qui dysfonctionne, je sauvegarde le dossier kiauh en kiauh-qidi (mv kiauh kiauh-qidi), puis je clône le dépôt comme l'indique la documentation : cd ~ && git clone https://github.com/dw-0/kiauh.git Après lancement, sa fenêtre principale (main menu) liste les composants de l'écosystème Klipper installés par Qidi : Klipper, Moonraker, Fluidd et Crowsnest sont installés. L'option [2] de ce menu permet normalement de faire des mises à jour, mais Klipper et Moonraker ne peuvent pas l'être et de toute façon, il n'est pas conseillé de le faire . KIAUH ne peut ni détecter les versions installées par Qidi de Klipper et Moonraker (installed) (les dossiers .git ont été supprimés par Qidi), ni détecter les versions actuelles (latest) : Via KIAUH, on peut tout de même mettre à jour Crowsnest et Fluidd : et aussi installer d'autres composants si besoin (Mainsail, Mobileraker, Klipperscreen, …). Mise à jour Qidi On peut vérifier via l'écran de l'imprimante si une mise à jour existe : Depuis la réception de la Q2, j'ai eu plusieurs mises à jour proposées. Certaines effectuées en OTA (Other The Air = via le réseau donc), d'autres en mode manuel à l'aide de la clé USB avec des versions fournies par Qidi. La procédure de mise à jour manuelle utilise la clé USB contenant à la racine un dossier QD_Update. Ce dossier possède les fichiers de mise à jour (QD_Q2_SOC (un fichier installé via apt install… on peut l'ouvrir avec 7Zip pour prendre connaissance de son contenu) et éventuellement des mises à jour des firmwares des cartes (QD_Q2_MCU, QD_Q2_THR, …)). Une fois la mise à jour réalisée en mode hors ligne, le contenu du dossier QD_Update est renommé (QD_Q2_SOC.bak, QD_Q2_MCU.bak, QD_Q2_THR.bak et un journal est ajouté offline_update_log-20250917_120601.txt). Exemple du journal : Citation Remove ./cache* 停止moonraker和klipper Install QD_Q2_SOC Update THR Update MCU Les écrans lors d'une MAJ : Une fois l'imprimante redémarrée, un rappel de refaire a minima la compensation de résonances : À noter : les mises à jour En-ligne indiquent que la Qidi Box n'est pas supportée temporairement, le firmware adapté est retardé (problèmes, soucis de hardware / firmware … va savoir Charles, Qidi n'est pas très communicatif à ce sujet). Écosystème Klipper La version installée par Qidi n'est plus un dépôt Git (idem pour Moonraker), le dossier «.git» a été supprimé. Il est impossible de savoir précisément quelle version a servi de base au développement de la Q2. Toutefois, la consultation du fichier ~/klipper/docs/Config_changes.md permet tout de même de deviner que c'est basé sur une version 0.12.x, les dernières modifications datant du 20240415 (la v0.12.0 est sortie en octobre 2023, la v0.13.0 en novembre 2024). Klipper (klippy) utilise majoritairement Python. La version du système Qidi est un Python3 3.9.2 (c'est une bonne chose ). Citation mks@linaro-alip:~/klipper$ python3 -V Python 3.9.2 Qidi pour gérer ses propres composants (le capteur de pression entre autres (ADC CS1237)) a compilé les fichiers Python en une bibliothèque (extension .so). Ce qui rend difficile la compréhension de leur fonctionnement. La licence GPL v3.0 de Klipper est loin d'être respectée , même si je peux comprendre que la rigidité du développeur principal de Klipper (Kevin O'connor) puisse refroidir l'ardeur des développeurs quand on souhaite ajouter de nouveaux modules à Klipper. mks@linaro-alip:~$ ls -al klipper/klippy/extras/*.so -rw-r--r-- 1 mks netdev 968080 Aug 21 03:48 klipper/klippy/extras/aht20_f.so -rw-r--r-- 1 mks netdev 1638064 Jul 29 05:20 klipper/klippy/extras/air.cpython-39-aarch64-linux-gnu.so -rw-r--r-- 1 mks netdev 1777896 Aug 21 03:48 klipper/klippy/extras/box_detect.so -rw-r--r-- 1 mks netdev 4203848 Sep 6 09:30 klipper/klippy/extras/box_extras.so -rw-r--r-- 1 mks netdev 558808 Aug 21 03:48 klipper/klippy/extras/box_rfid.so -rw-r--r-- 1 mks netdev 2902080 Sep 5 09:26 klipper/klippy/extras/box_stepper.so -rw-r--r-- 1 mks netdev 596112 Jul 28 13:47 klipper/klippy/extras/buttons_irq.so -rw-r--r-- 1 mks netdev 995328 May 5 07:34 klipper/klippy/extras/cs1237.cpython-39-aarch64-linux-gnu.so -rw-r--r-- 1 mks netdev 1494216 May 5 07:34 klipper/klippy/extras/heater_air_core.cpython-39-aarch64-linux-gnu.so -rw-r--r-- 1 mks netdev 737352 May 5 07:35 klipper/klippy/extras/hx711.cpython-39-aarch64-linux-gnu.so Pour le moment, il est fortement déconseillé de tenter de mettre à jour Klipper (manuellement ou via KIAUH), de nombreux éléments matériels seraient rendus non fonctionnels. De toute façon, une mise à jour vers la version actuelle (0.13.x) nécessiterait de flasher les firmwares des cartes : X-9-3, A-10 (tête d'impression), et celle de la Qidi Box (pour ceux en ayant une). Klipper: printer.cfg Ce fichier est celui qui permet de configurer les éléments matériels pour que le firmware puisse les utiliser via les firmwares flashés sur les deux cartes contrôleurs. Je ne vais pas le détailler précisément, la documentation de Klipper le fait déjà (en français). Je ne reprends que l'essentiel. Les macros sont dans un fichier séparé (gcode_macro.cfg) inclus au début du printer.cfg, de même pour la gestion des timelapses (timelapse.cfg) et celle pour la reprise après coupure de courant (plr.cfg) : # q2 [include KAMP_Settings.cfg] [include gcode_macro.cfg] [include MCU_ID.cfg] [include timelapse.cfg] [include plr.cfg] Analyse de la configuration matérielle MCU La Q2 gère trois «mcu» (micro controler unit) : le principal est celui correspondant au microcontrôleur STM32F407 de la carte X-9-3 via une liaison série USB avec la carte X-9-1 (ajouté via un include MCU_ID.cfg) : [mcu] serial:/dev/serial/by-id/usb-Klipper_QIDI_MAIN_V2_1.0.4_52A832373534350534343539-if00 restart_method: command le second est celui de la carte fille située sur la tête (A-10], microcontrôleur STM32F103 (en fait un GD32F303) là encore en liaison série USB avec la carte X-9-1 [mcu THR] serial: /dev/ttyS4 restart_method: command baud: 500000 le troisième correspond au contrôleur de la carte utilisé par la Qidi Box, microcontrôleur STM32F401, quand elle est installée (ajouté via un include box.cfg). La connexion avec la carte X-9-1 est là aussi en mode série (USB) : [mcu mcu_box1] serial : /dev/serial/by-id/usb-Klipper_QIDI_BOX_V2_1.1.2_5C004B000851333235373730-if00 restart_method : command L'onglet Systeme de Fluidd donne des informations sur les mcus en cours de fonctionnement : [printer] La section de configuration (printer) correspondant à la cinématique de l'imprimante, ses accélérations et vitesses maximales [printer] kinematics:corexy max_velocity: 600 max_accel: 20000 max_z_velocity: 20 max_z_accel: 500 square_corner_velocity: 8 Pilotes moteurs On trouve évidemment les déclarations de paramètres des moteurs pilotant les axes (stepper …). Les axes X et Y utilisent la mise à l'origine sans capteur permise grâce aux pilotes TMC 2240. Exemple pour le pilote de l'axe X : [stepper_x] … endstop_pin:tmc2240_stepper_x:virtual_endstop … [tmc2240 stepper_x] … driver_SGT: 1 … L'utilisation de ce mode nécessite la modification du processus de mise à l'origine via la directive [homing_override] (réduction du courant envoyé aux pilotes le temps de cette mise à l'origine) : [homing_override] axes:xy gcode: M204 S10000 M220 S100 SET_STEPPER_ENABLE STEPPER=extruder enable=0 {% if 'X' in params and 'Y' not in params %} _HOME_X {% endif %} {% if 'Y' in params and 'X' not in params %} _HOME_Y {% endif %} {% if 'X' in params and 'Y' in params %} _HOME_XY {% endif %} {% if 'X' not in params and 'Y' not in params %} SET_KINEMATIC_POSITION X=100 SET_KINEMATIC_POSITION Y=100 SET_KINEMATIC_POSITION Z={printer.toolhead.axis_maximum.z/2} G91 G1 Z5 F600 G4 P2000 _HOME_XY G90 G1 X{printer['gcode_macro PRINTER_PARAM'].max_x_position/2} Y{printer['gcode_macro PRINTER_PARAM'].max_y_position/2} F7800 G91 M400 G28 Z G1 Z20 F600 {% endif %} M204 S10000 G90 La Q2 utilise deux moteurs indépendants pour l'axe Z associés aux pilotes TMC2209, ce qui permet de régler l'inclinaison du lit automatiquement via un Gcode étendu Z_TILT_ADJUST à l'aide des paramètres de la section [z_tilt] : [stepper_z] … endstop_pin:probe:z_virtual_endstop endstop_pin_reverse:tmc2209_stepper_z:virtual_endstop position_endstop_reverse:260 position_max:265 position_min: -2 … homing_positive_dir:false homing_positive_dir_reverse:true [stepper_z1] … endstop_pin_reverse:tmc2209_stepper_z1:virtual_endstop [z_tilt] z_positions: -15,137 285,137 points: 10,137 260,137 speed: 150 horizontal_move_z: 5 retries: 2 retry_tolerance: 0.05 Jauge de pression (load cell) La Q2 utilise une jauge de pression intégrée à la tête en tant qu'interrupteur de fin de course. Ce qui permet : de réaliser la détection du point 0 (surface du PEI), d'effectuer le maillage du lit (les lits sont rarement totalement plats), de corriger automatiquement l'inclinaison du plateau (z_tilt) grâce aux deux moteurs Z indépendants Qidi a développé sa propre sonde (en Python, mais ensuite compilé sous forme d'une bibliothèque) autour d'un ADC CS1237. Une nouvelle section [probe_air] est utilisée par le fichier printer.cfg : [probe_air] sensor_type: c_sensor sclk_pin: THR:PB3 dout_pin:THR: PB4 voltage: 4.95 delta_v: 0.08 z_offset:-0.07 speed: 5 lift_speed:5 samples: 2 sample_retract_dist:3 samples_result: average samples_tolerance: 0.02 samples_tolerance_retries: 10 Le maillage du lit utilise une matrice de 6x6 : [bed_mesh] speed: 100 #100 horizontal_move_z:5 mesh_min:10,10 mesh_max:260,260 probe_count:6,6 algorithm:lagrange#bicubic #bicubic_tension:0.2 mesh_pps: 2, 2 #fade_target:0 Le maillage par défaut sans ajustement (le côté droit est légèrement plus bas et c'est surtout le point avant droit qui contribue à une portée de 0,3733 mm (différence entre point le plus haut et celui le plus bas)) : Compensation de résonances Pour la compensation de résonances, l'accéléromètre utilisé par Qidi est une puce LIS2DW soudée sur la carte fille A-10 qui permet de réaliser automatiquement les mesures : [lis2dw] cs_pin:THR:PA10 spi_software_sclk_pin:THR:PA5 spi_software_mosi_pin:THR:PA7 spi_software_miso_pin:THR:PA6 axes_map: y, z, -x [resonance_tester] accel_per_hz: 150 max_smoothing:0.25 accel_chip:lis2dw probe_points: 135, 135, 10 L'extension «G-code Shell Command» (un script Python de KIAUH) étant installé d'origine, on peut créer des scripts shell et les macros idoines pour produire des graphiques. Le tout regroupé dans un fichier «graphiques-shaper.cfg» (ajouter au début du printer.cfg une ligne [include graphiques-shaper.cfg] : # Process csv files issued from "input_shaping" to obtain png files # [gcode_macro PROCESS_SHAPER_DATA] description: process csv file to png gcode: RUN_SHELL_COMMAND CMD=axe_x RUN_SHELL_COMMAND CMD=axe_y [gcode_shell_command axe_x] command: sh /home/mks/printer_data/config/scripts/axe_x.sh timeout: 300. verbose: True [gcode_shell_command axe_y] command: sh /home/mks/printer_data/config/scripts/axe_y.sh timeout: 300. verbose: True Un répertoire «scripts» est créé dans ~/printer_data/config pour stocker les scripts shell, exemple du script pour l'axe X (remplacer x par y pour obtenir le script de l'axe Y) : #!/bin/sh # # Create PNG from csv file issued after INPUT_SHAPING, X axis # # Paths # DATE=$(date +"%Y%m%d") SCRIPTS="/home/mks/klipper/scripts/calibrate_shaper.py" CSV_FILE="/tmp/calibration_data_x_*.csv" PNG_FILE="/home/mks/printer_data/config/shaper_calibrate_x_$DATE.png" $SCRIPTS $CSV_FILE -o $PNG_FILE On peut également installer Klippain Shake and Tune pour obtenir plus de graphiques (objet d'un post ultérieur ). Voilà pour les points qui me semblaient importants du fichier printer.cfg. La configuration matérielle permet de piloter les différents composants éléctroniques via le firmware installé sur les cartes. Ensuite pour piloter les déplacements, les ventilations, les chauffage, c'est par l'intermédiaire de macros que cela se fait. Je ne détaillerai pas ici le contenu de toutes les macros. Je vous mets ici le fichier gcode_macros.cfg de Qidi pour la Q2 (supprimer la double extension .txt) : gcode_macro.cfg.txt Voilà pour cette fois, la suite est à venir. Modifié (le) hier à 14:28 par fran6p 3
tranbert Posté(e) Aout 25 Posté(e) Aout 25 Mon panier est prêt, le clic va déprendre de cette chronique, c'est pour dire l'importance de la chose. 1
Julien Posté(e) Aout 25 Posté(e) Aout 25 il y a 14 minutes, tranbert a dit : Mon panier est prêt N'oublie pas que tu peux avoir 50 € de réduction grâce au code promo "QIDI-Lesimprimantes3D" pour l'achat d'une Q2 chez Qidi Tech la Q2 seule pour 449 € le combo avec Box pour 599 € 1
tranbert Posté(e) Aout 25 Posté(e) Aout 25 il y a 4 minutes, Julien a dit : N'oublie pas que tu peux avoir 50 € de réduction grâce au code promo "QIDI-Lesimprimantes3D" pour l'achat d'une Q2 chez Qidi Tech la Q2 seule pour 449 € le combo avec Box pour 599 € Oui, je n'oublie pas que l'on peut avoir 50€ de réduction via ce lien pour l'imprimante seule ou celui-ci pour le combo
fran6p Posté(e) Aout 27 Auteur Posté(e) Aout 27 Certaines discussions ont été déplacées dans un autre fil. J'aimerais que mon fil reste axé sur ma découverte de ce modèle. Merci d'avance d'en prendre compte. 3
JérémyJeanson Posté(e) Aout 28 Posté(e) Aout 28 Hello @fran6p, Penses tu avoir un peu de temps pour nous partager quelques impressions (dans tous les sens du terme) d'ici ce week-end ? Merci par avance.
pascal_lb Posté(e) Aout 28 Posté(e) Aout 28 (modifié) il y a 13 minutes, JérémyJeanson a dit : Penses tu avoir un peu de temps pour nous partager quelques impressions (dans tous les sens du terme) d'ici ce week-end ? Houlaaaaaaa ! Tu as affaire à un retraité, il ne faut pas être si pressé Modifié (le) Aout 28 par pascal_lb 1 1 1
fran6p Posté(e) Aout 28 Auteur Posté(e) Aout 28 (modifié) Il y a 5 heures, pascal_lb a dit : Tu as affaire à un retraité, il ne faut pas être si pressé Toutafé . En plus, ce qui prend le plus de temps, ce n'est pas de réaliser des tests d'impression. Le plus chronophage est de prendre des photos, les recadrer, les nommer, écrire le texte, le relire, le corriger, l'amender, le peaufiner, le recorriger, le rectifier, le compléter … Il y a tout de même une suite, à voir ici. Modifié (le) Aout 28 par fran6p 1
hyoti Posté(e) Aout 28 Posté(e) Aout 28 (modifié) Le 24/08/2025 at 12:31, fran6p a dit : l a fallu plus de ving-cinq minutes en ajoutant la phase (longue) de mise à l'origine Un problème sur l'affichage entre heures et minutes Autrement tes tests vont être très longs !! Modifié (le) Aout 28 par hyoti correction 1 1
fran6p Posté(e) Aout 28 Auteur Posté(e) Aout 28 il y a 8 minutes, hyoti a dit : Un problème sur l'affichage entre heures et minutes Mince . Un bug d'affichage à remonter à Qidi. Sinon, c'était bien 25 min au total. Il faudra que je vérifie pour de prochaines impressions de moins d'une heure si ça se reproduit. Au moins, ça fait plaisir de voir que certains lisent scrupuleusement . 1 1
hyoti Posté(e) Aout 28 Posté(e) Aout 28 @fran6p si tu changes de langue, c'est pareil ? il y a de grandes chances. Dans le temps total d’impression de la machine c'est correct ou bug ?
fran6p Posté(e) Aout 29 Auteur Posté(e) Aout 29 Il y a 18 heures, hyoti a dit : Dans le temps total d’impression de la machine c'est correct ou bug ? Là, pas de bug. Le temps total d'impression est correct . Il y a 19 heures, hyoti a dit : si tu changes de langue, c'est pareil ? il y a de grandes chances. Pas testé. Hormis Fluidd que je passe en français, désormais, je préfére rester sur l'anglais pour les interfaces écrans que j'utilise peu. 2
Grayshif Posté(e) Aout 31 Posté(e) Aout 31 Bonjour, J'ai craqué est commandé la qidi2 combo et j'ai pensé à utiliser le code promo du forum. Normalement elle arrive la semaine prochaine ça tombe bien je suis en vacance. En espérant que le boitier multi filament ne tarde pas trop. L'imprimante étant sous Klipper peut on rajouter des macros comme le bed mesh adaptatif. Bonne Journée 1
fran6p Posté(e) Aout 31 Auteur Posté(e) Aout 31 Il y a 3 heures, Grayshif a dit : L'imprimante étant sous Klipper peut on rajouter des macros comme le bed mesh adaptatif. On peut en ajouter. Le KAMP est déjà présent, mais pas activé. Comme le Klipper et le Moonraker ne sont ni up-to-date, ni officiels, l'ajout d'autres dépôt Git n'est pas forcément facile. Déjà, le logiciel git n'est pas installé Mais comme l'OS est basé sur une distribution Debian ancienne (bullseye), la mise à jour des dépôts logiciels provoque une erreur pour les dépôts «backports» Ça se résout en éditant le fichier sources.list avec l'adresse archive.debian.org au lieu de deb.debian.org. J'ai également modifié les adresses des dépôts Qidi qui pointent vers un miroir en Chine Révélation mks@linaro-alip:~$ cat /etc/apt/sources.list #deb http://mirrors.ustc.edu.cn/debian bullseye main contrib #deb-src http://mirrors.ustc.edu.cn/debian bullseye main contrib #deb http://mirrors.ustc.edu.cn/debian-security bullseye-security main contrib #deb-src http://mirrors.ustc.edu.cn/debian-security bullseye-security main contrib #deb http://mirrors.ustc.edu.cn/debian bullseye-updates main contrib #deb-src http://mirrors.ustc.edu.cn/debian bullseye-updates main contrib #deb http://mirrors.ustc.edu.cn/debian/ bullseye-backports main contrib #deb-src http://mirrors.ustc.edu.cn/debian/ bullseye-backports main contrib # Dépôt principal, sections libre et non libres deb http://deb.debian.org/debian/ bullseye main contrib non-free #deb-src http://deb.debian.org/debian/ bullseye main contrib non-free # Dépôt de correctifs de sécurité deb http://deb.debian.org/debian-security/ bullseye-security main contrib non-free #deb-src http://deb.debian.org/debian-security/ bullseye-security main contrib non-free # Dépôt de mises à jour intermédiaires deb http://deb.debian.org/debian/ bullseye-updates main contrib non-free #deb-src http://deb.debian.org/debian/ bullseye-updates main contrib non-free # Dépôt de "rétroportages" (backports) deb http://archive.debian.org/debian/ bullseye-backports main contrib non-free #deb-src http://archive.debian.org/debian/ bullseye-backports main contrib non-free Un sudo apt update met à jour la liste (accès ssh => mks / makerbase), puis un sudo apt install git pour installer git Actuellement, j'ai complété l'écosystème Klipper avec Shake&Tune, KlipperBackup sans rencontrer de problèmes. KIAUH est installé, mais dans une version très ancienne (4.x) et également modifié par Qidi (je l'ai d'abord sauvegardé puis supprimé et réinstallé via la procédure officielle). Ne surtout pas faire de mise à jour de Klipper / Moonraker via son intermédiaire (impossible de toute façon, car ils ne sont pas considérés comme des dépôt git (l'historique a été supprimé (plus de dossier caché .git ). Via le KIAUH «officiel», j'ai mis à jour Fluidd. Mettre à jour via KIAUH Croswnest provoque une erreur et nécessite une intervention manuelle hors KIAUH (git stash, git pull, git stash pop) Ces derniers points seront l'objet d'un article plus fouillé dans cette revue. 4
Grayshif Posté(e) Septembre 1 Posté(e) Septembre 1 Bonjour Fran6p, Merci pour ton explication, lorsque j'avais activé Kamp sur ma sidewinder x2 la procédure était plus simple. Après je ne dis pas que je ne vais pas le tenter mais je ne suis pas encore assez alèse avec se type de manipulation pour le faire des réceptions de la machine. J'imagine qu'il bride les fonctions pour limiter l'utilisation du sav. Bonne Soirée
fran6p Posté(e) Septembre 9 Auteur Posté(e) Septembre 9 Un premier examen des matériels est en ligne : >>> ici <<< 3
fran6p Posté(e) Septembre 23 Auteur Posté(e) Septembre 23 On continue l'exploration du matériel >>> ici <<< 1
fran6p Posté(e) hier à 14:21 Auteur Posté(e) hier à 14:21 Pour les plus férus, un survol de l'écosystème Klipper et de l'OS : >>> là <<< 1
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant