Creating Checksum Byte on PMU24

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.

I think you can use number for this and just add them.

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.

3 Likes

ok, great, looking forward to seeing that update.

If I can suggest too that it would be great to fill a byte with functions as individual bit values, and send that in the channel.

THere is [robably a way to do that already but right now it seems hard.

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

This addition will be only on PMU or the ECU and ADU will get this feature as well?

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.

Appreciate the roadmap insights. Do you have a target release date for the next PMU version?

Looking forward to using this functionality in my builds!

It will be released in a few weeks.

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.

The new PMU version has just been released, and it contains the checksum calculation functionality mentioned in this thread.

https://community.ecumaster.com/t/new-pmu-software-version-120-0-exp

2 Likes

Amazing news,

Are predicted dates on the ADU still looking promising?

Most likely in February.