www.DigitalSpirit.org

Bienvenue sur le blog de Charles Rincheval aka hugo !

Politique d'accessiblité | Aller au contenu | Aller au menu | Aller à la recherche

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

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

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

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

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

Fabriquer son propre Space Invader

Petite vidéo expliquant pas à pas la fabrication d'un Space Invader.

N'hésitez pas à partager vos réalisations !

Nouvelle version de Fool : 0.3

Voici une nouvelle version de File tOOLkit, un outils vous permettant de faciliter vos sauvegardes sur différent support.

Il à été conçu pour traiter de très grand nombre de fichiers d'assez grosse taille, notamment les photos, j'en dispose un assez grand nombre de photos (~120Go), cette taille m'empêche d'utiliser un outils de version comme Git ou Svn, c'est pour cela que j'ai créé ce script qui me permet de faire des synchronisations sur des disques dûrs, sur des serveurs distants ou encore de détecter les doublons, vérifier l'intégrité des données avec le calcul des sommes md5, etc…

Cette version apporte le support dans un environnement Cygwin (merci à bass000) et l'ajout des Hooks qui vous permettront de déclencher des actions à des moments précis de l'exécution du script.

Pour la documentation et le téléchargement, ça se passe sur le wiki à cette adresse : http://www.digitalspirit.org/wiki/projets/fool.

Fool : File tOOl, un outils pour ses sauvegardes

Comme je l'annonçais dans un précédent article, voici un script bash qui permet de copier à l'aide de rsync des grosses quantités de données, de surveiller l'intégrité des données, de trouver les doublons, etc...

Fool (File tOOLkit) est un script écrit en bash sous licence GNU General Public License permettant de s'assurer de la bonne santé, de l'intégrité, de créer des sauvegardes de grosse quantité de gros fichiers.

Il à été conçu pour traiter de très grand nombre de fichiers d'assez grosse taille, notamment les photos, j'en dispose un assez grand nombre de photos (~120Go), cette taille m'empêche d'utiliser un outils de version comme Git ou Svn, c'est pour cela que j'ai créé ce script qui me permet de faire des synchronisations sur des disques dûrs, sur des serveurs distants ou encore de détecter les doublons, vérifier l'intégrité des données avec le calcul des sommes md5, etc…

Fool est un outils vous donnant les moyens de garder longtemps vos données auxquelles vous tenez à l'aide d'actions simples, le contrôle d'intégrité qui peut être lancé après une copie, la synchronisation vous permettant de multiplier les copies de vos données, etc…

Voici une liste des actions qu'il est possible d'utiliser :

  • clean : Supprime tous les fichiers ou expressions définis dans le fichier clean.conf
  • md5 : Calcule la somme md5 de tous les fichiers de l.arborescence et stocke le tout
  • duplicate : Cherche les fichiers en double à partir des sommes md5 calculées précédemment
  • checkmd5 : Vérifie la somme md5 des fichiers avec celle stockée
  • diff : Affiche les différences entre les dernières sommes calculées.
  • size : Renvoie la taille de l'arborescence de fichiers
  • batch : Exécute les actions md5, duplicate, checkmd5
  • cbatch : Exécute les actions clean, md5, duplicate, checkmd5
  • sync : Lance une commande synchronisation rsync
  • info : Renvoie des informations sur la configuration de l'application

Exemples d'utilisations

Lance la commande clean et parcours l'arborescence dans le but de faire du ménage :

$ ./fool.sh clean
Clean '/mnt/raid/media/Photos' for '.DS_Store' [ok]
Clean '/mnt/raid/media/Photos' for '._.DS_Store' [ok]
[info]  Executed in 0 second(s)
$ 

Recherche les fichiers dupliqués :

$ ./fool.sh duplicate
Search duplicate [ok]
[warn]  There are 2 different duplicate files !

194577a7e20bdcc7afbb718f502c134c ./event/2009/07 Vacances/img_908.jpg
194577a7e20bdcc7afbb718f502c134c ./export/img_908.jpg

a63ddcc7004693b03b4c5a6ddede5556 ./tmp/standby/2010/2010-08-11/_MG_6107-2.CR2
a63ddcc7004693b03b4c5a6ddede5556 ./tmp/standby/2010/2010-08-11/_MG_6107.CR2

[info]  Executed in 199 second(s)
$ 

Liste la configuration de la synchronisation :

$ ./fool.sh sync list
desktop2serv
  url :        hugo@server:~/backup/remote
  local path : event/2003
diskusb200go
  url :        /media/USBDISK/backup
  local path :
$ 

Synchronise l'arborescence vers un disque usb préalablement déclaré :

$ ./fool.sh sync to diskusb200go
Sync '/mnt/raid/media/Photos' to '/media/USBDISK/backup' ? (yes/no)
...
$ 

Retrouvez toutes les commandes et la documentation complète sur le wiki : http://www.digitalspirit.org/wiki/projets/fool

Lien relatif :

Sauvegarder ses photos / données

La théorie

Cet article porte essentiellement sur la sauvegarde de photos mais s'applique bien entendu à tout type de données...

Un des avantages genial de la photo numerique, c'est le support, en effet, quoi de plus simple que de transporter avec soi toute sa collection de photos amassées pendant les vacances pour les montrer a mamie à son retour ?

Cet avantage énorme est aussi une très grosse faiblesse, réunir autant d'information dans un seul support comporte des risques... Faites chuter votre disque dûr et vous perdrez alors vos splendides photos.

Voici quelques règles à ne jamais oublier pour garder ses photos longtemps :

1. Ne jamais faire confiance au support, quel qu'il soit

Que le support soit physique

Quel que soit le support, il peut trépasser du jour au lendemain :

  • Qu'il soit informatique, votre disque dûr peut lâcher du jour au lendemain sans raison apparente et surtout sans prévenir, vous pouvez le faire tomber. Un CD, un DVD vieillit, rien ne garantie que vous pourrez lire vos données dans quelques années.
  • S'il est au format papier, les UV en viendront à bout au fûr et à mesure des années qui passent.

Ou quel le support soit logiciel

Êtes-vous sûr d'utiliser un format de fichiers qui garantisse la pérennité de vos données ? C'est bien beau de sauvegarder vos fichiers mais si vous êtes incapable de les lire dans quelques années car le format de votre partition n'est plus supporté, vous ne pourrez en faire grand chose...

Ne sourriez pas, avec les brevets logiciels, il est tout à fait probable que vous ne puissiez plus lire vos données sur votre partition NTFS depuis votre Linux, légalement, ce serait tout à fait possible.

Utilisez donc des formats ouverts.

2. Toujours faire des sauvegardes multiples

Le premier point à du vous mettre la puce à l'oreille, il faut augmenter ses chances de garder ses données en multipliant les supports pour prévenir un accident physique qui arrivera forcément un jour ou l'autre, la question est, votre support va vous lâcher tout à l'heure ou dans 10 ans ?.
Pensez donc à copier vos données auxquelles vous tenez sur différents supports.

Limitez les risques informatiques : La capacité des disques augmentant sans arrêt, on trouve maintenant des disques externes à 2To sur lesquel il est possible de stocker un nombre phénoménal de photos (plusieurs centaines de milliers de photos), bref, le contenu de plusieurs années de clichés, imaginez une seul seconde perdre tout cela d'un seul coup...
Voilà d'ailleurs une des choses qui me pousse à préférer 2 disques de 500Go que 1 seul de 1To, si vous avez le budget, pourquoi ne pas carrément envisager 2 disques de 1To...

3. Dégéolocaliser les sauvegardes

Maintenant que nous pensons à faire des sauvegardes multiples, il faut aussi penser à les mettre à l'abri, qu'arrivera-t-il en cas d'incendie, de vol, si les sauvegardes se trouvent toute chez vous au même endroit...

En pratique, pour les plus geeks d'entre nous, une sauvegarde distante avec le couple ssh / rsync sur un serveur fiable et sécurisé est un bon moyen de mettre ses données à l'abri mais on peut faire beaucoup plus simple, à moins d'être totalement narcicique, on est rarement seul sur les photos, pourquoi ne pas voyager avec son disque dûr chez ses amis et leur faire une copie des photos sur lesquelles ils sont, ils seront heureux de les voir, vous le serez d'avoir fait une copie de sauvegarde de plus, c'est simple et efficace, en échange, récupérez leurs photos, ainsi, tout le monde est à l'abri...

Vous pouvez aussi utiliser des services de sauvegarde de contenu en ligne comme Dropbox mais vous risquez d'être confronté à d'autre problèmes :

  • Le service est payant et plutôt chèr rapporté Giga
  • Vous donnez vos données à une société privé, que se passe-t-il si celle-ci se fait pirater, si elle décide d'augmenter ses prix démesuremment ou encore si la société ferme subitement...

Si vous utilisez ces services en ligne, évitez d'en faire un sauvegarde principale et cryptez avec un système fiable toutes vos données confidentielles.

Olivier Meunier, lui, sauvegarde ses données dans sa boite aux lettres.

4. S'assurer de l'intégrité des données a chaque copie, ne pas oublier le premier point

C'est bien beau de dupliquer ces données partout mais qui vous dit que les données sont correctement copiées ? Si une erreur logicielle à lieu durant la copie, vous serez sûrement averti mais si c'est une erreur physique, rien ne dit que vous le serez aussi.

La pratique

Supports physique

  • CD, DVD : préférez graver à une vitesse moindre pour vous assurer que les données sont parfaitement bien écrites et pérennes
  • Disque dûr : Surveillez vos disques avec des outils comme S.M.A.R.T (Self-Monitoring, Analysis, and Reporting Technology) qui permet de détecter des défaillances de ces derniers et ainsi anticiper vos sauvegardes
  • Investissez dans des prises parafoudres / onduleurs, ça vous évitera de mauvaises surprises

Support logiciel

  • Utilisez un système de fichiers libre ou garantissant un bon support (ext4 par exemple), évitez NTFS
  • Pensez aux formats de fichiers libres, pourquoi ne pas envisager de convertir vos clichés Raw en DNG

Trop tard

Malheuresement, des fois, la bataille se perd et les données avec ou presque, je vous invite dans ce cas à tester l'un de ces 2 excellents logiciels qui en ont sauvés plus d'un :

  • Testdisk est un logiciel performant de récupération de données! Il a été conçu à l'origine pour aider à la récupération des partitions perdues, la réparation des tables des partitions corrompues quand ces symptômes ont été causés par des logiciels défectueux, certains types de virus ou des erreurs humaines telles que l'effacement accidentel de la Table des Partitions. »
  • Photorec est un programme de récupération de données conçu pour récupérer des images perdues provenant de carte mémoire d'appareil photo ... Il peut aussi récupérer de nombreux fichiers perdus, tels que de la video, des documents et des archives stockés sur un disque dur ou sur un CD-ROM.

Quoiqu'il arrive, ne tentez pas n'importe quoi avec votre disque, vous pourriez compromettre une possible restauration...

Conclusion

Avec un peu de bon sens et un peu de pratique, vous serez bon pour emmener vos photos / données avec vous pour des années...

Dans un prochain article, je présenterai un script qui permet d'automatiser la sauvegarde sur plusieurs supports.

Liens

Le 24/11/2010 : Ajout des liens des articles de Lense

Onglets dans une seule instance de Gvim

Voici une mise à jour d'un script bash pour Gvim d'un précédent article permettant d'ouvrir tous les fichiers dans une seule instance de Gnome Vim, cette version vient corriger des problèmes d'ouverture de fichiers lorsque ces derniers inclus des espaces et permet d'ouvrir une instance par utilisateur.

Comme pour le précédent script, il s'agit de remplacer le binaire gvim par le script en question, donc, commencez par exécuter la commande suivante :

$ mv /usr/bin/gvim /usr/bin/gvim-bin

Puis, créez un fichier /usr/bin/gvim et copier le code suivant :

#!/bin/bash
# 2010-09-09, hugo
GVIM_PATH='/usr/bin/gvim-bin'
SERVERNAME=$UID

ARGS=''
IFS=$'\n'
for file in $*
do
    # Skip arg
    if [ "${file:0:1}" = '-' ]
    then
        ARGS="$ARGS ${file}"
        continue
    fi

    # Open file in new tab
    $GVIM_PATH --servername $SERVERNAME -p --remote-tab-silent $file

    # Stand by while server is creating
    while true; do
        $GVIM_PATH --serverlist | grep $SERVERNAME
        if [[ $? == 0 ]]; then
           break
        fi
    done
done

Notez que si votre distribution met à jour gvim, il vous faudra recommencer la manip.

- page 1 de 14