[HS] Ecran OLED qui semble se mettre en veille et n'en sort plus ...

Bonjour et bonnes fêtes à tous,

Sujet un peu HS car il ne s'agit pas d'Arduino a proprement parler mais de periph qu'on leur associe souvent : les petits écrans OLED a base de SSD1306 de 128x64 pixels.

J'ai forké (et amélioré) la librairie ArduiPi_OLED qui permet d'utiliser ces écrans sur un *PI quelconque ... en fait, n'importe quel système sous Linux ayant des bus I2C.

Le blème est que lorsqu'il n'est pas utilisé, l'écran semble se mettre tous seul en veille ... et n'en sort jamais. Il n'est pas planté car répond toujours aux ordre I2C.

Est-ce que qq'un a déjà rencontré ce genre de problème et comment s'en sortir ?

Merci

Je suis surpris, la doc du SSD1306 ne parle nulle part d'un mode de veille.

On voit apparaître dans la doc le terme 'sleep mode' pour la commande AEh(Set Display OFF), veille intentionnelle , sur ordre, , pas automatique ou spontanée !

Oui d'accord mais ce que je voulais dire, c'est que ce n'est pas un changement de mode automatique. Il faut écrire la commande dans le registre pour changer l'état de l'afficheur et en plus c'est réversible.

Salut,

ben ce que je peux dire avec le mien, c'est que :

  • un 0xAE éteint bien l'écran
  • mais un 0xAF ne le réveille pas :confused:
  • Si je le laisse sans lui envoyer d'ordre, il fini par s'éteindre alors que si je laisse défiler les étoiles de la démo, il ne s'éteint jamais (par exemple, il tourne ainsi depuis plus d'1 journée).

Une fois éteint, il continue a répondre aux ordres I2C (sinon j'aurai une erreur de bus) : la seule solution est de le débrancher, rebrancher ... comme il n'a pas de broche reset, je me demande si ce n'est pas liée.
Je vais testé la commande 0xe4 comme discuté dans le sujet. Mais avant, je vais essayer de trouver plus d'info.

ps:

  • pour le fun, je viens de découvrir qu'il y a un module kernel linux pour cette écran (je me demande bien pourquoi google ne me l'avais par sorti, mais bon). Sauf qu'il ne semble fonctionner qu'en mode SPI.

  • Il y en un autre pour le 1307, qui serait compatible avec le 1306. Mais il n'est dispo que pour les kernel 4++ alors que je suis en bloqué en 3.4 du fait d'autres periph pour lesquels les DTS n'existent pas :frowning: