Sale ends todayGet 30% off any course (excluding packages)
Ends in --- --- ---
Hello there again!
While I'm waiting to receive the ADU7 Dash I'm "playing" a little bit with the software and I don't know if I'm having misconception and maybe is a "dumb" question but:
To start working with can bus my idea is to use analog inputs form Ecumaster CAN Switchboard to take sensor signal from the ecu (ECT, TPS, Oil pressure, etc.), and transmit the data to the ADU7 Dashboard
The question is, since the CANSWITCHBOARD receive a 0-5000mV from the sensor how can I "convert" the mV value that the switchboard will transmit through CANBUSt to the correct unit value (°C, BAR, %) to be received from the ADU?
I was thinking about using the multiplier/divider/decimal. For the TPS I think it will work to show % because the potentiometer has a "linear variationt" 5000mv = 100%TPS(?). But what about the temperature or pressure sensors that aren't linear? There is a way to transmit the message with all the conversions done and just receive the temperature value? Or should I receive the value in mV and through ADU7 tables convert the signal to the desired value (ºC, BAR)?
I'm aware about the ADU having analog inputs that I can configure directly with conversion tables etc., but I would like to understand how to do it through CANBUS because the idea in the future is to change the ecu and use CANBUS as much as possible for the set-up.
Thank you!
Are you wanting to split the voltage signal from the sensors into the ECU and the CAN Switchboard? If so, i would just read the voltage signal from the sensor with the CAN Switchboard and transmit the raw voltage data into the ADU7 and then apply the calibration tables in the ADU7 to the voltage being received. This is assuming that the ADU7 can read the data like this and have it applied to a calibration.
I'd take the raw voltages from the CAN switchboard and calibrate them in the ADU. Very easy to do with user tables. There's also a CanX file template for receiving data on the ADU from the switchboard. I'm assuming the ECU you're using doesn't have CAN or Serial outputs? if you switch to one in the future then you most likely won't need to do the conversions like that either.
You can do the math to make the linear sensors scale on the CAN data, but not only is this difficult to make work, changing it is way harder and in the case of the TPS example rarely is 5V 100% position. With table calibration you can also set min and max values it wont exceed. For example lets say max TPS position is 4.69V, the user table can make 4.69V 100% and 5V 100% in case it over travels slightly or something like that. ADU can still log the voltage if you're diagnosing an issue.
But to answer the question of how to do it the hard way; I've made my own spreadsheet calculators but Link have a decent one in their G5 software under their CAN settings.
See attached screen shots for formula
Canswbv3 sends voltage in 16 bit, Big endian 0-5000 mV. Lets keep it simple and use the tps channel. 0% = 0 mV (0 on the bus) and 100% = 5000 mV (1388 on the bus) (bus is hexadecimal). 5000mV/100%=50. Channel has a divider of 50.
This only gets more complicated for pressure sensors, since they operate between 0.5 V and 4.5V you need to offset the first 500mV (and don't forget to respect BEDMAS when doing the formula). So lets say you're using a 100 psi fuel pressure sender, 0 psi = 500mV (1F4 on bus) and 100 psi = 4500 mV (1194 on bus). our scale is effectively 4000mV, so 4000/100=40.
We can't do decimals in EcuM CAN, (would be 12.5 based on 500/40=12.5) so the alternative to this is Multiplier 10, Divider 40, offset -125 and select Decimal places 1 in the CAN bus Input window.
Lets do a 150 psi pressure sensor; 500mV = 0 PSI and 4500 mV = 150 PSI
(4500-500)/(150-0)=26.67 500/26.67=18.75
Multiplier = 1000, divider 2267, offset -187, Decimal places 1.
For temp, you can't really do this accurately because RTD temp sensors are non linear. But if you had to, you'd apply the same concept as the pressure sensor;
Bosch temp sensor, 1k pull up: 305mV= 0*C and 4275mV=150*C.
4275-305=3907/150=26.46 305/26.46=11.5
Multiplier= 100, Divider= 2646, offset -11
hope that kinda makes sense lol
Hello!
Thank you all for your answer.
I'm "happy" in some way because it seems that after HPA course I was not too far away with my thoughts about the way to do this and the "impossibility" to do it with non-linear sensors.
Yes, as you mention, my ECU doesn't have CAN/serial connection (OEM ECU from now); in the future I will be installing an EMU BLACK, but this is another topic, enough with the ADU and first contact with CAMBUS for now.
I think the best way will be to just read CANSW mV and use "users tables" to translate the mV into a "real value." I was already playing with tables using RPM/SPD to show a gear indicator with the correct ratio, and I think they are quite clear/easy to use.
So, just to finalize, as far as I can understand, once I have an ECU with CANBUS, the ECU itself calibrates the sensor (something that can sw can't do) and then sends via canbus sensor data instead of mV right? That's why if I try to import CanX from EMU BLACK to ADU software, I get can message directly in the desired value instead of mV.
P.D: Awesome work with GT3 ADU layout on YouTube. GOD.
Thank you! I have actually made a newer version of that layout in use on a car about to hit the dyno. Once its ready to drive I'll probably post more about that.
Yes an ECU (or the EMU Black in this case) sends the temperature/pressure etc value rather then the raw input voltage. It actually can send the input voltage if you wanted it to but having the calibration done in one device is much simpler. Other ECU brands streams typically just have the values set in a predefined way.
If you're using an oem ecu, does it have OBD2 support? I know that wasn't too popular outside of North America. Some ecu's as early as 1996 have an OBD2 connector but are hit and miss if it works as it wasn't mandated yet.
Hello!
Just waiting to see your new work.
Yes, my car have OBD2 support, but the car itself just have ECT sensor and Oil pressure Switch(not sensor) as OEM sensor (apart from tps, intake temperature etc). I already take these signals from the OEM ECU.
The rest of the sensors (oil temp and pressure, fuel pressure, etc) will be aftermarket sensors.