Aller au contenu

GO Print

LCD 12864 de contrôle compatible ?


Virgin22

Messages recommandés

est-ce quye octoprint ne serait pas une solution facile avec un raspberry pi ?

il gère l'impression à distance, l'envoi de fichiers via un navigateur, peu être consulté sur un smartphone, fait la surveillance vidéo ... et les timelapse.

c'est mon premier message et je connais peu. Mais en me renseignant un peu avant la réception de mon imprimante j'étais tombé sur ce truc là.

Lien vers le commentaire
Partager sur d’autres sites

il y a une heure, PoLoMoD a dit :

bon .... pas d'erreur de pins mais Marlin apparemment trop grand pour notre mezli1286p :/

Il faut essayer d'alléger le Marlin ...

56538bc79c7d9_mezlitextoverflowed.jpg.06

Liens du Marlin modifier : Marlin_Disco200_Hotbed.rar

Yep, j'ai eu le même problème, résolu en décommentant les lignes activant l'auto-levelling...

Mais j'ai toujours un écran rétro-éclairé qui n'affiche rien, le buzzer qui pulse toutes les secondes, et une machine qui n'avale plus de prog, ni sur la SD ni sur la micro SD...

T'as une piste ??

Lien vers le commentaire
Partager sur d’autres sites

Bon ben pour etre certains de ne pas être passé à côté de quelque chose, j'ai testé avec ton marlin, après comparaison, je n'ai rien vu de très différent de ce que je suis arrivé à monter, j'y ai donc désactiver l'auto-levelling puis j'ai pu le téléverser... et rien de plus qu'avec le mien, si ce n'est que j'ai récup le lecteur de micro sd que tu n'avais pas désactivé au profit de celui du kit écran lcd+controlleur... j'attend ton analyse, à mon sens, on s'est panné quelque part, je pencherai bien sur le cablage ! @suivre, j'ai plus la force !! @demain...

Lien vers le commentaire
Partager sur d’autres sites

Hello

petite avancé :)

 

je viens de tester le LCD 12864 RepRapDiscount en SPI (juste l'affichage sans codeur, ni lecteur SD) sur les broches A1, A2, A3 (E, RW, RS) d'un Arduino UNO 

ET CA MARCHE !!! :D

 

 

Donc voici la correspondance pour l'affichage du LCD avec EXP1 :

Reste plus qu'a trouver la correspondance avec la Mezli (RS=CS, RW=SID, E=SCLK)

56547539ad2c8_lcdspi.jpg.8d1798511d9b369

Modifié (le) par PoLoMoD
  • J'aime 2
Lien vers le commentaire
Partager sur d’autres sites

Mouais, je laisse de côté pour le moment, j'ai voulu lancer un impression pour me changer les idées un peu, ma doudoune ne bouge plus... bref, vu que j'en ai fait des test de marlin, j'me dis qu'un "restore" va lui faire du bien, me v'la parti à lui mettre dans les circuits le Marlin dispo sur le site pour "la mise à jour de notre carte" qu'ils disent !! Ben elle bouge plus en Z ma mémère !!! Bref, c'est pas ma semaine, obligé de laisser ça de côté en l'état pour le moment, arg, comme un gout amer dans la bouche...

Lien vers le commentaire
Partager sur d’autres sites

il y a 21 minutes, plumcake a dit :

Mouais, je laisse de côté pour le moment, j'ai voulu lancer un impression pour me changer les idées un peu, ma doudoune ne bouge plus... bref, vu que j'en ai fait des test de marlin, j'me dis qu'un "restore" va lui faire du bien, me v'la parti à lui mettre dans les circuits le Marlin dispo sur le site pour "la mise à jour de notre carte" qu'ils disent !! Ben elle bouge plus en Z ma mémère !!! Bref, c'est pas ma semaine, obligé de laisser ça de côté en l'état pour le moment, arg, comme un gout amer dans la bouche...

a merde .... tu veux que j'essai de te faire une sauvegarde binaire de mon firmware 

Lien vers le commentaire
Partager sur d’autres sites

Oui ok je lâche rien, c'est une expression !!!! ;-) Juste pour dire que là, j'ai d'autres obligations qui vont m'éloigner mais j'va reviendre !!!

Pour le Marlin, oui j'ai testé, mais j'en ai testé tellement de truc et vu que là, précisement ce soir, entre le diner et les bains, j'ai voulu aller vite, c'est mort !!!

Je m'y pose au calme ce weekend et ça devrait le faire !

Lien vers le commentaire
Partager sur d’autres sites

il y a 1 minute, PoLoMoD a dit :

a merde .... tu veux que j'essai de te faire une sauvegarde binaire de mon firmware 

Ha yep, j'vaux bien, et si en plus tu pouvais m'expliquer comment on fait ça que je m'en garde un sous le coude !!!

Et sinon, à l'avenir, je vais faire comme @Virgin22, une 2ème Melzi, ça mangera pas de pain et les test serons plus flexibles parce que là, comment j'en ai marre de retourner la bête, de jongler avec les jumpers et rebelotte !!!!!!

  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

@plumcake

Petite mise au point avant de commencer

L’idée ici est de récupérer le programme binaire (« le firmware » en bon english) dans la carte Arduino, mais en aucun cas de récupérer le code source du programme.
Programme binaire et code source sont deux choses radicalement différentes, bien qu’intimement liées.

On peut compiler un code source en programme binaire, mais l’inverse (binaire vers code source) n’est pas aussi simple, pour ne pas dire impossible (sauf pour quelques spécialistes).
Si vous pensiez pouvoir obtenir d’un clic de souris du code source C/C++ à partir d’un binaire, désolé de vous ramener sur terre, mais ce n’est pas comme cela que ça marche dans la vraie vie ;)

Maintenant que les choses ont été mises au clair, on peut continuer.

Le bootloader Arduino : optiboot

Ce qui rend possible la sauvegarde du programme binaire présent dans une carte Arduino, sans faire usage du moindre outil spécialisé, c’est le « bootloader ».
Dans le cas d’une carte Arduino, celui se nomme « Optiboot ». C’est un joli bébé de 512 octets écrit en code C.

Un bootloader n’est rien d’autre qu’un petit bout de code qui s’exécute avant le code utilisateur (votre code).
Ce petit bout de code n’a qu’une seule et unique fonction : transférer un programme binaire d’un point A (le port série USB dans le cas d’une carte Arduino) à un point B (la mémoire interne du microcontrôleur).

Pour ce faire, un bootloader implémente en général deux fonctions : lire une page mémoire et écrire une page mémoire.
La fonction d’écriture permet d’écrire le programme en mémoire (logique) et la fonction de lecture permet de vérifier que tout s’est bien passé en relisant les données.

Dans la vraie vie, sous-entendu dans un vrai produit vendu au grand public, le bootloader (s’il y en a un) est verrouillé pour éviter les bidouilles.
Les utilisateurs de smartphones Android connaissent bien le principe des bootloaders bloqués, sur microcontrôleur c’est pareil.

Dans un vrai produit, lors de la mise en production, on fait en général trois choses :
– on verrouille la mémoire du microcontrôleur pour éviter qu’une personne avec le bon matériel ne puisse physiquement lire ou écrire la mémoire,
– on désactive tout ce qui touche au débug (que ce soit dans le code ou dans le hardware) pour éviter de donner une porte d’accès aux vilains bidouilleurs,
– et pour finir, on verrouille le bootloader (via en général un système de chiffrement, avec signature cryptographique) pour permettre à l’utilisateur final de mettre à jour son produit facilement sans outils, mais sans pour autant le laisser faire n’importe quoi.

La philosophie open source fait que les cartes Arduino (et autres cartes compatibles Arduino) sont livrées non verrouillés et avec un bootloader dont on connait absolument tout, du protocole de communication jusqu’au code source.

On peut donc faire quelque chose qui serait impossible sur un produit lambda du marché : récupérer le programme binaire dans la mémoire du microcontrôleur.

AVRDUDE

Avrdude est un logiciel bien pratique qui permet de parler avec plein de microcontrôleurs AVR différents, au moyen de plein de sondes de débug, programmateurs ou bootloaders différents.
Et parmi les bootloader supportés, on retrouve un nom qu’on connait bien : « arduino ».

Je préviens de suite, c’est un utilitaire en ligne de commande, donc si vous avez la phobie des terminaux et des consoles systèmes, ça risque de vous déplaire.
Pour les autres, montez à bords, on décolle.

L’IDE Arduino utilise Avrdude pour envoyer les programmes après compilation, l’exécutable d’Avrdude doit donc se trouver quelque part ?
Exact ! Dans « Arduino-1.0.x\hardware\tools\avr\bin » pour être précis.

Si vous êtes sous Seven ou Windows 8, rendez-vous dans le dossier en question puis faites click droit en appuyant sur la touche majuscule gauche.
Vous devriez voir apparaître une option « Ouvrir une fenêtre de commande ici » dans la liste déroulante, cliquez dessus.

Saisissez maintenant la commande : « avrdude -v » (sans les quotes) pour voir si Avrdude répond.
Vous devriez obtenir une réponse de cette forme :
E:\PortableApps\Arduino-1.0.6\hardware\tools\avr\bin>avrdude -v

avrdude: Version 5.11, compiled on Sep 2 2011 at 19:38:36
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2009 Joerg Wunsch

Si c’est le cas, cela signifie que Avrdude est prêt pour la bataille.

Let’s go dump

Il ne reste maintenant plus qu’à connecter votre carte Arduino et noter le port série qui lui correspond.

La commande de base pour lire le contenu de la mémoire est la suivante :
avrdude -p LENOMDUMICRONTROLEUR -P LENOMDUPORTSERIE -c LENOMDUBOOTLOADER -U flash:r:LENOMDEMONFICHIER.hex:i

Avant de lancer la commande, détaillons un peu la structure de celle-ci :
avrdude : le nom de l’utilitaire qui nous intéresse
-p : (p minuscule) le prochain argument sera le nom du microcontrôleur de la carte (« m328p » pour une carte Arduino classique, « m2560 » pour une carte Mega2560)
LENOMDUMICRONTROLEUR : le nom du microcontrôleur (« m328p », « m2560 », ou autre en fonction de la carte)
-P : (P majuscule) le prochain argument sera le nom du port série
LENOMDUPORTSERIE : dans mon cas COM3, mais chez vous se sera surement un autre port
-c : le prochain argument sera le nom du protocole de communication à utiliser (« arduino » pour les cartes Arduino classiques, « stk500v2 » pour les cartes Mega, « stk500 » pour les vieilles cartes Arduino)
LENOMDUBOOTLOADER : le nom du protocole de communication (« arduino », « stk500v2 » ou « stk500 » en fonction de la carte)
-U : le prochain argument sera une commande Avrdude
flash:r:LENOMDEMONFICHIER.hex:i : ça ce complique, voici le détail :
flash : on travaille sur le mémoire flash interne (mémoire programme)
:r: : on souhaite lire le contenu de la mémoire
LENOMDEMONFICHIER.hex : le chemin vers le fichier de sortie (avec des quotes autours si nécessaire)
:i : on souhaite obtenir un fichier de sortie au format Intel Hex (le format classique)

Exemple avec une carte arduino UNO Rev3 (microcontrôleur « m328p » et bootloader « arduino » donc), sur le port « COM3 » et un fichier « toto.hex » (que je vais enregistrer sur mon bureau).
avrdude -p m328p -P COM3 -c arduino -U flash:r:C:\Users\Fabien\Desktop\toto.hex:i

Le résultat :
E:\PortableApps\Arduino-1.0.6\hardware\tools\avr\bin>avrdude -p m328p -P COM3 -c arduino -U flash:r:C:\Users\Fabien\Desktop\toto.hex:i

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e950f
avrdude: reading flash memory:

Reading | ################################################## | 100% 4.25s

avrdude: writing output file "C:\Users\Fabien\Desktop\toto.hex"

avrdude: safemode: Fuses OK (H:00, E:00, L:00)

avrdude done. Thank you.

J’obtiens alors un fichier « toto.hex » avec le contenu de la mémoire.
Si on l’ouvre avec un éditeur de texte, on voit bien qu’il contient des données :
(...)
:20026000551FEA95D1F7203080E0380781E0480780E0580720F481E08093190112C02030A1
:2002800080E0380788E0480780E0580778F482E08093190173E056954795379527957A959D
:2002A000D1F730931801209317013FC0203080E0380780E4480780E0580758F483E08093AD
:2002C000190166E056954795379527956A95D1F7E8CF203080E0380780E0480781E0580793
:2002E00040F484E080931901BB27A52F942F832F18C0203080E0380780E0480784E05807D5
:2003000058F485E0809319018AE056954795379527958A95D1F7C5CF85E0809319018FEFBB
:200320009FEF90931801809317018091170190911801909387008093860080911901806116
:20034000809381001F910F91FF90EF9008950F931F930BEA11E0C80140E052EC61E070E01C
(...)

(je vous fais grâce des +1000 lignes restantes)

Au contraire, si le fichier ne contenait que des FF (mémoire vide) ont aurait eu ce genre de chose :
(...)
:207A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86
:207A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66
:207A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46
:207A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26
:207A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06
:207AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6
:207AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6
:207AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6
(...)

(si vous obtenez que des FF ou 00, c’est que le bootloader est verrouillé, chose qui ne devrait pas arriver avec Optiboot, mais on ne sait jamais)

IMPORTANT TOUJOURS faire DEUX lectures de la mémoire, dans DEUX fichiers séparés, puis comparer si ceux-ci sont identiques (checksum, diff, comme vous voulez) et non vides.
Si les deux fichiers sont identiques : c’est bon vous avez votre sauvegarde.
S’ils sont différents : attention danger, quelque chose cloche. Vous n’avez surement pas le vrai contenu de la mémoire dans le fichier (erreur de communication, mémoire défectueuse, bootloader modifié, il peut y avoir plein de raison à cela).

OK. J’ai ma sauvegarde, je fais comment pour la restaurer ?

C’est simple, la commande est la même, seul le :r: de la commande -U change pour devenir :w: (write = écriture).
Avrdude lancera alors l’effacement de la mémoire, l’écriture des données, puis la relecture complète de la mémoire pour vérification.

Remarque : cela supprimera TOUTES les informations contenues dans la mémoire flash pour restaurer celles du fichier de sauvegarde.
Cela ne modifiera pas cependant les informations contenues dans la mémoire EEPROM (mémoire de données utilisateurs).
Avrdude supporte le mode « eeprom » au lieu de « flash » pour la commande -U, mais par défaut Optiboot (sauf sur les cartes Mega) ne supporte pas ce mode.

  • J'aime 2
Lien vers le commentaire
Partager sur d’autres sites

Merci @PoLoMoD je me garde ça sous le coude mais surtout une copie d'un Marlin avec lequel je n'aurais pas joué aux apprentis sorciers que je puisse le ré-injecter en cas de boulette !! Pour info, après mon plantage, j'avais re-téléversé le Marlin dispo sur le site de Dago mais ça n'avait rien donné de positif, j'ai refait la même manip ce soir sur les conseil de @Benjamin/Dagoma et là, en avant Guingamp !!

Bref, à tous les inquiets pour moi, c'est reparti pour un tour avec un petit yoda pour me réchauffer l'impression !!!

Du nouveau pour le LCD et le palpeur ce weekend !! 

  • J'aime 1
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
×
×
  • Créer...