Aller au contenu

Messages recommandés

Posté(e)

@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 

Posté(e) (modifié)
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
Posté(e)

320x240 RGB 16 bits ( 5/6/5) 

  • +1 1
Posté(e)

@Hobi Bon j'ai laisser tomber de faire fonctionner le simulateur sur mac avec VS, avec Eclipse, peu de problèmes et du coup je fais mumuse avec les tutos!

Posté(e)

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.

Posté(e)
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...

Posté(e)

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. 

Posté(e) (modifié)
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
Posté(e)

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. 

Posté(e)

fs filament sensor

bl : nivelage BL touch active

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

Posté(e)

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
Posté(e)

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

Posté(e)

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

Posté(e)

@sensei73 quel est ton identifiant sur github stp?

Posté(e) (modifié)
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
Posté(e)

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

Posté(e)

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. 

Posté(e)

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

Posté(e)

Skr 1.4 !

Posté(e)

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

Posté(e)

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! 

Posté(e)

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

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
×
×
  • Créer...