-
Compteur de contenus
1 276 -
Inscrit(e) le
-
Dernière visite
-
Jours remportés
15
Tout ce qui a été posté par electroremy
-
C'était en Russie en 1991... pas les mêmes normes de sécurités que chez nous aujourd'hui Après c'est des métalleux... ils seraient fiers de mourir pour un concert
-
Bonjour, J'ai reçu les pièces aujourd'hui : dans un paquet très bien emballé la SUPERPINDA, l'adaptateur, et 20 colliers rilsans Je retire mon imprimante de son caisson, l'occasion de faire un nettoyage Je vais en profiter pour faire plusieurs modifications : - remplacer les gaines spirales par des gaines textiles (qui trainent sur une étagère depuis plus d'un an) - connecter un câble sur la prise T1 pour la future sonde de température de l'enceinte - connecter un câble pour le détecteur de filament (que j'avais acheté il y a plusieurs années et qui a été oublié dans un tiroir) - connecter un câble pour le pilotage du chauffage - et bien sûr remplacer la PINDA V1 par la SUPERPINDA Les câbles sont issus du kit MMU1 que je n'ai jamais monté Avant de me lancer, je réfléchi à comment bien régler la hauteur de la SUPERPINDA. Quelques recherches sur le net me disent que cette sonde doit être fixée 1,5mm plus haute que la buse par rapport au bed. Ca tombe bien, pour ma fraiseuse CNC j'avais acheté un comparateur pour mesurer la hauteur des outils. J'allume l'imprimante, je lance un Mesh Bed Levelling dans le menu Calibration Ensuite je pose le comparateur au milieu du bed, et j'approche la buse dessus, je note la valeur affichée par l'imprimante et celle sur le comparateur : Je fais la même chose avec la vielle sonde PINDA V1, pour voir Un calcul montre que la PINDA V1 est à 0,82mm plus haut que la buse... cela explique mes valeurs de live Z élevées. Je remarque que l'extrudeur s'est un peu déformé (j'avais déjà du remplacer deux pièces par de nouvelles imprimées en ABS : le deflecteur de ventilation, et aussi le support de roulement à bille). => prochaine évolution pour cette imprimante, réimprimer toutes les pièces de l'extrudeur en ABS, et pourquoi pas une version améliorée avec à la place du roulement à bille le système de double roue dentées car j'en ai plusieurs dans le kit MMU1 inutilisé Ensuite, sans éteindre l'imprimante (pour bénéficier du Mesh Bed Levelling qui vient d'être fait), je démonter la PINDA V1 et j'installe la SUPERPINDA à la place. La partie emmerdante c'est le câble, il faut passer par les fils au niveau du connecteur car le câble est trop épais : Avec le comparateur, je régle la hauteur de la SUPERPINDA à 1,5mm par rapport à la buse : Une fois ceci fait, j'éteins l'imprimante et je branche la SUPERPINDA à la place de l'autre : Je rallume l'imprimante, et sans changer le firmware, je lance un home Z... (le bed est froid) ... suspens... Ca fonctionne ; je vérifie la hauteur de la buse en essayant de glisser dessous une feuile de papier A4, il faut forcer, la sonde est un peu trop haute... Je remet la sonde sur le comparateur et je baisse légèrement Je refais un home Z ; là c'est bon, une feuille A4 passe, une feuille A4 pliée en deux il faut forcer (mesure au pied à coulisse de deux épaisseurs de feuille A4 = 0,18mm) Je lance un Mesh Bed Levelling... tout est OK Je refait la fixation des câbles de l'extrudeur ; un point d'attention, les fils de la sonde de témpérature de la buse qui doivent être au dessus des câbles de la hotend mais ne doivent pas toucher la partie chauffante : Je connecte les câbles "en attente" pour le capteur de filament, le MMU1 (qui sera utilisé pour piloter le chauffage) et la sonde de température pour l'enceinte Comme il faut deux connecteurs plats pour le connecteur P3 de la RAMBo13a, je dois tailler un peu un des connecteurs du kit MMU1 : Voici les 3 câbles, laissés en attente (ce qui me permettra de faire ensuite tranquillement les mises à jours de firmware requises sans tout ouvrir) : Je m'attaque ensuite à l'installation des gaines textiles. C'est un peu chiant. Je constate au passage que certains câbles sont marqués, donc cette modification est utile. Je renforce la protection des câbles avec un peu de chatterton Je remarque que le paquet de câbles à l'arrière de l'extrudeur force sur l'isolation de l'alimentation et de la carte mère lors des positions extrêmes de l'axe X. Ces isolations sont nécessaire pour mon caisson chauffé, problème : l'imprimante n'a quasiment pas de jeu. Après, ça a fonctionné comme ça des années Je refais donc la sortie de câbles à l'arrière de l'extrudeur la plus "verticale" possible : Cette fois-ci ça passe juste, ça touche sans forcer : J'en profite pour vérifier les serrages des différentes vis, rien à signaler. Après, je fait un self test à l'imprimante, tout est OK : Je pense que l'imprimante pourrait même fonctionner sans mise à jour du firmware, en refaisant la calibration de la PINDA (qui logiquement aboutira à des coefs de températures nuls ou quasi nuls). Mais je vais quand même m'attaquer au firmware. En plus de la modif pour la prise en charge de la SUPERPINDA, j'ai pas mal d'autres idées (le capteur de filament, la régulation de la température de l'enceinte, mais aussi refaire un peu les menus pour que j'ai moins de manipulations à faire et économiser le bouton poussoir rotatif). Pour la régulation de température, je vais peut être utiliser la carte électronique multiplexeur du kit MMU1, les relais permettront une isolation galvanique entre la carte mère de l'imprimante et la partie chauffage.
-
Merci On apprend des choses en comparant les documentations Le connecteur pour thermistance T1 est inutilisé sur la MK2s, il sert uniquement pour la thermistance de la PINDA V2 ; je pourrais utiliser ce connecteur pour mesurer la température de mon enceinte. Les connecteurs Endstops max ne sont pas utilisés sur la MK2s ; le connecteur EndStops Max X est utilisé sur la MK2.5s+ pour gérer la vitesse de rotation du ventilateur de la hotend. A noter que la sonde PINDA est gérée comme un EndStop Z, ce qui est logique. Il reste un gros connecteur à 2 rangées de 5 broches ; la rangée vers les sorties Mosfet est utilisée pour le capteur de filament (VCC, GND et une E/S) ; la rangée vers les Endstops est utilisée par le MMU (VCC, GND et 2 E/S, la broche Reset n'est pas utilisée) Sur le site RepRap ce fameux connecteur est le connecteur "P3" Je peux utiliser la partie de P3 destinée au MMU1 pour commander le chauffage. Cette température n'a pas besoin d'être régulée très précisément ni rapidement à cause de l'inertie thermique. Actuellement il n'y a... aucune régulation ! J'ai ajusté manuellement l'alimentation du chauffage pour que la température se stabilise à 60°C Une régulation "tout ou rien" serait suffisante, au pire les 2 E/S permettent 3 niveaux de chauffe (il faudra alors une alimentation à découpage dont on peut piloter la sortie, ou bien plusieurs résistances chauffantes). Comme le courant de chauffe est important il faudra éviter de générer des parasites lors des commutations. Je pourrais utiliser le capteur de filament comme prévu initialement (en plus il existe des capteurs de filament qui réagissent aussi à une bobine avec un noeud), mais j'aurais plus de travail sur le firmware... il faudra qu'en cas de filament manquant (ou coincé) je mette l'impression en pause, en proposant un load filament et une reprise... C'est peut être facile à faire en appelant la fonction qui fait une pause d'impression. Sur la doc Prusa MK2 Sur le guide de mise à jour vers la MK2.5S+ Documentation du MMU1 :
-
Bonjour, Je n'ai pas encore reçue ma SUPERPINDA et le câble adapteur mais j'ai déjà modifié le firmware D'abord, télécharger la version ancienne de l'IDE Arduino qui va bien sur cette page https://www.arduino.cc/en/software/OldSoftwareReleases/ J'ai pris la version 1.6.13, sans installer, juste le fichier ZIP, qu'il suffit de décompresser pour avoir une version "portable" Cela fonctionne sans soucis sur Windows 11 Ensuite, il faut suivre les instructions données dans le fichier README.md contenu dans l'archive du code source du firmware Prusa-Firmware-3.2.3.zip # Original Prusa i3 MK2 Firmware ## General instructions Pre-compiled hex output on PRUSA RESEARCH site: http://prusa3d.com/downloads/firmware/ Just download and flash it to the electronics ## Build instructions ### Step 1 Install arduino ### Step 2 Remove Liquid Crystal library from your arduino or rename it ### Step 3 Install the arduino addon located in the root of this repo. Don't forget to install correct version! ### Step 4 Copy the configuration file matching your printer from variants folder to the the Firmware folder ### Step 5 Rename it to "Configuration_prusa.h" ### Step 6 Compile the firmware ### Step 7 Upload the firmware to board Concrètement, j'ai dû : - effacer le dossier LiquidCrystal dans C:\...\arduino-1.6.13\libraries\ - copier le contenu de C:\...\Prusa-Firmware-3.2.3\ArduinoAddons\Arduino_1.6.x\libraries\ dans C:\...\arduino-1.6.13\libraries\ - copier le contenu de C:\...\Prusa-Firmware-3.2.3\ArduinoAddons\Arduino_1.6.x\hardware\ dans C:\...\arduino-1.6.13\hardware\ - copier le fichier C:\...\Prusa-Firmware-3.2.3\Firmware\variants\1_75mm_MK2-RAMBo13a-E3Dv6full.h dans C:\...\Prusa-Firmware-3.2.3\Firmware\ - renommer le fichier C:\...\Prusa-Firmware-3.2.3\Firmware\1_75mm_MK2-RAMBo13a-E3Dv6full.h en C:\...\Prusa-Firmware-3.2.3\Firmware\Configuration_prusa.h Ensuite on ouvre Arduino en lançant C:\...\arduino-1.6.13\arduino.exe Dans le menu "Outils -> Type de carte" sélectionner "RAMBo" Ensuite, menu "Fichier -> Ouvrir" et sélectionner le fichier C:\...\Prusa-Firmware-3.2.3\Firmware\Firmware.ino Tous les fichiers se chargent Voici les modifications que j'ai faites (remarque : j'ai fait ces modifications avec NotePad++, bien plus pratique que l'éditeur de texte intégré à Arduino) Fichier Configuration.h - Ligne 8 #define FW_version "3.2.4" // RLUCAS Fichier Marlin.h - Ligne 373 et 374 // void temp_compensation_apply(); RLUCAS // void temp_compensation_start(); RLUCAS Fichier Marlin_main.cpp - Ligne 3331 // temp_compensation_start(); RLUCAS Fichier Marlin_main.cpp - Ligne 3493 // if(temp_cal_active == true && calibration_status_pinda() == true) temp_compensation_apply(); //apply PINDA temperature compensation // RLUCAS Fichier Marlin_main.cpp - Ligne 6868 à 6926 // RLUCAS /* void temp_compensation_start() { custom_message = true; custom_message_type = 5; custom_message_state = PINDA_HEAT_T + 1; lcd_update(2); if (degHotend(active_extruder) > EXTRUDE_MINTEMP) { current_position[E_AXIS] -= DEFAULT_RETRACTION; } plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 400, active_extruder); current_position[X_AXIS] = PINDA_PREHEAT_X; current_position[Y_AXIS] = PINDA_PREHEAT_Y; current_position[Z_AXIS] = PINDA_PREHEAT_Z; plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 3000 / 60, active_extruder); st_synchronize(); while (fabs(degBed() - target_temperature_bed) > 1) delay_keep_alive(1000); for (int i = 0; i < PINDA_HEAT_T; i++) { delay_keep_alive(1000); custom_message_state = PINDA_HEAT_T - i; if (custom_message_state == 99 || custom_message_state == 9) lcd_update(2); //force whole display redraw if number of digits changed else lcd_update(1); } custom_message_type = 0; custom_message_state = 0; custom_message = false; } void temp_compensation_apply() { int i_add; int z_shift = 0; float z_shift_mm; if (calibration_status() == CALIBRATION_STATUS_CALIBRATED) { if (target_temperature_bed % 10 == 0 && target_temperature_bed >= 60 && target_temperature_bed <= 100) { i_add = (target_temperature_bed - 60) / 10; EEPROM_read_B(EEPROM_PROBE_TEMP_SHIFT + i_add * 2, &z_shift); z_shift_mm = z_shift / axis_steps_per_unit[Z_AXIS]; }else { //interpolation z_shift_mm = temp_comp_interpolation(target_temperature_bed) / axis_steps_per_unit[Z_AXIS]; } SERIAL_PROTOCOLPGM("\n"); SERIAL_PROTOCOLPGM("Z shift applied:"); MYSERIAL.print(z_shift_mm); plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS] - z_shift_mm, current_position[E_AXIS], homing_feedrate[Z_AXIS] / 40, active_extruder); st_synchronize(); plan_set_z_position(current_position[Z_AXIS]); } else { //we have no temp compensation data } } */ Voilà pour le "coup de bistouri" qui consiste à mettre en commentaire pour retirer du firmware tout ce que font les deux fonctions temp_compensation_start() et temp_compensation_apply() Ensuite, on compile via le menu "Croquis -> Vérifier/Compiler" On voit bien que la mémoire de la carte RAMBo est bien remplie : 98% - sachant que le code supprimé a fait gagné des octets... Il reste environ 5 Ko de Flash disponible, ce qui permet de faire pas mal de choses quand même (à titre de comparaison, une carte Arduino UNO a 32Ko de Flash) Je peux même gagner plus d'octets en retirant du code la calibration en température de la PINDA Puis, on lance "Croquis -> Extraire les binaires compilés" On obtient le firmware au format HEX : C:\...\Prusa-Firmware-3.2.3\FirmwareFirmware.ino.rambo.hex C'est ce fichier HEX qu'il faudra télécharger comme firmware en suivant les instructions de Prusa, avec un ordinateur raccordé à l'imprimante 3D via un câble USB J'attends maintenant les pièces détachées pour modifier l'imprimante... @Kachidoki : aurais-tu la datasheet de la carte RAMBo1.3a ? j'aimerais savoir à quoi correspondent les broches d'E/S disponibles sur ma MK2s (pour le capteur de filament, le MMU V1 et une autre au milieu). Je pense y raccorder un connecteur vers une carte E/S déportées, histoire de voir ce que je peux faire ensuite comme nouvelles fonctions comme la régulation du chauffage de mon enceinte avec l'extinction de ce chauffage après la fin de l'impression ou un capteur de filament.
-
Super ! Durant le COVID, pour mon projet domotique j'ai fait mumuse avec des Arduino UNO et Mega, je connais Oui moi aussi j'ai été confronté à ça, c'est un défit intéressant. Le code des mes Arduino UNO domotique utilise 100% de la Flash - Je te raconte pas les optimisations parfois barbares derrière - j'ai même du optimiser les bibliothèques pour économiser des octets - il du code bien sale mais j'étais heureux de grapiller encore 10 octets pour faire entrer une autre fonction au chausse pied Oui tout à fait ! La première chose à faire dans un projet Arduino... ... c'est de gérer l'affichage (ou bien d'inclure un affichage "temporaire" si le projet n'en a pas) de façon à pouvoir afficher des résultats intermédiaires et messages de débug. C'est emmerdant quand on a un gros projet avec des ressources limitées, car le code de débug consomme de précieux octets et un afficheur monopolise pas mal de broches d'E/S. Heureusement on peut aussi utiliser le port série via USB pour afficher des trucs via le terminal, c'est du débug à pas cher même si ça consomme des ressources. Ce fonctionnement "à l'ancienne" limité en débug ressemblait pas mal à ce qu'on devait faire avec le matériel des années 80/90 (microcontrôleurs type 8051 avec EPROM UV) Le flashage des Arduinos est vachement plus rapide que l'effacement puis l'écriture d'une 27c256, et le C++ Arduino presque aussi facile que du BASIC (comparé à de l'assembleur) donc j'étais très heureux. Après, ce qui est bien avec Arduino, c'est qu'on peut aller au delà des fonctions basiques et écrire du code C++ performant, avec si besoin quelques fonctions en assembleur, c'est vraiment le meilleur des deux mondes. De plus il y a énormément de bibliothèques disponibles en open source, et le matériel compatible n'est pas cher. J'ai découvert Arduino durant le COVID, j'aurais adoré avoir ce matériel à l'époque où j'ai débuté l'électronique au collège dans les années 1990. Une astuce pour les cartes Arduino 8 bits aux ressources limitées : utiliser les anciennes versions des bibliothèques, plus économes en mémoire. La mode actuelle c'est de faire du code compatible avec un maximum de cartes, mais cela se fait au détriment des performances et de la consommation mémoire, ce n'est pas adapté aux anciennes cartes. Un truc tout bête : dans beaucoup de bibliothèques actuelles on voit des calculs faits avec des nombres à virgule flottantes ou sur des Int32 parce qu'aujourd'hui avec les nouveaux micros 32 bits qui ont des Mo de Flash "ça ne coute pas cher" alors qu'en fait ces calculs peuvent être faits sans perte de précision avec des nombres entiers sur 8 bits. Exemple : capteur d'humidité dont la précision est de 3%... ça ne sert à rien de faire le calcul sur 16 ou 32 bits... car seul l'octet de poids fort est significatif, le reste c'est du bruit... Un octet suffit, avec 256 valeurs possibles on peut gérer une valeur de pourcentage avec une résolution de 0,4% ; bref, à moins d'avoir des capteurs très précis, la plupart des grandeurs physiques mesurées (température, humidité, luminosité, ...) se codent sur un octet, quitte à avoir un offset ou un facteur d'échelle à convertir au moment de l'affichage. C'est comme avec les appareils de mesure, l'affichage digital donne une illusion de précision, alors qu'avec un galvanomètre on comprend tout de suite qu'avoir plus de 200 points est illusoire et qu'il faut bien choisir son échelle de mesure. Mon projet domotique était déjà obsolète au moment ou je l'ai commencé, mais j'étais content de retrouver cette "saveur" de la programmation où on devait programmer en étant proche du hardware, où chaque octet compte, où l'optimisation est cruciale. Ah oui pas bête... Je pensais à un truc plus simple : dans les fichiers de projet Arduino et/ou le bootloadeur utilisé par Prusa, il y a peut être un bout de code qui met à 0 ou à 1 un bit particulier dans l'EEPROM à chaque flashage de nouveau firmware pour forcer la calibration.
-
"Vieux" ? Elle n'a même pas 10 ans cette imprimante Avant que je ne fasse la mise à jour vers Windows 11 j'utilisais encore mon PC fixe acheté en 2011 sous Windows 7, et il fonctionnait très bien J'utilise encore du matériel électronique et Hifi plus vieux que moi Et ne parlons pas de la mécanique... J'ai du matériel qui a plus de 100 ans oui tout à fait, il y a ces deux fonctions à désactiver dans Marlin_main.cpp void temp_compensation_start() { custom_message = true; custom_message_type = 5; custom_message_state = PINDA_HEAT_T + 1; lcd_update(2); if (degHotend(active_extruder) > EXTRUDE_MINTEMP) { current_position[E_AXIS] -= DEFAULT_RETRACTION; } plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 400, active_extruder); current_position[X_AXIS] = PINDA_PREHEAT_X; current_position[Y_AXIS] = PINDA_PREHEAT_Y; current_position[Z_AXIS] = PINDA_PREHEAT_Z; plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 3000 / 60, active_extruder); st_synchronize(); while (fabs(degBed() - target_temperature_bed) > 1) delay_keep_alive(1000); for (int i = 0; i < PINDA_HEAT_T; i++) { delay_keep_alive(1000); custom_message_state = PINDA_HEAT_T - i; if (custom_message_state == 99 || custom_message_state == 9) lcd_update(2); //force whole display redraw if number of digits changed else lcd_update(1); } custom_message_type = 0; custom_message_state = 0; custom_message = false; } void temp_compensation_apply() { int i_add; int z_shift = 0; float z_shift_mm; if (calibration_status() == CALIBRATION_STATUS_CALIBRATED) { if (target_temperature_bed % 10 == 0 && target_temperature_bed >= 60 && target_temperature_bed <= 100) { i_add = (target_temperature_bed - 60) / 10; EEPROM_read_B(EEPROM_PROBE_TEMP_SHIFT + i_add * 2, &z_shift); z_shift_mm = z_shift / axis_steps_per_unit[Z_AXIS]; }else { //interpolation z_shift_mm = temp_comp_interpolation(target_temperature_bed) / axis_steps_per_unit[Z_AXIS]; } SERIAL_PROTOCOLPGM("\n"); SERIAL_PROTOCOLPGM("Z shift applied:"); MYSERIAL.print(z_shift_mm); plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS] - z_shift_mm, current_position[E_AXIS], homing_feedrate[Z_AXIS] / 40, active_extruder); st_synchronize(); plan_set_z_position(current_position[Z_AXIS]); } else { //we have no temp compensation data } } Il faudrait aller plus loin et supprimer la calibration de la sonde PINDA (à faire une seule fois après réinitialisation de l'imprimante), mais ce n'est pas vraiment utile... Avantage de ce "vieux" firmware : la compilation et assez simple avec l'IDE Arduino D'ailleurs c'est ça qui est sympa : la quasi totalité du code est en C++ à la sauce Arduino, c'est pas trop difficile à comprendre. La carte mère de la MK2s est la RAMBo13a et elle comporte plusieurs entrées/sorties non utilisées... Du coup il serait possible de modifier le firmware pour que l'imprimante puisse piloter le chauffage de mon enceinte J'ai une question : à mois que je me trompe, normalement, après la mise à jour du firmware, l'imprimante demande à refaire toutes les étapes de calibration. Comment empêcher cela ? Bien sûr après avoir modifié mon firmware pour la SUPERPINDA je vais refaire toute la calibration, mais ensuite, si je veux faire d'autres modifications qui impliquent du débogage ça sera très pénible de devoir refaire toute la calibration à chaque fois. Une autre question, importante : la mémoire flash de la carte RAMBo supporte combien de cycles d'écriture ? Si les cartes Arduino UNO et suivantes acceptent de nombreux cycles (normal vu leur utilisation), ce n'est pas le cas de tous les microcontrôleurs vendus dans le commerce. Certains sont même OTP, mais il existe aussi des microcontrôleurs dont la mémoire flash est limitée à une petite centaine de réécriture. C'est trop juste pour du débogage.
-
Je viens de jeter un œil au code du firmware da la série MK3S/MK3/MK2.5S/MK2.5 Dans le dossier \Prusa-Firmware-MK3\Firmware\variants\obsolete on trouve le fichier de définitions de la MK2 1_75mm_MK2-RAMBo13a-E3Dv6full.h Cela suppose qu'on pourrait compiler le firmware pour la MK2s En regardant dans les fichiers MK3.h MK25S-RAMBo13a.h Marlin_main.cpp On découvre des choses intéressantes... Avec un peu de bol j'aurais juste à changer quelques variables d'environnement dans le fichier de définition de la MK2 Voici ce que l'on trouve dans le fichier de définition de la MK2 : #define PINDA_PREHEAT_X 70 #define PINDA_PREHEAT_Y -3 #define PINDA_PREHEAT_Z 1 #define PINDA_HEAT_T 120 //time in s #define PINDA_MIN_T 50 #define PINDA_STEP_T 10 #define PINDA_MAX_T 100 Et dans le fichier de définition de la MK2.5 #define SUPERPINDA_SUPPORT #define PINDA_MINTEMP 30 //The miniRAMBo thermistor readings below 30°C aren't very accurate #define PINDA_TEMP_COMP //Used to enable SuperPINDA toggle menu/function #define TEMP_SENSOR_PINDA 1 #define PINDA_PREHEAT_X 20 #define PINDA_PREHEAT_Y 60 #define PINDA_PREHEAT_Z 0.15 #define PINDA_HEAT_T 120 //time in s #define PINDA_MIN_T 50 #define PINDA_STEP_T 10 #define PINDA_MAX_T 100 Et enfin dans le fichier de définition de la MK3 #define SUPERPINDA_SUPPORT #define PINDA_MINTEMP 10 #define TEMP_SENSOR_PINDA 1 #define PINDA_PREHEAT_X 20 #define PINDA_PREHEAT_Y 60 #define PINDA_PREHEAT_Z 0.15 #define PINDA_HEAT_T 120 //time in s #define PINDA_MIN_T 50 #define PINDA_STEP_T 10 #define PINDA_MAX_T 100 C'est le jeu des 7 erreurs... mais heureusement, le code est propre, avec des noms de variables explicites et des commentaires Le fichier Marlin_main.cpp contient des commentaires fort utiles ### G76 - PINDA probe temperature calibration <a href="https://reprap.org/wiki/G-code#G76:_PINDA_probe_temperature_calibration">G76: PINDA probe temperature calibration</a> This G-code is used to calibrate the temperature drift of the PINDA (inductive Sensor). The PINDAv2 sensor has a built-in thermistor which has the advantage that the calibration can be done once for all materials. The Original i3 Prusa MK2/s uses PINDAv1 and this calibration improves the temperature drift, but not as good as the PINDAv2. superPINDA sensor has internal temperature compensation and no thermistor output. There is no point of doing temperature calibration in such case. If PINDA_THERMISTOR and SUPERPINDA_SUPPORT is defined during compilation, calibration is skipped with serial message "No PINDA thermistor". This can be caused also if PINDA thermistor connection is broken or PINDA temperature is lower than PINDA_MINTEMP. #### Example ``` G76 echo PINDA probe calibration start echo start temperature: 35.0° echo ... echo PINDA temperature -- Z shift (mm): 0.--- ``` La MK2.5 et la MK3 définissent SUPERPINDA_SUPPORT mais seule la MK2.5 définit PINDA_TEMP_COMP (qui permet le choix SUPERPINDA / PINDA V2 via menu) Chose bizarre : la MK3, la MK2.5 et la MK2 définissent toutes les 3 un préchauffage de 120 secondes (à moins que ce ne soit pas utilisé dans le code de la MK3 et de la MK2.5 avec sonde SUPERPINDA)... A noter également la différente de température minimale entre la MK2.5 (30°C) et la MK3 (10°C, autant dire désactivé) C'est ça que j'ai téléchargé et dont j'ai publié des extraits de code... Le fait que le fichier de configuration soit dans le dossier obsolète m'inquiète un peu sur la faisabilité C'est toujours sur le site Prusa je l'ai vu aussi MERCI c'est ça que je cherchais ! En fait ma MK2s a une PINDA V1 donc sans CTN intégrée. J'ai juste besoin de virer le code de préchauffage et la pseudo calibration qui va avec
-
Je vais bientôt recevoir la SUPERPINDA et le câble adaptateur. Je commence à regarder les firmwares... Première bizarrerie : sur le site de Prusa, ils explique que la MK2.5S+ (avec SuperPinda) utilise le même firmware que la MK2.5S (avec Pinda V2) https://help.prusa3d.com/article/upgrading-mk2-s-and-mk2-5-s-to-mk2-5s_200009 C'est bizarre car la Pinda V2 a une CTN alors que la SuperPinda n'en a pas... Le firmware doit probablement gérer l'absence de CTN pour déterminer le type de sonde installée Je ne trouve pas le code source du firmware de la MK2s (sur le dépôt GitHub de Prusa il n'y a que les sources des firmware des imprimantes à partir de la MK2.5) Je suis tombé sur cette conversation (en anglais) sur Reddit : Ils disent qu'il est possible de faire tourner une MK2 avec le firmware de la MK2.5s en ne faisant qu'un upgrade minimal, à savoir le changement de la sonde PINDA par une SUPERPINDA et l'ajout du détecteur de filament, sans remplacer le lit chauffant. Ils ne parlent pas de l'extrudeur mais l'installation du capteur de filament suppose que cette partie est upgradée (chose que je ne vais pas faire) Au lieu de modifier le firmware de la MK2s (que je ne trouve pas), il serait donc possible que je modifie le firmware de la MK2.5 en faisant "seulement" les deux modifications suivantes : - désactiver le code du capteur de filament - désactiver le code de gestion des RPM du ventilateur de la hotend Avantage : je devrais avoir pas mal d'améliorations, car la dernière mise à jour du firmware de la MK2s date de juin 2019, alors que celui de la MK2.5 a encore été mis à jour en novembre 2024 @Kachidoki qu'en penses-tu ? Et comment retrouver le code source du vieux firmware de la MK2s ? (j'ai écris à Prusa, je vais voir s'ils me répondent)
-
Lissage de l'ABS avec de l'acétone réaliser une chambre de smoothing avec des ventilateurs
electroremy en réponse au topic de vap38 dans Tutoriels
J'apporte un retour d'expérience : l'acétone smoothing peut fragiliser les pièces à moyen ou long terme J'ai des pièces qui se sont déformées puis fissurées au bout de quelques mois, d'autres sont devenues cassantes. Il faut y aller doucement, faire plusieurs passages courts, pour que seule la couche en surface soit traitée On peut aussi commencer par un ponçage, et faire juste une finition avec l'acétone smoothing pour retrouver un rendu brillant. C'est ce que je fais maintenant : après limage et ponçage, juste un léger coup d'acétone smoothing pour faire disparaitre les marques liées au ponçage. A noter également : le ponçage à l'eau donne un très bon rendu, en fonction de la couleur du filament, pas besoin de smoothing ensuite. -
C'est encore pire pour les machines à coudre industrielles. Mes clients s'arrachent les cheveux... les pièces sont hors de prix et introuvables, le fabricant facture très cher son déplacement Quand c'est mécanique, le client peut se débrouiller avec son service maintenance ; parfois ils arrivent à réparer mieux que le fabricant, ça dure plus longtemps Mais quand c'est électronique, c'est mort
-
Je vais prendre la Necchi Q132A Les commentaires sont nombreux et positifs sur Amazon ; plusieurs confirment qu'elle peut coudre sans difficulté beaucoup d'épaisseur. Le tarif reste raisonable ; et elle est vendue en ce moment en promo à 249€ ailleurs (Darty, FNAC, Mondial Tissu...) Les accessoires fournis avec sont complets, la machine comporte une table d'extension qui sera très pratique pour ce que je veux faire. Par rapport aux autres machines amateur, son col de cygne est un peu plus large (sans bien sûr égaler celui des machines industrielles) Comme cette machine semble populaire, je n'aurais pas de mal à trouver de l'aide pour son utilisation sur Internet. Et si jamais je n'y arrive pas du tout, je devrais pouvoir la revendre facilement d'occasion. Une autre question : quel livre me conseilleriez-vous pour apprendre la couture généraliste (c'est à dire pas uniquement les vêtements) ?
-
Merci pour vos réponses, je ne pensais pas en avoir autant sur un forum d'impression 3D J'ai des clients industriels qui font de la couture, ça ne plaisante pas : sièges d'automobiles ou matelas, ils cousent plusieurs couches de matériaux épais. Dans ce domaine, c'est PFAFF qui règne en maître mais les prix et les consommables sont assez chers, de plus ces machines sont encombrantes, assez lourdes et dangereuses (même des couturières expérimentées se sont faites massacrer des doigts) - je dis couturières car les salariés qui travaillent sur ces machines sont en très forte majorité des femmes. Voilà un retour d'expérience très utile En effet pour ce que j'ai besoin de faire, il faudra beaucoup de virages et de demi-tours... La vitesse n'est pas un critère, car je ne vais pas coudre beaucoup ; je ne vais pas me lancer dans une carrière de créateur de mode , mais seulement coudre de temps en temps, la machine sera un complément aux autres techniques de bricolage.
-
Bonjour, Il me manque encore un équipement parmis tout mon matériel de bricolage : une machine à coudre Pour quoi faire ? - Réparer / adapter des vêtements (remplacer une fermeture éclair cassée, ajouter une poche sur mesure, refaire un chapeau anti-UV vraiement couvrant, ...) - Ameublement (rideaux, sièges, coussins) - Adapter voir faire des sacoches sur mesure (matériel photo, randonnée) - Coudre des sangles (pas pour du levage bien sûr) - Faire des choses plus techniques (soufflet de forge ou pour protéger des axes de machines outils, ...) - Faire des rangements sur mesure et pliables pour la voiture (et pourquoi pas un volant moumoutte personnalisé ) Je souhaite avoir une machine polyvalente, capable de coudre des tissus épais, avec de la mousse, mais aussi du cuir et des bâches ou feuilles de vinyle ou PVC souple. La machine doit être capable de coudre avec du fil technique et épais. A bientôt
-
Objets connectés 2.0 VS Electronique à Papa
electroremy en réponse au topic de electroremy dans Blabla
Alors il se trouve que pendant la COVID... ...j'ai devellopé (mais pas encore installé) un système domotique filaire... à base d'Arduino. Bon, rassurez-vous : le truc est déjà obsolète avant même d'avoir été terminé : cartes Arduino UNO + shield Ethernet, avec un réseau local indépendant sans Internet. Dans chaque pièce, un module avec : - un écran tactile - un arduino UNO - un shield Ethernet - un capteur de température et d'hygrométrie - une photodiode pour mesurer l'intensité lumineuse (et adapter la luminosité de l'écran) Ce sont des petits clients HTTP miniatures, capables d'afficher des textes et des graphismes en couleur. Chaque frappe sur l'écran tactile effectue une requête au serveur central, qui envoie de nouvelles données que le module "client" traite. Le serveur central est un arduino UNO (ou méga dans la version finale) Les modules recoivent l'alimentation électrique via les câbles, donc aucune batterie. Il y a un système de mise en veille automatique. En option, un Arduino ESP relié au serveur permet à un vieux smartphone sans carte SIM de se connecter dessus en WIFI pour être utilisé comme télécommande. Un Raspberry PI avec une distribution MOODE AUDIO sert de média player, il est raccordé au serveur via le réseau local Ethernet. Le système avait pour objectif le pilotage de la VMC (trappes motorisées dans chaque pièce), le chauffage, la diffusion de la musique... Via une LED infrarouge, le serveur peut piloter l'ampli de chaine hifi Tout est fonctionnel, mais je n'ai rien installé (pas le temps de faire les travaux). J'ai dû optimiser le code au maximum pour que des Arduino UNO puisse gérer à la fois l'écran tactile, le shield Internet, les capteurs, et toutes les fonctions nécessaire. J'ai même réussi à intégrer le code de calibration des écrans tactiles, et une page de configuration des adresses IP. J'ai aussi dû optimiser le protocole de communication pour économiser de la RAM, en créant une sorte de protocole HTTP / SVG binaire compact Je me suis bien amusé en programmant ces Arduino en C++ avec un petit peu d'assembleur. Le retour d'expérience du prototype montre qu'un vieux smartphone utilisé comme télécommande est finalement très pratique. De plus le smartphone peut diffuser directement via bluetooth la musique. Si le smartphone a accès à Internet il peut diffuser des podcasts... Du coup pour la musique j'utilise le vieux smartphone (sans carte SIM) pour lire mes MP3 et diffuser les podcasts. Un module audio bluetooth est raccordé à mon ampli Hifi, j'avais déjà chez moi des haut-parleurs dans toutes les pièces avec des interrupteurs mécanique pour les alimenter depuis l'ampli - donc un système "hybride" électromécanique + smartphone. Ca répond au besoin principal, et ça justifie de repousser aux calandes grecques l'installation du système complet J'hésite encore à installer le système complet, ou une version simplifiée avec juste le serveur, en gardant le vieux smartphone comme pilotage, et avec quand même un module Arduino client utile en cas de panne du smartphone... -
Bonjour, j'ai eu un autre échange avec le SAV Prusa Il faudra donc que je jette un oeuil aussi sur le code du firmware de la MK2.5/S pour comprendre où se trouvent les différences pour la prise en charge de la sonde SuperPinda par rapport à la PINDA v1 dans le firmware de la MK2/S Je viens de commander la SUPERPINDA, avec l'adaptateur. C'est un peut cher quand même (presque 42€ avec les frais de port) A bientôt !
-
Objets connectés 2.0 VS Electronique à Papa
electroremy en réponse au topic de electroremy dans Blabla
Alors oui c'est un point essentiel du débat : avoir un standard ouvert et que les appareils soient compatibles Revers de la médaille : si tout est connecté sur le même réseau, on démultiplie les effets négatifs d'une faille de sécurité... Une solution peut être d'avoir un réseau "fermé" pour ce qui domotique, c'est à dire isolé et non relié par Internet. Une interface peut être mise en oeuvre pour avoir un retour et un pilotage via Internet du strict minimum nécessaire Voilà un autre point important : la réparabilité. C'est du vécu chez mes clients qui fabriquent des machines spéciales. Les machines anciennes avaient des composants électromécaniques au fonctionnent "universel", on pouvait remplacer organes de commande, capteurs, préactionneurs, actionneurs et relais par n'importe quel autre modèle de n'importe quelle marque, et panacher du matériel récent avec du matériel des années 60. Maintenant (presque) tout est numérique ; résultat : on est prisonnier d'une marque, et même d'une gamme précise d'une marque donnée. La disponibilité des pièces détachées et des mises à jour devient critique. Le jour où on ne trouve plus les pièces et/ou on n'arrive plus à faire les mises à jour nécessaires, c'est le drame... Surtout qu'en industrie, la durée de vie des machines et lignes de production peut être longue, il n'est pas rare de voir des machines ayant plus de 30 ans fonctionner encore... J'ai eu des clients contraints de faire un couteux rétrofit d'une machine car il n'était plus possible de la maintenir en état de fonctionnement, faute de pièces détachées électroniques disponibles. C'est pareil dans le bâtiment, où on voit des bus numériques remplacer le câblage traditionnel... résultat : des travaux simples comme l'ajout d'un éclairage ou d'un interrupteur deviennent compliqué... Attention aux contrats de maintenance : des prestataires en situation de quasi monopole refusent de donner les accès et/ou les outils nécessaires, impossible de faire la moindre réparation ou modif soit-même. C'est très cher, et les délais d'interventions sont parfois très longs... Et si le prestataire fait faillite bonne chance ! Dans ce cas de figure, la loi ne prévoit pas grand chose pour les clients qui se retrouvent "orphelins".... La machine ou le bâtiment que vous avez payé de votre poche ne vous appartient plus vraiement... Moralité : il faut bien évaluer la balance bénéfice / risque... remplacer du matériel analogique ou électromécanique par du matériel numérique propriétaire, ce n'est pas toujours une bonne idée, ni une source d'économies... -
sujet créé
-
Bonjour, Aujourd'hui, il y a du numérique partout. On a des microcontrôleurs dans des ampoules, des interrupteurs et des fers à souder... Et il y a donc des bugs et des failles de sécurité partout sans parler du surcout et du risque de panne. Je suis pour la technologie à condition qu'elle m'apporte un bénéfice réel en termes de performance ou de confort d'utilisation. Certains objets ou outils purement mécaniques (ou analogiques) ont le même confort d'utilisation que leurs versions numériques, je les garde. C'est parfois même meilleur. Par exemple, c'est toujours mieux quand un appareil a un vrai bouton marche/arrêt mécanique : zéro consommation en veille, et surtout pas d'usure prématurée ou de sensibilité aux surtentions des composants sous tensions en permanence, sans parler du risque incendie. Même si je programme des logiciels pour ordinateur ou Arduino, je reste adepte des montages simples et efficaces de "l'électronique à Papa". Dans les anciens livres 30x circuits d'Elektor, il y a plein de bonnes idées de montages électroniques simples et efficaces. Le drame c'est de voir en conception du matériel numérique déployé pour accomplir la moindre fonction... alors que quelques composants passifs suffiraient ! Mais ça se discute : dixit @Kachidoki
-
Et il y a donc des bugs et des failles de sécurité partout sans parler du surcout et du risque de panne. Je suis pour la technologie à condition qu'elle m'apporte un bénéfice réel en termes de performance ou de confort d'utilisation. Certains objets ou outils purement mécaniques (ou analogiques) ont le même confort d'utilisation que leurs versions numériques, je les garde. C'est parfois même meilleur. Par exemple, c'est toujours mieux quand un appareil a un vrai bouton marche/arrêt mécanique : zéro consommation en veille, et surtout pas d'usure prématurée ou de sensibilité aux surtentions des composants sous tensions en permanence, sans parler du risque incendie. On peut avoir un réglage précis de la température avec un circuit analogique simple. Même si je programme des logiciels pour ordinateur ou Arduino, je reste adepte des montages simples et efficaces de "l'électronique à Papa". Dans les anciens livres 30x circuits d'Elektor, il y a plein de bonnes idées de montages électroniques simples et efficaces. Le drame c'est de voir en conception du matériel numérique déployé pour accomplir la moindre fonction... alors que quelques composants passifs suffiraient !
-
J'ai la dernière version du firmware disponible pour la MK2s original Au début de chaque impression, la machine préchauffe la PINDA v1 après avoir fait un home Z Et ensuite elle va palper les 9 zones de mesure du lit chauffant Autre soucis : il y a du oozing pendant la phase de préchauffage de la PINDA, c'est un peu chiant, il faut attendre et nettoyer la buse, ce que je fais c'est un move axis manuel de l'extrudeur de -1mm après chauffage de la hotend pour limiter le oozing Ca fonctionne mal, notamment parce que mon imprimante est dans un caisson chauffé à 60°C ce qui n'était pas du tout prévu à l'origine Je vais installer une SUPERPINDA, ensuite il faudra que je récupére le code source du firmware de l'imprimante en retirant ou désactivant le code de la compensation en température... Je m'y connais en programmation mais je n'ai jamais touché au firmware de mon imprimante... je suppose qu'il est codé en C++, et compilé avec un IDE open source, et avec un peu de chance il y a des commentaires et des noms explicites de variables. J'aurais besoin de l'aide du forum Si jamais cela fonctionne, cette modification pourrait intéresser du monde. Il doit encore y avoir des MK2s en fonctionnement, et même si ces imprimantes sont dépassées elles fonctionnent bien et peuvent être utiles en 2e imprimante, par exemple pour imprimer des filaments particuliers (TPU ou autre) en ayant à côté son imprimante 3D principale pour faire autre chose.
-
Voici l'échange que j'ai eu avec le service client de Prusa. Selon eux, la SUPERPINDA n'est pas compatible avec la MK2s ; ce n'est pas qu'une question de brochage, il faut impérativement faire la mise à niveau complète vers la MK2.5S ce que je n'ai pas envie de faire (trop cher compte tenu de l'âge de l'imprimante, et certaines pièces seront difficiles à trouver) Je ne comprends pas trop la raison... Certes je comprends qu'à la base cette mise à niveau fait partie d'un ensemble mais techniquement je ne comprends pas bien ce qui empêche seulement de remplacer la PINDA V1 par une SUPERPINDA. La PINDA V1 et la SUPERPINDA sont toutes les deux alimentées en 5V et ont un signal de sortie tout ou rien... Même s'il existe une différence de sensibilité, hé bien il suffit d'ajuster la hauteur de la sonde et/ou le live Z Je pense que le firmware de la MK2s inclue une compensation logiciel en température de la PINDA V1... sauf que cette compensation est très imparfaite, mon expérience le démontre. Et avoir à la place une SUPERPINDA insensible à la température garantirait une absence de dérive pour des conditions d'impression identiques (même température de bed), même s'il faut un live Z différent pour chaque fialement ce sera quand même un progrès notable. Je vais quand même essayer la modif, je n'ai pas grand chose à perdre. A bientôt
-
Alors ça c'est trop moderne pour moi. Si tu veux que ça chauffe plus fort, hé bien tu tournes le bouton, tu achètes un fer plus puissant... ou bien tu "survoltes" l'alimentation Et pour ne pas te brûler, tu l'attrapes par la poignée et pas par le bout qui chauffe... ...c'est à dire, surtout pas comme sur cette image : hum... voilà ce qu'il se passe quand on demande à une agence de pub qui n'y connait rien de faire une photo Sans parler de la pertinence d'utiliser un fer à souder de cette façon sur une carte mère d'ordinateur
-
Il y a des fers à souder avec un firmware ??? Pour moi, les fers à souder, c'est juste un outil basique avec une résistance chauffante qui se branche sur le 230V, ou sur le 12V avec prise allume cigare pour dépannage sur le terrain. Les modèles perfectionnés ont une base qui permet le réglage de la température, avec un capteur intégré... C'est officiel : je suis vieux
-
Retour sur le Connecteur de filament de chez Sunlu
electroremy en réponse au topic de pascal_lb dans Consommables (filaments, résines...)
@pascal_lb : merci pour ce test J'ai acheté le petit accessoire pas cher dont parle @Funboard29... sans avoir réussi à souder correctement des filaments Le boitier de SUNLU a l'air bien mais le fait qu'il faille bricoler une 3e main montre que sa conception n'est pas aboutie... Et surtout, il faut des consommables (les petits tubes PTFE), ça c'est dommage, cela contrevient à l'aspect écolo du système qui permet de réutiliser les chutes de bobine... Pourtant, le système multicouleur Palette arrive bien à souder les filament de façon automatique et sans consommable... c'est donc techniquement possible Il suffirait juste de reprendre la partie soudure du Palette...