Edelbrock ProFlow 4

I dove in and made an xml file for the Edelbrok ProFlow 4 EFI aftermarket ECU, however I haven’t tested it yet for 2 reasons

1- I don’t have my PF4 yet
2- I don’t know how to load the xml file into RealDash

The PF4 actually will send it’s info via bluetooth to their android app which is used for tuning and also a dashboard, but it also supports CAN, so this should allow communication via a CAN-USB adapter. I think any chance to use the bluetooth connection directly is way beyond my pay grade.

Edelbrock was gracious enough to publish a protocol document and a dbc file, unlike other manufacturers who seem to think their stuff doesn’t smell (Holley).

<?xml version="1.0" encoding="utf-8"?>
<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->
 <!-- NOTE: Edelbrock Pro Flow 4 01-20-2021  DaveDogMoore -->


<RealDashCAN version="2">

  <frames>

    <frame id="300" endianess="big">
      <value targetId="37" units="rpm" offset="0" length="2"></value> <!-- Engine Speed -->
      <value targetId="0" units="afr" offset="2" length="1" conversion="V*0.05"></value> <!-- Air fuel ratio -->
      <value targetId="2" units="afr" offset="3" length="1" conversion="V*0.1"></value> <!-- AFR target -->
      <value targetId="42" units="%" offset="4" length="1" conversion="V*0.392157"></value> <!-- TPS  -->
      <value targetId="31" units="bar" offset="5" length="2"></value> <!-- MAP -->
      <value targetId="102" units="%" offset="7" length="1"></value> <!-- Long Term Fuel Trim -->
    </frame>

    <frame id="301" endianess="big">
      <value targetId="105" units="psi" offset="0" length="2" conversion="V*0.01"></value> <!-- Fuel Pressure -->
      <value targetId="35" units="msec" offset="2" length="2" conversion="V*0.001"></value> <!-- Fuel Injector Pulse Width -->
      <value targetId="119" units="%" offset="4" length="1"></value> <!-- Fuel Injector Duty -->
      <value targetId="38" units="deg" offset="5" length="2" conversion="V*0.25"></value> <!-- Ignition Timing -->
      <value name="ProFlow4: Idle Position" units="%" offset="7" length="1" conversion="V*0.392157"></value> <!-- Idle Position -->
    </frame>

    <frame id="302" endianess="big">
      <value targetId="101" units="%" offset="0" length="2" conversion="V*0.05" signed="true"></value> <!-- Short Term Fuel Trim -->
      <value targetId="27" units="F" offset="2" length="2" conversion="V*0.1"></value> <!-- Intake Air Temp -->
      <value targetId="14" units="F" offset="4" length="2"></value> <!-- Coolant Temp -->
      <value targetId="12" units="v" offset="6" length="1" conversion="V*0.0705882"></value> <!-- Battery Voltage -->
      <value name="ProFlow4: AFR Learn Status" offset="7" length="1"></value> <!-- AFR Learn Status -->
    </frame>

    <frame id="303" endianess="big">
      <value name="ProFlow4: Idle Target" units="rpm" offset="0" length="2"></value> <!-- Idle Target -->
      <value name="ProFlow4: AFR Closed Loop Status" offset="2" length="1"></value> <!-- AFR Closed Loop Status -->
      <value name="ProFlow4: Radiator Fan1 Status" offset="3" length="1"></value> <!-- Radiator Fan1 Status -->
      <value name="ProFlow4: Radiator Fan2 Status" offset="4" length="1"></value> <!-- Radiator Fan2 Status -->
    </frame>

  </frames>

</RealDashCAN>

I believe I got further:

“failed to parse CAN description file”

Could you attach your latest XML file? I can take a look if there is something wrong with it.

<?xml version="1.0" encoding="utf-8"?>
<!-- RealDash CAN XML description file, version 2 Requires RealDash version 1.5.8 or newer -->
 <!-- NOTE: Edelbrock Pro Flow 4 01-20-2021 -->


<RealDashCAN version="2">

  <frames>

    <frame id="300" endianess="big">
      <value targetId="37" units="rpm" offset="0" length="2"></value> <!-- Engine Speed -->
      <value targetId="0" units="afr" offset="2" length="1" conversion="V*0.05"></value> <!-- Air fuel ratio -->
      <value targetId="2" units="afr" offset="3" length="1" conversion="V*0.1"></value> <!-- AFR target -->
      <value targetId="42" units="%" offset="4" length="1" conversion="V*0.392157"></value> <!-- TPS  -->
      <value targetId="31" units="bar" offset="5" length="2"></value> <!-- MAP -->
      <value targetId="102" units="%" offset="7" length="1"></value> <!-- Long Term Fuel Trim -->
    </frame>

    <frame id="301" endianess="big">
      <value targetId="105" units="psi" offset="0" length="2" conversion="V*0.01"></value> <!-- Fuel Pressure -->
      <value targetId="35" units="msec" offset="2" length="2" conversion="V*0.001"></value> <!-- Fuel Injector Pulse Width -->
      <value targetId="119" units="%" offset="4" length="1"></value> <!-- Fuel Injector Duty -->
      <value targetId="38" units="deg" offset="5" length="2" conversion="V*0.25"></value> <!-- Ignition Timing -->
      <value name="ProFlow4: Idle Position" units="%" offset="7" length="1" conversion="V*0.392157"></value> <!-- Idle Position -->
    </frame>

    <frame id="302" endianess="big">
      <value targetId="101" units="%" offset="0" length="2" conversion="V*0.05" signed="true"></value> <!-- Short Term Fuel Trim -->
      <value targetId="27" units="F" offset="2" length="2" conversion="V*0.1"></value> <!-- Intake Air Temp -->
      <value targetId="14" units="F" offset="4" length="2"></value> <!-- Coolant Temp -->
      <value targetId="12" units="v" offset="6" length="1" conversion="V*0.0705882"></value> <!-- Battery Voltage -->
      <value name="ProFlow4: AFR Learn Status" offset="7" length="1"></value> <!-- AFR Learn Status -->
    </frame>

    <frame id="303" endianess="big">
      <value name="ProFlow4: Idle Target" units="rpm" offset="0" length="2"></value> <!-- Idle Target -->
      <value name="ProFlow4: AFR Closed Loop Status" offset="2" length="1"></value> <!-- AFR Closed Loop Status -->
      <value name="ProFlow4: Radiator Fan1 Status" offset="3" length="1"></value> <!-- Radiator Fan1 Status -->
      <value name="ProFlow4: Radiator Fan2 Status" offset="4" length="1"></value> <!-- Radiator Fan2 Status -->
    </frame>

  </frames>

</RealDashCAN>

from the edelbrock spec:

Pro-Flo 4 fuel injection systems have a 20 channel CAN bus data stream that’s available in firmware versions
v53 and later. The data stream uses 11 bit addresses, has a bus speed of 1 Mbit/sec and all channels are
sent as Big Endian at 200hz. The CAN bus network is accessible through the CAN connector on all Pro-Flo 4
main harnesses. The Pro-Flo 4 ECU has an internal 120 ohm terminating resistor. A validated DBC file is
also available for those devices that may accept a direct DBC file upload.

Address Byte Name Unit Scalar Offset
300
1
Engine Speed RPM 1 0
2
3 Air Fuel Ratio AFR Gas (14.65) 0.05 10
4 Air Fuel Ratio Target AFR Gas (14.65) 0.1 0
5 Throttle Position % 0.392157 0
6
Manifold Absolute Pressure mbar 1 0
7
8 Long Term Fuel Trim % 1 -100
301
1
Fuel Pressure Bar 0.01 0
2
3
Fuel Injector Pulse Width msec 0.001 0
4
5 Fuel Injector Duty % 1 0
6
Ignition Timing °BTDC 0.25 0
7
8 Idle Position % 0.392157 0
302
1
Short Term Fuel Trim % 0.05 (signed) 0
2
3
Intake Air Temperature °F 1 0
4
5
Coolant Temperature °F 1 0
6
7 Battery Voltage Volts 0.0705882 0
8 AFR Learn Status 0=OFF, 1=ON
303
1
Idle Target RPM 1 0
2
3 AFR Closed Loop Status 0-1=OFF, 2=ON
4 Radiator Fan 1 Status 0=OFF, 1=ON
5 Radiator Fan 2 Status 0=OFF, 1=ON
6 - - - -
7 - - - -
8 - - - -

that wasn’t much help, here is the url for spec download, forum registration required

https://forums.edelbrock.com/forum/pro-flo-efi/pro-flo-4/28780-pro-flo-4-can-bus-data-stream-info

Please attach the XML file instead of copy-pasting to the post as that would delete any ‘invalid’ hidden characters from the file.

took a bit for me to figure out,

This version of the xml here will not likely work, see later post.
proflow4.xml (2.64 KB)

File seems to work fine for me. Have you been able to test this when connected to ECU?

Thanks for checking it out.

It didn’t get the error after I rebooted and restarted Realdash, idk.

I have not connected it to a ECU, my units are on backorder until March, and won’t have them installed and running the motors until April. Trying to get someone on their forum to give it a try , and I’ll hook up the ECUs and test before installing on motors.

I’ll post an update with results.

Thanks

One thing I noticed is that CAN frame ID 300 is in decimal. Are you sure about this, as they are usually specified as hexadecimal. You can make those IDs hex by adding 0x in front of the number.

When you get it working is it ok for you to include the file in RealDash?

I did notice that and had it noted in the back of my brain that this could be incorrect, actually in 2 aspects if you include the location where I noted that info.

I wasn’t sure and the edelbrock supplied document was not specific, however looking at the edelbrock provided .dbc file it clearly shows 0x300, 0x301, etc. etc. so I am sure that would be correct. I have updated the xml file and have included it here.

I have no problem having it included directly into RealDash.

Some people on the Edelbrock forum have taken notice, hopefully we will have a confirmation soon.
proflow4.xml (2.65 KB)

Thanks! Hope it works without problems. Let us know.