Auteur Sujet: [Astuce] Changer le logo sur l'écran de contrôle ;)  (Lu 2909 fois)

babas

  • Full Member
  • ***
  • Messages: 104
    • Voir le profil
[Astuce] Changer le logo sur l'écran de contrôle ;)
« le: 17 février, 2015, 07:35:36 pm »
Salut à tous !
Pour ceux qui ont comme moi la chance d'avoir un écran de contrôle (graphique) sur leur Smartrap, je vous file un petit tuyau pour changer le Logo qui s'affiche au démarrage de votre jouet favoris (soit actuellement celui de Reprap) :)

Il suffit pour cela de modifier un fichier de Marlin avec votre IDE Arduino. Il s'agit du fichier "DOGMbitmaps.h", celui-ci contient plusieurs block d'instructions d'images (codés en exa), seul le premier block nous intéresse  (NE PAS TOUCHER LES AUTRES BLOCKS), il suffit de le remplacer par :

#define START_BMPWIDTH    60   //Width in pixels
#define START_BMPHEIGHT    64   //Height in pixels
#define START_BMPBYTEWIDTH    8   //Width in bytes
const unsigned char start_bmp[574] PROGMEM = { //AVR-GCC, WinAVR
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x07, 0xFF, 0xFE, 0x00, 0x00, 0x00,
0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xC0, 0x00, 0x00,
0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00,
0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
0x00, 0x07, 0xFF, 0xFF, 0xFF, 0xFE, 0x00, 0x00,
0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00,
0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00,
0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00,
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00,
0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00,
0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00,
0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00,
0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00,
0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00,
0x0F, 0xFF, 0xFD, 0x54, 0x7F, 0xFF, 0xFF, 0x00,
0x1F, 0xFF, 0xFA, 0xA8, 0x3F, 0xFF, 0xFF, 0x80,
0x1F, 0xFF, 0xFD, 0x50, 0x3F, 0xFF, 0xFF, 0x80,
0x3F, 0xFF, 0xFA, 0xA0, 0x7F, 0xFF, 0xFF, 0xC0,
0x3F, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0xC0,
0x3F, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xFF, 0xC0,
0x7F, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xE0,
0x7F, 0xFF, 0xFE, 0x07, 0xFF, 0xFF, 0xFF, 0xE0,
0x7F, 0xFF, 0xFC, 0x0F, 0xFF, 0xFF, 0xFF, 0xE0,
0x7F, 0xFF, 0xF8, 0x1F, 0xFF, 0xFF, 0xFF, 0xE0,
0x7F, 0xFF, 0xF0, 0x3F, 0xFF, 0xFF, 0xFF, 0xE0,
0xFF, 0xFF, 0xE0, 0x7F, 0xFF, 0x8F, 0xFF, 0xF0,
0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0x07, 0xFF, 0xF0,
0xFF, 0xFF, 0x81, 0xFF, 0xFE, 0x07, 0xFF, 0xF0,
0xFF, 0xFF, 0x03, 0xFF, 0xFC, 0x0F, 0xFF, 0xF0,
0xFF, 0xFE, 0x07, 0xFF, 0xF8, 0x1F, 0xFF, 0xF0,
0xFF, 0xFC, 0x0F, 0xFF, 0xF0, 0x3F, 0xFF, 0xF0,
0xFF, 0xFC, 0x1F, 0xFF, 0xE0, 0x7F, 0xFF, 0xF0,
0xFF, 0xFC, 0x3F, 0xD7, 0xC0, 0xFF, 0xFF, 0xF0,
0xFF, 0xFE, 0x7F, 0xAF, 0x81, 0xFF, 0xFF, 0xF0,
0xFF, 0xFF, 0xFF, 0xD7, 0x03, 0xFF, 0xFF, 0xF0,
0x7F, 0xFF, 0xFF, 0xAE, 0x07, 0xFF, 0xFF, 0xE0,
0x7F, 0xFF, 0xFF, 0xD4, 0x0F, 0xFF, 0xFF, 0xE0,
0x7F, 0xFF, 0xFF, 0xA8, 0x1F, 0xFF, 0xFF, 0xE0,
0x7F, 0xFF, 0xFF, 0xD0, 0x3F, 0xFF, 0xFF, 0xE0,
0x3F, 0xFF, 0xFF, 0xA0, 0x7F, 0xFF, 0xFF, 0xC0,
0x3F, 0xFF, 0xFF, 0xC0, 0xFF, 0xFF, 0xFF, 0xC0,
0x1F, 0xFF, 0xFF, 0x81, 0xFF, 0xFF, 0xFF, 0x80,
0x1F, 0xFF, 0xFF, 0x83, 0xFF, 0xFF, 0xFF, 0x80,
0x0F, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xFF, 0x00,
0x0F, 0xFF, 0xFF, 0xCF, 0xFF, 0xFF, 0xFF, 0x00,
0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00,
0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0x00,
0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x00,
0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF8, 0x00,
0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0x00,
0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0x00,
0x00, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xC0, 0x00,
0x00, 0x1F, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0x00,
0x00, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00,
0x00, 0x03, 0xFF, 0xFF, 0xFF, 0xFC, 0x00, 0x00,
0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xF0, 0x00, 0x00,
0x00, 0x00, 0x3F, 0xFF, 0xFF, 0xC0, 0x00, 0x00,
0x00, 0x00, 0x0F, 0xFF, 0xFF, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x7F, 0xE0, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};


Puis recompilez le tout et zou dans l'arduino ! reste plus qu'à admirer votre Smartrap s'éveiller avec un nouveau logo ;)
« Modifié: 18 février, 2015, 11:55:30 am par babas »

Fred_replicant

  • Hero Member
  • *****
  • Messages: 833
    • Voir le profil
Re: Logo Smartrap sur l'écran de contrôle ;)
« Réponse #1 le: 17 février, 2015, 08:11:38 pm »
Photo ?
Smartrap Orange V 0.4.9.2 Jheadlite 0.35 GT2
(mais bon, je vais la démonter ....snif)

CORE 50X50 Fred_Design

babas

  • Full Member
  • ***
  • Messages: 104
    • Voir le profil
Re: Logo Smartrap sur l'écran de contrôle ;)
« Réponse #2 le: 17 février, 2015, 11:14:41 pm »
J'en ai pas mis pour 2 raisons :

  • Vous laisser le bonheur de découvrir par vous même le résultat :)
  • mon APN est en panne :(

Robin

  • team smartfriendz
  • *****
  • Messages: 225
    • Voir le profil
Re: Logo Smartrap sur l'écran de contrôle ;)
« Réponse #3 le: 17 février, 2015, 11:32:10 pm »
Testé et approuvé merci babas ! Je cultive donc le secret encore un peu et vous laisse découvrir ^^

babas

  • Full Member
  • ***
  • Messages: 104
    • Voir le profil
Re: Logo Smartrap sur l'écran de contrôle ;)
« Réponse #4 le: 18 février, 2015, 12:46:50 am »
De rien ;)

Pour aller plus loin, on peut aussi modifier le texte situé à droite du logo de démarrage :) . Pour cela, il faut aller voir du coté du fichier "dogm_lcd_implementation.h".

A l’intérieur de ce fichier se trouve l'initialisation de votre écran, sous le nom de fonction "lcd_implementation_init()" . à l’intérieur de la fonction, on retrouve une sous-fonction : "u8g.firstPage();" , c'est cette sous-fonction qui contient le texte qui est envoyé à l'écran lors de son démarrage.

Par exemple, la première commande d'affichage est ainsi :

u8g.setFont(u8g_font_6x10_marlin);
u8g.drawStr(62,10,"MARLIN");


La première ligne appelle la police (nan, elle fait pas le 17 :D ) utilisée pour afficher la ligne (police et taille de police)on à donc ici des caractères de 6px de large sur 10px de haut. il existe par exemple une autre taille de police disponible, de 5px de large sur 8px de haut.

La seconde ligne ordonne l'affichage. Ici, on peut lire cette instruction de cette façon [affiche "MARLIN" à la position 62px depuis le bord gauche et 10px depuis le bord haut]. Il est alors très facile de modifier tout le texte de la séquence de démarrage ;) . La seul chose à retenir, c'est que le positionnement de votre texte doit toujours démarrer à au moins 62px du bord gauche (de 0 à 60px, la place est prise par le logo) et que toutes vos instructions de positionnement seront à calculer à partir des bords gauche et haut de votre écran.


Lorsque vous aurez personnalisé à fond votre écran de démarrage, vous trouverais peut être dommage de ne pas en profiter plus d'une seconde...allez, un dernier truc :

Toujours dans notre fichier "dogm_lcd_implementation.h", on va intéresser à la FIN de la fonction lcd_implementation_init()". (pour trouver la fin d'une fonction dans l'IDE Arduino, il suffit de double-cliquer sur l'accolade  ouvrante { qui se trouve juste en dessous du nom de la fonction et de descendre avec le scroll jusqu'à ce que vous voyez son homologue } dans un petit cadre bleu... sinon, on peut aussi double-cliqué à droite de l'accolade, et là, c'est tout le contenu de la fonction qui s'allumera en jaune ;) )

Juste avant la fin de la fonction (soit juste avant l'accolade fermante), nous allons rajouter une ligne :

delay(5000);

La fin de la fonction "lcd_implementation_init()" ressemblera donc à ceci :
           .......
      } while( u8g.nextPage() );
     delay(5000);
}


Cette ligne toute simple permet de demander à Arduino de faire une pause durant un temps de 5000 milliseconde (soit 5 secondes) avant de poursuivre ses tâches :) .

Bon, j'ai mis 5 seconde pour l'exemple, une fois l'euphorie passée, je me doute que vous trouverez le temps de démarrage un peu trop long :D , libre à vous de modifier la durée pour définir celle qui vous conviendra le mieux :) .
« Modifié: 18 février, 2015, 02:03:35 pm par babas »

BrunoBellamy

  • Hero Member
  • *****
  • Messages: 2099
    • Voir le profil
    • Bellaminettes Blog
Re: Changer le logo sur l'écran de contrôle ;)
« Réponse #5 le: 18 février, 2015, 11:30:39 am »
Pas le temps de tester tout de suite, mais je suis très curieux d'étudier ça, merci babas ! :)

Est-ce qu'on peut aussi rajouter/modifier du code dans la gestion de cette interface LCD ?

Par exemple je suis surpris de ne pas trouver (ou alors j'ai mal cherché) une fonction pour extruder/rétracter, qui serait pourtant bien utile à l'insertion d'un nouveau filament.

L'ordi à partir duquel je commande la SmartCore est à plusieurs mètres de la machine elle-même, et j'ai donc bien du mal à insérer le filament et cliquer en même temps sur "extrude"… ;)

babas

  • Full Member
  • ***
  • Messages: 104
    • Voir le profil
Re: Changer le logo sur l'écran de contrôle ;)
« Réponse #6 le: 18 février, 2015, 11:46:07 am »
Salut bruno !

le contrôle des moteurs en manuel est déjà présent dans le menu LCD :) (par contre, c'est vrai qu'il est assez mal placé) :

Menu principal -> Preparer -> Deplacer un axe (tout en bas de la page :( )->

Tu te retrouve avec 3 choix :
  • Move 10mm
  • Move  1mm
  • Move 0.1mm

Le premier ne permet ni le contrôle de Z, ni de l'extrudeur...mais les deux derniers si ;)
« Modifié: 18 février, 2015, 11:51:20 am par babas »

BrunoBellamy

  • Hero Member
  • *****
  • Messages: 2099
    • Voir le profil
    • Bellaminettes Blog
Re: [Astuce] Changer le logo sur l'écran de contrôle ;)
« Réponse #7 le: 19 février, 2015, 04:52:37 pm »
Merci babas pour l'info ! :)

Je n'ai pu jeter au menu "Préparer>Déplacer un axe" qu'un œil trop rapide, et je n'ai pas pigé les valeurs qui s'affichaient, mais j'étudierai ça plus consciencieusement ASAP (aujourd'hui j'ai réussi à dépanner mon capteur Z et déboucher la buse, c'est déjà pas mal).

J'ai appliqué le "patch" pour le logo, c'est vraiment sympa. :)

Comment as-tu procédé pour transformer une image bitmap en un texte ASCII listant une suite de valeurs hexa ?

Je continuerai à explorer le code quand j'en trouverai le temps. J'imagine que l'essentiel du fonctionnement de l'interface est géré dans dogm_lcd_implementation.h ?

babas

  • Full Member
  • ***
  • Messages: 104
    • Voir le profil
Re: [Astuce] Changer le logo sur l'écran de contrôle ;)
« Réponse #8 le: 19 février, 2015, 07:45:44 pm »
Alors, la procédure est assez simple, une fois qu'on à compris que les développeurs de Marlin ont un peu triché ;)

Pour produire votre propre logo, il faut commencer par créer une image blanche de 64px X 64px à l'aide de votre programme de dessin favori.

Importez ensuite l'image dont vous voulez vous servir de modèle (par ex. une Bellaminette ;) ), positionnez-là par dessus votre image blanche et redimensionnez-là pour qu'elle ne dépasse pas du cadre 64px de haut x 60px de large. C'est à ce moment précis qu'il faut faire attention, il faut garder une marge de 4px sur le bord droit de votre image.

Appliquez ensuite un filtre "noir & blanc" sur votre image, puis supprimez toutes les nuances de gris c'est très important, l'image ne doit comporter que 2 couleurs à la fin : du blanc absolu (#ffffff), et du noir absolu (#000000), il vous faudra donc choisir dans laquelle de ces deux teintes vous allez changer chacun de vos gris...pixel par pixel :) ! je le précise une fois de plus, votre image final devra comporter une marge de 4px laissé blanche sur le coté droit. Enregistrez ensuite votre image au format bitmap (bmp).

Une fois que votre image est prête, vous pouvez utiliser LCD Assistant=>http://en.radzio.dxp.pl/bitmap_converter/ C'est ce soft qui va convertir notre image en séquence exa (il existe d'autre prog du même genre, libre à vous d'en prendre un autre évidemment ;) ).

Dans le soft (relativement épuré) on charge notre image :



Il y à quelques paramètres importants à définir dans le cadre Setting:

  • Byte orientation = Horizontal
  • Size = 64 x 64 (se calcule normalement tout seul comme un grand ;) )
  • Other = laissez tel-quel
  • Pixel/byte = 8

Lancez la conversion en enregistrant votre fichier de sortie, vous n'avez plus qu'à ouvrir votre fichier et à récupérer toutes les lignes de séquence exa qui vous attendent sagement à l'intérieur :)

Reste plus qu'à ouvrir votre IDE Arduino, y charger Marlin et modifier le fichier "DOGMbitmaps.h" avec vos nouvelles valeur comme indiqué dans mon premier post.

Une chose encore, il paraît que Marlin est un peu pointilleux sur le séquençage des valeurs exa, il semblerais qu'il apprécie mieux les valeurs exa en rang par 8. Si votre écran affiche du brouillard une fois votre imprimante allumé, repassez par la case IDE Arduino et faite un retour à la ligne toutes les 8 valeurs exa, ça devrais aller mieux ;)

un dernier conseil, faite une copie de votre fichier "DOGMbitmaps.h" quelque-part avant de le modifier, comme ça, en cas de fausse manip, y aura plus qu'à restaurer à l'origine ;)

Si vous voulez étoffer le post avec des photos de vos écrans avec vos jolies logos, c'est cool :)
« Modifié: 22 février, 2015, 06:33:20 pm par babas »

babas

  • Full Member
  • ***
  • Messages: 104
    • Voir le profil
Re: [Astuce] Changer le logo sur l'écran de contrôle ;)
« Réponse #9 le: 22 février, 2015, 06:34:09 pm »
Personne pour lancer une jolie photo de son écran avec un beau logo perso dessus ?

Bud.fr

  • Full Member
  • ***
  • Messages: 112
    • Voir le profil
    • Les Ailes Ollioulaises
Re: [Astuce] Changer le logo sur l'écran de contrôle ;)
« Réponse #10 le: 15 mai, 2015, 10:47:05 am »
Salut à Tous

Je marque ce sujet pour le retrouver + vite.

Je viens de brancher mon LCD, je découvre ...

A suivre
Aéromodélisme à donf

YureZzZ

  • Jr. Member
  • **
  • Messages: 66
    • Voir le profil
Re: [Astuce] Changer le logo sur l'écran de contrôle ;)
« Réponse #11 le: 14 octobre, 2015, 10:38:37 am »
Thanks for the tip - worked great! I wonder why don't you submit SmartFriendz logo into firmware hosted on github? It would be a great surprise for users  ;D

fdhieu

  • Newbie
  • *
  • Messages: 1
    • Voir le profil
  • 3d printer: discoeasy200
  • country/Pays: france
  • region/departement: nord
Re : [Astuce] Changer le logo sur l'écran de contrôle ;)
« Réponse #12 le: 02 juillet, 2017, 08:48:41 pm »
Bonjour,
J'ai cree mon logo sur photoshop en bitmap de taille 64x64 avec le 4 pixels de droite en blanc, converti avec LCDAssistant et a chaque fois j'ai un "pate' a la place de l'image. Y a t il un format plus precis a respecter ou un detail que je n'ai pas compris ?
J'ai aussi tester le logo avec GIMP avec le meme resultat.

spyd

  • Global Moderator
  • *****
  • Messages: 1944
    • Voir le profil
  • 3d printer: smartrapcore alu
  • buying date: décembre 2015
  • country/Pays: France
  • region/departement: haute-savoie 74
Re : [Astuce] Changer le logo sur l'écran de contrôle ;)
« Réponse #13 le: 03 juillet, 2017, 01:19:19 pm »
attention c'est pour un type de LCD (les grands)


pour les 2004 je ne croit pas que ça soit fait pour
Branchement du ventilo de tête sur le bornier d'alim = HOTEND bien ventillée!!!!!

My thingiverse : http://www.thingiverse.com/spyd6/designs
powerfull tools, free and privacy friendly : https://framasoft.org/[/url