DigitalSpirit / Blog

Hacking d'un écran à Led de DealExtreme

Led matrix

Je reviens à la charge avec un joujou récupéré sur le site http://www.dealextreme.com/ avec, cette fois ci, non pas un régulateur à découpage pas chèr mais un afficheur à led pas chér (~ 8€) vendu sous l'appelation « Programmable Scrolling LED Name/Message/Advertising Tag Card Badge », intéressant, la description de l'article nous apprend également qu'il possède une connection USB, chouette, je le vois parfaitement bien sur la face avant de mon serveur pour indiquer des infos comme la charge du système, l'espace disque restant, etc...

Omar m'a hacker

Malheureusement, déception : la connectique USB est propriétaire et bien évidemment, le cable n'est pas fourni, l'envie m'est alors rapidement venue d'ouvrir la bête pour y souder un connecteur standard et là, ce fût la seconde mauvaise surprise, la prise n'est reliée à ... rien. Alors, bien évidemment, on peut programmer cet écran à l'aide des boutons situés sur son dos mais ce n'est franchement pas pratique pour en faire quelque chose d'automatisé...

L'écran est piloté par un unique micro-controleur d'Atmel, un AtMega88, de la même famille que les Arduino, il est donc assez aisé de développer un micro-logiciel libre.

J'ai donc fait une petite séance de reverse engineering, ingénierie inverse en bon français afin de comprendre comment fonctionnait cet écran et j'ai ensuite développer un micro-logiciel de remplacement permettant de piloter l'écran facilement directement avec une interface série.

Dans la vidéo ci-dessous, l'écran est simplement relié à l'ordi par le biais d'un convertisseur série / USB 3V, on y voit un des 2 modes de pilotage de l'écran en action qui permet à l'aide de menu de venir le paramétrer simplement, un autre mode est aussi disponible et est parfaitement adapté à la commande automatisée par le biais de script bash ou autre...

Vous trouverez TOUT en détail sur le fonctionnement de cet écran sur le lien suivant LedMatrix hacking sur le wiki, voici le sommaire de cette page :

LedMatrix hacking
    Introduction
    Ouverture du boitier
    Comment ça marche ?
        Vue globale
        Le coeur
        Interface de programmation
        L'interface USB
        La gestion des boutons
        La matrice de LED
        Accès à la mémoire EEPROM externe
    Ajoutons une connection série
        Vous voulez piloter le montage directement depuis un module USB          
        Si vous possédez déjà une connection série RS232
    Le micro-logiciel libre
        Mode interactif
        Mode non interactif

Cet article est également paru sur :

Logo Made in fr

Ouvrir l'article

Fabriquer un sniffer série compatible 3V / 5V

Lors du développement d'interface série, il est toujours utile de savoir qui dit quoi, qu'envoi l'hôte à l'esclave, qu'envoi l'esclave à l'hôte, ça se fait très bien avec 2 interfaces séries mais encore faut-il en avoir 2, pour des signaux compatibles RS232 fluctuant entre -12V et +12V, pas de souci avec l'aide de 2 diodes comme dans le schéma ci-dessous, par contre, cela se corse lorsque les signaux sont à des niveaux TTL, voir en 3V.

rs232 sniffer (image de Embedded Freaks)

Mes essais avec des diodes rapides n'ont rien donné pour des tensions de 3 ou 5V, j'ai donc cherché une autre méthode pour coupler les lignes RX et TX, j'ai alors fouillé dans mes tiroirs et ai fini par dégoter un CD4001 (une quadruple porte NOR) qui attendait son tour, mais rien n'y a fait, cette série est bien trop lente, il me fallait du HEF, appel des réparateurs du coin, rien, passage express chez un pote, non plus, que des CD40XX, enfin, mon salut à été mon ancien lycée qui a pu me fournir un HEF4001 (fin de la paranthèse, « aventure pour un CMOS ») et là, aucun souci, la porte est suffisamment rapide, cela fonctionne parfaitement bien !

Voici le schéma de principe :

Rs232 sniffer Cmos

On oublie pas d'alimenter le CI et ça roule, on connecte les entrées RX et TX sur les lignes de données à sniffer et on retrouvera en sortie le mix des 2 permettant ainsi de voir les commandes envoyées par l'un et l'autre dans le bon ordre, rien de tel pour débugguer tranquillement... Notez que j'ai utilisé une quadruple porte NOR mais vous pouvez bien sûr utiliser n'importe quelle portes combinées ensemble du moment qu'au final, votre montage réalise bien une fonction OU, le mieux étant de se procurer un HEF4071 (quadruple porte OU) et éventuellement utilisé les portes restantes en buffer.

rs232 sniffer montage

Utilisé conjointement avec un Bus Pirate, on connecte l'alimentation du CMOS sur les broches GND et +5V du Bus Pirate, on active la ligne +5V (commande W), puis on branche la sortie de notre montage sur l'entrée RX (MISO), on entre dans le mode UART, on configure le tout, vitesse, etc...on bascule en mode « Live UART Monitor » et voilà, vous verrez alors défilez toutes les données circulant dans les lignes RX et TX de votre liaison série...

Rs232 sniffer Bus Pirate

Ouvrir l'article

Régulateur à découpage à très faible coût

On utilise un peu partout les régulateurs de tension à découpage, ils permettent d'obtenir un rendement largement meilleur que les traditionnels régulateurs comme la célèbre série des 78xx qui se contentent de dissiper l'énergie sous forme de chaleur (à découvrir les régulateurs de tension de chez Mornsun qui nous annonce des rendements de plus de 96% compatible broche à broche avec les 78xx...)...

Créer une alimentation à découpage n'est pas vraiment ce qui se fait de plus simple, difficulté pour placer les composants, pour calculer les bonnes valeurs, pour trouver des composants de bonnes qualités (self, condos avec faible ESR...)
Tous ces points pris en considération, il devient intéressant de se procurer directement des alimentations toutes faites mais il faut alors payer chèr, trop chèr SAUF si on hack détourne l'utilisation originale d'un produit abordable comme on en trouve beaucoup sur internet, comme par exemple, cet adaptateur allume cigare / USB 1A pour moins de 1,5€ : Car Cigarette Powered 1000mA USB Adapter/Charger - Black (DC 12V)

sku_40470_1_small.jpg

Une attente d'1 mois après la commande et j'ai reçu quelques exemplaires de ces adaptateurs, peu de temps après, ils exhibaient leurs entrailles : sku_c2626c86f5304d2acb62b2708364c757.media.400x267.jpg

Les mesures ont révélées un rendement proche de 75%, ce qui est honorable pour le prix, le circuit utilisé, un XL1509 en version ajustable, permet en changeant 2 résistances de faire varier la tension de sortie, que demander de plus ?

Voici la page sur le wiki oû vous trouverez toutes les mesures et détails : Régulateur à découpage pas chèr

Ouvrir l'article

Intervallomètre, Acte 2 : Conception terminée

Voici la suite du billet précédent Intervallomètre, Acte 1 ou je décrivais la réalisation d'un intervallomètre programmable avec possibilité d'ajout de capteurs externes basé sur un article d'Elektor.

Je poursuis aujourd'hui l'article avec l'acte 2 et la fin de la réalisation du schéma de principe et du typon que vous pouvez voir ci-dessous.

Quelques explications sur le schéma :

  • Le bloc d'alimentation en haut à gauche, il est constitué d'un MAX1555 qui s'occupe de charger l'élément Lipo lorsqu'une alimentation externe est branchée, il est d'ailleurs possible de sélectionner le courant de charge en faisant un pont de IN_USB sur COMMON pour avoir un courant de charge de 100mA ou un pont de IN_DC à COMMON pour avoir 300mA, tout dépend de l'élément Lipo, mais 300mA devrait convenir dans la plupart des cas. La Led CHARGE permet comme son nom l'indique d'indiquer que l'élément est en charge. En sortie, on trouve un régulateur élévateur de tension à découpage (Switcher Step-Up Voltage Regulator) basé sur un LM2577, rien de particulier ici, notez juste que 2 potentiomètres sont reliés à la broche FeedBack, bien sûr, il ne faut en mettre qu'un des 2, cela permet de laisser le choix sur le type de potentiomètre (CMS ou DIP)
  • En dessous, on trouve un bloc « Optional », qui permet d'alimenter le montage en 12V, c'est un peu juste et ça risque de chauffer (12 - 5 * ~0,1A = 700mW à dissiper), le mieux aurait été d'avoir un régulateur à découpage comme celui décrit dans l'article Régulateur à découpage embarqué mais là, ça commençe à faire beaucoup...
  • Encore en dessous, le capteur de son, rien de particulier à part les 2 potentiomètres, même note qu'au dessus, on en met qu'un seul
  • Pour la partie controlleur, c'est la même chose que dans l'article originale, notez aussi qu'un seul des 2 mosfet doit être placé...

Intervallometre_-_schema_2.png

Pour le typon, les dimensions de la carte sont basées sur celle de l'afficheur, les boutons sont situés sur une autre platine.

Intervallometre_-_board_2.png

La suite, prochainement, sera pleine de soudure ;)...

Ouvrir l'article

Intervallomètre, Acte 1

Dans un article d'Elektor du numéro de février est décrit un intervallomètre programmable nommé le TimeClick plutôt intéressant et basé sur un Avr d'Atmel, rien de révolutionnaire mais l'interface à l'air plutôt bien conçue et il est possible de rajouter à peu près n'importe quel capteur pour déclencher les prises de vues.

De mon côté, m'essayant depuis peu à faire des TimeLapses (Mont-Royal Time Lapse #2, Fabriquer son propre Space Invader), la fabrication d'un tel appareil me simplifierait grandement les choses, cependant, pour mon utilisation personnelle, il manque quelques petits choses :

  • Il me le faut le plus petit possible pour tenir dans le sac d'appareil photo qui est déjà bien chargé, donc, utilisation au maximum de composants CMS, de plus, le choix de 6 piles 1,5V AA de la version originale n'est pas envisageable, je vais m'orienter vers une alimentation basé sur un seul élément Lipo associé à une alimentation à découpage dite « STEP-UP »
  • Dans le cas de TimeLapse très long, pouvoir être alimenté en 12V histoire d'y brancher directement une batterie au plomb.

Le schéma de principe ne devrait plus bouger, la phase de routage est en cours.
Intervallomètre - Schéma de principe Intervallomètre

Ouvrir l'article

« Page 8 / 32 »