Implementation of the RealdashCAN protocol on Speeduino Serial 03

Implementation of the RealdashCAN protocol on Speeduino serial 03. I am implementing the RealdashCAN Serial protocol on Speeduino Serial 03 with Mega 2560. -The code takes all the data and sends it every 8 bytes with a specific ID and sends it at a frequency of 200Hz. -Connection to Realdash is done as RealdashCAN. -Only some are mapped in XML, for now. -I’m planning to implement CAN Broadcast for the STM32 platform, so the same XML can be used. Anyone who can do testing will be of great help.

Firmware:

XML File:


Configuração no TunerStudio.

CAN monitor on Realdash reading data via serial 03 using the RealdashCAN protocol.

Thanks!

1 Like

200hz seems like an awful long time for updates like rpm, tps, etc. If you are rewriting the Speeduino serial 3 code you could use the real dash CAN FD 66 format and push out all of the Speeduino variables in 1 call.

I do have a stm32 board running speeduino if you need testers for your other code, but I’m not sure it would work for me to test. I am pulling all of my data for the Speeduino (rpm, tps, coolant temp, etc) through canbus instead of direct wired sensors as I am only using speeduino for methanol injection.

Let me know if I can help.

1 Like

Excellent, maybe we can finally get the Speeduino to work. Thank you for your efforts.

1 Like

Sorry Cel_turbo I read your code and you are updating at 200hz not every 200hz.

Any reason why you are using a class for the serial data and public and private functions? None of the other speeduino code seems to be structured that way. Does it add overhead to the limited memory in the 2650?

I will post my implementation shortly.

Hi, it works fine with 200Hz. I have another application that updates more often, it gets close to 600 Frames per second.
I will also implement RealdashCAN 2Way, for Speeduino to receive data from Realdash.

I used part of what I had ready here, it can be simplified even more.

I didn’t understand the need for another one. Did I do something wrong? I will make a Pull Request for this one for the official version.

I think since speeduino is opensource it is good to see multiple ways of doing things. I don’t think your implementation is wrong.

I think a mega running sequential injection with boost etc. may have a problem at a 200mhz update rate. I’m not sure if it would or not. in the speeduino code most of the values are updated at 30hz, TPS, O2, boost, etc. and most everything else slower than 30Hz etc.

The only major difference is i wrapped my serial send in the existing secondary serial send.

     #if defined(secondarySerial_AVAILABLE)
        //if can or secondary serial interface is enabled then check for requests.
        if (configPage9.enable_secondarySerial == 1)  //secondary serial interface enabled
        {
          if ( ((mainLoopCount & 31) == 1) || (secondarySerial.available() > SERIAL_BUFFER_THRESHOLD) )
          {
            if (secondarySerial.available() > 0)  { secondserial_Command(); }
          } 
        }
      #endif

I hope they accept your PR. Every time I look on the Speeduino forums it always seems like the secondary serial implementation is in a state of disarray.

1 Like