Auteur Sujet: QUESTION Conflit d'intérêt avec un pilote très répandu en impression 3D (et ailleurs) : le CH340 (& CH341)  (Lu 94 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne OddEssA AUTEUR

  • Le groupe des fibrés d'internet
  • *
Avant-propos :

Il est important d'expliquer les différents drivers implémenter dans les différentes cartes-mères ainsi que les microcontrôleurs (µC).

Les drivers servent de "d'interprètes" entre le port USB et le µC de la carte.
Ils convertissent le "langage" USB en "langage" Série que le µC va comprendre.

Il existe 3 types de drivers dans 99,9% des cas :
- ATmega16U2 : c'est un µC, petit mais puissant, et c'est celui qui est employé avec les cartes Arduino ou les copies des cartes Arduino de qualités.
- La famille CH340/CH341 : ce sont les drivers "génériques" et à bas coût que l'on retrouvent sur la grande majorité des cartes.
- La famille CP1202/CP1204 : ce sont également des drivers génériques mais ils sont plus récents et performants que les CH340/CH341.

Les µC contiennent le micrologiciel pour gérer l'imprimante ou la CNC.
Le micrologiciel le plus connu est open-source et se nomme Marlin.
Beaucoup de fabricants se base sur celui-ci pour développer leur micrologiciel (Anycubic, Creality, Artillery, BIQU, TEVO... ), d'où la floppée de bois vert il y a quelques années pour les obliger à mettre à disposition les micrologiciels de leurs imprimantes.
L'imprimante PrintMill (CR-30) de Creality est une conception innovante et réalisé à 100% par Creality et la Youtubeuse Naomi WU qui, elle au moins c'est elle sait de quoi elle cause et maîtrise ses sujets, contrairement à la fausse blondasse tête à baffes frenchie.
Les imprimantes open-source utilisent Marlin, Prusa en tête et Voron pour ne citer que les marques les plus connues, mettent non seulement le micrologiciel à disposition mais aussi l'intégralité de leurs plans de construction et listes de matériels (BOM).
Une exception existe : l'impression résine. Les micrologiciels étant tous propriétaires.

Les µC que l'on retrouvent le plus souvent dans les imprimantes :
- ATmega328P (UNO), ATmega328 (Micro), ATmega32U4 (Pro & Leonardo), ATmega2560 (Mega) : fabriqués par ATmel (racheté par Microchip), ils sont encore très courants dans les machines, fonctionnent tous à une fréquence d'horloge de 16MHz mais sont limité à 8bits et ne peuvent donc recevoir le micrologiciel Marlin 2.x.x car conçu pour les µC 32bits.
- LPC1768 & LPC1769 : famille de µC fabriquée par NXP (Philips) en 32bits. Ils se retrouvent sur de nombreuses cartes tierces (BigTreeTech, Duet 3D, FyseTech, Lerdge, Maker Base...) pour les plus connues.
- La famille des STM32 : famille de µC fabriquée part STMicroelectronics Il existe pléthores de références plus ou moins proche mais je peux citer la série des STM32F103 qui est très répandue. Ces µC sont également très utilisé par les constructeurs tierces et quasiment tous les fabricants d'imprimantes cités ci-avant.

Attention : Je ne parlerai pas ici des µC employés dans les écrans et la compatibilité avec les cartes car c'est un autre sujet.

Selon l'audience et les retour je ferai sans doute un post dédier à cette partie ainsi qu'aux choix a effectué mais cela a déjà été expliqué à moult reprise dans d'autres forum et les redit c'est pas mon truc.


Tapons dans le sujet.

Contexte parce que le contexte c'est important :
Début de semaine je me prototype une nouvelle mainboard pour deux nouvelles imprimantes 3D que je conceptualise : une de type Delta et une de type Core XY.

- Je sors mes cartes de prototypage nucleo32 et nucleo64 pour les STM32 et STM64 ainsi que ma mbedLPC1768.
- Je câble toutes mes cartes. Ça m'a pris 2 bonnes heures.
- Je connecte ma LPC à mon PC d'atelier pour y charger le firmware que je venais préparer en vu de debug, et là ! Message d'erreur furtif, puis reboot !!!
- Je vérifie 3 fois mon câblage, les connections à mon PC ... rien, tout est nickel-chrome !
- Je relance le PC et rebelotte !!! Je hais la belotte déjà, alors deux fois de suite...
- J'allume mon PC "bureautique", je branche la carte et ... rien ! Rien de rien ! Nooooon, rien de rien .... Nooooon rien a rebooter.
- Je désinstalle Windows sur l'autre ordi, je le réinstalle et là ça fonctionne !

Explications :
PC d'atelier avec W11 (une version du début février 2022) installé avec CocciKit téléchargé le 02 avril 2022 et mis à jour à cette date.
PC bureau avec W10.

Désinstallation de W11 pour une version de W10 : OK.
Installation W11 sans CocciKit : OK.
Installation W10 avec CocciKit : OK.
Installation W11 avec CocciKit : KO ! Redémarrage quasi direct et aucune inscriptions dans les log Windows:(
Essai avec les  Nucleo  : OK.


Par contre je ne me rappelle plus des paramètres du CoociKit lors de l'installation et là je suis trop avancé dans mon dev pour vérifier à nouveau.
Si quelqu'un à une soluce pour W11 tant mieux sinon perso j'ai Linux pour continuer à debug et ça me convient mais c'est dommage pour ce conflit le Cocci10 et W11 car ça peut arriver sur des CM équipée d'un LPC1768 ou LPC1769.
Précision importante : ces µC intègrent les drivers USB/Serial en interne.
  
1 👍🏻
  
L'erreur est humaine, la reproduire est une bêtise, à la troisième cela est une tragédie. À combien en sommes-nous ?
L'histoire est un éternel recommencement car nous n'apprenons rien tant des erreurs que des réussites d'il y a 10 minutes !

 

Merci pour ton soutien
Le point de ralliement en cas de souci de connexion