Have you checked here:
http://www.loopybunny.co.uk/CarPC/k_can.html
Outside temp is 2CA
I'd expect transmission gear to be on one of these
0B5
0BA
1A2
1D2
304
3B1
Wheels speeds is 1A6. Think there is info in this thread on it.
Hi, I am thinking about e92 test rig also. I would like to try to flash firmware to modules with WinKFP at home. Would that be possible? Is firmware written through K-CAN bus?
If I would buy FRM module attach K+DCAN cable, and connect other module to FRM updating firmware would work?
So I am joining the party. This is my test rig:
test_rig.jpg
Also I have STM32F091RC Nucleo microcontroller and MCP2551 transreceiver (for PT-CAN).
As for K-CAN I read that it is low-speed and need TJA1054T transreceiver, I was wondering where I could get one, and found it in BMW professional radio:
TJA1054T.jpg
So I am planning to use it and solder wire on RX and TX pins. It should work?
But for now I cant make CAN BUS work on PT-CAN with STM32F091RC and MCP2551, I bet my configuration of STM32 code could be bad:
Any one have any experience with STM32?hcan.Instance = CAN;
hcan.Init.Prescaler = 16;
hcan.Init.Mode = CAN_MODE_NORMAL;
hcan.Init.SyncJumpWidth = CAN_SJW_1TQ;
hcan.Init.TimeSeg1 = CAN_BS1_4TQ;
hcan.Init.TimeSeg2 = CAN_BS2_2TQ;
hcan.Init.TimeTriggeredMode = DISABLE;
hcan.Init.AutoBusOff = DISABLE;
hcan.Init.AutoWakeUp = DISABLE;
hcan.Init.AutoRetransmission = DISABLE;
hcan.Init.ReceiveFifoLocked = DISABLE;
hcan.Init.TransmitFifoPriority = DISABLE;
I am getting zeroes when listening to PT-CAN/K-CAN:
Capture2.PNG
Any help would be appreciated.
So I was able to light KOMBI. But I did it through K-CAN with MCP2551 chip. I get many warnings and cant keep cluster on for long. Do I need to keep sending same command to keep KOMBI on?
79541092_253240085657835_1121183074973908992_o.jpg
Also PT-CAN seems to be not responding, no messages nothing on it.
I have connect MCP2551 to JBE pin 1 and 2:
Captasdfasdfure.PNG
Do I need to shorten 6-43 and 42-5? Or there must be another module on PT-CAN that it would work?
Bought a cluster and got RPM and speed working. I have Brake, ABS lights but I'm assuming those need to be coded out since sending codes has no effect.
I tried the values from the loopbunny website but I can't for the life of me, figure out how to get the needle to move.
IMG_0997.jpg
So far I have
fuelLevelMsg.id = 0x349; //From ECU
fuelLevelMsg.len =5;
fuelLevelMsg.buf[0]= 0x76;
fuelLevelMsg.buf[1]= 0x0F;
fuelLevelMsg.buf[2]= 0xBE;
fuelLevelMsg.buf[3]= 0x1A;
fuelLevelMsg.buf[4]= 0;
Can1.write(fuelLevelMsg);
Am I missing something? Do I have to turn the Gas light off (using a resistor) before the value will change?
UPDATE : Found a resistor and it did move and removed the Fuel light.
Last edited by Hakeem530i; 01-06-2020 at 12:32 PM.
Getting a cluster happy on the bench is like 10x times harder then trying to fake the car that there is a DME there when there isn't. There is a whole lot of messages that are coming from other modules that it is expecting. Simulating all those other modules is much harder than 1 DME. Just to put things in perspective for those looking just to do engine swaps in E9x cars.
I'd suggest getting INPA connected and look at what errors the KOMBI is reporting and go from there. With the Red car on the lift the KOMBI is verry unhappy.
Thaniel
- - - Updated - - -
Looks like that may be for jumping terminating resistors. Does your PT-CAN bus resistance measure approximately 60 ohms (the physical layer standard for high speed CAN bus)?
That makes sense. Need to take a look at a couple wiring diagrams and reread this thread. How do I go about getting INPA connected to the cluster? Is a DME needed to connect to INPA? Might just take that route and pick up a climate control unit as well.
Edit : Found the wiring diagram https://www.newtis.info/tisv2/a/en/e60-530i-lim/YsZSur5. I'm using an e60 so I think it may be different. I'll look into it more when I get home
Sent from my iPhone using Tapatalk
Last edited by Hakeem530i; 01-07-2020 at 01:42 AM.
If I measure it it shows 2.4k ohms, which is way too much? I have connected only to pin 1 and 2:
Captasdfasdfure.PNG
Also do you know how to get rid of those annoying errors on startup? I tried sending those errors as "OFF" (byte 3 as 0x30) flooding them but it does not seem to work it just keeps appearing.
As for needles, I was able to move speed, RPM and gas needles. Any one knows how to move oil one? and cruise control?
I still have the errors. I assume we'll have to connect to the DME or figure out what's causing it. I don't think we can code off those messages if they're activated on their own. How did you get the fuel needle to move? I put in a resistor but it seems to be stuck on full.
2.4K ohms is TOTALLY wrong for can bus terminating resistors
Read this: https://embedclogic.com/can-protocol...hysical-layer/ And other articles like it. If the bus isn't happy you are in for never ending problems.
You will need to connect a code reader (INPA for example) and get the codes before you can begin to discuss how to turn them off (feels like I said this before).
Part of turning them off will be simulating more modules by sending more CAN messages or coding out some of the KOMBI options using something like NCS expert (I think that's what it was). Or a little of both. I'm not an NCS expert so cannot provide the details for how to code the KOMBI. But there are some people other places on the forum that are very good with coding modules.
Is it possible to move oil temperature needle? What message do I need to send?
Indeed:
TxMsg.Header.IDE = CAN_ID_STD;
TxMsg.Header.RTR = CAN_RTR_DATA;
TxMsg.Header.StdId = 0x1D0;
TxMsg.Header.DLC = 8;
TxMsg.Data[0] = 0x85;
TxMsg.Data[1] = temp; //<-- oil temp
TxMsg.Data[2] = 0x46;
TxMsg.Data[3] = 0xC0;
TxMsg.Data[4] = 0x4F;
TxMsg.Data[5] = 0xC4;
TxMsg.Data[6] = 0x0D;
TxMsg.Data[7] = 0x90;
It moved the needle but after like 2seconds of mooving it resets to default position and stops responding to 1D0 message. Is it because of cluster warnings I have or do I need to send it in specific interval? I am sending it every 100ms like terminal30 signal.
Also maybe you know how to send washer fluid and coolant fluid levels?
Last edited by hotter; 02-01-2020 at 03:19 AM.
Just got a e90 335i cluster and I'm having trouble turning it on, T15 doesn't do anything. Verified with scope and logic analyzer / can sniffer that I'm sending valid data. Using STM32.
Sending:
ID:0x130
DLC:5
0x45 0x42 0x69 0x8F 0xE2
10Hz
Is the last byte counting or can it be constant?
Message is not being ack'd by the KOMBI
Last edited by James134; 02-23-2020 at 11:34 PM.
Are you using full setup with JBBE? I noticed that KOMBI turns on when I plug OBD cable (I guess it wakes it up), otherwise it does not respond to T15. Maybe its because CAS module is not present in my setup.
Got it turning on, but can’t seem to get rpm or oil temp to move. Anyone successful with that on a late 335i cluster?
EDIT:
got light, turnsignals, rpm, fuel, oil temp working, but RPM won't move and my error codes (brake, abs, traction control, airbag and seatbelt) come back a second after clearing them with a 0x592.
Thanks
Last edited by James134; 03-01-2020 at 02:14 AM.
How'd you get the oil temp and fuel? Think those were the only things I've had trouble with. What code are you using for RPM?
Also, The error codes won't disappear unless they're coded out like Thaniel said above. Those codes can't be cleared via Canbus.
Sent from my iPhone using Tapatalk
oiltemp is [1] of 0x1D0, same formula as coolant temp.
fuel according to loopbunny site.
I was able to get rid of error messages, but only until I power cycled the cluster, they came back after. Can't seem to reproduce.
Tried sending message according to loopbunny/thaniel's example in this thread, at 100Hz, but no success. RPM needle won't move.
EDIT: Just saw in Thaniel's can sniff that C0 never reaches FF on Byte[0] it counts from F0 to FE. Ill try this and report back.
Thanks
Last edited by James134; 03-02-2020 at 12:44 PM.
As for 0x130 terminal message it seems it is send on PT-CAN not on K-CAN. is it possible to send wake signal in K-CAN to wake cluster up?
Try sending at 10ms. I remember having issues and didnt get it to work until I changed it to 10ms or something.
Here's my code, I'm using a Teensy so yours might be different:
static uint32_t s = millis();
if(millis() - s > 10){
rpmMsg.id = 0x0AA; //From ECU rpmMsg.len =8;
rpmMsg.buf[0]= 0x6C;//0x5F;
rpmMsg.buf[1]= 0x06;//0x59;
rpmMsg.buf[2]= 0x28; //Throttle
rpmMsg.buf[3]= 0xFE; //Throttle u
rpmMsg.buf[4]= 0xD0; //RPM
rpmMsg.buf[5]= 0X6B; //RPM
rpmMsg.buf[6]= 0x94;
rpmMsg.buf[7]= 0x00;
Can2.write(rpmMsg)
}
Thanks, I was sending at 100Hz (= 10ms). tried your message, no luck either, RPM needle is not moving.
Still can't get rid of the ABS errors.
Not sending 0x0C0 get's me a BRAKE, ABS, traction, and car on the lift error while the rest of the gauges are OK.
When sending 0x0C0, I get the same errors as without but after like a second or two the Check engine light comes on additionally, and my oil temp gauge goes to minimum and stops responding.
Sending 0x0C0 at 5Hz (200ms).
I have a regular OBD usb cable for INPA etc., can this be connected directly to the cluster to clear/read faults?
edit: attached 2 can sniffs (with and without 0x0c0) about 500msec each.
Thanks
Last edited by James134; 03-04-2020 at 01:43 AM.
Hi!
I have front seats from E70 (I don't have this car) and I'm trying to run them without a car. The module have TJA1055. I'm sending a frame to him (0x130, 45 40 21 8F FE) via CAN but buttons on seat not working. VCC pin have 5V, EN and STB have high state, WAKE have +11V and ERROR pin have low state. Does anyone know what I'm doing wrong?
Anyone got any leads on this? I just purchased a jbbfeII and cas but couldn’t get inpa to connect for some reason.
Bookmarks