Aller au contenu

GO Print

Projet d'un Module Power Failure Rescue


Janpolanton

Messages recommandés

Je vais décortiquer le bout de code creality et le mappin de l'Anet courant du week-end.

En attendant, d'après la doc c'est bien au niveau de la carte SD que c'est enregistré pour les creality ce qui a deux défauts: il faut passer par une SD, ça rogne sensiblement la durée de vie de ces dernière même si ça coute pas bien cher à remplacer. Un autre façon de faire, sans SD, serait d'utiliser l'EEPROM de l'Atmega mais pour ça il faut lui laisser un peu de temps (en ms) pour enregistrer -> condensateurs. On peut aussi envisager les plugins Octoprint.

Avec un buildtak ça ne se décolle pas tout seul. Ma DAGOMA imprime sans plateau chauffant et ce n'est pas un soucis (PLA un iquement). Pour le homing Z, on peut le faire par le haut également.

Ma demande d'origine concerne uniquement deux points:

  • Laisser suffisament de courant à la carte pour remonter et parker la tête. Pas de maintient de chauffe du bed et encore moins de la hotend.
  • Laisser tourner le ventilateur coldend pendant 2min pour éviter les bouchages de buse et d'altérer la fixation souvent en plastique.

Ce dernier point ne nécessite pas de passer par la carte. En général ce ventilateur n'est pas régulé et tourne simplement en 12V donc on peut se permettre de le brancher uniquement sur la Janpolonerie 😛. Ou si on veut vraiment passer par la carte, j'imagine qu'avec des diodes on peut éviter au courant de remonter vers la carte et daller uniquement alimenter le ventilateur.

J'ai fais le tour des ventilateurs 40mm que je possède: max 0.07A, 0.03 pour certains et j'imagine qu'ils s'arrêteront de tourner vers 4.5~4.0V. L'idéal aurait été de tenir 2min, mais 1min serait acceptable j'imagine. Ayant prévu 2 têtes dans ma construction en cours, ce serait cool de pouvoir brancher deux "batteries" au besoin et de pouvoir donc alimenter deux ventilateurs.

@Janpolanton, s'il faut coder pour un microcontroller tu peux compter sur mon soutien.

En tout cas ce sujet est très actif, on voir que ça intéresse du monte 😄.

Modifié (le) par Tircown
Lien vers le commentaire
Partager sur d’autres sites

Il y a 8 heures, Janpolanton a dit :

Désolé de te contredire, il faut revoir tes calculs à la baisse. Tu t'es trompé d'un facteur 10 puissance 3

Oupps.. la petit méprise entre µ et milli, au temps pour moi, belle erreur en effet 😄
Donc, pour le ratio capacité/prix, les 'super condensateurs' remplissent bien leurs rôles en effet.

 

Bon, sinon, entre temps, d'autres ont évoqué des solutions basées sur une batterie ou un onduleur... Pratiquant l'aéromodélisme, j'ai quelques accus un peu trop fatigués pour l'hélico et trop lourds pour d'autres usages, mais qui pourrait me servir de tampon avec un BMS, j'y avais pas pensé, merci la communauté 😄(Faudra que je vois au retour de congés si je peux exploiter une pin libre sur ma Trigorilla pour faire le 'Power Supply sensor')

Lien vers le commentaire
Partager sur d’autres sites

Il y a 2 heures, Tircown a dit :

J'ai fais le tour des ventilateurs 40mm que je possède: max 0.07A, 0.03 pour certains et j'imagine qu'ils s'arrêteront de tourner vers 4.5~4.0V. L'idéal aurait été de tenir 2min, mais 1min serait acceptable j'imagine. Ayant prévu 2 têtes dans ma construction en cours, ce serait cool de pouvoir brancher deux "batteries" au besoin et de pouvoir donc alimenter deux ventilateurs.

Une petite extrapolation avec différentes puissances de charges et le temps estimé correspondant.

On commence à deviner la courbe exponentielle de la décharge d'un condensateur

 

image.thumb.png.d72da138e7a3a2a154631dc9eb715bd2.png

Lien vers le commentaire
Partager sur d’autres sites

il y a 24 minutes, .AleX. a dit :

Donc, pour le ratio capacité/prix, les 'super condensateurs' remplissent bien leurs rôles en effet.

En effet, surtout qu'ils sont déjà câblés sur un PCB comportant les circuits de charge / décharge / équilibrage.

1.67 Farad sous 15V pour environ 8€, ce serait couillon de s'en priver...😎

Lien vers le commentaire
Partager sur d’autres sites

Il y a 2 heures, Tircown a dit :

anpolanton, s'il faut coder pour un microcontroller tu peux compter sur mon soutien.

En tout cas ce sujet est très actif, on voir que ça intéresse du monte 😄.

A priori, il y aura de la demande pour l'Atmega1284 de l'Anet...😉

En tous cas, je t'en remercie par avance.

Lien vers le commentaire
Partager sur d’autres sites

il y a 28 minutes, Janpolanton a dit :

A priori, il y aura de la demande pour l'Atmega1284 de l'Anet...😉

En tous cas, je t'en remercie par avance.

ça va étre chaud au niveau des pin... y'avait celui que je t'avais cité, aprés le TX0 et RX0 je ne pense pas que l'on puisse utiliser des pin UART pour autre chose sans que ça foute le bins...à confirmer avec @Tircown

Lien vers le commentaire
Partager sur d’autres sites

il y a 13 minutes, Djam a dit :

aprés le TX0 et RX0 je ne pense pas que l'on puisse utiliser des pin UART pour autre chose sans que ça foute le bins...

Je sais que ça fiche le bazar sur une carte arduino mais là, manifestement elle ne sont à priori pas câblées et encore moins utilisées...

image.png.cb7f627d54015543706197605d73bb3a.png

Lien vers le commentaire
Partager sur d’autres sites

ben si elles sont lié au pin USB BLE qui sert soit à mettre le WIFI ou le Bluetooth, et elles sont désigné comme UART dans le Fastio :

// UART
#define RXD         DIO8
#define TXD         DIO9
#define RXD0        DIO8
#define TXD0        DIO9

#define RXD1        DIO10
#define TXD1 DIO11

Donc je ne sais pas si en redéfinissant ces pin ça ne risque pas de foutre le bins.... d'ou ma question pour @Tircown

Lien vers le commentaire
Partager sur d’autres sites

Oh que si ça foutra le bordel. Sauf erreur de ma part il ne sera plus possible de programmer la carte 😛.

J'vais décortiquer un peu plus mais à priori pour l'Anet, à moins de libérer un des pins, Zmax par exemple ou RX1 et TX1 qui sont peut être libre, autrement il faudra compter sur octoprint pour faire ce travail et donc penser à alimenter le raspberry pendant un bref instant (800mA pour un Pi B+, 180mA si on est raisonnable avec un Pi Zero W). Je cite octoprint par simplicité et réalisme mais c'est tout à fait possible d'envoyer du GCODE autrement.

Modifié (le) par Tircown
Lien vers le commentaire
Partager sur d’autres sites

@Tircown rx1 et tx1 sont pour le LCD et le BL touch c'est le fameux pin que j'avais cité plus haut...donc cacahuéte, ou alors faudrait se passer du LCD 2004 et passer sur du SPI en GLCD mais aprés ça rajoute trois entrées pour l'encodeur donc pas bénéfique du tout !

Y'a pas moyen de faire en sorte que quand le BL touch ait finit son Job on puisse basculer le pin en tant que pin > contrôle alim?

 

EDIT et voila ou vont les AIFO et AOFI:

858631423_Sanstitre.jpg.e39cf7d860be76bb511d86f86d605c64.jpg

Modifié (le) par Djam
Lien vers le commentaire
Partager sur d’autres sites

il y a 11 minutes, Djam a dit :

EDIT et voila ou vont les AIFO et AOFI:

 

J'ai de la cwotte de biquette plein les miwettes

Citation

le BL touch c'est le fameux pin que j'avais cité plus haut...donc cacahuéte

Il y a un moyen facile de contourner ce problème, c'est d'utiliser un capteur capacitif...

Modifié (le) par Janpolanton
  • Haha 1
Lien vers le commentaire
Partager sur d’autres sites

Coté cr10, c'est également de l'atmega1284 avec un câblage identique a l'Anet si j'en crois le diagram trouvé. Donc les mêmes limites.

Il doivent simplement écrire régulièrement dans le temps sur la carte SD

Lien vers le commentaire
Partager sur d’autres sites

Il y a 4 heures, Janpolanton a dit :

Il y a un moyen facile de contourner ce problème, c'est d'utiliser un capteur capacitif...

...?...What?... (TF)?

Modifié (le) par Djam
Lien vers le commentaire
Partager sur d’autres sites

En image, le futur PCB du module.

Je vais câbler un proto courant semaine prochaine sur plaque d'essais avant d'envoyer les fichiers gerber du PCB au graveur.

J'en ai profité pour refaire mon plein de composants et j'ai commandé un pack de supercondensateurs de 1.67F / 15V

image.thumb.png.169fb7a75bf8d911db026aca90195bc9.png

Lien vers le commentaire
Partager sur d’autres sites

pas de coupure sur le PCB entre le 230 et 12|24 ?

EDIT > et pour du 230V 6A ~ les pistes sont pas un peu trop légère?  Ben non, le module ne sert pas à alimenter la printeuse, donc y'aura pas beaucoup de demande à ce niveau!

Modifié (le) par Djam
Lien vers le commentaire
Partager sur d’autres sites

Il y a 1 heure, Djam a dit :

pas de coupure sur le PCB entre le 230 et 24 ?

La norme EN60950-1 préconise des distances minimales à respecter entre pistes (distances à vol d'oiseau) suivant le tableau ci-dessous:

image.png.f6e8b82552eac4daab2f10c6098e8a22.png

La tension max est de 325V crête pour un secteur à 230V

Ueff = U(Crête) / racine de 2 soit Ueff = 325 / 1.414 = 230V

Le tableau nous donne une distance d'isolement renforcé  dans l'air de 4mm (valeur de 71V à 400V). Les distances sont respectées, et il n'y a pas nécessité de créer un obstacle par une perforation ou une fente.

Le PCB publié précédemment était un premier jet dimensionnel et d'implantation.

Le PCB définitif respecte ces distances...😉

Allez, je le publie

 

1349774618_PCBPFR.thumb.jpg.842f60f817bd324a794d000ed5d421bd.jpg

 

Edité

Erratum sur le PCB publié ci-dessus car j'ai noté les tensions efficaces (230V et 130V) et non pas les tensions max (325V et 180V)

 

Et en image les connecteurs avec protection que j'ai commandés pour le raccordement du 230V

 

image.png.5a7a8a0df30876a3b62316b802717c7a.png

Modifié (le) par Janpolanton
  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

Hello,

Efficace Janpolanton 😛.

De mon coté j'ai téléchargé Marlin PE et Marlin 1.1.9 et mis un peu le nez dedans.

  • Dans le premier le "power panic" fonctionne avec l'EEPROM et beaucoup de variables sont stochées. Ça concerne aussi bien le nom du fichier imprimé, la position de lecture de celui ci, la position des axes, les températures requises, vitesse du ventilateur, correction du bed-levelling, bref tout pour ne pas avoir besoin de relire le GCODE du début ou devoir faire un homing Z. En cas de coupure la tête se lève de 25mm et fait un homing XY. Tout cela est porté par une carte électronique située juste derrière la fiche d'alimentation et avant l'interrupteur. Ci bien qu'une coupure de l'interrupteur ne déclenche rien. L'impressionne peut reprendre que si la température du bed n'a pas trop baissé donc vous pouvez oublier la pause pour aller faire une course avec cette technique.
  • Dans le second, avec le code hérité de Creality, tout est stocké dans la carte SD sur un fichier bin. Il ne faudra pas oublier de définir dans Configuration_adv.h le pin POWER_LOSS_PIN et son état par défaut POWER_LOSS_STATE. Autre détail le pin est lu, ce n'est pas un interrupt.

Sur le marché on trouve également le MKS DET (~6€) qui initialement doit être couplé à un écran de la même marque. Il possède un gros condensateur qui sert uniquement à temporiser le timeup de l'écran. Le MKS DET est probablement adaptable à nos besoin, il faudrait voir quel type de signal est renvoyé.

Resumer3D est un produit dont le crowdfunding kickstarter vient de terminer. Il faudra paramétrer le baudrate grâce à un utilitaire fourni et il se branche sur le port USB de l'imprimante. Pour env 21$ il permet d'y brancher un capteur de fin de filament et permet de réajuster le Z manuellement à la reprise.

Toutes les solutions citées ci dessus ne fonctionnent que si l'impression est faite depuis une carte SD.

Enfin il existe bien le plugin octoprint "PrintRecoveryPoc". Il est expérimental et n'est pas dans la liste officielle. Développé par foosel, la créatrice de octoprint, ça reste un proof-of-concept et vous serez prévenu: à utiliser à vos risque et péril. Aucune mise-à-jour depuis Février 2016.

 

Concernant l'Anet A8. Avec l'Anet v1.0 mainboard si vous utilisez un écran LCD et un BLTouch il n'y a rien à faire, fin de la partie. Sans BLtouch le pin 27 est disponible, sans LCD il y en a quelque-uns qui se libèrent. Dernière solution, changer de carte et là un monde de bidouille s'ouvre à vous.

 

@Janpolanton, dans la mesure ou le ventilateur coldend n'a pas besoin d'une alimentation en continu, peut-on envisager de l'alimenter après la panne de courant avec une pile 9V et un power boost 9V->12V? Sans prévoir de recharger cette pile on aurait plusieurs dizaines de pannes de courant avant de devoir la remplacer. Si je ne me trompe pas, une pile 9V fournis 500mAH, après power boost (au pif) >300mAh, soit 3h pour un ventilateur à 0,07A, soit 90 cycles de 2min.

Modifié (le) par Tircown
Lien vers le commentaire
Partager sur d’autres sites

Bonjour à tous,

Quelques réflexions sur la fonction Power Lost Recovery après plusieurs lectures enrichissantes sur le net  (parallèle entre les systèmes Prusa et Creality):

GitHub

Instructables

Secret Arduino Voltmeter – Measure Battery Voltage

Il en ressort que :

  • Le système Prusa est basé sur un ajout Hardware et que l'écriture de la dernière position se fait en EEPROM (comme je l'avais mentionné en début de ce fil de discussion).
  • Le système Craelity est basé uniquement sur le firmware et les références de tension internes de l'AVR. L'écriture des positions se fait en continu sur la SD. Mais à mon avis, ça ne doit pas fonctionner à tous les coups avec moins de 2ms de temps de réaction...
  • Marlin 1.1.9 a basé sa Power Détection Recovery en partie le code Creality (écriture permanente sur la SD) et prise en compte d'une partie Hardware avec la pin 44.
  • Les chinois ont déjà sorti un module de détection perte secteur. Après analyse visuelle du PCB, c'est un clone du schéma du module de Prusa.

Conclusion, je me suis fait chier pour rien avec mon module 🤐

Edité : et pour finir, mon post s'est télescopé avec celui de @Tircown 😥

Modifié (le) par Janpolanton
Lien vers le commentaire
Partager sur d’autres sites

Non tu ne t'es pas fais chier pour rien, le système MKS DET nécessite un onduleur supplémentaire pour pouvoir lever le Z, faire le homing et refroidir la buse. Son condensateur ne sert que pour l'écran MKS TFT. Ce module existe depuis plus longtemps que la Prusa MK3, je l'avais déjà vu au catalogue il y a 1an1/2.

A ma connaissance il n'existe pas de solution complète qui utilise le power recovery de Marlin 1.1.9 et fourni l'énergie suffisante à bouger les axes et refroidir.

 

Pour le téléscopage, au moins on a la même analyse 😛

Lien vers le commentaire
Partager sur d’autres sites

il y a 27 minutes, Tircown a dit :

Son condensateur ne sert que pour l'écran MKS TFT

Je n'en suis pas certain, a mon avis, il intègre un petit retard de quelques ms pour justement maintenir une tension sur la gate du premier mosfet.

(Voir détails en MP car je ne veux pas publier en public)

Lien vers le commentaire
Partager sur d’autres sites

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
  • Sur cette page :   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
  • YouTube / Les Imprimantes 3D .fr

×
×
  • Créer...