Originally Posted by IamIan
If you kept the terminals facing up toward roof .. you could fit your 3 rows (148x3=444mm) side by side in the ~480mm of space from passenger side to the junction board .. and if you trim another ~20mm off the junction board .. you're up to a max of about ~500mm .. leaving you a good 500-444 = 56mm ... if you put 2 air paths between the 3 rows .. each 10mm wide .. you'd still have 36mm left for the two sides of your box/case.
I am 99% sure this is what I will end up doing.
I worked on the BCM Interceptor today and got the checksum working. Its a little different than what I had learned a checksum usually is in that the first bit always has to be a zero. This can be achieved by adding all the numbers up and taking the 2's compliment. This is what a checksum usually is, but for the Insight you then have to make sure the first bit is zero. Easy to achieve with a bit-wise AND of the sum and 0x7F.
I also set up code to modify the 2 packets that carry the voltage. If you index the 12 byte packet from 0 to 11 these are bytes 3 and 4 in the $87 packet. I did not change any other bytes, or anything on the $AA packet. If you are looking at Peter's code, he indexes only the 10 bytes that carry data and doesn't index the first (package type) or last (checksum) bytes so his indexing is from 0 to 9, and in his code they are bytes 2 and 3.
I set up inputs so that I could have it either
1) not modify the data and let is pass through
2) Modify it to 0 bars (packet 3 = 0x11 and packet 4 = 0x6A)
3) Modify it to 4 bars (packet 3 = 0x12 and packet 4 = 0x32)
4) Modify it to 19 bars (packet 3 = 0x15 and packet 4 = 0x6F)
5) Modify it to 20 bars (packet 3 = 0x16 and packet 4 = 0x3C)
I only included these four levels since they were in Peter's code. I was unable to find a complete list of what the other SOC levels are, so if you know where that data is located I would be grateful for a link.
I read the bytes received from the BCM and had it repeat back to me what it was sending onto the MCM after everything was calculated so that I could see what was being sent and confirmed that the sent bytes were correct based on the inputs and the checksums were correct.
I did have some noise problems and messed with the code a bit, so at 1 point I did have it slowly count up to about 16 bars and at another point I had it count down to 0 bars, but have been unable to reproduce these.
In the most recent version that appears to be working the battery gauge on the dash never changes. It stays set at 4 bars, which is what it was at before. When the SOC is set to 0 it does put on a few bars of charge and then when the SOC is changed to anything else, the charging stops. I tested this a few times and it worked every time, so its doing something right, but not what I expected.
Does the BCM data not update the dash SOC display? Am I missing something?