Tesla M3 and Y ibooster gen2 hacking

Topics concerning the Tesla front and rear drive unit drop-in board
Post Reply
AMP3R
Posts: 109
Joined: Sun Oct 09, 2022 8:32 pm
Has thanked: 2 times
Been thanked: 51 times

Tesla M3 and Y ibooster gen2 hacking

Post by AMP3R »

I decided to create a topic about reverse engineering ibooster gen2 which is on the Tesla M3 and Y. Personally, I have from a 2022 M3. Today I was playing with Party CAN and discovered that ibooster reacts to three messages (0x38B, 0x38C, 0x38D) and goes into EXTERNAL_BRAKE_REQUEST status by moving the rod a little.
Screenshot from 2024-05-10 23-03-50.png
There is no DBC file for these messages anywhere and therefore I am asking for help in decrypting them. Let's figure it out together!
AMP3R
Posts: 109
Joined: Sun Oct 09, 2022 8:32 pm
Has thanked: 2 times
Been thanked: 51 times

Re: Tesla M3 and Y ibooster gen2 hacking

Post by AMP3R »

I don’t know how to calculate the checksum for messages, so I manually wrote a short log that puts the ibooster in the EXTERNAL_BRAKE_REQUEST state, but the push rod stays still.
Screenshot from 2024-05-11 13-04-10.png
Screenshot from 2024-05-11 12-58-59.png
I think all these 3 messages are related. Having changed at least one payload byte in any of them, ibooster remains silent.
ibooster EXTERNAL_BRAKE_REQUEST.csv
(2.21 KiB) Downloaded 252 times
AMP3R
Posts: 109
Joined: Sun Oct 09, 2022 8:32 pm
Has thanked: 2 times
Been thanked: 51 times

Re: Tesla M3 and Y ibooster gen2 hacking

Post by AMP3R »

I just googled and found out that the checksum algorithm is CRC_SAE_J1850.
Screenshot from 2024-05-11 13-22-33.png
I threw several messages from the log into the calculator and the checksum converged. I think now you can create any messages of your own and play with ibooster.
AMP3R
Posts: 109
Joined: Sun Oct 09, 2022 8:32 pm
Has thanked: 2 times
Been thanked: 51 times

Re: Tesla M3 and Y ibooster gen2 hacking

Post by AMP3R »

Played around with ibooster a little more and noticed one interesting thing. If you send message 0x38B (tried different data in bytes 2 and 3), and at the same time press the push rod, it held by the motor and returns to its original state only if you stop sending messages.

Perhaps this is some kind of firmware glitch. No idea. In short, I need can-bus logs from the car while driving in ACC mode.
Screenshot from 2024-05-12 21-56-54.png
AMP3R
Posts: 109
Joined: Sun Oct 09, 2022 8:32 pm
Has thanked: 2 times
Been thanked: 51 times

Re: Tesla M3 and Y ibooster gen2 hacking

Post by AMP3R »

Push rod is moving.
alexbeatle
Posts: 274
Joined: Sun Jan 03, 2021 6:12 am
Has thanked: 71 times
Been thanked: 24 times

Re: Tesla M3 and Y ibooster gen2 hacking

Post by alexbeatle »

Hello.
Does your ibooster fall asleep with a "failed" mode after 15+mins of inactivity? Mine seems to do so...
viewtopic.php?p=71415#p71415
AMP3R
Posts: 109
Joined: Sun Oct 09, 2022 8:32 pm
Has thanked: 2 times
Been thanked: 51 times

Re: Tesla M3 and Y ibooster gen2 hacking

Post by AMP3R »

alexbeatle wrote: Tue Jun 04, 2024 3:48 pm Hello.
Does your ibooster fall asleep with a "failed" mode after 15+mins of inactivity? Mine seems to do so...
viewtopic.php?p=71415#p71415
Hey! I have never seen ibooster show me a fault status in savvycan. It laid on on my desk turned on for hours. Always had the status IBOOSTER_READY
alexbeatle
Posts: 274
Joined: Sun Jan 03, 2021 6:12 am
Has thanked: 71 times
Been thanked: 24 times

Re: Tesla M3 and Y ibooster gen2 hacking

Post by alexbeatle »

Is this on the YAW CAN bus or on the vehicle CAN bus?
How did you set it to external EXTERNAL_BRAKE_REQUEST? Trying to figure out how to set mine to LOCAL_BRAKE_REQUEST to possibly fix the failure. It goes into LOCAL_BRAKE_REQUEST when brake is pressed, but maybe needs to be maintained.
AMP3R
Posts: 109
Joined: Sun Oct 09, 2022 8:32 pm
Has thanked: 2 times
Been thanked: 51 times

Re: Tesla M3 and Y ibooster gen2 hacking

Post by AMP3R »

alexbeatle wrote: Sun Jun 09, 2024 10:38 pm Is this on the YAW CAN bus or on the vehicle CAN bus?
YAW
thibaultponcelet
Posts: 3
Joined: Tue Jun 18, 2024 5:51 pm
Been thanked: 2 times

Re: Tesla M3 and Y ibooster gen2 hacking

Post by thibaultponcelet »

AMP3R wrote: Mon May 13, 2024 9:22 am Push rod is moving.
Amazing job @AMP3R!
Would you mind sharing the trace you used to make it move?
From what I can see ibooster EXTERNAL_BRAKE_REQUEST.csv is valid but not requesting any braking.

I'm also busy reverse engineering the Ibooster Gen2 here: https://github.com/open-vehicle-control ... er/yaw.yml But I could not make it move yet.

Thanks!
AMP3R
Posts: 109
Joined: Sun Oct 09, 2022 8:32 pm
Has thanked: 2 times
Been thanked: 51 times

Re: Tesla M3 and Y ibooster gen2 hacking

Post by AMP3R »

thibaultponcelet wrote: Tue Jun 18, 2024 5:55 pm Amazing job @AMP3R!
Would you mind sharing the trace you used to make it move?
From what I can see ibooster EXTERNAL_BRAKE_REQUEST.csv is valid but not requesting any braking.

I'm also busy reverse engineering the Ibooster Gen2 here: https://github.com/open-vehicle-control ... er/yaw.yml But I could not make it move yet.

Thanks!
Sorry, there was a little mistake. Play with a speed of this trace. All the messages should be around 10 ms.
ibooster EXTERNAL_BRAKE_REQUEST.csv
(2.21 KiB) Downloaded 122 times
thibaultponcelet
Posts: 3
Joined: Tue Jun 18, 2024 5:51 pm
Been thanked: 2 times

Re: Tesla M3 and Y ibooster gen2 hacking

Post by thibaultponcelet »

Thanks a lot!
Based on this trace we could actuate the ibooster with our code.

It seems that bytes 2 and 3 of frame 0x38C is controlling the flow rate (ml/s) of fluid sent into the baking system.
We did not find the scale and offset yet but 0x7e00 seems to be the zero point, applying more (up to 0x9200) is applying more brake and less (until 0x6A00) is releasing the brake.
Still have to find were the rod target (in mm) is sent in the frames sent by the ibooster and it will be possible to implement a PID algorithm.

Once we have everything working we will post a DBC and source code here.
Have a good day
AMP3R
Posts: 109
Joined: Sun Oct 09, 2022 8:32 pm
Has thanked: 2 times
Been thanked: 51 times

Re: Tesla M3 and Y ibooster gen2 hacking

Post by AMP3R »

thibaultponcelet wrote: Thu Jun 20, 2024 10:29 am Thanks a lot!
Based on this trace we could actuate the ibooster with our code.

It seems that bytes 2 and 3 of frame 0x38C is controlling the flow rate (ml/s) of fluid sent into the baking system.
We did not find the scale and offset yet but 0x7e00 seems to be the zero point, applying more (up to 0x9200) is applying more brake and less (until 0x6A00) is releasing the brake.
Still have to find were the rod target (in mm) is sent in the frames sent by the ibooster and it will be possible to implement a PID algorithm.

Once we have everything working we will post a DBC and source code here.
Have a good day
You are welcome. Together is easier to work.
thibaultponcelet
Posts: 3
Joined: Tue Jun 18, 2024 5:51 pm
Been thanked: 2 times

Re: Tesla M3 and Y ibooster gen2 hacking

Post by thibaultponcelet »

In case it could help someone, we published a DBC file for the I Booster Gen 2 (Tesla Model 3) here: https://github.com/open-vehicle-control ... n/ibooster
Our first implementation is working and allows to control the brakes and monitor them: https://github.com/open-vehicle-control ... er_gen2.ex
User avatar
KennyMillarSFX
Posts: 2
Joined: Mon May 12, 2025 5:40 pm
Location: UK
Contact:

Re: Tesla M3 and Y ibooster gen2 hacking

Post by KennyMillarSFX »

I'm new here ;-)
I would like to get an iBooster Gen 2 working fully autonomously - ie no input from the brake pedal, for a remote-drive project.
I've followed the conversation above, but some of the links are now dead.
Did anyone manage to get an iBooster working from CAN?
I can talk to the iBooster on the yaw can bus, and from what I can tell, sending it the right sort of values, but there's no physical response from the unit. Possibly due to the fault and faiure shown here:
Image

Any ideas?
User avatar
KennyMillarSFX
Posts: 2
Joined: Mon May 12, 2025 5:40 pm
Location: UK
Contact:

Re: Tesla M3 and Y ibooster gen2 hacking

Post by KennyMillarSFX »

I figured out the issue - a bad connection between the pedal sensor (4-pin connector) and the main connector on the iBooster.
Now it's working as I expect.
However I can only get 21mm of travel out of it 'autonomously' -ie with no pedal input.
Anyone have any data on how to drive the full 40mm or so that it has?
User avatar
marcexec
Posts: 175
Joined: Tue May 14, 2019 12:52 pm
Location: Dublin, Ireland
Has thanked: 756 times
Been thanked: 72 times

Re: Tesla M3 and Y ibooster gen2 hacking

Post by marcexec »

Hey guys,
I linked to this thread from https://openinverter.org/wiki/Bosch_iBooster. As you have the iBooster(s) on the bench, can you measure them when you have a chance and add the details in the table, similar to what we have for the Zoe and Yaris ones already?
Happy to help with any editing!
A motorcyclist is never late, Frodo Baggins. Nor is he early. He arrives precisely when he means to.
Getting started guide for Celeron55's iPDM56
My Suzuki RF400 build @ES
Honda IMA & Lebowski howto
Image
Jacobsmess
Posts: 727
Joined: Thu Mar 02, 2023 1:30 pm
Location: Uk
Has thanked: 384 times
Been thanked: 109 times

Re: Tesla M3 and Y ibooster gen2 hacking

Post by Jacobsmess »

marcexec wrote: Thu May 15, 2025 11:05 am Hey guys,
I linked to this thread from https://openinverter.org/wiki/Bosch_iBooster. As you have the iBooster(s) on the bench, can you measure them when you have a chance and add the details in the table, similar to what we have for the Zoe and Yaris ones already?
Happy to help with any editing!
Just a quick thought but it would be useful for some to include the MC olt hole clocking and angle also I guess. As there may be some other MC options that would work for people.
Post Reply