I’ve always been curious to understand what goes on inside machines. The biggest one I have is my car, so I have been looking for a compact tool to see the traffic on the vehicle CAN bus and do something cool with it for a while now.
Tired of waiting, I decided to make the Carloop, a compact OBD-II diagnostic port shield for the Particle Photon and soon Electron) with GPS support. I first showed it in this forum thread.
To be clear, this is a development kit to connect a Particle device to your vehicle’s OBD II port. You will need to write some code to make this do something. I already gave you a head start by contributing to writing a CAN bus driver for the Particle.
I’m looking for find interested people to try it out. I’ll do a sample production run with that first round of orders and ship them. Several people, including @Bspranger, @avidan and @alterschw3de have already expressed interest in buying one.
If you’d like to see what’s going on inside your car, analyze your driving data and build cool apps, give it a shot!
Go ahead with questions or comments.
Engineer, father and geek
Update: this project used to be called CANdlestick
expressed interest? i just ordered 2!!!
I wanted to give a progress update about the Carloop.
I’ve got the revision 2 running in my car right now.
See this snapshot of CAN messages coming through the Photon!
CAN Messages: 23 40 46 73 80 90 91 fd 190 200 201 205 20e 20f 211 212 217 231 240 265 268 275 280 2ba 340 350 360 364 400 405 420 424 428 430 433 453 454 455 4b0 4e3 4f1 4f2 4ff
I’m currently writing a program to automatically track miles from every trip to a Google Sheet. This is just one common use case of connected car technology.
Once I have a good demo program I’ll be ready to build and ship out the first batch of pre-order hardware!
What other app ideas can you think of to showcase Carloop ?
I’d love to see it connect directly to my phone when I get in the car. Maybe use something like the RedBear Duo (when it releases publicly). That way you can use BLE to connect directly to your phone and send it information as you drive within a native app. Otherwise I think a Electron version would be handy to have your car always telling you what’s going on without having to connect to anything.
Interfacing directly with a phone is definitely something we have in mind for a future version. You’re right that at the moment the most feasible option is using an Electron.
What’s the “just sitting there” power draw on these things? I had a cheap Bluetooth OBD-II reader from China and I swear it ran down my battery (just looked at the OBD-II spec and it looks like it has direct battery access). Is there any way to detect if the car is on and only draw power then?
Yes, the CAN transceiver has a "wake up on bus activity" mode, so it is possible to put the device to sleep if there's no activity on the bus.
It's still a good idea to publish the the current draw.
On the other hand I've had a pre-release Electron connected to my car battery for several months and I didn't see any noticeable battery drops even though I didn't ever put the device to sleep.
What kind of regulator are you using to bring the car’s 12V down to 5V? From the picture it looks like a linear regulator? What’s the big-ol cap on the back for?
The regulator design is from the open-source OpenXC project by Ford research. I used that for the 1st version since it’s an automotive-grade design. The big cap is to survive low voltages during cranking.
The power supply is one area I’m changing in successive PCB revisions. I’m looking for a good balance between component size, cost and ability to survive automotive transients like these:
Here’s a great resource to understand CAN basics and best practices when hacking your car: http://opengarages.org/handbook/2014_car_hackers_handbook_compressed.pdf
@jvanier Super project, and I am definitely interested. I’ve pondered this idea for a while now and was thinking of ordering some other components (Arduino CAN bus transciever) and connecting them to the Photon. I would love to see, and track whilst driving, certain vehicle variables (as well as others including data from a 9 DOF sensor).
Auto uploading to Google Maps / Docs when I arrive at the office / home would be ideal… once you have the data then the analysis would be interesting too.
I’ve also got a Redbear Duo in the post, so this might be another option too… so many interesting things and so little time.
I’m going to check out your website and go from there. Have you since made any revisions to the power circuitry as you mention above? What GPS sensor do you propose using?
Nice to hear your comments Neal! Uploading the latest data when WiFi becomes available will be a really nice feature to have.
The GPS sensor I’ve been using recently is the slim GP-735 from Sparkfun. I included a JST connector on the CANdlestick so you can connect your own GPS receiver.
You can take a look at the power supply circuit. The schematics are available on GitHub.
Julien - a couple questions;
- Are you selling the V3 CANdlestick?
- What information have you managed to get from your car? I saw a post where you had some codes you had received however have you translated these to valid data?
- I also need to check whether my car will handle this as it is an older 2006 model, so I need to troll the internet to find out what CAN language it speaks. Does the CANdlestick handle multiple languages?
- Where can I find some code examples, just to get the brain engaged in this?
Thanks and looking forward to getting stuck into this, if all is right and I can get some valuable data out / recorded / analysed.
You've got good questions.
Yes, I'm selling the CANdlestick. There's a pre-order page on Celery, a secure store for pre-orders. Currently I plan on shipping revision 2 for the pre-orders since it's the one I've been testing the longest.
The following link has a good overview of the kind of data you can get from your car. There are 2 main sources: OBD diagnostic parameters (PID) and raw manufacturer-specific CAN messages. I'm working on getting both of these sources working on CANdlestick.
As an example, here's some preliminary data I got off my car today.
What brand is your car? Most cars made in the last 10 years use CAN. It's mandatory after 2008.
CANdlestick only speaks CAN to keep the hardware simple.
Code examples will be coming soon to GitHub. I'm making a trip-tracking example.
I’ve hunted high and low and found some data on which CAN language / protocol I have on my car (2006 VW Golf MkV) and it appears it is ISO-9141-2 (KWP SLOW) which I understand has a different pin out to the current 2008+ vehicles (pins 7 and 15 for my car; I’ll also try to check behind my OBD port, where as the CANdlestick connects to pins 6 and 14).
The good news is that I can still get some good variables from my car, but I’m going to have to mission my own device interface between the car and Photon. I might even go for a Bluetooth option straight to my phone or Redbear Duo…
Neal, your best bet is probably going to be an ELM327 chip in that case. It knows how to talk all OBD protocols, but it’s fairly expensive ($25/piece or $10 for a clone of the ELM327). Sparkfun has an OBD adapter on sale with such a chip.
@jvanier, unfortunately the linked pic is broken.
Could you please re-paste.