MoTeC M84 CAN Bus: Everything Works Except Battery Voltage

Hello RealDash Team,

First of all, thank you for your support and for developing such a great platform.

After a lot of testing, I can confirm that we have successfully connected the MoTeC M84 to RealDash via CAN Bus. We are now able to receive all of the important engine data, including RPM, coolant temperature, throttle position, and other channels. Everything is working correctly.

However, there is one remaining issue:

Battery Voltage (VBAT) does not appear to be transmitted over CAN.

We have searched through the available CAN data, monitored all CAN frames, and compared the data with MoTeC Manager. While the ECU clearly displays battery voltage in MoTeC Manager, we cannot find any CAN message that contains this value.

Interestingly, we have noticed the same situation with other RealDash CAN definitions, such as some GMC XML files, where battery voltage is also not defined. This makes us wonder whether battery voltage is commonly excluded from the CAN stream unless it is explicitly configured.

Our questions are:

  1. Is battery voltage transmitted by the MoTeC M84 over CAN by default?
  2. If not, is there any way to configure the M84 to transmit battery voltage?
  3. Is there a recommended method to locate this value if it is hidden within another CAN message?
  4. Has anyone successfully displayed battery voltage from an M84 in RealDash?

Any advice or experience from the RealDash or MoTeC community would be greatly appreciated.

Thank you.

Unfortunately I do not have any MoTeC experience so I cannot really help on actual issue. But for battery voltage in general, pretty much all aftermarket ECUs send the voltage over CAN by default.

Some OEM ECUs, like GM LS platform has been more difficult to find, as it seems that some GM ECUs do not send that at all.

Back to MoTeC, one would think that their software allows outputting custom CAN messages including any user configurable value.

Thank you for your reply.

We are already familiar with the general method of receiving battery voltage over CAN, and we have successfully completed the RealDash integration with other MoTeC ECUs. All the main channels are working correctly, including RPM, engine temperature, throttle position and other sensor data.

The issue appears to be specific to the MoTeC M84. Unlike the M600 and M800 series, the M84 uses a different CAN implementation and predefined communication formats. In our configuration, the End User CAN section is not available for custom editing, so we cannot simply assign Battery Voltage to a custom CAN message or select the channel manually.

The M84 reads the battery voltage correctly inside ECU Manager, but after monitoring all transmitted CAN frames, we could not identify any byte that changes according to the battery-voltage reading. This suggests that Battery Voltage may not be included in the selected M84 CAN data set, or it may be transmitted using another CAN mode, address or encoding format that we have not yet identified.

At this stage, we are trying to determine whether:

  1. Battery Voltage is included in one of the available M84 CAN output modes.
  2. A specific CAN address, data set or communication mode must be selected.
  3. The voltage channel is available but uses a different scaling or byte order.
  4. The M84 does not transmit Battery Voltage through its standard CAN stream at all.

However, I believe there may be another practical solution, which I am planning to test. The idea is to use an ESP32 with a suitable automotive battery-voltage sensor or voltage-divider module. The ESP32 would measure the vehicle battery voltage through an analog input, convert it to the correct voltage value, and then transmit it as a separate custom CAN frame.

That custom CAN frame could then be defined inside the RealDash XML file and displayed as the Battery Voltage channel. This would allow the original MoTeC CAN data and the ESP32 voltage message to operate together on the same CAN bus, provided that a unique CAN ID is used and the bus speed and wiring are configured correctly.

This is not the ideal solution, since it would be preferable to receive the voltage directly from the M84, but it should provide an accurate and independent battery-voltage reading if the M84 does not transmit the channel.

If anyone has an official M84 CAN template, channel-assignment document, or experience receiving Battery Voltage directly from an M84, that information would still be very helpful.

1 Like

Thanks guys we solve it with esp32