Select your DashCAN product and your ECU below to see the matching step by step setup guide.
Not listed? Any ECU that broadcasts on CAN can be mapped by hand, see the note at the bottom of this page.
To set up the device, connect the following four wires from the DashCAN Apex harness:
Connect the CAN High and CAN Low wires to the CAN bus of your ECU, the exact pins are in the ECU section below.
Important! To ensure signal integrity, the CANH and CANL wires must be routed as a twisted pair, and the total wire length should not exceed 1.5 meters.
For further help on wiring, please visit the Technical Help page.
Connect to the CAN High and CAN Low pins of the CAN transceiver on your board. Speeduino boards vary a lot, so use the pinout published for your build.
The broadcast runs at 500 kbit/s, which every DashCAN interface supports.
The DashCAN Apex unit contains a built-in GPS module and an IMU (inertial measurement unit). Where you mount the device directly affects the quality of the GPS and motion data, so take a moment to find a good spot.
Preferred orientation: mount the device flat and level. Any fixed mounting angle is acceptable, as the app can compensate, but keeping it level gives the best out-of-the-box result.
Your board needs hardware CAN.
The CAN broadcast is only available on Speeduino builds with a native CAN controller and transceiver (STM32 and Teensy based boards). The classic Arduino Mega 2560 build has no CAN controller and cannot be used with DashCAN.
Open TunerStudio and go to the CAN bus / secondary serial IO interface page.
Set CAN broadcast protocol to Haltech. Speeduino then transmits the Haltech V2 frame set, which DashCAN decodes.
Burn the settings to the ECU.
Note: in this mode Speeduino does not send the exhaust gas temperature frame, so EGT stays empty. Select Speeduino in the app rather than Haltech, so DashCAN only asks the interface for the frames your ECU really sends.
These are the channels DashCAN can decode from this ECU. Channels your engine does not measure or your ECU does not transmit simply stay empty.
After installing the app, launch it and then approve all the permission requests and turn on Bluetooth, otherwise the app will not work properly!
Open the app, go to Settings and then the CAN bus page.
Select Speeduino here even though the ECU is transmitting the Haltech protocol. The Speeduino table is the Haltech one without the EGT frame that Speeduino never sends.
The baud rate has to match the bit rate your ECU broadcasts at. On the DashCAN OBD and Wire-in interfaces it is fixed at 500 kbit/s and the selector stays greyed out, on the DashCAN Apex you can pick it.
120 Ohm termination: leave it off when you tap into a bus that already works (a factory bus, a Haltech CAN hub, a Syvecs plug and play kit). Turn it on only when DashCAN and the ECU are the only two devices on the bus and nothing else terminates it. The switch needs hardware version 1.07 or newer.
If everything is done correctly the app connects to the DashCAN interface automatically. Start the engine and watch the RPM gauge: as soon as it follows the engine, the CAN side is working and you are ready to log.
If every gauge stays at zero, work through this list:
Still nothing? Contact us with your car, your ECU and its firmware version, and which DashCAN product you have.
DashCAN reads plain CAN broadcasts, so any ECU that can transmit one can be made to work. Pick the closest ECU in the list, then open the settings of each gauge in the app and set the CAN ID, start bit, length and byte order to match your ECU's broadcast, exactly as its documentation describes it.
Contact us and we will help you map it, and if the ECU is common enough we will add it to the app.