Hi,
I’m wanting to implement a checksum byte at the end of a message (byte7) that is the sum of all previous bytes (0-6) plus a constant 0x64.
The previous bytes are currently either numbers or tables.
I’m not actualy sure if I need the sum of the bytes of be 2’s compliment of the sum of the bytes, or if the bytes need to be XOR together, but I’m hoping to have some functions that could implement either.
As Greg wrote, if you need to sum bytes 0–6 and add a constant, then just use a number element. If you also need to perform XOR on them, we currently don’t have a solution for that.
However, we plan to introduce a much more advanced CANbus export feature in a few weeks, which will allow you to calculate checksums and more.
Plus one for this entire topic, and the potential canbus export enhancements. Having control over individual bit values would also be key.
For my application, I am looking to use the PMU to send canbus messages to an OEM ECU based on throttle inputs, FNR switching, etc. and it needs a CRC in the last byte based on the bits in the message. There is a counter in the message, too, so does not seem like I could (practically) generate a table of lookup values. Of course, the CRC needs to follow the unique OEM CRC8 method, which has a polynomial 0x85, so also not simple. It uses XOR.
As @AaronPD said in this post, I could add a microcontroller to do this work (and many do), but the PMU is much more robust, capable, and has all the right inputs than a separate Arduino or other such controller. Would be amazing if the PMU could have (or already has) this kind of canbus export capability.
We are working on a Checksum module for CANbus Export, which should allow you to achieve what you described.
However, due to other ongoing tasks, its development is slightly delayed. I think it will be ready within a few weeks.
I’d like to also say I’d love if this was a thing.
Counters we can do presently. I don’t know of another ecu brand that can do CRC’s without getting into firmware creation. So that would be huge to have
Initially, it is intended for the PMU. Later, it will be moved to the ADU, and finally to the EMU PRO.
However, since there are many other tasks to complete in the PRO first, we cannot provide any timeline at the moment.
May I ask how the progress is looking regarding checksum for the ADU specifically. I currently run a B58 with the factory DME in an E92. Trying to satisfy some of the Modules in the car but require checksum to do so.
The PMU part is almost ready. I think we will release it right before or right after Christmas/New Year. Then it will be implemented in ADU, so it can be ready for ADU in the second part of January or the beginning of February. But please do not take these dates as promises.
Do you know how to calculate the checksum for the BMW that you have? I want to check if your checksum is doable with the current implementation.