Alibro
Well-Known Member
Nodge and I have been musing about the idea of a Freelander EV. We agree it would make a great base for an EV conversion project due it's relatively light weight, the way the boot cubby could be extended to the fuel tank position and it's height allowing loads of space for batteries below the rear as well as plenty of room under the bonnet.
Mating the TD getrag gearbox with a Nissan Leaf motor and inverter would give a great EV.
EDIT
As I figure out the CANbus signals I'm posting them here so the important info doesn't get lost in the noise of a busy thread. This post will hopefully be updated regularly with new info as we get it.
For reference I am using an Arduino with a MCP2515 adaptor to read this data and more info can be found here.
This is my Youtube channel.
https://www.youtube.com/channel/UCRhFZUZKXlOEvw35vr4P-7g
And here is a photo of all the CAN going to and from the ECU.
The info below was copied from the Bimmerforum https://www.bimmerforums.com/forum/showthread.php?1887229-E46-Can-bus-project as the FL1 has a BMW engine and so the CANbus signals are in many cases the same. I will change the colour of each line as I confirm it but for now most of what is below is not confirmed.
ARBID stands for arbitration https://cdn.intrepidcs.net/support/VehicleSpy/spyInCANArb.htm
The can bus is 500kb/s
In the data for each ID there are 8 bytes. Labeled Byte 0,1,2,3,4,5,6,7
Green is confirmed
Red is not in my 04 manual Freelander TD4 but may be in a K6 or TD4 auto.
Blue is active but not yet confirmed.
ARBID: 0x153
-B0 - 00
-B1 - Speed LSB
-B2 - Speed MSB [Signal startbit: 12, Bit length: 12, 0x0008 = 1 km/hr]
-B3 - FF
-B4 - 00
-B5 - FE
-B6 - FF
-B7 - 00
ARBID: 0x1F0 (ABS)
Individual wheel speeds:
Signal wheel 1: startbit 0, bit length 12, Intel LSB, unsigned, gain 1/16 (0.0625) (byte0 + next 4 bits of Byte1)
Signal wheel 2: startbit 16, bit length 12, Intel LSB, unsigned, gain 1/16 (0.0625) (byte2 + next 4 bits of byte3)
Signal wheel 3: startbit 32, bit length 12, Intel LSB, unsigned, gain 1/16 (0.0625)
Signal wheel 4: startbit 48, bit length 12, Intel LSB, unsigned, gain 1/16 (0.0625)
The above translated to .xls syntax. (corrected)
Wheel speed 1: (HEX2DEC(B0)+HEX2DEC(RIGHT(B1;1))*256)/16 = Kph
Wheel speed 2: (HEX2DEC(B2)+HEX2DEC(RIGHT(B3;1))*256)/16 = Kph
Wheel speed 3: (HEX2DEC(B4)+HEX2DEC(RIGHT(B5;1))*256)/16 = Kph
Wheel speed 4: (HEX2DEC(B6)+HEX2DEC(RIGHT(B7;1))*256)/16 = Kph
(multiply by .621 to get MPH)
ARBID: 0x1F8
-B0 - 00
-B1, HDC control, Off is 00 and on is 01
-B2 - 00
-B3 - 00
-B4 - FE
-B5 - FF
-B6 - 00
-B7 - 00
ARBID: 0x316 (Digital Motor Electronics, DME1)
-B0 - 0D
-B1 - Available engine torque
-B2 - RPM LSB - 00 Ign On, Bounces around very fast when engine running.
-B3 - RPM MSB - 00 - Ign On, 13 - Tickover rising to 78 Max, [RPM=(hex2dec("byte3"&"byte2"))/6.4]
-B4 - Max engine torque
-B5 - Friction loss torque
-B6 - 00
-B7 - 00
B1, B4 and B5 courtesy of pscan.eu
ARBID: 0x329 (DME2)
-B0
-B1 - Coolant temp [Temp in C = .75 * hex2dec(byte01) - 48.373]
-B2
-B3
(bit0 == LSb)
bit 7 Cruise 1/0
bit 6 Cruise -
bit 5 Cruise +
bit 6&5 Cruise Resume
-B4 - 00
-B5 - Throttle position Sensor (00-FE).
-B6 - Brake pedal - 00 - OFF, 01 ON.
-B7 - This is a copy of B5 (Thanks for the Info from pscan.eu)
ARBID: 0x338 (DME3?),
-B0 = 00 on tickover - 02 with aircon on - Rises with RPM
-B1 = Appears to change from 0 when stationary to 01 when driving also goes to 01 with brake
-B2 - 00
-B3 - 00
ARBID: 0x545 (DME4), Lights on the dash, combinations work to get multiple lights
-B0 Check engine light (02), Cruise light (binary 1000), EML (binary 10000),
-B1 00 with ignition on, Fuel consumption LSB
-B2 00 with ignition on, Fuel consumption MSB. Values just cycle from 0 to FFFF then start over at zero. Fuel consumption is the rate of change.
-B3 Overheat light (binary 1000, Hex 08), oil level 2002+ cars, (binary 0010, hex 02), On M3's 0x10 7K and Up RPM lights, 0x20 6.5K and up RPM lights, 0x40 5.5K and up RPM lights.
ARBID: 0x613 also sent from the instrument cluster if 0x615 is acknowleged.
-B0 Odometer LSB
-B1 Odometer MSB [Convert from Hex to Decimal. Multiply by 10 and that is Odometer in Km]
-B2 is fuel level. Full being hex 39 Fuel light comes on at hex 8. Then values jump to hex 87 (or so) and then go down to hex 80 being empty.
-B3 Running Clock LSB (increments every 60 seconds)
-B4 Running Clock MSB minutes since last time battery power was lost.
ARBID: 0x615 sent from the instrument cluster.
-B0 - AC signal. 07 - OFF, C7 - ON
-B1 - 00
-B2 - 00
-B3 - 00
-B4 - 00
ARBID: 0x618
-B0 - 00
-B1 - 0F
-B2 - Air Con evap temperature
-B3 - 00
-B4 - 00
Mating the TD getrag gearbox with a Nissan Leaf motor and inverter would give a great EV.
EDIT
As I figure out the CANbus signals I'm posting them here so the important info doesn't get lost in the noise of a busy thread. This post will hopefully be updated regularly with new info as we get it.
For reference I am using an Arduino with a MCP2515 adaptor to read this data and more info can be found here.
This is my Youtube channel.
https://www.youtube.com/channel/UCRhFZUZKXlOEvw35vr4P-7g
And here is a photo of all the CAN going to and from the ECU.
The info below was copied from the Bimmerforum https://www.bimmerforums.com/forum/showthread.php?1887229-E46-Can-bus-project as the FL1 has a BMW engine and so the CANbus signals are in many cases the same. I will change the colour of each line as I confirm it but for now most of what is below is not confirmed.
ARBID stands for arbitration https://cdn.intrepidcs.net/support/VehicleSpy/spyInCANArb.htm
The can bus is 500kb/s
In the data for each ID there are 8 bytes. Labeled Byte 0,1,2,3,4,5,6,7
Green is confirmed
Red is not in my 04 manual Freelander TD4 but may be in a K6 or TD4 auto.
Blue is active but not yet confirmed.
ARBID: 0x153
-B0 - 00
-B1 - Speed LSB
-B2 - Speed MSB [Signal startbit: 12, Bit length: 12, 0x0008 = 1 km/hr]
-B3 - FF
-B4 - 00
-B5 - FE
-B6 - FF
-B7 - 00
ARBID: 0x1F0 (ABS)
Individual wheel speeds:
Signal wheel 1: startbit 0, bit length 12, Intel LSB, unsigned, gain 1/16 (0.0625) (byte0 + next 4 bits of Byte1)
Signal wheel 2: startbit 16, bit length 12, Intel LSB, unsigned, gain 1/16 (0.0625) (byte2 + next 4 bits of byte3)
Signal wheel 3: startbit 32, bit length 12, Intel LSB, unsigned, gain 1/16 (0.0625)
Signal wheel 4: startbit 48, bit length 12, Intel LSB, unsigned, gain 1/16 (0.0625)
The above translated to .xls syntax. (corrected)
Wheel speed 1: (HEX2DEC(B0)+HEX2DEC(RIGHT(B1;1))*256)/16 = Kph
Wheel speed 2: (HEX2DEC(B2)+HEX2DEC(RIGHT(B3;1))*256)/16 = Kph
Wheel speed 3: (HEX2DEC(B4)+HEX2DEC(RIGHT(B5;1))*256)/16 = Kph
Wheel speed 4: (HEX2DEC(B6)+HEX2DEC(RIGHT(B7;1))*256)/16 = Kph
(multiply by .621 to get MPH)
ARBID: 0x1F8
-B0 - 00
-B1, HDC control, Off is 00 and on is 01
-B2 - 00
-B3 - 00
-B4 - FE
-B5 - FF
-B6 - 00
-B7 - 00
ARBID: 0x316 (Digital Motor Electronics, DME1)
-B0 - 0D
-B1 - Available engine torque
-B2 - RPM LSB - 00 Ign On, Bounces around very fast when engine running.
-B3 - RPM MSB - 00 - Ign On, 13 - Tickover rising to 78 Max, [RPM=(hex2dec("byte3"&"byte2"))/6.4]
-B4 - Max engine torque
-B5 - Friction loss torque
-B6 - 00
-B7 - 00
B1, B4 and B5 courtesy of pscan.eu
ARBID: 0x329 (DME2)
-B0
-B1 - Coolant temp [Temp in C = .75 * hex2dec(byte01) - 48.373]
-B2
-B3
(bit0 == LSb)
bit 7 Cruise 1/0
bit 6 Cruise -
bit 5 Cruise +
bit 6&5 Cruise Resume
-B4 - 00
-B5 - Throttle position Sensor (00-FE).
-B6 - Brake pedal - 00 - OFF, 01 ON.
-B7 - This is a copy of B5 (Thanks for the Info from pscan.eu)
ARBID: 0x338 (DME3?),
-B0 = 00 on tickover - 02 with aircon on - Rises with RPM
-B1 = Appears to change from 0 when stationary to 01 when driving also goes to 01 with brake
-B2 - 00
-B3 - 00
ARBID: 0x545 (DME4), Lights on the dash, combinations work to get multiple lights
-B0 Check engine light (02), Cruise light (binary 1000), EML (binary 10000),
-B1 00 with ignition on, Fuel consumption LSB
-B2 00 with ignition on, Fuel consumption MSB. Values just cycle from 0 to FFFF then start over at zero. Fuel consumption is the rate of change.
-B3 Overheat light (binary 1000, Hex 08), oil level 2002+ cars, (binary 0010, hex 02), On M3's 0x10 7K and Up RPM lights, 0x20 6.5K and up RPM lights, 0x40 5.5K and up RPM lights.
ARBID: 0x613 also sent from the instrument cluster if 0x615 is acknowleged.
-B0 Odometer LSB
-B1 Odometer MSB [Convert from Hex to Decimal. Multiply by 10 and that is Odometer in Km]
-B2 is fuel level. Full being hex 39 Fuel light comes on at hex 8. Then values jump to hex 87 (or so) and then go down to hex 80 being empty.
-B3 Running Clock LSB (increments every 60 seconds)
-B4 Running Clock MSB minutes since last time battery power was lost.
ARBID: 0x615 sent from the instrument cluster.
-B0 - AC signal. 07 - OFF, C7 - ON
-B1 - 00
-B2 - 00
-B3 - 00
-B4 - 00
ARBID: 0x618
-B0 - 00
-B1 - 0F
-B2 - Air Con evap temperature
-B3 - 00
-B4 - 00
Last edited: