Before I Buy: Multiple OBD devices and Controlling Drivers?

I am planning out a little project to control an intake manifold butterfly for my 2008 Honda Accord.

Currently, I have a generic ELM327 Wi-Fi OBD dongle for use with my iPhone to monitor a handful of PIDs while driving.

I am thinking of getting the Carloop Basic to constantly poll for RPM and set two GPIO lines either high or low depending on whether or not the RPM is above a certain number. The GPIO lines would control a DRV8871 motor driver.
It looks like the Photon would have some available digital output pins, but I’d like to confirm there are at least two outputs that I can use.

With an OBD splitter, could my wireless dongle and the Carloop be able to run at the same time, with a fast response rate?
I don’t monitor my RPM with the phone app if that matters.

@WILLYum,

To do your project to control the intake manifold butterfly, the photon should do nicely. Does the digital output just need to be steady or does it need to be PWM? If you need PWM, it might take a closer look to ensure the available pins can do PWM. For steady state, no problem. Remember, the digital outputs are 3.3V, but are compatible with 5V signals, so long as the motor driver can accept the 3.3V transition (which is a bit lower than the 5V transition); it usually works okay. Also, I do not know how much current would go through those pins. If the driver takes just logic level control signals, you should be okay. I gave you the detailed version; in summary it should work.

As for using your wireless dongle and the Carloop at the same time, you might get some message collisions if Carloop’s ID on the CANbus is the same as the ID of the wireless dongle.
You should be fine as long as they are both not sending at the same time.

1 Like

The DRV8871 takes steady state (for my purposes, at least), logic level input and registers anything above 1.5V as high, so from what you said, I should be good. Thanks for the info!

Given a standard CAN bus, does the Carloop have a decently fast polling rate? I don’t have a specced rate I have to meet, but it is a bit of a performance project so I wouldn’t exactly want a 1 second delay between reaching X RPM and having the Photon set the pins.

@WILLYum,

For the CANbus polling rate, it depends on what you need performance-wise, as well as how hard you are working the Carloop.

For performance, you will probably want to do some experimentation to see how fast the car is generating the RPM messages on the CANbus, and how a delay affects the manifold pressure.

As for how hard you are working the Carloop, it depends on your application code. The Photon has a STM32F205 processor on board which includes built-in CANbus support. That means it should be able to get the CANbus messages very quickly. You can even setup filters (see the CANbus documentation on particle.io) to only look at the messages you are interested in. The only things remaining are if you are using WiFi, cloud, GPS or other functions at the same time; all these will slow down the performance. The final factor is to carefully design your code so that you do not have any blocking code (where the code is stuck waiting for something before it can continue.). I assume with an application containing no extras will be much better performance than what you will need.