GTO2013 / EMUSerial

ECUMaster Arduino Serial Library
GNU General Public License v3.0
16 stars 3 forks source link

only few channels are currently send over serial #3

Closed st3m0r closed 3 years ago

st3m0r commented 3 years ago

Hello, foa thank you for sharing this library. My problem is that CLT and a few other channel are not correctly decoded or the ecu are not sending them. I tryed to add some debug line in the lib and the channel that the ecu send whit this protocol are those: Channel: 27 Channel: 17 Channel: 2 Channel: 23 Channel: 25 Channel: 2 Channel: 6 Channel: 12 Channel: 18 Channel: 21 Channel: 9 Channel: 5 Channel: 3 Is there some config to perform over the ecu to enable sending those channels ?

GTO2013 commented 3 years ago

Hi, If other channels are working I assume you are using a different version than 1.200. Did you update the files using the python script?

st3m0r commented 3 years ago

yes i updated the struct whit the python script ( 1.200 and 1.211xml are pretty similar, the only changes are on couple of parameters ). the strange thing is when i downgraded the firmware to 1.200 , the map and afr stop showing up.

GTO2013 commented 3 years ago

According to the xml the CLT temp is channel 24, so its either not beeing sent or not decoded correctly. Under ext. Port/General the Device is set to ECUMASTER serial protocol right? Which microcontroller are you running this on? Is it doing something else other than to read the EMU stream?

st3m0r commented 3 years ago

yes the output on serial is set on Ecumaster serial protocol. Im running on custom pcb with wroom 32d. When testing, the firmware do nothing other than the call the emu.checkEmuSerial(). does it work with your ecu ? ( i have a emu classic ) if i have time during this week i'll attach the ecu to the computer and grab some raw data and try to downgrade ( if possible) the ecu firmware

GTO2013 commented 3 years ago

I built this for a data display for my dads project car, he uses an EMU classic aswell. Its not finished yet, so I couldnt test it intensively. But if i remember correctly, the CLT was working. What you can try is comment out the checksum check in EMUSerial.cpp and always decode the frame if the magic number aligns. Maybe there is a bug in the checksum calculation somewhere.

st3m0r commented 3 years ago

yeah, was the first thing that I did. There are some data that are not align (after record some raw data) with the protocol but I'm not an expert so... I will send an email to ecumaster and hope they will answer me lol. If I find something I'll report here.

dump.txt

The adu ( dashboard made by ecumaster ) use the same protocol and claim to support those channels:

ADU channel Description ecu.analog1 Analog #1 voltage ecu.analog2 Analog #2 voltage ecu.analog3 Analog #3 voltage ecu.analog4 Analog #4 voltage ecu.afr Air to fuel ratio ecu.baro Barometric pressure ecu.battery Battery voltage ecu.clt Engine coolant temperature ecu.ecuTemp ECU internal temperature ecu.egt1 Exhaust gas temperature #1 ecu.egt2 Exhaust gas temperature #2 ecu.ethanolContent Fuel ethanol content ecu.fuelTemp Fuel temperature ecu.fuelPressEffective Effective fuel pressure ecu.fuelLevel Fuel level ecu.fuelPress Fuel pressure ecu.gear Gear ecu.iat Intake manifold temperature ecu.injPW Injection pulse width ecu.injDC Injectors DC ecu.ignAngle Ignition advance ecu.ignDwell Ignition coil dwell ecu.knockLvl Knock level ecu.lambda1 Lambda #1 ecu.lambda1Trgt Lambda #1 target ecu.map Manifold absolute pressure ecu.oilTemp Oil temperature ecu.oilPress Oil pressure ecu.rpm Engine RPM ecu.speed Vehicle speed ecu.secInjPW Secondary injectors pulse width ecu.tableSet Current table set ecu.tps Throttle position

So the data should be there but maybe for some channels they use different method ?

GTO2013 commented 3 years ago

If I saw that correctly, the CLT channel byte is never received anywhere in the dump. Are the channels that are received correct?

st3m0r commented 3 years ago

map,bat,dwell,afr,tableset I'm pretty sure are working properly because I can see that the values match with the ecu software, the other channels should be ok too.

channels present in the serial stream -> 2,3,5,6,8,9,11,12,13,17,18,21,23,25,27,31 not -> 1,4,7,10,14,15,16,19,20,22,24,26,28,29,30

GTO2013 commented 3 years ago

Hmm, I will have to check if the channels you mentioned work in my setup. There are some random bytes in the dump you sent, not sure what could be the cause of this. Maybe some interference? But then it wouldnt be always the same channel that were missing...

If you find something out let me know!

st3m0r commented 3 years ago

never mind, there is something on my side ( pcb or something else ) because if i connect the serial to the computer the data are ok .

COMx.txt

st3m0r commented 3 years ago

was a capacitor, now work as intended

dash

Thank you for the lib and the help!

GTO2013 commented 3 years ago

Great, nice work! 👍