TI ez430-chrono

Bon vous avez fini par réveiller le geek qui dormait en moi :grrr2: , j’en ai commandé une (chez TI pour 49$ port compris, plutôt que chez mouser pour 46€ - avec 20€ de port !). La 868MHz.

J’avais déjà un stick USB EZ430 sur lequel j’avais fait quelques bricoles, mais il manquait un affichage. Là ca a l’air top, entre l’afficheur, l’interface RF, et les différents capteurs, il y a de quoi occuper les journées non volables à bidouiller, et en plus ca donne l’heure, que demander de plus !

Reste à espérer que l’environnement de dev sous linux marche bien. Bah au pire ça tournera sous virtualbox !

A+,
Marc

TI ne donne rien pour le dev sous linux, mais ça marche très bien avec gcc.

Regarde le projet OpenChronos qui a porté le code fournit par TI pour fonctionner avec gcc. Le JTAG marche auss avec msp430-jtag

Mouais, avec l’EZ430 je l’avais joué flemmard à l’époque, pour les quelques bricoles je suis resté sous leur environnement de dev où y a qu’à cliquer.

Mais je sens que là je vais me repencher sur le toolchain gcc pour ce proc, ça m’évitera de rebooter ou chercher comment coller le port usb dans virtualbox :grat:

Marc

ps: Mise à jour TI ce matin, commande expédiée :pouce:
pps: Merci pour le lien OpenChronos, j’y jetterai un oeil le moment venu

Hébin c’est des rapides chez TI, livré ce matin par FedEx en provenance du Texas… :pouce:

Donc petite prise en main de l’engin sans modifs pour l’instant, c’est assez intuitif à l’usage je trouve, quoi que des fois les boutons sont un peu long à la détente, genre pour sortir du règlage alti ou heure. L’afficheur, ben oui faut de la lumière pour le voir, mais bon, on fera avec.

Par contre un truc qui m’étonne en me paluchant la doc, ayant un peu regardé les sources avant - le SCP1000 est déjà compensé en température en interne, et le soft de la montre fait encore une compensation avec la température lue sur le proc, y a pas un loup, là ? Pour voir, j’ai calé l’alti à 200m, montre à 23C, puis l’ai laissé descendre à 20°C -> alti à 195. Rechauffée à 25°C, on atteint 202m. J’ai bien l’impression qu’on peut virer la compensation en température dans le soft.
D’ailleurs ce serait intéressant de comparer la température mesurée du SCP1000 et du processeur.

Bon, un environnement de dev à mettre en place, après j’ai de quoi occuper mes soirées :mrgreen:

:rando:

Sache que tu as tout mon soutien … psychologique !

Parce que pour le reste …

:mrgreen:

Bon en fait c’est re-calibré avec la température du capteur de pression, pas du cpu (celui là est la tempé affichée par contre). Mais c’est toujours aussi superflu…

Dès que j’ai un environnement complet qui marche, j’essaye ca. Pour l’instant, je bricole avec une install de IAR dans un Win2k tournant sous Virtualbox… mais faudrait que je change du virtualbox d’Ubuntu pour avoir le support usb, et pouvoir charger le target :bang: . Un autre jour…

Marc

Ayéeee, ca marche ! :jump:

…ou plutôt re-re-re-marche, après m’être retrouvé plusieurs fois à force de faire des c*nneries avec une montre noire qui ne voulait plus se laisser flasher :grat: …

Marc, j’ai récupéré OpenChronos avant de relire ce thread plus en détail et m’apercevoir qu’il y a un paquet de forks sur github - dans la branche de poelzi il y avait une option vario, mais elle semble plutôt gérer un petit historique duquel je n’ai pas bien saisi l’utilité ? C’est ton bébé je crois ? Celui de fertito je l’ai réperé dans altitude.c et vti_ps.c, pas encore fait de correlation avec un des forks…

Là de suite, je suis un peu paumé dans les différents forks, c’est poelzi le plus à jour ? Pour l’instant c’est ce que j’ai mis sur la montre, c’est déjà sympa par rapport à l’original de chez TI… mais ça ne va pas en rester là :mrgreen:

Marc

oui, la branche chez ‘dkm’ c’est la mienne, et j’y ai intégré le vario de fertito, mais mal. Et je suis complètement pas à jour par rapport à l’original (poelzi). Donc faudrait:

  • que je mette à jour
  • intègre mieux le vario de fertito

Mais pour ça faudrait du temps, et comme j’en ai pas des masses, je le passe sur 2 autres projets… Donc je suis d’aucune aide, en fait :slight_smile:

No souci marc, je m’en sors - je bricole sur la branche poelzi après avoir fait un petit essai avec la dkm/fertito. Pas très convaincu par le son par contre, vraiment faible déjà au sol, j’imagine en vol… et il y a qand même un peu de bruit sur le vario. Je pense qu’il serait plus facile de prendre les différences de pression en pascal et convertir ces quelques pascals en m/s, plutôt que utiliser la différence d’altitude en décamètres, d’autant que la compensation en température me semble pas bonne dans le code original (l’altitude est stable en compilant avec FIXEDPOINT qui ne compense pas).

Je fais encore quelques essais, quand j’aurai quelque chose qui tient la route on en discute si tu veux. Je me base sur ton vario.c en piochant des idées à fertito aussi :pouce:

A+,
Marc

ben ecoutes, t’as l’air bien plus de savoir ce que tu fais que moi :slight_smile:
Y’a touz aussi qui a regardé et qui m’avait dit que faire la diff de distance était pas super et qu’il était mieux de faire la diff de pression. J’ai pas touché au code depuis des lustres ;(

Par contre, si y’a besoin d’aide pour des trucs, je peux peut être aider… Mais attention a mon code, y’a un bug que j’ai pas cherché a corriger: parfois, l’heure affichée se gèle et il faut passer par le mode réglage pour que ça retombe en marche (l’heure est correcte, juste l’affichage qui est pas bon)

Boh, je découvre, mais j’avais déjà joué avec un F2012 il y a quelque temps, c’est pas perdu.

Ton bug, c’est peut-être en rapport avec les appels de prout_tick() / vario_tick() au niveau interruption, à partir de TIMER0_A0_ISR (driver/timer.c) :grrr: - j’ai pas allumé le module prout, mais vario oui, et ça mettait le souk dans les mises à jour de la pression (que j’ai mis sous mutex pour comprendre ce qui se passait :bang: ) vu que ça appelle display_update() qui n’est pas prévu pour. C’est normal que prout soit dans la branche officielle ? Ca m’a l’air plutôt expérimental comme code :grat:

Bon pour le moment, j’ai un vario (sans l’audio) qui marche, sensible au Pascal près (enfin, modulo les marges du capteur).
Et on peut afficher soit la différence de pression, soit la pression mesurée à deux décimales, c’est plutôt cool. C’est mis à jour toutes les secondes seulement, on pourrait le descendre à moins mais de toute façon le capteur ne fournit que 1.8 mesures/seconde en mode ultra low power.

Allez j’y retourne, ça m’amuse bien ce petit défi :speedy: !

:bravo: :bravo: :bravo:

(je t’avais promis mon soutien moral …)

Merci pour le soutien :trinq:

Bon j’arrête là sinon j’y passe encore la nuit et je pourrai pas aller voler demain :fume:

Donc, c’est le dernier OpenChronos de chez poelzi (celui qui donne le jour de la semaine et le jour du mois sous l’heure), en unités métriques seulement, pour une Chronos-868, avec quelques modifs maison:

  • Ligne 1: heure - alarme - température - altimetre(1) - accéléromètre.
  • Ligne 2: Date - altivario(2) - chrono - batterie - Acc - PPt - Sync - rfbsl.

Modifs: (1): “" altitude - pression (hPa sans les décimales)
(2): "
” altivario (en Pa) - pression (hPa avec les décimales).
“#” allume le son (icone “alarme”) et éteint le son.

Le son… ben il est faible :expressionless: , mais j’ai pu mettre des bips relativement facile à interpreter. Pas de bip à la descente. Y a peut-être des trucs à faire à ce niveau, mais faudra bricoler le driver du buzzer, pas ce soir :dodo:

Le vario en Pa, c’est la plus petite résolution possible, 1Pa/s correspondant à environ 12cm/s (0.12m/s). Je ferai peut-être la conversion en m/s un de ces soirs.

S’il y en a qui veulent l’essayer, le code chargeable est ici, perso je charge en rfbsl avec le control center de TI (linux).

Demain je l’emmène voler :soleil:

:rando:

cooool ! Oui, le code prout est pas vraiment stable, mais bon…

Sinon, y’a moyen d’avoir le code ?

Bien sur, pas de souci, c’est de l’open source :slight_smile:

Je suis en train d’ajouter le vario en m/s, sans trop me prendre la tête en multipliant les Pascals par 0.08. Dès que ça marche je peux le mettre à dispo. Je suis pas encore familier avec git par contre, c’est quoi la procédure ? Sinon je peux faire un tar, ou t’envoyer le patch file (diff).

Sinon j’ai été tester un peu aujourd’hui, dans des thermiques un poil teigneux sous le vent au col de bleine, heuuuu j’ai rien entendu quand c’était caché par la manche du blouson :grrr2:

A+,
Marc

Ok, c’est à jour… :vol:

Les changements visibles par rapport au OpenChronos:

  • Ligne 2: Date - altivario(1) - chrono - batterie - Acc - PPt - Sync - rfbsl.

(1) L’icone “record” clignote à 1Hz pour montrer qu’on est en mode vario.
Appui bref “v”: vario(m/s) -> vario(Pa/s) -> pression(hPa avec les décimales) -> Vzmax(m/s) -> Vzmin(m/s)
Appui long “#”: allume/éteint le son (icone beeper1) en mode vario, ou remet a zéro les Vz max/min.

Eh oui fallait quand même les Vz maxi et mini pour montrer aux copains ce qu’on s’est pris :mrgreen:

Le binaire chargeable sur une Chronos 868

Le fichier source (patch) correspondant (pour les codeurs)

Coté code, j’ai fait le ménage et viré mes changements à l’altimètre (affichage en hPa) qui étaient devenu superflu, ne gardant que ce qui est directement utile pour le vario (et viré les calls à vario_tick et prout_tick dans timer.c). Marc, j’ai gardé ton environnement de build pour vario.c, mais réécrit complètement le source (au début je voulais juste faire des petites modifs…). Si tu préfères que je fasse un module à part et garder ton vario.c, c’est no souci. Sinon on peut faire un commit sur OpenChronos de poelzi direct (j’ai cloné le repo git mais pas de compte sur github).

mbong@marc:~/Chronos Watch/OpenChronos$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#	modified:   driver/timer.c
#	modified:   ezchronos.c
#	modified:   logic/altitude.c
#	modified:   logic/menu.c
#	modified:   logic/vario.c
#	modified:   logic/vario.h
#

Allez, :dodo: sinon :grrr:
:rando:

Petite modif pour le calcul des m/s, après quelques coups d’oeil à l’atmosphère OACI - j’avais pris la moyenne des différences de pression dans toute la troposphère, c’est un peu overkill, du coup je me limite aux premiers 4000m ce qui donne des valeurs plus proches de la réalité (0.1m/s pour un Pa plutôt que 0.08m/s). Ca fera des plus gros Vz max :mrgreen:

Le binaire pour Chronos 868
Le fichier patch qui va bien

:grrr: :speedy: :dodo:

Salut Zebu,

Peut tu expliquer aux novices ce qu’il faut faire de ces fichiers ? Merci.

Je soutien Pacoman dans sa demande… :canape:
Je peux lire tous les mots de vos phrases mais l’ensemble n’a pas de sens pour moi.

Wow, t’es sur-motivé ! :slight_smile:

Pour le code, moi j’ai rien à dire, tu fais tout ce que tu veux ! Mon vario.c était pas glop, donc si tu veux le trasher pour mettre le tiens, moi ça me va !

Pour OpenChronos, je sais que l’auteur regarde les fork (en tout cas à l’époque) et il avait même repris qqs modif mineures que j’avais faites. Tu peux lui envoyer un patch “à la git” (git format-patch) ou te faire un compte github et faire une “pull request”. Sinon, je peux aussi intégrer tes patchs dans ma branche et demander à ce que ça soit intégré upstream.

Ce genre de bidouille, je sais faire rapidement :smiley:

Chapeau en tout cas ! T’arrêtes pas en si bon chemin :smiley: