data logging ELM327

Glass cockpit Prius

Voici le nouvel instrument de bord réalisé en flash... Vous risquez d'être surpris, voire de penser que ce n'est pas le plus utile, mais moi il me plait beaucoup !



Et oui, c'est bien un altimètre, comme dans les avions ! Vu mon pseudo, j'en avais vraiment besoin. :cool: Seule différence, il est en mètres, et pas en pieds. Mais s'il y a des puristes, je peux en faire un en pieds également !

Bonne soirée,

Prius_Pilot
 
De toute façon on a bouclé les ceintures de sécurité, fermé les coffres à bagage et...zut j'ai pas remonté la tablette située...ouf ça va elle n'est pas au dos du siège situé devant moi.

Bon allez contrôle des vis à vis ...and take off, Papa India Lima Oscar Tango

:bravo:
 
altimètre: bravo , il est joli ...

par contre l'info fournie par le GPS est trés fluctuante et imprécise; tu devras donc sacrément la "lisser" avant de l'afficher, faute de quoi ton aiguille va avoir la danse de St Guy.
à propos de GPS, qu'as tu branché?
il faudra modifier les "lat" et "long" pour utiliser un format plus utilisable pour générer des .kml (reprendre routines dans GPSspy)
 
Je suis le premier surpris, mais pas besoin de lisser l'info : l'aiguille est très sage, se contentant de refléter les variations du relief... Il faut dire que lorsque j'ai fait l'essai, j'avais déjà au moins 7 satellites en vue. Peut-être que ce serait moins bien si je n'en avais que 4. A voir lors des prochains tests. Le GPS est un Inforad V4e.
Au lieu de s'embêter à générer du kml, pourquoi ne pas tout simplement enregistrer le flux sortant du GPS, qui est du NMEA ? On trouve ensuite des tas d'utilitaires qui convertissent du NMEA en kml. Un exemple parmi des centaines d'autres :
http://www.expertgps.com/convert.asp
A+
Prius_Pilot
 
Pid 52C et 039.1 : température thermique

Retour sur la température à froid.
Il y a deux Pid qui donnent la température:
-52C qu'utilise PriusCanMonitor qui donne la température au 1/2°C
-039.1 qui la donne au degré.
(L'une est la température du liquide de refroidissement et l'autre du thermique)

Dans un démarrage récent (-3°C) le pid 52C a commencé à 16°C et le 39.1 à 0°C. Ceci explique la différence constatée plus haut.

Toutes mes indications jusqu'ici l'ont été sur le pid 52C.
En régime "stabilisé" les 2 paramètres divergent de 0 à 2°C le Pid 52C étant toujours égal ou supérieur au 039.1

Pour rester dans le domaine des températures du thermique:
-démarrage à 37,5°C arrêt possible du thermique à 48,5°C au bout de 0mn54
-démarrage à 28,5°C arrêt possible à 47°C au bout de 1mn11.
On est donc proche à la fois du seuil des 50°C et de la tempo d'1mn.
par contre
-démarrage à -3°C, arrêt possible à 42°C au bout de 3mn ! sans chauffage et à faible vitesse moyenne.

Les seuils d'arrêts sont forcément après le seuil autorisé, je n'étais pas sans cesse en train de relâcher l'accélérateur pour tester.

A+ ;-)
 
Pid 230

Moins intéressant que les autres.
Les 2 premiers octets forment un mot de 16 bits qui va donc de 0 à 65535.
Et il ne fait que ça : compter puis revenir à 0. Il compte d'autant plus vite que l'on roule vite.

Finalement:
A chaque fois qu'il augmente de 1 la voiture a parcouru 1cm. (vérifié à 60 km/h et 48 km/h)

Ce pid a aussi 2 autres octets qui pennent une valeur:
Le 4 est déjà documenté : varie selon le freinage 0x4 ou 0x20 ou 0x24.
Le 6 : à priori octet signé qui varie peu.

A+ ;-)
 
parmi les infos qui circulent dans les trames, il y a vraisemblablement la température extérieure, elle est un peu embêtante à cerner car elle ne varie pas beaucoup...

le mécanisme actuel de collecte n'est pas terrible : l'évènement déclenché théoriquement par RThreshold=1 n'est pas activé comme attendu.
en fait, sur eeePC on chope entre 5 et 8 salves de trames par secondes.
ceci expliquerait que je n'arrive pas à gérer les infos "sollicitées".
on remarque d'ailleurs que la séquence d'initialisation est anormalement longue pour ce qu'elle fait.
peut-être manque t-il dans le pgm des doevents...
ou le phénomène provient peut-être de la vitesse extrême du port série qui rend incohérent le fonctionnement de mscomm....
en tous cas, cela semble indépendant de la charge cpu (calculs & usage des graphiques), car j'ai testé dans une version "light" de canspy avec les mêmes résultats.

pour contourner le pb , puisque les évenements ne marchent pas comme attendu, je vais tenter une approche à la grand-papa en faisant du polling piloté par un timer à différentes périodicité , en commençant à 20mS par exemple
@ suivre
 
En parlant de froid... Ce soir, je monte dans la Prius, CanMonitor en route et horreur : la batterie hybride est à 254 °C !!! Vite, faire sortir les enfants avant que la batterie n'explose sous leur postérieur :grin:

Et puis non, calmons-nous... La température extérieure est de -7°, et la voiture n'a pas bougé depuis 2 jours. Mais oui, c'est bien ça, la température de la batterie est négative !!! C'est le décodage qui n'est pas bon, le bit de poids fort est le signe.

Plus sérieusement, je vais me lancer dans la réalisation en flash d'un indicateur avec tous les éléments de la batterie. Pourriez-vious me dire quelle est la fréquence de mise à jour des ampérages et tensions ?
 
fréquence de màj : environ 6 fois / sec pour la batterie.
comme le mécanisme de collecte n'est pas actuellement optimisé , la collecte récupère également 6 salves / sec
 
Ma petite contribution à l'abondante collecte de Planétaire:

Dans les Pid de la serie 30, j'ai bien vérifié que le dernier octet du lot est une checksum: 030.8, 038.7, 039.4, 03A.7, 03B.5 (octets numérotés de 1 à 8)
ainsi que les 0B4.8 et 244.8.

le Pid 03A: il semble être une reprise de valeurs , mais avec variations:
le 03A.2 (avec signe en .1) est couplé au 038.4 (avec signe+8 en .3)
le 03A.6 reproduit le 03B.4 (battery pack voltage)
le 03A.5 est constant = 36 (0x24) pour réaliser un checksum = 0.

le Pid 244 (pédale d'accélérateur)
les 244.5|6 (couplés en 16 bit) reprennent la valeur de 0B4.6|7, avec des trémolos en plus.

Je vais vous transmettre des courbes Excel par la voie FileZilla, pour enrichir la recherche.

Salut au passage aux "aiguilleurs" du bord, et à Prius_Pilot en particulier. C'est beau, mieux que mon graphcan poussif ! j'ai donc commandé pour finir l'ELM327 .
 
Concernant la collecte:
-On récupère de gros "blocs de pid". Sur mon Pc j'en récupère 10 "blocs" par seconde
(on le voit très facilement dans la capture au format txt puisqu'il y a l'heure et les millisecondes à chaque début de "bloc")
La puissance du proc interviendrait ?
En une heure le volume est de 140 Mo, stockés tels que reçus, c'est à dire sous forme de texte lisible dans un bloc-note par exemple.
Par ailleurs j'utilise un programme qui lit ce stockage et génère un .csv. Ca fonctionne parfaitement et on peut analyser tout ce qui a été reçu.

Tous les calculs sont faits en supposant (mais là cela semble naturel) qu'à l'intérieur de chaque bloc les données sont dans l'ordre d'arrivée.
Et donc qu'on peut interpoler le temps à l'intérieur de ce dixième de seconde.
Mais ceci est approximatif car les calculs qui utilisent GetTickCount (temps en millisecondes) sont faits dans la boucle de décodage du "bloc",
donc à la vitesse de décodage qui n'est pas l'heure à laquelle est arrivé le pid que l'on décode mais l'heure à laquelle on décode.
Le résultat est que quand on calcule une durée en millisecondes entre 2 décodages de Pid la durée est probablement fausse entre deux lectures de "blocs".
Mais les moyennes doivent rester correctes sur chaque dixième de seconde.

-J'ai programmé le calcul de conso en litres, fort simple au demeurant.
Mais il faut que je teste sur plusieurs trajets pour retomber sur la même conso qu'actuellement. On va pouvoir tenir compte des Bouchons (Ca je dois pouvoir simuler...un troupeau de vache par exemple)

Pid
-Ampérages et tension batterie sur le pid 03B : c'est 120 par seconde.

@Prius_Pilot bien noté le besoin de gestion du signe sur le Tre batterie à corriger/prog.

@Mik&Toy "le 03A.5 est constant = 36 (0x24) pour réaliser un checksum = 0."
sur celui-là j'ai noté deux valeurs 24 ou 34 d'après mes notes = sens de marche. A mon avis le checksum est, quand présent, toujours le dernier octet d'un pid. Ici le 7ème.

J'en ai un nouveau non expliqué pour l'heure: le 3CF.3 (octet)
Il bouge très très lentement. Il descend de 25 vers 0 sur un trajet quand on démarre à froid.
Il peut remonter légèrement en cours de trajet.
Ce n'est pas le niveau d'essence.

A+ ;-)
 
Pouvez vous faire un point actuel sur vos recherches/buts ?

Vous parlez actuellment de PID, mais à quelles conclusions/recherches/utilisation voulez vous arriver ?
J'avoue que là, je ne vois plus du tout ce que vous recherchez, quel est le but à atteindre....

S'cusez ! :oops:
 
...ceci expliquerait que je n'arrive pas à gérer les infos "sollicitées"...@ suivre

Ce qui m'étonne est que dans la première version que j'utilisais, à 9600bauds on était sans arrêt en train de dialoguer avec l'elm.
Soit en coupant volontairement le flux reçu (et il fallait attendre que ce flux se tarisse), soit à cause d'un "buffer full".
On lançait alors une demande de masque, filtre et puis redemande du flux.
J'avais constaté que les demandes que l'on faisait partaient en même temps que l'on continuait à recevoir, jusqu'à ce que l'elm soit informé de notre demande.

Ca marchait. Il fallait juste le faire dans la fonction Timer, pas dans ParseCanMessage ni dans MSCommCAN_OnComm, pour cause de ré-entrance qui faisait déborder la pile Vb6 au bout de pas mal de temps.
Si besoin je peux t'envoyer cette source.

Dois-je comprendre que tu redescend à un niveau + proche de l'Api windows, comme les proc en C ?


@Palm35: La question est d'importance:

Le prog PriusCanMonitor actuel fonctionne en écoute seulement. (Priusfan essaye de combiner le mode écoute et le mode sollicité)
Il reçoit plein d'infos. Chacune est identifiée par un code appelé Pid.
Il y a un Pid par exemple pour le niveau du réservoir.
Certains Pid sont parfaitement identifiés, càd que l'on est sûr de leur rôle.
Il en reste pas mal non identifiés, de plus parmi ceux qui sont connus il reste encore des infos non décodées.
On ne sait rien de manière sûre par exemple sur MG1 et MG2, leurs échanges. Mal la position du Vvti.

A de telles recherches ils peut y avoir deux conséquences:
-simple connaissance plus précise du fonctionnement du Hsd, savoir par exemple comment Toy a résolu les problèmes d'équilibre de couple au démarrage/arrêt du thermique tout enroulant, phénomènes brefs. Cette connaissance a par exemple permis de changer le Pid utilisé pour la vitesse.
-recherche d'améliorations sur la conduite pour réduire la conso. C'est cette 2° piste qui m'intéresse le +.
Pour l'instant j'utilise les ampères_batterie, les tours/mn, plus la température_thermique. Rien ne dit que les Tr/Mn soient la bonne piste.
Par exemple sur trajet plat le mode surmultiplié_électrique est-il plus intéressant pour la conso que le pulse&Glide, malgré une faible vitesse du thermique.

L'idéal serait de connaître le rendement du thermique, de la partie électrique en temps réel.
Par exemple en ayant le couple du thermique (on a déjà les tr/mn) et la conso (qu'on a déjà).

Pour la partie affichage c'est le rendre le plus simple et rapide à consulter en roulant en choisissant les infos qui manquent actuellement sur l'écran de la Prius et qui servent au quotidien. Et si c'est joli c'est encore mieux.

Pour la partie mémorisations elle permet par exemple de comparer deux manières de conduire sur un trajet ou de comparer deux conducteurs ou deux véhicules.
Au départ je souhaitais simplement connaitre la conso sur le trajet quotidien en choisissant plusieurs variantes de trajets. Celui-ci étant court il fallait quelque chose de précis, plus que l'odb.

En conclusion je citerais ma signature "et si?" c'est à dire qu'on ne sait pas encore ce qu'on va découvrir ni si cela servira. Mais c'est sûr on avance.

A+ ;-)
 
j'essaierai ce soir une variante sans événements , mais avec 2 timers :

1 à 20mS pour faire du polling sur le port série.
le 2ème à 1 Sec pour tester les infos sollicitées.
 
Valeurs min et max de SoC

Bonjour,

Quelqu'un pourrait-il m'indiquer quelles sont les valeurs de State of Charge qui correspondent, sur l'écran de la Prius, à tous les traits allumés (en vert) et à tous les traits éteints ?

Merci
 
Pid 3CF octet 2 et 3

Petit à petit il livre ses secrets.
Il contient 2 températures signées en octet 2 et 3.

A mon avis plus que très probable et facile à vérifier par la suite le 2ème octet est la température extérieure. J'ai constaté des valeurs qui vont de +17°C (Sept) à -9°C (Janv). Entre 7 et 9 sur le parcours idf.

Le 3ème est probablement la température du liquide de refroidissement de l'électronique. Pourquoi ? D'abord il est étrange de mettre des températures dans un pid série 300. Cette série est assez rapide. Perso j'aurais mis la température extérieure dans la série des 500. Il doit donc y avoir un risque que cette température monte vite. Et puis je crois que le canview la donne.
Et quelle autre température est mesurée ?
Ce ne peut pas être la température intérieure, elle ne descend pas pendant le début d'un des trajets que j'ai étudiés et ne vaut pas 7 ou 8 sur un long trajet.

Quand à l'octet 1 il vaut désespérement 10h, le 4 est nul et le 5 sûrement une somme de contrôle.


Ajout 18h45 @Priusfan au sujet de la capture des pid:
On a constaté que tu récupère 5-6 salves par seconde. Sur mon Pc c'est 10. N'est-ce pas tout simplement dû au fait que tu branches un Gps, ce que je ne fais pas (Grr il n'y a pas moyen d'avoir un port série_virtuel sur mon Chicago_Route66 et d'y lire le trafic nmea. J'ai cherché/un forum gps pas trouvé. Le support fabricant m'a fait 2 réponses énigmatiques (à 2 mail) je cite : "Veuillez noter que le récepteur interne du Chicago ne peut pas être utilisé comme un sort de récepteur Bluetooth et de faire le jumelage avec le PC." ou autre mail "Veillez noter que le jumelage d'un récepteur externe GPS ne peut pas être fait avec ce modèle de dispositif." Je vais peut-être devoir brancher un truc genre inforad)

A+ ;-)
 
acheter un deuxième EeePC, c'est le prix pour traiter le GPS en temps réel !

Les séquences, en brut, j'en reçois 16 par seconde avc le graphcan, ce qui me donne environ 120 prélèvements par seconde pour le plus rapide, le Pid 03E.
Par contre je ne reçois pas le 230 avec le filtre en place.
 
Constante pour conso en litres.

Quand je vous disais que le calcul de conso en litres est simple. Voilà le code ajouté, ajouter juste un peu de sauce pour initialiser et écrire dans le .csv
Code:
          GetTickFige = GetTickCount      ' temps en millisecondes là maintenant
          ConsoSp95 = ConsoSp95 + OldSp95 * (GetTickFige - TickSp95) 'on cumule le dernier relevé par le temps écoulé depuis ce dernier relevé
          OldSp95 = Valeur520 * rpm 'injection * tour/mn = relevé
          TickSp95 = GetTickFige 'heure dernier passage ici

Il restait juste à connaître la constante pour diviser le résultat.
On s'accroche c'est 1,296 10^12
ou encore 1296 000 000 000

pour avoir le résultat en litres... sinon ça doit être le nombre d'atomes.:grin:

ou 1296 000 000 pour l'avoir en mililitres

Vérifié pour l'instant sur 2 trajets. Ecart par rapport au calcul actuel dans un sens 0,3% et dans l'autre 0,02%.
En fait je ne peux pas trop le vérifier avec la Prius, l'odb donne une valeur à 2 à 2,5% près (0,1 pour 4 ou 5 litres).

Mais c'est sans faire le test du bouchon.

Je vais faire d'autres contrôles pour valider dans quelques jours, 2 mesures c'est un peu jeune.

A partir de ce résultat on peut avoir la conso/100km ou par heure ou en litre en temps réel.

P.S. 1296 c'est 36*36

A+ ;-)
 
ta formule de calcul de conso me parait vraisemblable.
:jap:
de mon coté, je n'arrive pas encore à débloquer l'alternance entre observation passive du CAN et messages sollicités.
j'y ai passé déja un temps fou et je pense que ce n'est pas fini.
mais je persiste et signe :
je veux utiliser 2 timers
un rapide pour lire le port
un moins rapide pour traiter les résultats.

pour faire court: la gestion d'un port série à haute vitesse est trés aléatoire (déclenchement des évènements non fiable).
 
Mais quels Pid nous manquent en mode passif que l'on ne peut obtenir en mode sollicité ?

-température catalyseur
-tension batterie 12v
-pression atmosphérique
-...

Or il reste des Pid non encore expliqués, dans les 5xx (J'ai juste commencé à voir que le 527, 528, 56D et 602 évoluent sans chercher à voir à quoi ils correspondent)
et je ne pense pas avoir fait le tour du contenu des autres déjà vus.

Donc si ça résiste il faudrait voir s'il manque une info importante ?
Tout dépend de ton objectif. Est-ce d'arriver à résoudre un Pb qui résiste (et d'augmenter par là la masse de tes connaissances) ou bien est-ce d'obtenir une info particulière ?

Pour moi les timer dans Vb ne sont pas précis. C'est ce dont je me souviens des tests faits avec la version 9600bauds. Alors 2 timer, quelle synchronisation entre eux ?

As-tu fait un essai sans Gps, pour voir le nombre de salves/seconde ?

A+ ;-)
 
il y a logtemps que je nai pas rencontré Avogadro, mais finalement, ça serait très physique de parler de consommation en nombre d'atomes et de molécules, et d'électricité en électrons, au moins on aurait pas envie de faire d'excès ! :lol:

« il faudrait voir s'il manque une info importante ? »
AMHA la plus importante, le couple des moteurs, et donc le rendement du bousin !
 
Bonjour,

Voici un nouvel indicateur en flash, pour donner l'état de la batterie, ainsi que les courants entrants et sortants :



Le principe retenu pour les courants est le suivant :
- séparation claire des courants entrants et sortants, la Prius basculant très rapidement de l'un à l'autre
- échelle logarithmique pour l'affichage, permettant de voir les valeurs faibles tout en conservant la plage jusqu'à 125 A.
- le petit trait qui apparaît au dessus de la barre verte n'est pas un bug !!! Il montre en fait la valeur maxi sur les 15 dernières mesures, selon le principe vu sur les vu-mètres de certains amplis, afin de montrer les maximas.

J'y travaille encore pour ajouter les valeurs numériques :
- SoC au milieu de la "pile"
- Température batterie et voltage en-dessous de la pile. Pour le voltage, je ne sais pas très bien quoi faire, la valeur change si rapidement qu'elle est illisible... Peut-être une moyenne des 15 dernières valeurs ?

A+

Patrick
 
Toujours aussi impressionnant !

On peut espérer que les mêmes compteurs seront utilisés sur la Prius 3. Il serait d'ailleurs intéressant de regarder à l'occasion la compatibilité avec une Prius 1.

Qui sait, une partie des compteurs est peut-être également utilisable sur une Honda Civic IMA.

Il faut noter que les intensités de courant dépasbsent parfois les maxima théoriques de 125 A en charge et 105 ampères en décharge. C'est une bonne idée de séparer les intensités négatives et les intensités positives. Tu pourrais utiliser le rouge pour le courant out et le vert pour le courant in.

Pour la tension, elle varie à la même vitesse que le courant. Tu peux mettre des barres qui donnent la valeur instantannée, le maxima et le minima des 15 dernières mesures et la valeur moyenne.
 
Un autre Bravo.

Concernant le voltage mon avis est très simple: il ne sert pas en roulant,
contrairement à l'intensité qui est très importante dans les glides.
Pont vert a raison: l'intensité peut atteindre 150A et en puissance 25kW.
L'échelle logarithmique est, à priori, une excellente idée. A voir en roulant.
Peut-être faudra-t-il lisser un peu le courant, il change plus de 100 fois par seconde!!
Au-dessus de 50 km/h il passe sans arrêt de positif à négatif.

Sur les Tours/Mn la zone "rouge" pourrait commencer soit à 3500 soit à 4100 Tr/Mn et jusqu'à 5200. 3500 parce que j'ai constaté qu'un paramètre (Vvti ?) est à son maxi là et y reste jusqu'à 5200. 4100 Ca je l'ai lu sur CleanMpg comme étant le début (c'est pas brutal) de la descente du rendement.

Pour ce qui est de la compatibilité avec la Prius 1 c'est très probable, voire même avec une partie des infos que fournira la Prius 3. Attention toutefois aux nouvelles valeurs de couple, puissance.. qui pourraient dépasser les limites actuelles (comme 127 ou 255)
Mais où mettre un Pc sur le Prius 3 ?

Par contre avec les Honda les Pid doivent être très différents. Je vote Non.

A+ ;-)
 
Pages vues depuis le 20 Oct 2005: 313,224,689
Retour
Haut Bas