Aller au contenu

Filament ABS

  • 0

[Ender 3][BLTouch] Problème de firmware + carte mère


Go to solution Solved by SyFizz_,

Question

Bonjour à tous et à toutes,

 

Je viens tout juste d'acquérir une carte mère 4.2.7 de chez Creality, et je me suis donc (un peu trop) empressé de l'installer sur mon imprimante. J'ai une Creality Ender 3 avec un BLTouch de chez Antclabs (Acheté sur le site de Creality). Tout fonctionnait bien sur l'ancienne carte mère, mais je trouvais que l'imprimante était beaucoup trop bruyante pour les impressions de nuit et même de jour, à la longue, ça commençait à devenir un peu chiant 😕 
J'ai donc investi dans une carte mère silencieuse, 32 bits qui plus est, donc tout bénef me diriez vous...
Sauf que dans mon empressement, j'ai tout câblé correctement, sauf le BLTouch (eh oui...), donc je câble le tout en mettant bien le BLTouch sur la nouvelle prise prévue à cet effet, je met la bécane sous tension, et là, c'est le drame.. De la fumée qui commence à sortir d'un des composants, pas loin du bornier à vis latéral, car déjà je n'avais pas câblé le BLTouch correctement, et j'avais pas encore mis le firmware permettant de le supporter. Je pense donc avoir grillé juste la prise, car tout le reste fonctionne (Ecran, axes X Y et Z, chauffe du hotend, chauffe du lit). J'ai donc fait quelques recherches sur Internet, et j'ai vu qu'on pouvait quand même utiliser l'adaptateur 27-pins (un firmware permettant ça est fourni par Creality), en "perdant" du coup le buzzer mais ce n'est à la rigueur pas très grave 🙂


Mes questions sont donc :

- Est-ce que la prise du BLTouch est bien grillée ?
- Comment je fais, dans ma configuration de Marlin, pour signifier que je veux utiliser l'adaptateur 27-pins et pas la prise prévue sur la CM ?
- Est-ce qu'il y a moyen, dans la configuration de Marlin, de régler le soucis de protocole de communication (les températures ne sont pas envoyées dans un format standard, certains caractères sont doublés, ce qui rend la lecture des températures impossibles par OctoPrint...

Pour plus d'informations, le firmware fourni par Creality est ici, la carte mère a été achetée sur Amazon ici.

 

Merci d'avoir lu ce post, et en vous remerciant par avance pour le temps que vous y consacrerez,
SyFizz_

Lien à poster
Partager sur d’autres sites

7 réponses à cette question

Messages recommandés

  • 0

Salut,

Il y a 13 heures, SyFizz_ a dit :

- Est-ce que la prise du BLTouch est bien grillée ?

Il faut inspecter la carte. La fumée est un très mauvais signe comme tu peux t'en douter, d'autant plus qu'il ne doit pas y avoir beaucoup de protections entre les entrées/sorties du microcontrôleur et le connecteur spécifique du BLtouch. La fumée a dû laisser des traces bien visibles sur au moins un composant (le régulateur 5V et/ou 3.3V?) . Si tu remets sous tension sans BLtouch et que les fonctions de base sont fonctionnelles (écran, déplacement des axes, montée en température des éléments chauffants,...) tu seras sauvé à priori.

Il y a 13 heures, SyFizz_ a dit :

- Comment je fais, dans ma configuration de Marlin, pour signifier que je veux utiliser l'adaptateur 27-pins et pas la prise prévue sur la CM ?

tu peux appliquer les infos de cette vidéo à ton Marlin 2.0.7.2 (il me semble 😉).

Pour le protocole de communication, je n'ai aucune info, à part une vitesse de communication erronée.

Modifié (le) par remibora
Lien à poster
Partager sur d’autres sites
  • 0
Il y a 13 heures, SyFizz_ a dit :

Est-ce qu'il y a moyen, dans la configuration de Marlin, de régler le soucis de protocole de communication (les températures ne sont pas envoyées dans un format standard, certains caractères sont doublés, ce qui rend la lecture des températures impossibles par OctoPrint...

Deux solutions:

- Installer un greffon Octoprint qui corrige le codage avec les pieds du Marlin Creality quant à la gestion des températures renvoyées.

- Ne pas installer de greffon et utiliser le Marlin officiel version stable 2.0.7.2 qui lui est codé correctement 😉 (il est aussi possible de partir sur une version «bugfixes» si tu aimes être borderline, ça c'est toi qui vois mais je ne le conseille pas).

🙂

Lien à poster
Partager sur d’autres sites
  • 0
Il y a 4 heures, remibora a dit :

Il faut inspecter la carte. La fumée est un très mauvais signe comme tu peux t'en douter, d'autant plus qu'il ne doit pas y avoir beaucoup de protections entre les entrées/sorties du microcontrôleur et le connecteur spécifique du BLtouch. La fumée a dû laisser des traces bien visibles sur au moins un composant (le régulateur 5V et/ou 3.3V?) . Si tu remets sous tension sans BLtouch et que les fonctions de base sont fonctionnelles (écran, déplacement des axes, montée en température des éléments chauffants,...) tu seras sauvé à priori.

Bah en fait tout fonctionne correctement mis à part ce fameux port, ce qui n'est du coup pas vraiment problématique, étant donné que je ne peux de toute façon pas l'utiliser avec le BLTouch que j'ai 🙂

Le BLTouch fonctionne aussi avec l'adaptateur pin 27 mais avec le firmware fourni par creality, qui ne me convient pas (pas de babystepping, en anglais, pas de M503 etc), mon but est donc de compiler un firmware utilisant ce même pin 27 pour le BLTouch

 

Citation

tu peux appliquer les infos de cette vidéo à ton Marlin 2.0.7.2 (il me semble).

Ce vidéaste a également fait une vidéo sur l'installation d'un BLTouch et configuration du firmware sur la 4.2.7, que j'ai évidemment suivie, mais il utilise le connecteur dédié pour câbler son BLTouch, chose que je ne peux donc pas faire 🙂

Il y a 4 heures, remibora a dit :

Pour le protocole de communication, je n'ai aucune info, à part une vitesse de communication erronée.

Bah du coup, comme l'a dit @fran6p le problème serait réglé si j'arrivais à flasher un marlin correctement configuré ^^

 

 

Il y a 4 heures, fran6p a dit :

- Ne pas installer de greffon et utiliser le Marlin officiel version stable 2.0.7.2 qui lui est codé correctement 😉 (il est aussi possible de partir sur une version «bugfixes» si tu aimes être borderline, ça c'est toi qui vois mais je ne le conseille pas).

Je suis parti sur la verison bugfix, j'ai pas mal de temps à perdre pour tester et rapporter d'éventuels problèmes 😉 mais je n'arrive pas à trouver l'option pour définir le pin du BLTouch 😞 

Lien à poster
Partager sur d’autres sites
  • 0
il y a 25 minutes, SyFizz_ a dit :

Ce vidéaste a également fait une vidéo sur l'installation d'un BLTouch et configuration du firmware sur la 4.2.7, que j'ai évidemment suivie, mais il utilise le connecteur dédié pour câbler son BLTouch, chose que je ne peux donc pas faire

Visiblement, tu n'as pas regardé la vidéo (à partir d'ici) que j'ai indiquée parce qu'il est bien question d'utiliser la pin 27 mais bien sûr avec un adaptateur.

Pour Marlin bugfix, comme @fran6p, je pense que c'est une très grosse erreur de partir sur cette version. Vu tous les soucis que tu as à régler pas la peine d'en ajouter d'autres. La version 2.0.7.2 est largement fonctionnelle, on ne peut pas en dire autant de la bugfix 😉

Modifié (le) par remibora
Lien à poster
Partager sur d’autres sites
  • 0
Il y a 2 heures, remibora a dit :

Visiblement, tu n'as pas regardé la vidéo (à partir d'ici) que j'ai indiquée parce qu'il est bien question d'utiliser la pin 27 mais bien sûr avec un adaptateur.

Pour Marlin bugfix, comme @fran6p, je pense que c'est une très grosse erreur de partir sur cette version. Vu tous les soucis que tu as à régler pas la peine d'en ajouter d'autres. La version 2.0.7.2 est largement fonctionnelle, on ne peut pas en dire autant de la bugfix 😉

Pour Marlin, je vais du coup passer sur une version stable 😉

Et pour clarifier les choses quant à mon câblage :
J'avais au départ mal câblé sur le connecteur 5 pins, qui est donc désormais HS, et désormais je souhaite utiliser l'adaptateur rendant le pin 27 disponible

Effectivement, je n'avais pas regardé la vidéo et je m'en excuse, je vais de ce pas tester avec la méthode expliqué dedans, j'édite le message ensuite 🙂

 

EDIT : @remibora Du coup j'ai flashé le firmware, sans succès, ça me fait comme avant, c'est à dire BLTouch qui s'allume en rouge fixe, pas de petite LED bleue, et c'est pas dû à un faux contact, donc je sais pas comment faire...

 

EDIT BIS: Avec le firmware de chez Creality, quand je branche l'écran sans passer par l'adaptateur, et que le BLTouch est censé être câblé sur le pin 27, le buzzer produit une cacophonie incessante, ce qui n'est pas le cas avec mon firmware, je pense donc qu'il ne prend pas en compte le fait de devoir utiliser le pin27 pour le BLtouch 😞 

EDIT TER : Après quelques recherches, les pins ne sont pas nommés pareil sur la carte 1.x et la 4.2.7 donc en gros, faut que j'arrive à trouver sur quel pin il faut que je définisse mon BLTouch pour le faire fonctionner... Pour info, voici le contenu du fichier de définition des pins pour la 4.2.7 :

/**
 * CREALITY (STM32F103) board pin assignments
 */

#if NOT_TARGET(__STM32F1__)
  #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
#endif

#if HOTENDS > 1 || E_STEPPERS > 1
  #error "CREALITY supports up to 1 hotends / E-steppers. Comment out this line to continue."
#endif

#ifndef BOARD_INFO_NAME
  #define BOARD_INFO_NAME      "Creality V4"
#endif
#ifndef DEFAULT_MACHINE_NAME
  #define DEFAULT_MACHINE_NAME "Ender 3 V2"
#endif

//
// EEPROM
//
#if NO_EEPROM_SELECTED
  // FLASH
  //#define FLASH_EEPROM_EMULATION

  // I2C
  #define IIC_BL24CXX_EEPROM                      // EEPROM on I2C-0 used only for display settings
  #if ENABLED(IIC_BL24CXX_EEPROM)
    #define IIC_EEPROM_SDA                  PA11
    #define IIC_EEPROM_SCL                  PA12
    #define MARLIN_EEPROM_SIZE             0x800  // 2Kb (24C16)
  #else
    #define SDCARD_EEPROM_EMULATION               // SD EEPROM until all EEPROM is BL24CXX
    #define MARLIN_EEPROM_SIZE             0x800  // 2Kb
  #endif

  // SPI
  //#define SPI_EEPROM                            // EEPROM on SPI-0
  //#define SPI_CHAN_EEPROM1  ?
  //#define SPI_EEPROM1_CS    ?

  // 2K EEPROM
  //#define SPI_EEPROM2_CS    ?

  // 32Mb FLASH
  //#define SPI_FLASH_CS      ?
#endif

//
// Servos
//
#define SERVO0_PIN                          PB0   // BLTouch OUT

//
// Limit Switches
//
#define X_STOP_PIN                          PA5
#define Y_STOP_PIN                          PA6
#define Z_STOP_PIN                          PA7

#define Z_MIN_PROBE_PIN                     PB1   // BLTouch IN

//
// Filament Runout Sensor
//
#ifndef FIL_RUNOUT_PIN
  #define FIL_RUNOUT_PIN                    PA4   // "Pulled-high"
#endif

//
// Steppers
//
#define X_ENABLE_PIN                        PC3
#ifndef X_STEP_PIN
  #define X_STEP_PIN                        PC2
#endif
#ifndef X_DIR_PIN
  #define X_DIR_PIN                         PB9
#endif

#define Y_ENABLE_PIN                        PC3
#ifndef Y_STEP_PIN
  #define Y_STEP_PIN                        PB8
#endif
#ifndef Y_DIR_PIN
  #define Y_DIR_PIN                         PB7
#endif

#define Z_ENABLE_PIN                        PC3
#ifndef Z_STEP_PIN
  #define Z_STEP_PIN                        PB6
#endif
#ifndef Z_DIR_PIN
  #define Z_DIR_PIN                         PB5
#endif

#define E0_ENABLE_PIN                       PC3
#ifndef E0_STEP_PIN
  #define E0_STEP_PIN                       PB4
#endif
#ifndef E0_DIR_PIN
  #define E0_DIR_PIN                        PB3
#endif

//
// Release PB4 (Y_ENABLE_PIN) from JTAG NRST role
//
#define DISABLE_DEBUG

//
// Temperature Sensors
//
#define TEMP_0_PIN                          PC5   // TH1
#define TEMP_BED_PIN                        PC4   // TB1

//
// Heaters / Fans
//
#define HEATER_0_PIN                        PA1   // HEATER1
#define HEATER_BED_PIN                      PA2   // HOT BED

#define FAN_PIN                             PA0   // FAN
#define FAN_SOFT_PWM

//
// SD Card
//
#define SD_DETECT_PIN                       PC7
#define SDCARD_CONNECTION                ONBOARD
#define ONBOARD_SPI_DEVICE                     1
#define ONBOARD_SD_CS_PIN                   PA4   // SDSS
#define SDIO_SUPPORT
#define NO_SD_HOST_DRIVE                          // This board's SD is only seen by the printer

#if ENABLED(CR10_STOCKDISPLAY) && NONE(RET6_12864_LCD, VET6_12864_LCD)
  #error "Define RET6_12864_LCD or VET6_12864_LCD to select pins for CR10_STOCKDISPLAY with the Creality V4 controller."
#endif

#if ENABLED(RET6_12864_LCD)

  // RET6 12864 LCD
  #define LCD_PINS_RS                       PB12
  #define LCD_PINS_ENABLE                   PB15
  #define LCD_PINS_D4                       PB13

  #define BTN_ENC                           PB2
  #define BTN_EN1                           PB10
  #define BTN_EN2                           PB14

  #define BEEPER_PIN                        PC6

#elif ENABLED(VET6_12864_LCD)

  // VET6 12864 LCD
  #define LCD_PINS_RS                       PA4
  #define LCD_PINS_ENABLE                   PA7
  #define LCD_PINS_D4                       PA5

  #define BTN_ENC                           PC5
  #define BTN_EN1                           PB10
  #define BTN_EN2                           PA6

#elif ENABLED(DWIN_CREALITY_LCD)

  // RET6 DWIN ENCODER LCD
  #define BTN_ENC                           PB14
  #define BTN_EN1                           PB15
  #define BTN_EN2                           PB12

  //#define LCD_LED_PIN                     PB2
  #ifndef BEEPER_PIN
    #define BEEPER_PIN                      PB13
    #undef SPEAKER
  #endif

#elif ENABLED(DWIN_VET6_CREALITY_LCD)

  // VET6 DWIN ENCODER LCD
  #define BTN_ENC                           PA6
  #define BTN_EN1                           PA7
  #define BTN_EN2                           PA4

  #define BEEPER_PIN                        PA5

#endif

Et celui pour la 1.x :


#define BOARD_INFO_NAME "Melzi (Creality)"

// Alter timing for graphical display
#if HAS_MARLINUI_U8GLIB
  #ifndef BOARD_ST7920_DELAY_1
    #define BOARD_ST7920_DELAY_1 DELAY_NS(125)
  #endif
  #ifndef BOARD_ST7920_DELAY_2
    #define BOARD_ST7920_DELAY_2 DELAY_NS(125)
  #endif
  #ifndef BOARD_ST7920_DELAY_3
    #define BOARD_ST7920_DELAY_3 DELAY_NS(125)
  #endif
#endif

#include "pins_MELZI.h"

//
// For the stock CR-10 enable CR10_STOCKDISPLAY in Configuration.h
//
#undef LCD_SDSS
#undef LED_PIN
#undef LCD_PINS_RS
#undef LCD_PINS_ENABLE
#undef LCD_PINS_D4
#undef LCD_PINS_D5
#undef LCD_PINS_D6
#undef LCD_PINS_D7

#define LCD_SDSS                             31   // Smart Controller SD card reader (rather than the Melzi)
#define LCD_PINS_RS                          28   // ST9720 CS
#define LCD_PINS_ENABLE                      17   // ST9720 DAT
#define LCD_PINS_D4                          30   // ST9720 CLK

#if ENABLED(BLTOUCH)
  #define SERVO0_PIN                         27
  #undef BEEPER_PIN
#elif ENABLED(FILAMENT_RUNOUT_SENSOR)
  #ifndef FIL_RUNOUT_PIN
    #define FIL_RUNOUT_PIN                   27
  #endif
  #if FIL_RUNOUT_PIN == BEEPER_PIN
    #undef BEEPER_PIN
  #endif
#endif

#if ENABLED(MINIPANEL)
  #undef DOGLCD_CS
  #define DOGLCD_CS LCD_PINS_RS
#endif

/**
  PIN:   0   Port: B0        E0_DIR_PIN                  protected
  PIN:   1   Port: B1        E0_STEP_PIN                 protected
  PIN:   2   Port: B2        Z_DIR_PIN                   protected
  PIN:   3   Port: B3        Z_STEP_PIN                  protected
  PIN:   4   Port: B4        AVR_SS_PIN                  protected
  .                          FAN_PIN                     protected
  .                          SS_PIN                      protected
  PIN:   5   Port: B5        AVR_MOSI_PIN                Output = 1
  .                          MOSI_PIN                    Output = 1
  PIN:   6   Port: B6        AVR_MISO_PIN                Input  = 0    TIMER3A   PWM:     0    WGM: 1    COM3A: 0    CS: 3    TCCR3A: 1    TCCR3B: 3    TIMSK3: 0
  .                          MISO_PIN                    Input  = 0
  PIN:   7   Port: B7        AVR_SCK_PIN                 Output = 0    TIMER3B   PWM:     0    WGM: 1    COM3B: 0    CS: 3    TCCR3A: 1    TCCR3B: 3    TIMSK3: 0
  .                          SCK_PIN                     Output = 0
  PIN:   8   Port: D0        RXD                         Input  = 1
  PIN:   9   Port: D1        TXD                         Input  = 0
  PIN:  10   Port: D2        BTN_EN2                     Input  = 1
  PIN:  11   Port: D3        BTN_EN1                     Input  = 1
  PIN:  12   Port: D4        HEATER_BED_PIN              protected
  PIN:  13   Port: D5        HEATER_0_PIN                protected
  PIN:  14   Port: D6        E0_ENABLE_PIN               protected
  .                          X_ENABLE_PIN                protected
  .                          Y_ENABLE_PIN                protected
  PIN:  15   Port: D7        X_STEP_PIN                  protected
  PIN:  16   Port: C0        BTN_ENC                     Input  = 1
  .                          SCL                         Input  = 1
  PIN:  17   Port: C1        LCD_PINS_ENABLE             Output = 0
  .                          SDA                         Output = 0
  PIN:  18   Port: C2        X_MIN_PIN                   protected
  .                          X_STOP_PIN                  protected
  PIN:  19   Port: C3        Y_MIN_PIN                   protected
  .                          Y_STOP_PIN                  protected
  PIN:  20   Port: C4        Z_MIN_PIN                   protected
  .                          Z_STOP_PIN                  protected
  PIN:  21   Port: C5        X_DIR_PIN                   protected
  PIN:  22   Port: C6        Y_STEP_PIN                  protected
  PIN:  23   Port: C7        Y_DIR_PIN                   protected
  PIN:  24   Port: A7        TEMP_0_PIN                  protected
  PIN:  25   Port: A6        TEMP_BED_PIN                protected
  PIN:  26   Port: A5        Z_ENABLE_PIN                protected
  PIN:  27   Port: A4        BEEPER_PIN                  Output = 0
  PIN:  28   Port: A3        LCD_PINS_RS                 Output = 0
  PIN:  29   Port: A2        <unused/unknown>            Input  = 0
  PIN:  30   Port: A1        LCD_PINS_D4                 Output = 1
  PIN:  31   Port: A0        SDSS                        Output = 1
*/

/**
 *    EXP1 Connector                      EXP1 as CR10 STOCKDISPLAY
 *        _____                                      _____
 *   PA4 | 6 5 | PC0                     BEEPER_PIN | 6 5 | BTN_ENC
 *   PD3 | 7 4 | RESET                      BTN_EN1 | 7 4 | RESET
 *   PD2   8 3 | PA1                        BTN_EN2   8 3 | LCD_PINS_D4 (ST9720 CLK)
 *   PA3 | 9 2 | PC1        (ST9720 CS) LCD_PINS_RS | 9 2 | LCD_PINS_ENABLE (ST9720 DAT)
 *   GND |10 1 | 5V                             GND |10 1 | 5V
 *        -----                                   -----
 */
Modifié (le) par SyFizz_
Lien à poster
Partager sur d’autres sites
  • 0

Désolé, je me suis laissé distraire par cette histoire de pin 27 😅.

Je pense que la broche spécifique pour le BLtouch et celle du connecteur de l'écran (avec adaptateur) sont reliées à la même patte du micro-contrôleur. Tu pourrais vérifier la continuité entre les 2 broches sur la carte. Si c'est le cas et que tu n'as pas de détecteur de filament, tu pourrais peut-être envisager de te brancher sur ce connecteur. En dernier recours, je pense qu'il y a aussi le port ISP.

Lien à poster
Partager sur d’autres sites
  • 0
  • Solution
il y a 2 minutes, remibora a dit :

Désolé, je me suis laissé distraire par cette histoire de pin 27 😅.

Je pense que la broche spécifique pour le BLtouch et celle du connecteur de l'écran (avec adaptateur) sont reliées à la même patte du micro-contrôleur. Tu pourrais vérifier la continuité entre les 2 broches sur la carte. Si c'est le cas et que tu n'as pas de détecteur de filament, tu pourrais peut-être envisager de te brancher sur ce connecteur. En dernier recours, je pense qu'il y a aussi le port ISP.

Alors je pense avoir réussi à finalement régler mon problème, je vais expliquer comment j'ai fait pour les autres personnes qui auraient éventuellement ce problème.

Mais pour te répondre, premièrement sur la carte 1.x, le pin 27 est celui utilisé par le buzzer. Ensuite, je n'ai pas vraiment compris ce que tu m'as dit par rapport aux broches reliées à la même patte du MCU, mais pour le port ISP, il n'y en a tout simplement pas sur cette carte 😅

Donc voici comment j'ai fait pour utiliser l'adaptateur qui rend disponible le pin du buzzer, en perdant du coup la possibilité d'utiliser ce dernier :

- En dessous de '#define BLTOUCH' , il faut rajouter une ligne, en mettant '#define SERVO0_PIN PC6' (en référence à ceci)

- Dans Marlin/src/pins/stm32f1/pins_CREALITY_V4.h, il vous faut commenter

#define SERVO0_PIN                          PB0

puis remplacer 

#if ENABLED(RET6_12864_LCD)

  // RET6 12864 LCD
  #define LCD_PINS_RS                       PB12
  #define LCD_PINS_ENABLE                   PB15
  #define LCD_PINS_D4                       PB13

  #define BTN_ENC                           PB2
  #define BTN_EN1                           PB10
  #define BTN_EN2                           PB14

  #define BEEPER_PIN                        PC6

par

#if ENABLED(RET6_12864_LCD)

  // RET6 12864 LCD
  #define BEEPER_PIN                        PC6
  #define LCD_PINS_RS                       PB12
  #define LCD_PINS_ENABLE                   PB15
  #define LCD_PINS_D4                       PB13

  #define BTN_ENC                           PB2
  #define BTN_EN1                           PB10
  #define BTN_EN2                           PB14
  #if ENABLED(BLTOUCH)
    #undef BEEPER_PIN 
  #endif

Normalement, si vous flashez sans avoir branché l'adaptateur et le BLTouch, le beeper émettra un bip bizarre en continu, c'est que vous avez réussi. Branchez maintenant le BLTouch et l'adaptateur 🙂

 

Merci du coup @remibora, c'est toi qui m'a mis sur la piste, j'ai juste farfouillé dans le code ensuite pour me baser sur ce qui faisait fonctionner l'adaptateur sur la carte v1.x ^^

Lien à poster
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez poster un message et vous inscrire plus tard. Si vous avez déjà un compte, connectez-vous afin de poster avec.

Invité
Répondre à cette question…

×   Vous avez copié du contenu avec formatage.   Supprimer le formatage

  Only 75 emoji are allowed.

×   Votre lien a été automatiquement intégré.   Afficher en tant que lien à la place

×   Le contenu sauvegardé a été restauré.   Effacer l'éditeur

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Créer...