#### ## ## ###### ## #####
#### ## ## ## ## ## ## ## ## ####
##### ## ## ## ## ## ## ## ##
## ## ##### ## ## ## ## ## ##
IMPORTANT: enter the case-INsensitive alphabetic (no numbers) code AND WRITE SOME SHORT summary of changes (below) if you are saving changes. (not required for previewing changes). Wiki-spamming is not tolerated, will be removed, so it does NOT even show up in history. Spammers go away now. Visit Preferences to set your user name Summary of change: '''CAN_VARIANT_BMW_E46_M54_S54''' '''for BMW E46''' CanBus messages under [https://shop.vems.hu/catalog/stm32f103mcp2515-p-213.html stm32-aim2can-10adcmap/] Implemented as -DCAN_VARIANT_BMW_E46_M54_S54 [https://www.bimmerforums.com/forum/showthread.php?1887229-E46-Can-bus-project example] An exact list of required ID-s + messages (so we can test, edit, confirm). * RPM (*6.4 in CAN id 0x316 byte2-3 litteendian) * TPS * CLT * MAT * MAP * ... ---- '''1 way or 2 way?''' "ARBID: 0x613 also sent from the instrument cluster if 0x615 is acknowleged." * Is it going to be required often to respond and ACK ? * That might be tougher to make generic home-configurability than the 1 way AIM => CAN (currently C software wired in flash, planned to be configurable after a few more examples are implemented). ---- '''CAN dash arrived to lab, so we can now test new code against real dash''' Tested against real dash * so far '''tested good''' * have not implemented AC request back to v3 yet (available from CAN id 0x615) ---- '''Termination''' (generic info, separate page maybe ?) If in doubt with 120 Ohm termination, measure resistance. * 120 Ohm on both ends: expect to measure 60 Ohm effective value in the end ** If one end is terminated with 120 Ohm, the other end with 240 Ohm, measuring 80 Ohm would indicate it. 80=1/(1/120+1/240) ** connect 240 Ohm in parallel with 240 Ohm => 120 Ohm effective ---- '''Sniffing''' - should not be needed normally, but... Saleae 8ch (eg. with old 1.1.15 or 1.1.16sw) can be used to capture live data from bus. * However, min 2 nodes are needed anyway (1 node sends, the other node acknowledges: eg. '''VEMS ECU''' with fw 1.2.38 .. 1.2.41 '''receives all CAN ID-s''' without filtering by default) * If no 2nd node to acknowledge, just a CAN transceiver and saleae (or scope) will NOT acknowledge the frames, and the transmitter will resend. ** Note: MCP2515 is NOT acknowledging without an SPI master, or if NOT initialized accordingly. ---- CAN checksum required I believe I have a 2002 E46 325i that shows check engine light and also brake fault light, I believe its because the CAN output from the aim adapter doesn´t have a checksum at the end so the other boxes in the car get upset, when the ecu is disconnected the fault goes away. I believe its a CRC-8 that is required. I have the cable to update the CAN so if you believe you can update the E46 CAN firmware to have CRC-8 then I can test it. Car is otherwise all working (not AC as its over CAN and there is no CAN > V3) Gunni ---- Hello Gunni, Do you have a can log (logging the same id's the aim2can sends out) from when the stock ecu is sending the data, so that i can determine the correct crc format and location ? or perhaps some addional information outlining it ? If i have a better understanding of the requirements, i will implement it. Thanks! Best regards, Dave Hi Dave, I believe I did send you some of that data from earlier when I was first messing about with this CAN stuff. But I´ll try and find those logs or do a new log of the CAN. And if I can I´ll try and find some info on the CRC8 stuff and the easiest way to implement it (table lookup people say) Optional: Add document to category: Wiki formatting: * is Bullet list ** Bullet list subentry ... '''Bold''', ---- is horizontal ruler, <code> preformatted text... </code> See wiki editing HELP for tables and other formatting tips and tricks.