PiTop 4 Car Diagnostics tool (quick video demo)

Hi All,

Have had a bit of time to play with the PiTop duing the weekend and implemented this new functionality.
If you are into cars or anything with an engine and an OBD port I’m sure you will find this handy😁

Will do another follow-up video more nicely put together. This video is for the community eyes only😁

PS: this also clears any fault codes😂


@Luis Yes! I’ve been wanting to do a pi-top car project for such a long time - you’re an absolute project machine! :crown:

What software are you using for this?


@duwudi: Thanks😂. Have some many ideas but so little time😂. My mind is flooded with so many things I want to build😂.

It uses PyOBD and an ELM327 bluetooth dongle, everything is wireless connected. I would want to modify the code so that I can use the miniscreen and buttons as well. Still working on the menu system to have this integrated so far have only managed to add a few widgets as I posted in my other topic.


Seen some projects like this before but I don’t think any finished properly encodes media players. I was once interested in doing something like this but decided to scrap the idea as I didn’t have any idea how to integrate it in to the car and so power etc

@Luis I think we could turn this into a super interesting educational challenge in Further (further.pi-top.com). Would you mind if we did?

1 Like

@Luis as a developer, that is awesome! I can see this turning into an open CAN scan tool with debugging features for sending commands to various car components, very much like snap-on’s tools.

As an ex-mechanic, I cringed a little when you said it clears the codes… Cars with OBDII systems have a learning or “readiness” period after codes are cleared to learn how much fuel to add or subtract from the “fuel-trims.” The last monitor to clear is usually the O2 system and this directly affects the fuel trims and how the car behaves under certain situations.

Some codes are benign, but others are malignant, meaning if a system is throwing a code on the CAN, eventually it could cause other systems to fail eventually or even cause engine damage over time.

Plus, if your engines readiness monitors arent set when you do emissions, you fail. :grimacing:


Hi Mark,

Not at all. The code is open source and is available on github. It is quite old I am afraid and needs a bit of tinkering around to get it working.

Posting the github link here:

Hi Spencer, I totally agree. The DTC clearing is to be used with caution. I personally have used DTC clearing only when I fixed the underlying problem and the code needed to be cleared since in some cases the DTC code does not go away by simply replacing the broken component. My use case is mostly to monitor coolant temperature, my car unfortunately does not have a coolant temp gauge. The other use is to monitor DPF regeneration and avoid turning off the car when the car is in the middle of the process.
Thanks foe your interest and for pointing these things out.

1 Like

I’m really excited to see where this goes! Do you plan on adding tools like snap-on where you can send commands over CAN? If so, I’d be interested in a bit repository! :slight_smile:

Like CAN injection? The ELM327 cannot handle that as far as I am aware, there is a possibility with an arduino and a custom pcb to do CAN injection and send commands.

Yes, CAN injection. It would be an interesting project for sure if you got CAN injection to work with hardware. Certain microcontrollers have CAN bus functionality built in. It would require a lot of programming but thatd be super cool!

Have any of you had a look at https://www.autopi.io/ or https://www.carberry.it/ - might get some inspiration there. I’d love to make a plate for pi-top [4] that has some utility in vehicles!

1 Like

@duwudi Holy Smokes! No! I hadn’t heard of that. That would make a lot of tools obsolete, since you can dynamically update these as CAN modules. This would be a cool gig for someone who is looking into tuning solutions as well for their vehicle… Especially if you could program the computer to optimize for a specific set of parameters. Like, if you had a turbo, you can have it tune for a specific amount of boost, read the cars performance, analyze it, and then create a new set of tables to flash to the ECU.

There is already the autotuner but it is limited in its range of vehicles, and they require to upload the data for someone to physically analyze and then create a new tune for you. This would be a fun branch for someone with pi-top.

I used to be really in to cars and have been working on my own cars since I was a kid with my dad, was a lead mechanic for a while, but I have so many other things going on, and other hobbies if find more fascinating. I can see this eventually happening tho!

1 Like

@duwudi: thanks for sharing this. I only heard about carberry. There is also open auto pro that I am trying to see if it can work on my Pitop setup with a different SD image. Would you happen to know if carberry or autopi allows CANBUS injection? If the only allow parameter reading (engine) and DTC clearing that is pretty much covered by pyobd.
@Supernovali: this is what I would want to try. It has everything, canbus sniffing and injection:

@duwudi: what do you think about an expansion plate to integrate this? I think it would be out of this world. Everything in one device.

Awwwww… yeth!!! I love it. Keep working man! I’d love to help out where I CAN (pun intended haha :laughing:)

Just send me a PM if youd like a second opinion on any code, get stuck somewhere, etc. :slight_smile:

1 Like

@Luis I’d love to make an expansion plate to interface with a car, that would be epic! @Supernovali maybe your next project? :wink:

@CAProjects with all this maybe we can build a full-scale autonomous rock crawler using my Jeep? :smile:


@duwudi is it automatic transmission? If not, would be rather annoying to do gearing and probably need an AGX for that too

I’m down to design and build an expansion plate :slight_smile:

I can look into the MCU’s that have CAN bus capability and start designing a board that will act as an interface between the pi-top and the OBDII port. As far as software goes, I know nothing about the protocol or operation. I’d have to start digging into it.

As far as projects go, I’m about a month out before starting a new project right now. Getting ready to launch Coleman Family Electronics in the coming month :slight_smile:

1 Like

@CAProjects yeah it’s an automatic so that should be easy, I’m not sure if it has electronic brake control though and very unlikely to have steering control - but I’d have to look into that.

@Supernovali great! You and @wil should definitely chat about new PCBs - he’s itching to get more of them developed :grin:

1 Like

I actually just talked to him today haha… might have been overboard with information tho. Oops. Sorry @wil haha :man_facepalming:t2:

1 Like