data logging ELM327

pour prius_pilot: intégration flash , si tu prépares des beaux compteurs , je peux te filer un coup de main pour y positionner en flash des aiguilles et des "label", on peut imaginer également des compteurs composites avec double graduation et plusieurs aiguilles , par exemple pour avoir sur un même compteur la vitesse en km/h et mg2(rpm)
et également ICE(rpm) et tant qu'à faire MG1(rpm).....
cela suppose d'avoir des objets graphiques dont on connait le centre des aiguilles et leur débattement angulaire...

Merci pour la proposition, mais je m'en sors ! Je viens d'ailleurs d'aller faire un petit tour pendant la pause déjeuner pour tester le compte-tour, et ça fonctionne ! Le design est inspiré de mon Audi priusthorique, fond noir et aiguille rouge... Ca reste très basique, mais je voulais d'abord tester la fonctionalité de A à Z avant d'aller plus loin.

Pour les compteurs composites, j'y pensais également. Je me posais d'ailleurs une question : est-ce qu'il vaut mieux avoir plusieurs modules flash distincts, ou bien un seul qui couvrirait tout l'écran, avec tout à l'intérieur ? La solution 1 est plus modulaire, mais quid des performances ?

A+

Prius_Pilot
 
modules flash 1 ou plusieurs ?

je penche plutôt pour la modularité pour des facilités de dimensionnement et positionnement à volonté.
je n'ai pas d'inquiétude pour les perfs : conso CPU minime pour des test avec 3 aiguilles avec valeur aléatoires à 50 hertz .
la contrainte est qu'on ne peut gérer les transparences/superposition , cela impose d'avoir des objets rectangulaires juxtaposés.
cela permettrait d'alterner de vue de grand compteur à vue de petit compteur à coté d'histogrammes de consos (j'ai procédé à des tests satisfaisants de génération d'histogrammes dont la taille est commandée par des touches de fonction).

par ailleurs rien n'empêche (au contraire) d'avoir un fond d'écran très soigné.
 
A mon avis les compteurs ne seront pas toujours les mêmes:
-ni entre les différents conducteurs
-ni dans le temps
-et ni peut-être selon la résolution disponible selon le Pc.
Donc cela doit être modulaire et si possible qq paramètres dans le .INI

A mon avis il ne faut pas avoir trop de cadrans sous les yeux.
Par exemple: Tours/mn_thermique, Kw_batterie
auxquels s'ajoutent des affichages histogrammes (conso...) + des gros chiffres pour température_thermique, conso_moyenne, distance, durée...

Parce que:
-chacun va avoir des préférences sur les compteurs qu'il souhaite voir en roulant
-au fur et à mesure que les pid inconnus seront expliqués il se peut que l'on décide de placer comme prioritaire je sais pas par exemple le retard à l'allumage ou un angle du vvti...

Qu'en pensez-vous ? ;-)
 
je viens de rencontrer un évènement inattendu (sur un enregistrement graphcan) :


(pédale x 10, 1 point par seconde)

lors d'un démarrage à froid (8°C), ayant rapidement passé en EV pour sortir du garage, au moment de repartir en marche avant, il y a eu un "cancel" du mode EV (passage du code x40 à xC0 puis 0), assez brutal si on en juge par l'abandon momentané de l'accélération, sans que je lève le pied pour autant, et une montée de l'injection à des valeurs que je n'imaginais pas (2350).

Si vous pouvez rechercher ce genre de phénomène avec la precision de l'ELM ...
 
Démarrage à froid

A froid:
Au démarrage à froid j'ai pû constater que le paramètre d'injection peut monter à 2200 (fin décembre).
Au moment de ce démarrage l'accélérateur était à 33%.
Durant 4 secondes l'injection était restée encore à plus de 1900.
En fait au bout de ces 4 secondes j'avais une marche Ar de 20 secondes qui a probablement calmé la soif de la bête dont l'injection a varié alors de 820 jusqu'à 500.
20 secondes après, en effet en repassant en marche Av l'injection est revenue vers 1000.

Pour le trou d'accélération pas vu; Dans l'exemple ici il y a inversion du sens de marche donc relâché d'accélérateur voulu.

Le thermique était froid, il a mis une minute pour monter au-dessus du seuil de 16°C qui est le mini qu'indique le pid 52C.

A+ ;-)
 
« une analyse intéressante ici : ww.roperld.com/science/prius/triprecords.pdf »
... qui laisse toujours planer le doute sur la manière de calculer la puissance du thermique, ou plutôt qui nous fait un tour de passe-passe (que je n'accepte pas).

Il y a dand ce doc trois paramètres utilisés : le "Fuel injection timing (= pid 520) que l'on connait, mais aussi le "Fuel Flow" et le ICE Power" qui sortent d'on ne sait où, vu que la seule formule donnée [ " ascribing 58 kW to 238 in the CAN output for fuel flow" ] ne dit pas comment on calcule le FuelFlow, en ne mentionnant pas le rapport avec le Pid520, la seule mesure qui soit accessible à ma connaissance concernant la consommation d'essence.

Sauf que c'est une sortie du CAN View qui indique dans sa propre doc [ CAN520 byte 4 X CAN3C8 byte 5 = fuel flow ], mais par ex. en prenant des valeurs fortes pour ces deux Pids : 1600 x (5000/32) = 250000, ça fait pas 238 ! peut être 1000x fois plus ?

De toute façon, ça laisse entendre que la puissance disponible du thermique serait la puissance brulée par le carburant, ce qui met un trait sur le rendement (cf Shadoko sur ce sujet).
 
« le 8ème octet du pid 0B4 n'est qu'une somme de contrôle (genre CRC) »

Ouaip, tu as tout à fait raison, Planétaire,
octet de poids faible + octet de poids fort - octet de checksum = constante.
Il y en a plusieurs comme ça , le dernier octet en fin de séquence, pour les 038 et 03B par ex..
Dommage, j'avais commencé à croire que c'étaient des mesures de précision.

et pour le retard de mesure des vitesses, les deux paramètres à faible résolution, le 3CA pour le véhicule et le 3C8 pour le thermique, il faut bien voir qu'ils ne changent que par valeurs entières (de 1 kmh et de 32 rpm), donc ils attendent de passer à l'unité suivante pour le dire.
 
Pid 03E, début. Pid 038.

03E. Oups. Erreur d'interprétation, suite à un pitit beug. Donc remis à plus tard, peut-être.

Petit retour sur le pid 038 qu'une belle légende découverte récemment attribue au couple total.
J'ai retrouvé une doc qui donne : couple maxi 478 Nm.
Ce qui, je pense s'obtient avec le pignon soleil quasi-bloqué, le thermique fournissant ses 115Nm réduits via les satellites vers la couronne (j'obtiens justement 79Nm) plus les 400 de MG2 (obtenus alors uniquement via la batterie) le tout vers 20 km/h.
Donc les 115 obtenus lors du test 'pied au plancher' muiltipliés par 4 soit 460Nm me semblent fort ressemblants.
Il doit être possible de le vérifier lors d'un freinage en mesurant le temps mis pour aller de xx km/h à zero. Euh, ce serait quoi la formule liant durée, vitesse initiale et couple ralentisseur ?

Qu'en pense Shadoko ? (j'ai pas dit quand)

A+ ;-)
 
...Sauf que c'est une sortie du CAN View qui indique dans sa propre doc [ CAN520 byte 4 X CAN3C8 byte 5 = fuel flow ], mais par ex. en prenant des valeurs fortes pour ces deux Pids : 1600 x (5000/32) = 250000, ça fait pas 238 ! peut être 1000x fois plus ?....

Si on s'en tient strictement à ce qui est écrit cela donne:

En fait si j'ai bien compris ils numérotent les bytes (8 bits) en comptant le pid comme occupant les 2 premiers.
Ca ne peut pas être des mots de 16bits, il n'y a pas 4x16bits sur le pid 520 il ne reçoit que 3 octets après l'octet+quartet du pid.

Et là si on prend Le 4ème du Pid520 (en fait le 2ème selon ma numérotation habituelle qui ne tient compte que des valeurs reçues avec le pid, valeur faible 0à4) multiplié par le 5ème du 3C8 (3ème en fait qui va de 0à60 à première lecture) on obtient bien un nombre qui peut aller jusqu'à 240 dans un exemple que je viens de prendre.

2ème contrôle : dans "pied au plancher" l'octet du 520 va de 0à5 mais celui du 3C8 va jusqu'à 150 (à 4900 tr/mn). Là le produit est 750.

Ce qui est étrange c'est que le pid 520 est actuellement lu sur 16 bits, byte2 et 3 et là on n'utilise que l'octet de poids fort multiplié par un octet d'un autre pid. !!
 
Limitation du calculo du CanView pour obtenir un petit résultat disons sur 12 bit (il y en a aussi sur la Prius). ça fait quand même une info à la louche !

Quant au 038, un couple, voyez-vous, et comment ils le fabriquent, celui-là ?
Bon, je (me) pose toujours la même question, déjà qu'un courant de triphasé c'est pas coton avec le hachage, mais pour la proportionalité, qu'on observe sur un moteur continu à balais, entre le couple et le courant, pour un brushless c'est une autre paire de manches.
Donc au mieux la consigne de commande du moteur, un peu comme pour la puissance du thermique, l'entrée mais pas la sortie.

Je vais m'apliquer à réviser mes calculs de tableur dans ce sens, on va bien voir si ça colle.
 
Pid 348 octet 5.

Hier soir intrigué par cette formule du canview je me suis dit peut-être y as-t-il une coquille dans leur formule.
Donc je suis allé voir le 5ème octet du pid 348, qui est non encore expliqué.

Il vaut le détour. Il est fort intéressant de le comparer à l'injection (pid 520 octets 2&3) (en noir sur le graphique) et en même temps avec l'intensité batterie (pid 03B octets 1&2 sur 12bits seulement) (en jaune sur le graphique).
Graphiquement on constate une très forte similitude entre les variation d'intensité batterie et du pid 348.5 (avec juste à traiter le dépassement de la valeur 128 )
En valeur moyenne en multipliant par environ 12 ce pid 348.5 on obtient le pid 520 (injection).

167149660d0aabc41.png

En rouge le pid 348 octet 5 non encore expliqué.
En jaune l'intensité batterie (Pid 03B)
En noir la durée d'injection (pid520) divisé par 12 dans cet exemple (par une autre constante dans un autre trajet)
En bleu foncé la vitesse (pid 0B4)
En bleu clair la pédale d'accélérateur (pid 244)
En vert les tr/mn (Pid 348 ) divisés par 20

C'est un pulse vers 20-60 km/h durée environ 30 secondes.
En vertical chaque trait fait 50 (donc l'intensité dépasse les -100Ampères)
Sur ce graphique comparer les valeurs moyennes des courbes rouge et noire
et les micro-variations des courbes rouge et jaune. Edifiant.
Or ce pid 348 nous donne déjà actuellement les tours/mn du thermique. Il est donc probable que cet octet 5 concerne aussi le thermique.
De plus le pid 348 arrive bien plus souvent que le 520.

Un paramètre d'injection d'essence? comme le 520 mais en plus précis ?
Si oui cela voudrait dire qu'il y a une pré-injection d'essence au démarrage du thermique lors de la pointe de courant_batterie. Et également une post-injection lors de l'arrêt !!!

Ajout 21hCe ne peut pas être l'injection car lors d'un démarrage à froid sa valeur est faible (environ 15) alors que le paramètre injection (pid520) est fort au début du démarrage à froid. Proportionnel au couple du thermique ?

A+ ;-)
 
Concernant le thermique , il peu s'agir d'un capteur autour du catalyseur comme les sondes air-fuel ratio ou oxygène
 
Compteurs en flash

Hello,

Comme promis, voici quelques nouvelles sur le dévelopement des compteurs en flash. J'utilisais Adobe Illustrator pour réaliser l'image de fond du compteur, mais cette %&!*+? de logiciel n'arrétait pas de planter... J'ai donc recommencé à zéro avec Microsoft Visio. Le but est en effet d'avoir une image vectorielle, afin de pouvoir la modifier facilement, ou la décliner en plusieurs versions.

J'ai donc maintenant une version fonctionnelle d'un compte-tours, à l'intérieur duquel j'ai inclus la température du moteur. Voici un snapshot pris ce matin. Le nouveau compteur est en bas à droite (sauvagement superposé sur les autres contrôles pour le moment) :



Notez au passage la conso moyenne du trajet, 5,47 litres, malgré les -11° ce matin en Lorraine...

Je vous invite à l'essayer. Voici le fichier flash à copier dans le répertoire de l'application :
http://www.jollain.com/prius/trmn2.zip

Ensuite, quelques modifications dans le programme VB :

Placer sur MainForm un contrôle de type ShockwaveFlash, nommé "SWFTR". Ses dimensions (Heigth and Width) doivent être de 3750 pour le meilleur rendu.

Maintenant, un peu de code...

Dans la procedure Form_Load :
Code:
    SWFTR.Movie = App.Path & "\trmn2.swf"
    SWFTR.Play

Dans la procédure rpmDisp :
Code:
    Dim TRAngle As Integer

    ....

    TRAngle = (RpmValue / 22.222222) - 135
    SWFTR.TSetProperty "AiguilleTr", 10, CStr(TRAngle)

Dans la procédure CoolantTempDisp :
Code:
    Dim Temp_graphic As Integer
    Dim TempAngle As Integer

    ....

    Temp_graphic = CoolantTemp / 10
    If Temp_graphic < 20 Then
        Temp_graphic = 20
    End If
    If Temp_graphic > 100 Then
        Temp_graphic = 100
    End If
    
    TempAngle = (Temp_graphic - 60) * -0.875
    
    SWFTR.TSetProperty "AiguilleDeg", 10, CStr(TempAngle)

Je vais maintenant continuer avec d'autres indicateurs. La solution que j'ai retenue est de faire des éléments individuels, avec des tailles cohérentes de façon à ce que l'on puisse les caser à sa guise sur l'écran.
Lorsque j'aurai quelques compteurs, je réaliserai une création dynamique des contrôles basée sur un fichier INI, ce qui permettra à chacun de personnaliser son interface !

Bonne journée,

Prius_Pilot
 
Pid 348.5 Qu'est-ce ?

Ce qui me semble le plus impressionnant est que si on prend la courbe rouge et qu'on la descend sur la jaune elles se supperposent exactement, sauf au démarrage et à l'arrêt (mais là j'ai peut-être mal interprêté le signe, parce que si c'est un débit d'essence il ne peut y avoir de négatif, mais si c'est le couple du thermique (ou sa puissance) il peut être négatif, justement au démarrage lorsque le thermique est "lancé" par MG1)

La jaune (ampères) est juste plus détaillée parce qu'on reçoit 5 fois plus de points par seconde (100/s) que la rouge.

Les variations visibles sur ce graphique sont donc très rapides. Est-ce le cas d'une sonde sur les gaz d''échappement ?
Pourquoi cette sonde suivrait-elle exactement le courant-batterie?
De plus cette valeur est zero juste avant le démarrage du thermique, même catalyseur chaud.

Autre hypothèse: un débitmètre d'air. A exclure car même lors d'un démarrage à froid il y a du débit.

@Prius_Pilot : Super !

A+ ;-)
 
Très joli ce nouveau compte tour. Un grand bravo.

J'adore la température du moteur en bas ; par ces grands froids, au démarrage la température moteur peut être négative mais cela reste bref car quelques secondes après le démarrage, il dépasse forcément les 0°C. Avec un indicateur de ce type il sera facile de constater que lorsque la température extérieure est proche de zéro le moteur se refroidit rapidement à l'arrêt et donc lors des glides ; ce phénomène étant fortement accentué si le chauffage est en fonctionnement. Pour le chauffage, il est quasi inutile de le mettre en route tant que la température du moteur n'a pas atteint les 40 °C au minimum et il est à mon avis préférable d'attendre 65 °C car il vaut mieux que le moteur tourne au minimum à froid.

Il faut noter que la vitesse du moteur thermique plafonne à 5200 tours. La plage rouge serait sans doute entre 4000/4400 et 5200 tpm. Le bruit du moteur se fait plus présent à partir de 3300 tpm. Enfin la plage de 0 à 1000 tpm sera très peu utilisée car la vitesse minimale de rotation est entre 950 et 975 tpm. Lors du démarrage à froid le moteur tourne à 1225 / 1250 tpm. Il peut être intéressant de faire apparaître ces valeurs particulières de fonctionnement sur le compte tours.
 
@Prius_Pilot

Serait-il possible d'avoir la température moteur en chiffres dans le cadran, par exemple juste au-dessus des mots "température moteur".
En effet se paramètre est utile au degré près, à cause des seuils très précis de 40°C, 65°C et 72°C ?
Autrement dit peut-on afficher un nombre (à 2 chiffres) par-dessus le contrôle ShockWave ? Sans scintillement.

Sinon on peut toujours l'afficher en dessous.

@Pont vert, c'est pas très important mais, la température sur le pid 52C commence à 16°C dans mes relevés. As-tu déjà lu une valeur + faible sur le CanView ?

A+ ;-)
 
La température moteur est affichée en degré sans limitation de valeur inférieure ou supérieure atteinte tant pour le moteur thermique que pour la batterie.

La voiture couche rarement dehors et longtemps. Cela est cependant arrivé ces deux dernières semaines où le véhicule est resté exposé sans bouger plus de 24 heures à des températures extérieures aux environs de -6°C à -8°C. Lorsque j'ai remis le contact, les valeurs minimales affichées par le can view étaient cohérentes : -7 °C pour le moteur thermique et -6 °C pour la batterie qui est toujours un peu protégée dans l'habitacle.

A noter que les intensités maximales de charge et de décharge à -6°C pour la batterie sont de 42 A.
 
alors là bravo à prius_pilot :jap:
il apprend vite le jeune :grin:

@Prius_Pilot
....Autrement dit peut-on afficher un nombre (à 2 chiffres) par-dessus le contrôle ShockWave ? Sans scintillement.....
au point où en est prius_pilot, c'est trivial.
(cf examples dans les 2 compteurs de gauche)
 
Pas de problème pour ajouter la valeur numérique. Pour ma culture, à quoi correspondent ces 3 valeurs, 40°C, 65°C et 72°C ???
 
... La solution que j'ai retenue est de faire des éléments individuels, avec des tailles cohérentes de façon à ce que l'on puisse les caser à sa guise sur l'écran....
la taille (comme la position) est facilement adaptable par programmation en vb.
 
Si, si il a vite appris. :jap:

Pour les températures c'est utile pour réduire la conso:
-40°C: en-dessous de cette température le thermique tournera jusqu'à l'atteindre. C'est pas la peine de lâcher l'accélérateur en espérant un arrêt du thermique dans ce cas.

-65°C concerne le chauffage/ventilation de l'habitacle: tant qu'on n'y est pas le thermique tournera si on demande le chauffage/ventilation de l'habitacle. Là pour arrêter le thermique il faut et relâcher l'accélérateur et couper la ventilation (off), en mode D.
Si on roule par exemple à 66°C en glide et que la température passe sous les 65 et qu'on demande chauffage/ventilation le thermique redémarre (et il fait très peu de bruit donc si on veut économiser l'essence on se fait avoir)

-72°C: C'est plus délicat à expliquer. Cela permet de franchir un stade dans la logique du calculateur de la Prius au cours D'UN trajet.

Si on ne s'arrête pas passé cette température et qu'on lâche l'accélérateur sous 60 km/h le thermique tournera quand même.
Si on ne s'arrête pas passé cette température et qu'on lâche l'accélérateur au-dessus de 60 km/h le thermique ne tournera pas.

Si on s'arrête thermique tournant au moins 5 secondes on franchit un seuil.
On atteint le stade S4 dans lequel cette température n'a plus d'effet et où le thermique ne répond plus qu'aux 2 autres température 40 et 65°C. Mais comme on est déjà au-dessus de 72°C on a de la marge.

En pratique ceux qui commencent par rouler rapidement arriveront vite à ces 72°C et pouront gérer son franchissement souvent au même endroit (stop..)
Mais ceux qui comme nous commencent par des petites routes ce seuil se déplace très fortement selon la température extérieure (j'ai déjà fait 20 km sans l'atteindre par temps froid) et comme on lève souvent le pied sur ces routes le thermique peut tourner inutilement.

J'avoue que ce seuil de 72°C est @\&/%!!.

Et il y a peut-être un autre seuil à 35°C.

@Priusfan c'est vrai j'avais pas vu les chiffres dans les compteurs à gauche. 8)

A+ ;-)
 
Je ne suis pas certain à 100% mais il me semble que lorsque le moteur redescend sous la température de 72 °C puis remonte au-dessus on a quitté l'état "S4" et qu'il faut à nouveau procéder à un arrêt complet de 5 secondes avant d'y revenir.

Même si en ce moment la température du moteur varie beaucoup, il n'est pas facile de suivre ces variations et de se souvenir des états précédents tout en privilégiant la concentration sur les conditions de circulation.

Le seuil de 35 °C pourrait être la température à laquelle doit resdescendre le moteur avant de se remettre en route pour atteindre les 40 °C voire les 50 °C. J'ai en effet observé que dans certaines conditions encore imprécises le moteur ne s'arrête pas lorsqu'il atteint 40 °C mais il attend d'atteindre 50 °C. C'est notamment le cas lorsque l'on s'est mis en route et que l'on s'arrête alors que la température est encore inférieure à 40 °C ; il faut attendre que la température du moteur atteigne 50 °C pour qu'il s'arrête de lui-même. En ce moment j'ai souvent le cas au premier feu sur mon parcours après environ 900 m où j'arrive avec une température moteur de 38 °C environ. Lorsque c'est possible (personne derrière) je m'arrête une vingtaine de mètres avant le feu pour que la température dépasse les 40 °C puis je parcours la distance restante et lorsque je m'arrête le moteur s'arrête. Cette expérience est difficile à réaliser et je ne l'ai faite que deux ou trois fois pour vérifier ce comportement particulier.
 
Oui, si on démarre en dessous de 40°C mais pas très loin en dessous, je croyais qu'il y avait la temporisation d'une minute d'un démarrage à froid et que donc ce n'était plus 40°C le seuil mais un délai; mais tu as peut-être raison cela avait peut-être été 50°C.

Sinon, je confirme qu'après avoir passé le seuil de 72°C il faut soit s'arrêter 5 secondes soit rouler sans accélérer à moins de 10 km/h (à 10km/h c'est trop vite) pendant 5 secondes moteur tournant (et pas en mode N).

Et il y a d'autres astuces...Parce que ce n'est pas assez compliqué comme ça.:grin:
 
En effet, je comprends maintenant l'importance d'afficher la température...

Voici ce que ça donne :



Le lien vers le module mis à jour :
http://www.jollain.com/prius/trmn2.zip

Pour le code VB, il suffit de rajouter cette ligne dans la proc CoolantTempDisp :
Code:
    SWFTR.SetVariable "TempDeg", Format(CoolantTemp / 10, "0") & "°"

Pour Priusfan : oui, on peut facilement positionner et dimensioner les contrôles depuis VB. Par contre il est préférable de les conserver à la taille dans laquelle ils ont été conçus (ici 250 pixels, équivalent à 3750 dans les unités VB) afin de maintenir la lisibilité du fichier GIF qui sert d'image de fond au contrôle.
 
Pages vues depuis le 20 Oct 2005: 313,224,773
Retour
Haut Bas