Aller au contenu

GO Print

[Dev] AlfaWise U20x-U30 : Marlin 2.x (firmware alternatif)


CacaoTor

Messages recommandés

@sensei73 tu peux déjà installer visual studio 2019 ( ce n’est PAS vscode + platformio) pour ensuite compiler les exemples et faire marcher du code gui en direct sur ton pc...! Ça permet déjà de faire tout le graphique et la logique de contrôle 

Lien vers le commentaire
Partager sur d’autres sites

il y a 6 minutes, Hobi a dit :

@sensei73 tu peux déjà installer visual studio 2019 ( ce n’est PAS vscode + platformio) pour ensuite compiler les exemples et faire marcher du code gui en direct sur ton pc...! Ça permet déjà de faire tout le graphique et la logique de contrôle 

C'est ce que je regardai justement, avec un simulateur intégré! Je vais faire joujou avec! (au passage quelle est la résolution de l'écran?)

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

Ah oui sur Mac pas forcément facile.

je termine mon POC ( mon proto....) pour être sûr que ça peut marcher, avec un écran de print basique et un move, un peu de nettoyage et hop, je vous poste ça.

Lien vers le commentaire
Partager sur d’autres sites

Il y a 5 heures, Hobi a dit :

Ah oui sur Mac pas forcément facile.

je termine mon POC ( mon proto....) pour être sûr que ça peut marcher, avec un écran de print basique et un move, un peu de nettoyage et hop, je vous poste ça.

Cool, je vais pouvoir voir comment tu "link" l'interface. J'ai pas encore compris comment faire des menus dynamique mais j'avance...

Lien vers le commentaire
Partager sur d’autres sites

Les menus dynamiques, tu veux dire bouger des pages, ou bien un bouton déclenche une autre page?

j’ai une petite State machine , première fois que j’arrive dans un état je crée les objets , et dernière fois que je dois y être je détruit tout pour libérer de la mémoire .

ca me permet d’afficher des écrans différents en fonction de l état de la machine : bootscreen, main, printing, infos, calibrate,... etc. Et faut juste assurer une logique correcte pour les sauts d’un état à un autre. 

Lien vers le commentaire
Partager sur d’autres sites

il y a 10 minutes, Hobi a dit :

Les menus dynamiques, tu veux dire bouger des pages, ou bien un bouton déclenche une autre page?

j’ai une petite State machine , première fois que j’arrive dans un état je crée les objets , et dernière fois que je dois y être je détruit tout pour libérer de la mémoire .

ca me permet d’afficher des écrans différents en fonction de l état de la machine : bootscreen, main, printing, infos, calibrate,... etc. Et faut juste assurer une logique correcte pour les sauts d’un état à un autre. 

Je veux dire qu'il y  des menus qui s'affichent si une fonction est activé comme M48, Touchmi etc...

Par contre j'ai vu que sur notre marlin, il y a des icônes SD,USB (ok facile) mais FS,BL et RST, je ne sais pas à quoi cela correspond.

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

Tout se passe dans ext_ui . Tu as les calls fait en fonction des évents et il y en a un paquet... 

marlin/src/lcd/extensible_ui... tout est la. Et si ça manque... faut coder! 

cote carte sd le code de detection est d ailleurs pas génial car il ne détecte la ds qu’au boot. 

Lien vers le commentaire
Partager sur d’autres sites

fs filament sensor

bl : nivelage BL touch active

rst : chargement de la config définie dans le code et pas celle sauvegardée 

Lien vers le commentaire
Partager sur d’autres sites

J'ai code le proto comme ca

void onIdle() {
      
      switch(lvgl_GUI.current_page) {
        case BOOT:
          if (lvgl_GUI.create) {
            
            img_var = lv_img_create(scr, NULL); /*Create an image object*/
            lv_img_set_src(img_var, &marlin_bootscreen);  /*Set the created file as image ( Marlin logo in 4 indexed colors*/
            lv_obj_set_pos(img_var, 265);      /*Set the positions*/
            lv_obj_set_drag(img_var, true);
 
            label = lv_label_create(scr, NULL); /*First parameters (scr) is the parent*/
            lv_label_set_text(label, getFirmwareName_str());  /*Set the text to the Marlin revision*/
            lv_obj_align(label, NULL, LV_ALIGN_IN_BOTTOM_MID, 0, -5);
 
            lvgl_GUI.create = false;
          }
          
          if (millis()> (uint32_t)4000) {
            lvgl_GUI.destroy = true; // 4 seconds before switching to new page.
            lvgl_GUI.next_page = MAIN;
          }
 
          break;
 
        case MAIN:
          if (lvgl_GUI.create) {
            label = lv_label_create(scr, NULL); /*First parameters (scr) is the parent*/
            lv_label_set_text(label, "Main Menu");  /*Set page header to Main menu*/
            lv_obj_align(label, NULL, LV_ALIGN_IN_TOP_MID, 05); // et on place ca en haut au milieu

 

et ca continue.... 

  • +1 1
Lien vers le commentaire
Partager sur d’autres sites

FS (Filament Sensor alert, rouge), BL (Bed Leveling, c'est à dire ajustement du Z lors des prints, en fonction de la grille de mesures) et RST (config was reset = invalide)

La SD est bien détectée sauf en cas de retrait à la main sans "démontage", notre carte mère n'a pas de pin SD_DETECT connecté, on pourrait éventuellement améliorer en testant/scannant la SD à interval régulier... j'ai pas osé coder ca... 

l'icone USB par contre est moins facile à implémenter, car notre carte utilise un chip de conversion dédié qui gère ca de façon autonome... une simple conversion serial vers usb... le trigger intervient à la commande généralement utilisée à la connexion d'Octoprint, par contre y'a rien à ma connaissance pour détecter une fin de connexion usb... à moins que le chip CH390 puisse répondre à certaines commandes série particulières pour ca...

Lien vers le commentaire
Partager sur d’autres sites

@Epsylon3 Hmmm la sdcard est bien détectée mais si jamais tu l enleve du slot alors ça va moins bien. Le code fait des choses étranges et la led bleue clignote 2 fois moins vite avec le code du gui. 

Lien vers le commentaire
Partager sur d’autres sites

Il y a 8 heures, Hobi a dit :

@sensei73 quel est ton identifiant sur github stp?

sensei73 😎

j'avance doucement, pas simple sur certaines choses, il faut comprendre leur logique (parents, background, front etc....)

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

Bonjour

J ai une U20 que je viens de passer sous marlin 2 mais rien ne fonctionne , de plus je ne peux pas revenir en arrière car je n'ai plus d’acces a la carte SD . elle ne boute pas au demarrage. Quelqu un a t'il une solution. Merci

Lien vers le commentaire
Partager sur d’autres sites

Pour remettre le sw alfawise soit on copie les fichiers alfawise project.bin et longer3d.ui sur le sdcard neuve , et si cela ne marche pas (très étrange... aucune raison !) alors acheter un stlink v2 à 10euros ( en France, pas en chine!!)

et reprendre le tuto marlin . dans l historique tout est explique. 

Lien vers le commentaire
Partager sur d’autres sites

Super ça remarche  , j ai enlever mon extension de carte Sd et c est reparti. 

Je vais quand même ré essayer de réinstaller marlin 2.

je souhaite changer de carte pour pouvoir utiliser 3 extrudeurs. quelle carte mère me conseiller , j'ai vu la MKS rumba+ mais je n'y connait pas grand chose.

Merci

Lien vers le commentaire
Partager sur d’autres sites

Tu peux tout faire. Pour l'instant, vu la place, je mets tout dans le code. 

C'est mieux de prendre des BMP indexes en 1, ou 256 couleus. Plus petit. En 4 couleurs, ya des bugs au niveau des palettes. 

Je n'ai pas encode code le decompresseur JPEG qui va bien pour lvgl, car il faut bricoler pour decoder les jpegs en morceaux ( par rangees de macroblocs, ie 16 lignes a la fois). 

J'aimerai bien mettre l'image ci dessous en bootscreen. 150Kb decompressee, mais juste 26Kb en Jpeg. 

Marlin_logo_rgb.jpg

Lien vers le commentaire
Partager sur d’autres sites

Je suis a 2 doigts de lancer un print, mais j'ai une erreur dans le callback du bouton de print > je rentre plus dans le menu... :-(. 

Je vais te laisser debugger ca! 

Lien vers le commentaire
Partager sur d’autres sites

@sensei73, 

Je viens de te pusher mon git. 

Normalement, dans le menu print, si tu as un SD card inseree, avec un petit gcode, ca devrait imprimer le fichier se trouvant à la racine de ta SD card. Il faut juste corriger l'erreur dans le callback

static void start_print_event_cb(lv_obj_t * btnlv_event_t event)
{
    if(event == LV_EVENT_RELEASED) {
        lvgl_GUI.next_page = PRINT;
        lvgl_GUI.destroy = false; // We stay on the print page so far!
        //printFile(LongerSD.filename() );
    }
}

faut juste decommenter, et changer les declarations pour que ca compile, mais ca devrait lancer l'impression. 

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...