Mondeo 4 Simulator for testing IPC on bench
-
- Pro
- Posts: 364
- Joined: 04 Aug 2019, 22:47
Mondeo 4 Simulator for testing IPC on bench
Hi,
as I already written here: viewtopic.php?f=25&t=230, I want to start the development of a Mondeo 4 Simulator for bench testing the Convers+ IPC (it will also work for Level1 and Level 3 IPC).
The version for Focus 3 looks like this:
If you want to contribute to this development you can help by sharing with me (here on this thread, or by PM) your decoded CAN messages that are needed by IPC in order to work & show the needed data.
For now this application will only be available to those who share!
as I already written here: viewtopic.php?f=25&t=230, I want to start the development of a Mondeo 4 Simulator for bench testing the Convers+ IPC (it will also work for Level1 and Level 3 IPC).
The version for Focus 3 looks like this:
If you want to contribute to this development you can help by sharing with me (here on this thread, or by PM) your decoded CAN messages that are needed by IPC in order to work & show the needed data.
For now this application will only be available to those who share!
Re: Mondeo 4 Simulator for testing IPC on bench
Can you make it for S-max/mondeo?
Thenx
Thenx
-
- Pro
- Posts: 364
- Joined: 04 Aug 2019, 22:47
Re: Mondeo 4 Simulator for testing IPC on bench
Well, yes, this is the idea with this topic - to develop such a tool
The current CAN database with known "signals" can be found here: viewtopic.php?f=10&t=155
The current CAN database with known "signals" can be found here: viewtopic.php?f=10&t=155
-
- Pro
- Posts: 364
- Joined: 04 Aug 2019, 22:47
Re: Mondeo 4 Simulator for testing IPC on bench
As I got some PMs regarding how you can help, I encourage you to read the topic from here: viewtopic.php?f=10&t=155
I don't need full CAN dumps. We need to decode each CAN ID from MS-CAN. This can be done with any tool that can monitor only one CAN ID (apply filters) and then start playing with buttons, switches, settings, speed, gears.. and so on and see if something changes accordingly on that CAN ID.
Some of them are easy to be found - we already know the CAN ID for that module and the byte position and also you can do it while car is not moving, some are a little bit harder as there is a gateway between (ex: data from PCM (HS CAN) goes through BCM in order to be put on MS CAN) or they require to have a moving car or that "status" is mixed with other data in the same byte (ignition key position and brake pedal status).
First 8 CAN IDs from that Google Sheet are transformed to something like this in order to be used in the application:
We won't need all of them for IPC - for example the ones that are sent by IPC itself - ID 018 or 030, but I'm still going to define them in the application, maybe in the future will be useful for something else
I don't need full CAN dumps. We need to decode each CAN ID from MS-CAN. This can be done with any tool that can monitor only one CAN ID (apply filters) and then start playing with buttons, switches, settings, speed, gears.. and so on and see if something changes accordingly on that CAN ID.
Some of them are easy to be found - we already know the CAN ID for that module and the byte position and also you can do it while car is not moving, some are a little bit harder as there is a gateway between (ex: data from PCM (HS CAN) goes through BCM in order to be put on MS CAN) or they require to have a moving car or that "status" is mixed with other data in the same byte (ignition key position and brake pedal status).
First 8 CAN IDs from that Google Sheet are transformed to something like this in order to be used in the application:
Code: Select all
void MSCAN_010_BCM (CanController *controller, uint_fast8_t wipers) {
//50ms
//"0x00 = wiper off (home), 0x19 = wiper in motion, 0x09 = wipers in home position(?)
//Byte change order seems to be: 0x00 => 0x08 (0b0000 1000) => 0x09 (0b0000 1001) => 0x10 (0b0001 0000) => 0x19 (0b0001 1001)"
std::vector<uint_fast8_t> data = {wipers, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00};
controller->SendCAN(0x010, data);
}
void MSCAN_018_IPC (CanController *controller) {
//200ms
//PDC active, no obstacle
//light is on
std::vector<uint_fast8_t> data = {0x03, 0xFC, 0x03, 0xFC, 0x00, 0x00, 0x00, 0x00};
controller->SendCAN(0x018, data);
}
void MSCAN_024_EATC (CanController *controller) {
//200ms
std::vector<uint_fast8_t> data = {0x00, 0x00, 0xFF, 0x00, 0x3F, 0xFF, 0xFF, 0xFF};
controller->SendCAN(0x024, data);
}
void MSCAN_028_PDM (CanController *controller) {
//ms
std::vector<uint_fast8_t> data = {0x00, 0x81, 0x10, 0x00, 0x48, 0xFF, 0xFF, 0xFF};
controller->SendCAN(0x028, data);
}
void MSCAN_030_IPC (CanController *controller) {
//100ms
//Audio/Navigationsystem: D0 on = x4, off = x6
std::vector<uint_fast8_t> data = {0x84, 0x00, 0x00, 0x00, 0x0B, 0x0F, 0x07, 0x1E};
controller->SendCAN(0x030, data);
}
void MSCAN_035_RFA (CanController *controller) {
//60ms
//static?
std::vector<uint_fast8_t> data = {0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
controller->SendCAN(0x035, data);
}
void MSCAN_038_DDM (CanController *controller, uint_fast8_t wdf, uint_fast8_t wdr_f, uint_fast8_t wpfr) {
//60.000 / 220 / 40ms
//D5 Windows driver, front - wdf
//D6 Windows driver, rear - wdr_f
//D7 Front passenger window regulator - wpfr
//D7 Passenger window regulator, rear - wpfr
//D6 Electrically folding exterior mirrors - wdr_f
std::vector<uint_fast8_t> data = {0x00, 0x00, 0x00, 0x00, 0x00, wdf, wdr_f, wpfr};
controller->SendCAN(0x038, data);
}
void MSCAN_040_BCM (CanController *controller, uint_fast8_t light, uint_fast8_t dist, uint_fast8_t washer) {
//50ms
//D0 Light switch position: AutoOff =F8 / AutoParking =F9 / AutoLow =FA / AutoAuto =FB; Desk-BCM 10, 11, 12, 13
//D1 Distance covered (odometer in the IPC) - A value that increases between each transmission interval; increases the trip and total odometer. The difference serves as an indicator for the distance covered and can be max. 200 (0xC8). Larger values are ignored as implausible
//D3 Washer fluid: low = 0x80; !low = 0x00
std::vector<uint_fast8_t> data = {light, dist, 0x00, washer, 0x00, 0x01, 0xB0, 0x27};
controller->SendCAN(0x040, data);
}
Re: Mondeo 4 Simulator for testing IPC on bench
Which ones you already have so we can search for others?
Here some for lights:
Engine malfunction light off: - just light off
ID DLC
220 8 00 00 04 00 00 00 00 00
Engine malfunction light and message off:
220 8 80 00 2C 00 00 e2 88
Abs light off ( in id for ignition )
048 8 0f
Esp light off:
048 8 00 0f
Esp off (esp off -> light on like in car)
048 8 00 f0
Airbag light off:
120 8 00 00 00 02 00 48 00 00
Here some for lights:
Engine malfunction light off: - just light off
ID DLC
220 8 00 00 04 00 00 00 00 00
Engine malfunction light and message off:
220 8 80 00 2C 00 00 e2 88
Abs light off ( in id for ignition )
048 8 0f
Esp light off:
048 8 00 0f
Esp off (esp off -> light on like in car)
048 8 00 f0
Airbag light off:
120 8 00 00 00 02 00 48 00 00
-
- Pro
- Posts: 364
- Joined: 04 Aug 2019, 22:47
Re: Mondeo 4 Simulator for testing IPC on bench
I have the ones that are present in this Google Sheet: https://docs.google.com/spreadsheets/d/ ... sp=sharing ..
Re: Mondeo 4 Simulator for testing IPC on bench
Dpf full
220 8 00 A0 0A
Battery light off
220 8 01
headlight indicators - just the leds on cluster
high beam -
06b 8 00 00 00 00 00 0C 00 00
rear fogs
06b 8 00 00 D0
front fogs
06b 8 00 00 00 00 00 00 D0 00
Alarm sound:
08b 8 00 00 00 0C
220 8 00 A0 0A
Battery light off
220 8 01
headlight indicators - just the leds on cluster
high beam -
06b 8 00 00 00 00 00 0C 00 00
rear fogs
06b 8 00 00 D0
front fogs
06b 8 00 00 00 00 00 00 D0 00
Alarm sound:
08b 8 00 00 00 0C
-
- Pro
- Posts: 364
- Joined: 04 Aug 2019, 22:47
Re: Mondeo 4 Simulator for testing IPC on bench
Playing a little bit with the interface until I get enough decoded CAN messages and start linking the corresponding actions to the buttons.
I'll need to find a way to have PreFaceLift and FaceLift on the same graphical interface.. maybe just a switch that changes the needed CAN IDs and also adds extra buttons or just enables them for FaceLift version (like icon for Steering Assist).
I'll need to find a way to have PreFaceLift and FaceLift on the same graphical interface.. maybe just a switch that changes the needed CAN IDs and also adds extra buttons or just enables them for FaceLift version (like icon for Steering Assist).
You do not have the required permissions to view the files attached to this post.
Re: Mondeo 4 Simulator for testing IPC on bench
Looks pretty nice!
for auto trans maybe add drive gears also, one byte in can ID changes them from sport to drive
for auto trans maybe add drive gears also, one byte in can ID changes them from sport to drive
Re: Mondeo 4 Simulator for testing IPC on bench
Super
Can you make it setup time?
Can you make it setup time?