MaxxECU Race & RPi


I currently have a MaxxECU Race working via Bluetooth to a Rpi4 running lineageOS (Android 13). it works a treat and I really like the Realdash app. kudos to the developers it does the job perfectly.

I want to transition from Bluetooth to using CAN from the ECU. what is the best way of doing this? I have one of these…

and I hooked it up previously with not much luck (admittedly I wasn’t as used to Realdash and Mtune as I am now. should I just be able to plug that analyser into the Pi via USB, then put CAN H and CAN L to the other end and configure Mtune ot send the correct information?

I would also like to migrate away from LineageOS too as it takes a minute to boot and I’ve noticed dietPi will allow me to run Realdash and drop the boot down to about 20 seconds? I’m a total novice when it comes to that though and not sure where to start but I’m keen on utilising the pins on the Pi to boot up and boot down as I currently have a complex series of relays to maintain power

Anyway, any help is appreciated

What kind of car are you working on? Look at Savvycan there are good videos on how to use it to sniff the can network. I have the same adapter on BMW e93 works well.

It’s on a mk1 Ford focus so there’s no CAN network on the car (aside from the one that uses fords proprietary protocol)

I don’t think it’s a problem with the CAN from the ecu though as I believe that’s configurable, what I don’t know is the best way to connect it to the raspberry pi running realdash

Yes, connect the Adapter to ECU CAN H and CAN L pins, plug the USB to device running RealDash. That adapter probably is ‘Type1’ CAN adapter, so select that in connection settings.

Also in Connection Settings, select MaxxECU Default CAN 1.3.

Then enable CAN output in MTune.

1 Like

This seems to have worked a treat, for the most part.

I have got comms between Maxx and the pi using that adaptor.

I have “can output 2” on the Maxx set to 0x7b, extended, little median, 3 values @ 200hz

Data value 1 is ”main pedal position” unsigned 16bit

Data value 2 is DIN 2 Active (brake switch) unsigned 8bit

Data value 3 is DIN 1 Active (clutch switch) unsigned 8bit.

In realdash can monitor, I have 07b at the top with 4 bytes, the first 2 react to my pushing the throttle pedal, the 3rd reacts to the brake pedal and 4th reacts to the clutch pedal.

So I assume o have done everything correctly?

The problem I have at the moment is in the dash pages there’s a throttle position pointer in the default dash that doesn’t react to the pressing of the throttle pedal. Am I missing a step? I can’t work out how the list I have in MTune correlates to the list I have in the Realdash inputs.

If you add your own custom CAN frames from MTune, you will also need to make an updated RealDash CAN XML file. You can find the documentation and default XML files here:

RealDash-extras/RealDash-CAN at master · janimm/RealDash-extras (

I only used these 3 inputs to the ECU as they were something I could quickly check without starting the engine.

Do I need to use a custom XML if all I need is coolant temp, RPM, wheelspeed, boost level and fuel level to begin with?

No need for custom for those. Here is a full list that MaxxECU sends thru CAN output:

MaxxECU Default CAN output

got this working yesterday :metal:

thanks for the help! looks like I can use the default CAN for most of what I need.
one question I have is in Realdash it only allows 4 user can channels, I assume this can be multiplied to about 10 which I think the Maxx allows by modifying the XML?

next I need to get off android and onto something that boots a little quicker!

Now that you have established a connection with MaxxECU, you can do pretty much anything you like. For example, in our DEATHFISH 2 demo car, we have configured MaxxECU to output a lot more information that comes by default in 1.3 CAN messages, like; fuel flow, all cruise control related data, etc.

We also send status of clutch pedal, brake pedal, steering wheel buttons etc to MaxxECU via CAN.