Salut à tous,

Micro news pour vous prévenir d’une nouvelle promo TI sur les eZ430-Chronos : -60%  !

Ce qui nous fait la montre à  23.2$ au lieu de 58$ !! Frais de port compris comme d’hab chez TI :)

Comme je l’ai précisé dans ma précédente news, bientôt programmable sous Energia (donc aussi facilement qu’une Arduino)

La news TI

Offre valable jusqu’au 14 juillet on dirait, donc ne trainez pas trop non plus ;)

A bientôt !

 

[News] Projets en cours

Publié: 8 juin 2014 dans Non classé

Salut la compagnie !

Longtemps que j’ai rien publié … Et pour cause plus j’avance sur mes projets plus j’en trouve d’autres à faire !!

Du coup je vous propose un petit tour d’horizon de ce qui m’occupe ces temps-ci, si quelque chose vous intéresse plus que le reste dîtes le moi j’essaierai de booster ce projet ;)

CNC v2

Un des sujets les plus visité sur mon blog et pourtant celui dont je suis le moins fier xD mon premier prototype n’est vraiment pas fiable, j’en ai marre de galérer … Du coup je pars sur une structure en profilé aluminium ! Et en fait au final c’est pas plus cher et bien plus facile à monter. Le truc c’est de passer par motedis.fr : vous pouvez commander les profilés à très bon prix et ils vous les taillent à la longueur souhaitez !!

Petit screenshot :

cncv2

Mais où sont les glissières me direz vous ? Et bien il n’y en a pas … J’ai "découvert" une propriété intéressante avec les roulements à bille de 19 mm, et les profilés alu en 20×20 :

_DSC3602

 

Les angles ne frottent pas ! Alors j’ai déjà essayé de faire un prototype, c’était vraiment pas mal, mais il y avait encore quelques points qui me chagrinaient et je pense avoir réussi à les résoudre, tout en ayant trouvé des moyens de réduire le budget. Alors autant vous le dire, tout compris ce sera très difficile de rester sous les 200€ … Quoique, hors broche (je me suis fait plaisir j’ai pris une Kress 1050) le budget pour le bâti d’après mes évaluations est de l’ordre de 130€. J’ai trouvé (je pense, pas testé encore) un bon plan pour des NEMA 23, et un moyen de gratter encore sur l’électronique. Donc peut-être bien qu’on peut rester sous les 200€ …

CC430 et Energia

J’ai bossé pendant plusieurs semaines sur le support des CC430 sur Energia. Les CC430 sont des msp430 combinés avec un CC1101 et d’autres modules très intéressant. Au passage on gagne en RAM et en flash. Ces µC sont vraiment passionnants. Pour l’instant les fonctions de bases semblent opérationnelles et j’ai développé une lib pour contrôler la partie RTC du chip (forum sur le sujet ici). J’ai également bidouillé une lib dérivée de celle de TI pour piloter le driver de LCD. Mon support de travail est évidemment une montre TI eZ430-Chronos. Au passage, voyant mes efforts sur le forum 43oh, un mec de TI m’a envoyé gratuitement une autre eZ430-Chronos !! :)

_DSC3598

Le sujet sur le forum 43oh 

J’ai également énormément bossé sur une lib pour la partie radio, que je voulais commune à Arduino, Energia, CC1101 et CC430. Mais j’ai un bug quelque part qui me rend fou et j’ai décidé de faire une pause avant la crise de nerf …

Pour m’aider dans le développement j’ai acheté deux boards de chez Olimex :

_DSC3597

_DSC3600

Fablab LABSUD à Montpellier

Après une visite hier je suis un membre du fablab de Montpellier :)

Ca faisait un moment qu’ils existent mais comme j’habite à Alès et que leurs horaires d’ouverture étaient le mardi soir et le vendredi soir, c’était très difficile pour moi de m’y rendre … Mais ça, c’était avant comme dirait la pub, car désormais il y a également le samedi après-midi ! Bilan : une équipe super sympa de passionnés, présidée par M. Civade (j’étais ravi quand j’ai appris ça puisque son blog m’a particulièrement aidé dans mes débuts de CNC). Ils ont un équipement de fou, la mairie de Montpellier ayant besoin d’un fablab pour avoir des certifications "super ville high tech". Dernière acquisition reçue la semaine dernière : une découpeuse laser 130W ! Et je vous raconte pas l’espace de travail de cet engin … Les locaux sont gigantesques et on trouve également des fraiseuses CNC, un plotter, une découpeuse vinyl, une salle électronique et bien évidemment plein d’imprimantes 3D.

Leur site : http://www.labsud.org

Nouvelle page "où acheter"

J’ai ajouté une nouvelle page pour recenser mes boutiques habituelles pas forcement connues et qui pourtant en valent sacrément le coup !

Librairie conversion température

J’ai créé une petite lib qui permet les conversions des thermocouples K t des pt100 :

https://github.com/battosai30/TempConvLib

Lib TMC222

Encore une librairie, qui permet elle de piloter un TMC222 qui permet de contrôler des moteurs pas à pas i2c. J’en avais besoin pour un projet je vous le fais partager :

https://github.com/battosai30/TMC222

Elle n’est pas super aboutie et je n’ai pas tout testé, une partie du fonctionnement du chip m’échappant encore … Mais elle fait le job pour le moment :)

En vrac

D’autres sujets à traiter :

- test d’un analyseur logique, copie chinoise des Saleae à – de 10€.

- tuto sur un débitmètre d’eau.

Autre matériel acquis :

Launchpad F5529

_DSC3596 _DSC3601

Touch BoosterPack

_DSC3599

Conclusion

Vous le voyez, beaucoup (trop) de sujets en développement, et encore je vous dis pas tout … Mais j’essaierai de traiter chaque sujet plus longuement ne vous inquiétez pas ;)

[News] Promos TI

Publié: 30 avril 2014 dans News
Tags:, , ,

Bonjour à tous,

 

Petite news pour vous signaler des promos chez Texas Instrument.

Elle concerne deux booster-pack (shield sauce TI) : 19.99$ – 50% !

- le LCD : un shield avec un LCD monochrome 96×96 + deux sliders capacitifs.

- et le capacitive sense.  9.99$ – 50% !

 

Et deux launchpads :

-le G2 : le plus basique.  9,99$ – 15%

- et le F5529  : plus puissant, usb … 12.99$ -15%

Et ces prix sont frais de port inclus ;)

 

 

Déjà que ces plateformes étaient plus qu’abordables :)

Je rappelle que le launchpad G2 c’est un peu l’Arduino de TI (en plus puissant et plus pratique  je trouve, le seul vrai reproche qu’on peu lui faire c’est les mémoires un peu justes, mais prenez le F5529 alors ;) ).

Je rappelle également qu’avec Energia vous disposez d’un environnement identique à Arduino pour les launchpad TI. D’ailleurs je vous prépare quelques surprises dans le domaine pour très bientôt (vous regretterez de ne pas avoir acheter une montre eZ430 quand je vous ai dis qu’elles étaient en promo ;))

Bref pour avoir les codes de réduc, les liens en boutique et la news complète c’est ici

A bientôt les amis !

Bonjour à tous,

C’est une question très courante quand veut débuter en Arduino (et donc en générale quand on veut aborder le monde des microcontrôleurs) : quelle carte choir ? UNO, MEGA, DUE, Nano ??!

Comprendre

Très souvent le débutant fait les mêmes erreurs qui le guide vers un mauvais choix de première carte :

- il a déjà un projet en tête : et oui mais l’Arduino, même si ça se veut être la plateforme de développement la plus simple à mon sens, ça reste de la programmation et de l’électronique. Et avant de vouloir courir il faut savoir marcher ! Très souvent sur le forum Arduino on croise des choses du genre "je voudrais faire un quadricoptère, mais je comprends pas ce que c’est que le PWM". Bah oui mais ça peut peut-être sembler barbant mais commencer à jouer avec des led, des boutons, des photorésistance … Permet d’apprendre les bases indispensables et ça prend pas forcement plus de temps au final parce que ça va peut-être prendre du temps au départ mais qui sera vite rattrapé. Ne pensez pas que vous serez plus malin que les autres.

- "Je vais prendre celle qui en a le plus dans le slip au cas où" : perso, j’ai une MEGA, et elle ne m’a jamais servi … A moins d’avoir des projets bien particuliers, on peut faire énormément de choses avec une Nano ou une Micro, il existe des tas d’extensions possibles pour parer à toutes les situations. On croit bien souvent que le système est lent : croyez moi, le jour où vous amènerez votre UNO à ces limites, c’est soit que vous aurez atteint un certain niveau, soit que vous avez un code foireux ;)

Les fonctions de l’Arduino

Je pense qu’il est bien important de comprendre les fonctions de l’Arduino pour comprendre ce que l’on achète.

Tout d’abord il faut comprendre ce qu’est exactement Arduino : ce n’est pas juste un ensemble de carte, c’est un environnement : des cartes ET une interface de programmation. Ces cartes (puisque que c’est le sujet qui nous interesse ici), il y en a plusieurs mais le principe est toujours le même : on trouve un microcontrôleur (= le cerveau) et une série de composants nécessaires à son fonctionnement, le tout monté sur un circuit imprimé qui facilite le développement : bornier, possibilité d’empiler des "shields" pour ajouter des fonctions, entrées pour différentes alimentations … Donc une carte, c’est un ensemble de choses qui vont lui donner ces caractéristiques finales, mais le principal dans l’histoire reste évidemment le microcontrôleur : c’est lui qu’on va programmer et qui définit le plus les possibilités données à la carte.

Voyons maintenant ce que peut faire un microcontrôleur …

Les entrées/sorties digitales

C’est LA fonction première d’un microcontrôleur : avec une simple ligne de code, on peut passer une sortie du µC (microcontrôleur) à 5V ou à zéro volt. Quelle intérêt ? Alimenter une led au travers d’une résistance, faire sonner un buzzer, commander une électrovanne  un moteur … En gros c’est une sorte "d’interrupteur" : lumière allumée ou éteinte.

Maintenant on peut faire l’inverse : lire une entrée de l’Atmega. Est-elle l’état haut (=5V) ? Ou à l’état bas (=0V) ? Quelle utilité ? Détecter l’appuie sur un bouton, un son, un signal d’un détecteur infrarouge … Bref tout ce qui prend fourni des signaux tout ou rien (= "ma lumière est allumée ou bien éteinte ?")

Les entrées analogiques

Une fonction également très importante d’un µC (s’il en est capable, ce qui est le cas de toutes les arduinos) est la mesure analogique : c’est très simple à expliquer, c’est comme si vous aviez un voltmètre. Une ligne de code et hop vous connaissez la tension sur tel ou tel pin analogique. Quelle utilité ? Lire tout un tas de capteurs : mesurer la luminosité, la température, l’humidité, la tension d’une batterie …

Les sortie PWM

La on va pouvoir générer une tension "pseudo variable" : en gros il s’agit de faire passer un pin de 0V à 5V puis de 5V à 0V très rapidement(tellement que c’est imperceptible pour l’être humain), et ce, avec une répartition du temps passé à 5V et à 0V variable mais bien évidemment commandée dans le code :

C’est comme un variateur de lumière : la luminosité varie simplement pour nous, mais si on dilatait le temps, on verrait des variations dans la luminosité car en réalité le courant circule un temps puis s’arrête. L’oeil humain n’étant pas assez rapide pour distinguer ces variations, l’illusion fonctionne. Le PWM c’est un peut pareil : un voltmètre lira effectivement une tension variable car la plupart sont équipés de filtre en entrée qui lissent les créneaux de tension. Mais il faut garder à l’esprit que ce n’est pas une réelle tension fixe : si le système sur lequelle on le branche est assez rapide, il ne verra que du 0V ou du 5V. Par exemple si je branche une sortie PWM sur une entrée analogique de l’Arduino, et bien vous aurez un coup une mesure à 0V et un autre à 5V.

Les ports de communication

Il existe trois principaux mode de communication : la liaison série, le SPI et l’i2c. Elles servent principalement à communiquer avec l’ordi (ça c’est pour la liaison série) et à communiquer avec d’autres composants (SPI et i2c). En fait derrière ces noms un peu barbares c’est toujours le même but : échanger des données (et qui sont toujours des 0 et des 1), il n’y a que la manière qui change. Je ne vais pas trop développer ce sujet, mais ce qu’il faut retenir :

- SPI ou i2c : ces deux modes permettent de communiquer avec presque autant de "clients" que vous voulez avec un seul port. Quelque part, deux i2c c’est inutiles, c’est comme avoir deux bouteilles de whisky qui ne se vide jamais.

- Série : deux points à retenir. Le premier, c’est que la plupart des Arduino n’ont qu’un seul port série et qu’il sert à la liaison avec le PC. A ce moment la, un composant (un Atmega32u4 pour les carte récentes, un FT-232 sur les anciennes) fait l’intermédiaire pour que le branchement se fasse en USB (mais sur le PC la carte apparaît bien comme un port série). C’est par ce biais que s’effectue la programmation, et éventuellement le dialogue avec la carte. On peut alors lui transmettre des commandes et elle peut nous envoyer des infos. On peut cependant exploiter ce port série pour communiquer avec d’autres clients, mais en liaison série il n’y a que deux dialogueurs (enfin en réalité on peut faire des dialogues à plusieurs, mais c’est assez complexe). Donc utiliser le port série pour communiquer avec une autre carte par exemple, c’est perdre la liaison avec le PC. Le second point c’est qu’il s’agit de série TTL à différencier du série RS-232 qu’on trouve sur les anciens PC maintenant (le fameux port COM). C’est presque la même chose mais les tensions n’ont rien à voir (0-5V pour le TTL et -12/+12V pour le RS-232) donc brancher du RS-232 sur une Arduino ça va la griller, et les polarités ne sont pas les mêmes (un 0 en TTL est un 1 en RS-232 et vice-versa). C’est pas forcement hyper important comme remarque mais c’est un point qui n’est pas forcement clair et le terme "série" est en générale utilisé à tord et à travers sans distinction.

A noter : dans toutes les fonctions que je viens d’évoquer, chacune n’est pas forcement disponible sur tous les pins du µC. Si je prends la UNO par exemple, j’ai 6 pins analogiques (qui sont aussi digitaux) : sur les autres pins de la carte je ne pourrais pas faire de mesures analogiques.

"Ouais mais tu nous emmerdes on sait toujours pas quoi choisir !"

Tout ce blabla pour qu’on arrive à mon conseil : prenez une UNO (et pas une UNO cms). Pourquoi :

- elle a toutes les fonctions nécessaires et largement assez dans le slip pour faire tous ce que vous voulez.

- vous pouvez changer l’atmega : si un truc doit griller (et bien évidemment un débutant est le meilleur candidat à ce que ça arrive) c’est l’Atmega. Si vous prenez une Léonardo et que vous flinguez l’Atmega32u4, vous avez intérêt à avoir un pote bien équippé pour qu’il vous dessoude ça et en remonte un neuf … Donc si ça vous arrive toute la carte est bonne pour la poubelle. Alors qu’une UNO classique l’Atmega328P est monté sur un support et qu’ont peut l’enlever à la main. Donc en cas de mauvaise manip, il n’y a que ça à changer.

- ça vous servira toujours : il vaut mieux racheter plus tard une MEGA ou autre, une UNO on s’en sert toujours pour faire des test, programmer des Atmega pour les monter sur ses propres montages en standalone (comprenez qu’on peut juste prendre l’Atmega et le monter sur ses propres circuit intégré, ce que j’ai fait ici par exemple mais avec un Atmega328 en version cms = monté en surface)

Fortement déconseillée : la DUE. Ce n’est pas la même architecture au niveau du µC (c’est un ARM), pour faire simple : si sur la programmation ça ressemble à la même chose que sur une Arduino "normale", derrière ça n’a rien à voir. Donc bon nombre de librairies sont incompatibles, et pas grand monde (même la team Arduino) ne bosse dessus donc pas grand espoir que ça change. En plus elle est en 3,3V : envoyer 5V sur une entrée et bye bye le ARM … Même si le 3,3v est voué à se démocratiser (on voit même apparaître de plus en plus de 1,8V !) ça le rend plus vulnérables aux erreurs de débutants. En plus elle est chère (+ de 35€) … Si vous tenez à faire du ARM tout en gardant la simplicité de la programmation Arduino, prenez la Stellaris Lauchpad de Texas instrument : 9,9$ et compatible avec Energia, un logiciel de programmation basé sur Arduino.

Arduino UNO (Atmega328P au format DIP) => c’est elle qu’il vous faut !

Arduino UNO CMS ==> Pas bbbiiieeennnn

Où acheter ?

Alors je suis un grand acheteur sur ebay et dx.com. J’ai acheté énormément de matériel en provenance de Chine sur ces deux plateformes, jamais déçu. Alors oui je sais c’est pas cool pour les petits français. Mais bon regardez sous tous les appareils électroniques chez vous et ça sera marqué made in China …

Je vous recommande plutôt DX car sur ebay, on trouve un peu plus de choses "exotiques". Car ce que vous achèterez si vous commandez en Chine, ce sont bien évidemment des clones (pas des copies puisque Arduino est OpenSource, comprenez que rien n’es breveté donc chacun peut dupliquer des cartes Arduino et les vendre) et les fabricants sont multiples et peuvent essayer de grappiller sur les composants : un régulateur moins costaud, un convertisseur USB-Serie moins performant … Et sur Ebay, on peut trouver plein de vendeurs différents avec pas forcement un bon suivi. Sur DX, il y a des commentaires sur tous les articles et ils n’ont pas 10 000 ref différentes pour la UNO. Ils ont bien plusieurs modèles de UNO, mais elle seront surement toutes fiables car ils ne s’amuseraient pas à en mettre des mauvaises car la note du produit serait fortement entachée. Après évidemment il faudra se montrer patient (2-3 semaines en moyenne).

Si vous êtes pressé ou que la Chine vous fait peur, bien sûr il y a des bonnes crèmerie en France : Semageek, Farnell, Snootlab … Et la vous aurait la vrai board officiel. Mais pour au moins 2 fois plus cher. A vous de voir !

Bonjour à tous,

Bon je suis pas encore sûr du nom (du tout même) mais je vais vous présenter un projet qui m’a vraiment pas mal occupé, même si on dirait pas forcement !

Principe

La philosophie de ce projet est très simple : je me suis rendu compte dans mon travail qu’on en revenait très souvent aux mêmes fondamentaux, et que même si idéalement il faudrait créer une ou plusieurs boards par projet, au final 90% du temps on fait toujours appel aux mêmes "briques" électroniques : un microcontrôleur en liaison avec des capteurs et des actionneurs.

J’ai donc entrepris de créer un ensemble de développement, capable de satisfaire un maximum de besoin et ayant une apparence professionnelle. Et c’est ce dernier point que j’ai particulièrement recherché car bien souvent dans le DIY on voit des projets avec des fils partout, des empilements de shield  … Bref pas propre !!

Pour ce faire, le cahier des charges s’est établi comme suit :

- l’ensemble doit pouvoir s’intégrer dans un boitier type DIN (j’en parle plus tard),

- une carte mère rassemblant µC + bouton + écran + buzzer + connecteur pour les autres board + protection/filtrage d’entrées analogiques + autre si la place,

- un prix abordable : et oui si c’est pour sortir l’ensemble à 150€ ça vaudra moins le coup …

- possibilité de brancher des shields pour étendre les fonctionnalités,

- de la place en façade et à l’arrière pour arranger les connecteurs et/ou les potars et/ou autre (led, boutons "cachés", photo résistance, récepteur IR …) comme on veux,

- open source et facile d’utilisation : je veux rester dans un environnement type Arduino.

Le choix du boitier

Je voulais un boitier de ce type :

C’est couramment sous cette forme qu’on trouve les contrôleurs du marché (temperature, vitesse moteur, humidité …). C’est facile à mettre en place et ça fait propre.

Alors j’en ai testé une palanquée … Car si ça peut paraître mineur, et bien ça ne l’est pas … Pourquoi ? Et bien essayez de prendre un boitier vide commercial et d’assembler différente carte dedans, tout en prenant en compte le fait que justement la configuration de vos carte à l’intérieur va changer, et qu’il faut également que vous preniez en compte le fait qu’il y a des connecteurs à installer …

Et puis surtout, trouver des boitiers de ce type, c’est pas une synécure …

Bref c’est un beau mic-mac et j’ai fini par en trouver un, et pas cher en plus (je ne l’avais pas mentionné mais évidemment le tarif est entré en ligne de compte) :

http://www.tme.eu/fr/details/op48x96l057/boitiers-de-panneaux/#

Vous pouvez y aller, c’est en Pologne mais je n’ai eu aucun problème et le matos est de qualité.

La carte mère

WP_20140128_002

Après moulte questionnement, j’en suis arriver à travailler avec un écran de Nokia5110 (PCD8544). Ce choix s’est fait par ses dimensions, sa résolution et son prix. Je ne voulais pas de 7-segment car trop gros, trop gourmand … Pas de caracterères LCD, pour quasiment les mêmes raisons. De plus le PCD8544 est bien documenté et plusieurs librairies existent.

Le micro est évidemment un Atmega328p :)

Pour l’instant on peut y souder 4 boutons. J’y ai ajouté une mémoire FM24C04B, pilotée en i2c. Pour résumer c’est une mémoire non volatile (comme l’EEPROM ou la flash) de 4kb qui peut supporter 10 puissance 12 écritures. Grosso-modo, même si vous écrivez sur le même segment toutes les ms, elle durera plus de 30 ans … Le rétroéclairage est piloté en PWM via un mosfet. Je n’ai pas intégrer de FT232RL surtout parce la place me manquait, et aussi parce qu’on en a pas forcement besoin en dehors de la programmation (qui peut se faire via le port ISP présent en plus).

Les entrées analogiques sont protégées et filtrées via un simple circuit RC + zener 5,1V.  Au passage il est possible de faire un diviseur de tension (pour interfacer avec une entrée 0-10V par exemple) en changeant la résistance de pull-down de 100k.

WP_20140128_003

WP_20140128_001

WP_20140307_001 WP_20140307_003 WP_20140307_004

 

WP_20140307_00'

Voici les fichiers eagle (pas forcement complet au niveau noms et valeurs des composants).

A noter également que je n’ai pas terminé les façades avant et arrière ce qui explique l’aspect

Carte alimentation

WP_20140128_004

Alors je vais être honnête, pour cette première version je visais un certain projet et je n’ai pas pu atteindre le degrés de "modularité pour tous" suffisant. Mais j’ai quand même créer une carte d’alimentation capable de prendre en charge suivant les composants soudés sur le PCB : 230VAC, 12VDC ou 36-15VAC/VDC. Elle comporte le FT232RL et un connecteur sur l’arrière pour envoyer i2c, 5V et 12V. Enfin il y a une entrée analogique vers A0.

L’avenir

Alors je compte pas m’arrêter la : je travaille déjà sur d’autres shields pour cette version 1.0 mais j’ai déjà la 2.0 dans la tête. Où j’en suis dans mon raisonnement :

- Microcontrôleur ARM M4 Tiva C TM4C123 le même que celui du launchpad Tiva C :

http://www.ti.com/ww/en/launchpad/launchpads-tivac.html

Pourquoi ? La puissance (je vous laisse regarder la fiche technique mais c’est une tuerie (80 mhz, 256k de flash 32 kb de RAM, 4x SPI, 4x i2c, port USB Host/Device/OTG …) et surtout, le point qui me fait faire vraiment ce choix, compatible avec l’IDE Energia, le Arduino-like pour les launchpad. Bon il ne prend pas tout en charge encore (notamment l’USB sous exploité), mais j’ai trouvé quelques "subterfuges" pour passer outre, j’en parlerai bientôt dans un autre article. Et TI est particulièrement actif dans le monde du DIY et collabore notamment beaucoup avec les developpeurs : les projets Energia par exemple vont pouvoir être importer dans Code Composer Studio v6. Avec les Stellaris et les Tiva C ils fournissent quantités de librairie, notamment en USB ce qui simplifie énormément le travail des codeurs. Le prix des launchpad est ridicule. Bref Texas Instrument semble une "bonne voie" dans laquelle s’engager :)

- ce choix me permet d’intégrer une horloge en temps réel puisque intégrée dans le Tiva C ;)

- possibilité d’utiliser d’autres écrans, d’autres configuration de clavier : besoin de plus de bouton ? un joystick ? d’un écran plus petit ? bref un petit coup de fer à souder et hop ;)

- ajout d’un ADC 24-bits, de la prise en charge Ethernet via ENC28j60 et d’un DAC : la nouvelle organisation que je prévois devrait me laisser plus d’espace, donc je vais pouvoir "gaver" l’ensemble pour accumuler un max de fonctionnalités, en tout cas il y aura la place sur le PCB.

Pour le reste comment je vois les choses : fourniture de cartes personnalisées : j’aimerais pouvoir proposer le concept à la vente, avec à la commande pouvoir décider de ce dont vous avez besoin. Pas besoin de l’ethernet ? Bin jle soude pas et le prix est déduit … Et vous recevez un "kit" qu’il ne reste plus qu’à programmer et qui fait pro. Et bien sûr le tout à un prix raisonnable évidemment ;)

Pour les intéressés il me reste pas mal de cartes (seeedstudio oblige) que je peux revendre ;)

Bonjour à tous,

Alors en ce moment je joue pas mal avec mon Stellaris Launchpad et je vous propose aujourd’hui une méthode pour se passer du programmateur. L’intérêt ? Et bien on peut imaginer des montages avec un ARM en standalone sans avoir besoin d’y intégrer un programmateur. Au passage, Texas Instrument propose directement des bootloaders pour flasher via USB, Série, SPI et même i2c. Sur les Tiva C série 129 il y en a même équipés de l’ethernet et on peut flasher par ce biais. La doc de TI sur le sujet 

Ce billet va traiter d’une autre méthode, même si elle utilise l’USB. Au hasard du net j’ai trouvé le boulot d’un type  et j’ai décidé de tester et d’adapter la méthode pour Energia.

Par ailleurs, n’ayant qu’un Stellaris Launchpad sous la main, mon tuto a été réalisé sur cette carte mais normalement ça marche aussi pour les Tiva C Launchpad, moyennant peut-être juste quelques adaptations. Enfin il se destine pour les mêmes raisons aux Windows-iens ;)

1ère étape

Dans le github de l’auteur, dossier prebuilt, récupérer boot_msc_usb.bin

Si vous ne l’avez pas, récupérez LMFlashProgrammer ici. C’est un outil de programmation très simple mais très efficace fourni par TI pour ses ARM. Au passage si vous jouez avec les différents types de bootloader, ce programme permet d’uploader un programme par n’importe quelle voie, même l’ethernet !

On va maintenant flasher le Launchpad avec le booloader. Branchez votre Launchpad par l’USB Debug et lancer  LMFlashProgrammer :

Dans "quick set", selectionnez "LM4F120 Launchpad" si vous avez un Stellaris LaunchPad et "TM4C123G Launchpad" si vous avez un Tiva C launchpad, puis dans l’onglet "Program" allez chercher le fichier boot_msc_usb.bin préalablement téléchargé. Si vous n’avez touché à rien d’autre alors tout est bien configuré.

Cliquer sur Program, et voila ;)

2ème étape

Vérification : brancher votre launchpad via USB Device cette fois et n’oubliez pas de basculer l’interrupteur de sélection d’alim sur Device. Presser le bouton SW2 et tout en le maintenant enfoncé appuyez puis relâchez le bouton reset. Normalement la led rouge se met à clignoter, signe que le bootloader s’est lancé et votre launchpad apparaît sur votre PC comme une clé USB.

3ème étape

"Ah bin t’es marrant toi je mets quoi dessus maintenant ?"

J’y viens j’y viens …

Il faut copier votre program au format .bin. En réalité, quelque soit votre environnement de développement (Energia, CCS, IAR …) votre programme est toujours transformé en fichier binaire, compréhensible par le µC (peut-être que vous avez déjà croisé des histoires de .bin et des .hex). C’est fruit d’une série d’étapes dont on a pas toujours connaissance. Exemple sur Arduino, on clique sur upload et hop "comme par magie" il se retrouve sur la carte. Vous vous doutez bien que c’est pas aussi simple que ça derrière le rideau …

Bref, après une modification mineure, on va pouvoir récupérer le .bin de votre programme codé sous Energia, pour le copier sur le Launchpad comme si on copiait une musique sur son lecteur mp3.

Donc aller dans votre dossier Energia\hardware\lm4f\cores\lm4f et ouvrer dans notepad ou notepad++ le fichier lm4fcpp.ld

Il faut modifier la partie concernée du fichier comme suit :

MEMORY
{
// flash (rx) : ORIGIN = 0x00000000, LENGTH = 0x00040000 // ligne d’origine
flash (rx) : ORIGIN = 0x00004000, LENGTH = 0x0003c000 // ligne pour upload via USB Storage mass
ram (rwx) : ORIGIN = 0x20000000, LENGTH = 0x00008000
}

Le bootloader étant installé sur la flash il faut "décaler" la plage de programmation allouée au programme, sans ça il ne démarrera jamais. Attention : si vous essayer de repasser par le port debug pour uploader votre programme via Energia, ça ne marchera plus, il faut remettre la ligne d’origine, c’est pour ça que je commente/décommente les lignes concernées dans ce fichier, au moins pour passer d’une méthode à l’autre j’ai juste à faire ça. Par ailleurs, écrire un programme avec la configuration d’origine va effacer le bootloader et il faudra recommencer depuis l’étape précédente.

Maintenant sur Energia, ouvrez votre programme, cliquer sur Vérifier pour lancer la programmation. Dans l’espace en bas apparaît une série de lignes. Regardez à la fin, il apparaît un certain fichier …

energia bin

Et oui c’est notre .bin ! Récupérer le et copier le sur votre Launchpad. Appuyer sur Reset et normalement il se lancera ;)

Par ailleurs je ne l’ai pas précisé mais ce .bin est tout à fait uploadable via LM Flash Programmer avec le Launchpad branché sur la prise USB Debug (ou par les autres voies citées en intro si vous avez mis un autre bootloader), à condition cette fois d’utiliser la config d’origine du fichier lm4fcpp.ld

Optimisations

Alors j’avoue que pour l’instant mes connaissances sur tout ce qui touche à la compilation, au linker, au makefile … est très limitée. Il y aurait surement une méthode plus simple pour spécifier à la compilation qu’on veut le .bin, donc modifier le fichier .ld automatiquement et mettre le .bin sur le bureau par exemple.

Sur CCS

Sur CCS la méthode est quasiment la même, il suffit de modifier le fichier nom_de_votre_projet.cmd  comme ceci :

//#define APP_BASE 0x00000000 // originale
#define APP_BASE 0x00004000
#define RAM_BASE 0x20000000

/* System memory map */

MEMORY
{
/* Application stored in and executes from internal flash */
//FLASH (RX) : origin = APP_BASE, length = 0x00040000  // originale
FLASH (RX) : origin = APP_BASE, length = 0x0003c000
/* Application uses internal RAM for data */
SRAM (RWX) : origin = 0x20000000, length = 0x00008000
}

/* Section allocation in memory */

SECTIONS
{
.intvecs: > APP_BASE
.text : > FLASH
.const : > FLASH
.cinit : > FLASH
.pinit : > FLASH
.init_array : > FLASH

.vtable : > RAM_BASE
.data : > SRAM
.bss : > SRAM
.sysmem : > SRAM
.stack : > SRAM
}

__STACK_TOP = __stack + 1024;

Faites ensuite clique droit sur votre projet > properties puis dans  la colonne de gauche "Build" puis onglet "Steps" et enfin au champs "Command" dans Post-Build steps  ajoutez ces lignes :

"${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin.bat" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/armofd.exe" "${CG_TOOL_ROOT}/bin/armhex.exe" "${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin.exe"

Lancez le build et dans votre dossier de projet se trouvera le .bin ;)

Si vous avez des questions n’hésitez pas les commentaires sont la pour ça ;)

[Tutorial] Réparer sa TV Samsung

Publié: 15 janvier 2014 dans Non classé

Bonjour à tous amis bricoleurs :)

Alors un court article pour raconter une mésaventure qui n’a pas durer bien longtemps.

Alors il y a très longtemps mon frère m’avait parler de ce problème, et dès que ma TV s’est mise à déconner, ni une ni deux je n’ai pas hésiter. Le problème est assez connu, on trouve pas mal d’info sur le net, autant faut-il déjà en avoir eu vent.

Les symptômes : votre TV ne s’allume plus ou a du mal (mon cas) , l’écran scintille … Bref en réalité pour une même cause les conséquences peuvent prendre bien des formes.

La cause : des condensateurs au niveau de l’étage d’alimentation rendent l’âme. Et une alimentation qui pare en vrille peut avoir des répercutions sur n’importe lequel des sous-systèmes qu’elle alimente, d’où la variété de problèmes constatés.

Donc hop je démonte et bingo :

WP_20140113_002

WP_20140113_003

WP_20140113_010

On voit assez nettement que 3 condos on fait de la "gonflette", signe typique de leur décès. A la rubrique nécrologique on trouve donc  trois 820 µF 25V.

Quel condensateur prendre pour le remplacement ?

Alors tant qu’à faire on va pas refaire la même erreur que le fabricant : si ces condensateurs rendent l’âme c’est qu’ils ont été mal dimensionnés. Donc plutôt que des 25V j’ai mis des 35V et 40V (j’ai fait de la récup). La règle absolu dans tous les cas c’est de prendre un voltage au moins équivalent. Mettez en un plus faible et votre condensateur va très certainement exploser ! Après pour la capacité il faut prendre idéalement la même, perso je n’en avais pas donc j’ai mis des 470µF pour deux des trois (le troisième a eu droit au 820 µF) et ça marche très bien. Et dernier point, bien évidemment faîtes attention à la taille du condensateur qu’elle soit à la fois compatible par rapport aux autres composants, et également qu’il ne soit pas trop grand auquel cas vous ne pourriez  plus remonter le panneau arrière de votre TV …

La réparation est donc enfantine : on démonte le panneau derrière la TV, on débranche les quelques nappes, on dévisse la fameuse carte, on joue du fer à souder pour changer les condos et on reprend les étapes en sens inverse.

Note importante : faîtes bien évidemment attention aux polarités des condensateurs ! Inversion = explosion directe

Une fois réparé :

WP_20140114_011

Pourquoi foutre des condensateurs sous/mal dimensionnés ?

Et oué on est quand en droit de se dire qu’ils abusent chez Samsung, c’est quand même leur boulot ! Pour moi trois explications possibles et cumulables :

- Obsolescence programmée : c’est à la mode, fini les produits qui durent 20 ans. Société de consommation quand tu nous tiens … Et insérer volontairement des "points faibles" dans les appareils qui lâchent quelques temps après la garantie c’est devenu malheureusement monnaie courante …

- Limiter les coûts : plus la capacité ou le voltage est élevé, plus le condensateur coûte cher. Vous allez me dire "pour 20 centimes ?! Sérieusement ??" Et oui, 20 centimes multiplié par des centaines de milliers de produits (en plus que ça permet de limiter le nombre de composants utilisés et donc d’en commander plus à la fois et donc de réduire encore plus le prix à l’unité) ça commence à faire des sommes non négligeables (faut bien payer les amendes à Apple :p )

- Les spécifications des fabricants de condensateur se réduisent de plus en plus. En effet alors qu’avant un fabricant donnait son condo à 25V, il pouvait en réalité en supporter plus. Maintenant on est vraiment proche des 25V …

Bref vous le saurez si ça vous arrive : inutile de jeter votre TV à la benne !

Quelques liens utiles :

http://www.conseil-creation.com/electronique/tv_samsung_panne_alimentation.php

http://tendactu.fr/votre-tv-samsung-en-panne-normal-cetait-prevu/867/

http://forum.ubuntu-fr.org/viewtopic.php?id=736861