CAN Bus ID's or data
I've since sniffed out quite a lot of the CAN ID's that I need but still sniffing using my CAN BUS sniffing tool. It's a rather slow and time-consuming process reverse engineering these codes, but almost there.
I've since sniffed out quite a lot of the CAN ID's that I need but still sniffing using my CAN BUS sniffing tool. It's a rather slow and time-consuming process reverse engineering these codes, but almost there.
Look at post #4 here: MPX, LAN, BEAN, AVL
https://www.clublexus.com/forums/is-...e-on-help.html
Regarding what you are trying to do with your fog: the lighting messages on the CAN BUS for the 2IS seem to be purely information purposes. I tried to see if transmitting the lighting message will turn on the lights but it doesn't and it seems that the actual lights are controlled by the BEAN and then a CAN message is sent relating to it's status. Other messages like engine temperature, cruising range etc I was able to transmit to the CAN BUS and get it to display on the cluster.
So the way to control the lighting via the BUS would be to interface and talk to the BEAN network itself. I haven't looked into the BEAN network as for my project the CAN BUS has all the data I need. I am only going to need it to Listen Only and then translate the filtered messages to a new message for the new cluster which will be on it's own virtual CAN BUS.
Even if you got interfaced with the BEAN and got the lights controlled by the messages, my assumption would be that the fog still may not turn on without the status of the light parameter being on. Because on the CAN BUS the fog status is one value which is automatically linked to lights being on.
Regarding what you are trying to do with your fog: the lighting messages on the CAN BUS for the 2IS seem to be purely information purposes. I tried to see if transmitting the lighting message will turn on the lights but it doesn't and it seems that the actual lights are controlled by the BEAN and then a CAN message is sent relating to it's status. Other messages like engine temperature, cruising range etc I was able to transmit to the CAN BUS and get it to display on the cluster.
So the way to control the lighting via the BUS would be to interface and talk to the BEAN network itself. I haven't looked into the BEAN network as for my project the CAN BUS has all the data I need. I am only going to need it to Listen Only and then translate the filtered messages to a new message for the new cluster which will be on it's own virtual CAN BUS.
Even if you got interfaced with the BEAN and got the lights controlled by the messages, my assumption would be that the fog still may not turn on without the status of the light parameter being on. Because on the CAN BUS the fog status is one value which is automatically linked to lights being on.
Good job! What hardware are you using to scan the bus and how are you getting the checksums out of the decoded messages while sampling? At my old job I had access to a very high end oscilloscope which code decode hundreds of protocols. I wish I had it now.
So, even if you are read only, there are some interactions for changing what is displayed. Are you applying this 3IS data independent of the 2IS architecture? This sounds like serious RE going on here!
So in the finished state, it sounds like you may be adding a processing computer. Perhaps an Arduino unit or two?
Good luck!
Trending Topics
Toyota checksum calculation is straight forward. It's basically the CAN ID for example 0x1C4 (01C4 - this is the CAN ID for rpm) split the CAN ID into two parts ID1 ID2, then data length value, so for example 08, and because the data length is 8, it means there will be 7 values before the 8th byte. The 8th byte is the checksum. So you would basically SUM up ID1 + ID2 + Data Length + Byte1++to+++Byte7 = Checksum (But only take the last two characters of the answer as a checksum).
The checksum is needed for ECUs to accept messages. Messages that don't have a correct checksum will be completely ignored by the ECU on the bus for which the message is intended. However, from the testing I have done it seems the cluster does not care about the checksum as the cluster is only displaying the information. If that same message was sent on the bus without the correct checksum then the relevant ECU will not process the message. Since I am only using the messages to transmit to the 3IS cluster for display purposes I don't think I will bother adding extra lines of code to calculate the checksum because it works without it. i've tested this with the most of the packets including speed. I am able to manipulate speed and get the mileage to tick over and trip counters to all work with a incorrect checksum.
Just incase of any errors, I do not want to risk transmitting data back to the live bus which can be catastrophic, this way I have my 3IS cluster on a virtual CAN bus. The only thing I can think of that may be a problem is that the cluster ticks and logs the mileage which works perfectly fine in my setup and when i am ready to install it, I will virtually tick the mileage to the correct mileage of my car. However, the cluster does send out a packet back to the bus telling the car what the mileage is at. Other ECU's then also have access to what mileage the cluster is at. From what i've seen this isn't really used anywhere else except for example in the navigation unit you can log maintanance value to say remind me of oil change in certain miles, so i'm not sure if the mileage will increase in that navigation unit. If this is the case and I really need to send the mileage, then what I might do is on start-up not set to read-only transmit the mileage packet and then set to listen only.
Hope all that makes sense. It's a lot of work and i've been busy with it in my spare time
Soon I will be posting some videos. I will have a full bench simulation video and walkthrough and a final video once it is in the car installed.
Celebrating Lexus & Toyota from Around the Globe

So the data is always being output on the bus repeatedly and you are just listening and plucking what you need!
Never hacked the CAN but nice to know it can be done this way and the arduino has a dual available.
PS- I've used Arduino Uno's as hardware to read serial data(sync or async) or states of multiple inputs and then output data serially to custom
programs I wrote in Visual Studio to interpret the data and it works well too but the serial on Visual Studio is slow. But an arduino with CAN can also
be used with Visual Studio too maybe for debugging if it has a serial output.
Thank You for sharing.
Last edited by Margate330; Feb 5, 2020 at 05:23 AM.
programs I wrote in Visual Studio to interpret the data and it works well too but the serial on Visual Studio is slow. But an arduino with CAN can also
be used with Visual Studio too maybe for debugging if it has a serial output.
PS: Messing with the CAN Bus can be extremely dangerous and if one wishes to try, please read and do a lot of homework before hand.
I don't have time for a proper response but amazing work! I am shocked that it finds checksum irrelevant. I hope that holds true for the duration!
Unfortunately I really can't add much value here as I've, only read stuff and tinkered with I2C protocols on proprietary hardware, well and some motorcycle ECUs.
I don't need a long explanation but do you see a method to their means regarding addressing? Does it correlate directly to the PID's or must it be be further decoded?
Share as you wish but your day job is ????
Last edited by 2013FSport; Feb 5, 2020 at 01:54 PM.
Computer programmer
Last edited by ahmed24; Feb 6, 2020 at 02:04 AM.
haven't analysed it enough to figure out their method. i'll post if I discover anything interesting. That being said, just comparing the CAN frame ID's between the 2IS and the 3IS, they seem to be completely different. The 3IS seems to share the same addressing as the CT200h, 4GS and the cars that launched around the CT200 era and onwards (not 100% but lots of codes are common). This is how I was able to find the ID's I needed because I have access to a CT200 and a 4GS which I was able to record data from. The 2IS seems to share codes more common with the older Toyota's and Lexus cars like the 2nd Gen Toyota Yaris, 2nd Gen Prius, 1IS
Computer programmerAnd ya, playing on the bus can instantly throw the whole car into limp mode, and/or shut down the whole system so readers be warned....
This is good stuff. Is the the cluster a physical bolt in? This is going to be a game changer from the drivers perspective looking forward!
O/T
I don't even know how to classify my job. It has a bit of everything in it. Programming, mechanical design, electrical design, lasers and medical products that go in our bodies when our systems fail. We micromachine with lasers... both polymers and precious metals.
Keep us posted! I'm wanting to see the finished result!


Will do






