×

Sale ends todayGet 30% off any course (excluding packages)

Ends in --- --- ---

# Fahrenheit to Celcius conversion in exumaster PMU client?

### Tech Articles

Discussion and questions related to the course PDM Installation & Configuration

I have tried my fingers off but cant get correct settings for it. 5 times and divided by 9 and ofset of -32 gets strange results like 16 C if you use 0 decimal and 90 for devider OR 45,6 C if one decimal and the 9 as devider? It should be 31 like it is in my tunerstudio project for ms3pro gen1. Farenheit I can get correct 87 F on PMU16 CAN message if I change my project to fahrenheits so I have the correct CAN message setup.

First, how is the data transmitted? If you don't know then....

Tell us what the sending device shows as the temperature (and unit -- i.e. 20degC). Then show what the receiving device gets if you use a multiplier = 1, divisor = 1, offset = 0. (Perhaps 200 or 2.00, or 680 or 68). Does the receiving device have unit conversion (can you select C or F for display?)

As David said, the CAN messages will be transmitted as a complete number, so 20.0 degrees will come across as 200 in the data, this value is then manipulated by the Multipler, Divisor and Adder to convert it into the correct value, this value is then modified again by the channel settings to apply the decimal point into the correct location.

The maths involved using MoTeC hardware, and most other hardware if it follows CAN Standards.

Channel Value = (Raw CAN Data * Multiplier/Divisor + Adder)*Base Resolution

Sending unit has 31 degC on tuner studio gauge. PMU client shows 871 before handling as CAN message is in fahrenheit, 500kbit, big endian and signed (http://www.msextra.com/doc/pdf/Megasquirt_CAN_Broadcast.pdf) so the message transfers fine in Fahrenheit

MAT is 16bit at 1520 + 2, offset 4 in 'advanced real-time data broadcast' OR

16 bit at 1512 + 1, offset 4 in 'simple dash broadcast'

PMU client has 16bit, big endian, signed, multiplier, divider, offset and decimal fields to alter BUT not C to F or F to C conversion/setting that I know of.

The problem is to convert F to C, you need to subtract 32 from the F value before multiplying by 5 / 9. Since the value on the bus is 871 (i.e. units are .1 degF), the proper equation would be (871 - 320) * 5 / 9 = 306 or 30.6 C,

We can re-arrange this as (871 * 5 / 9) - (320 * 5 / 9) = 871 * 5 / 9 - 177 = 306 or 30.6 C.

So make your multiplier 5, divisor 9, and offset -177

If you want whole degC as the output (instead of .1degC), then Mult = 5, Div = 90, offset = -17.

Thanks a million . Never would have figured out that some simple math can massage the offset like that. We usually reply within 12hrs (often sooner)

#### Need Help?

Need help choosing a course?

Experiencing website difficulties?