Keith Tanner
Keith Tanner MegaDork
1/28/22 12:55 p.m.

Not really a project progress thread, but it fits in this section better than anywhere else. The concept is also not Tesla-specific, but it happens to be built for one. I'm posting it here because it's interesting and I'm hoping it'll spark ideas and discussion.

This is a project of a friend of mine - he has a Model 3 and wanted some display in front of the driver. So he built a display that reads the information off the CAN bus and displays it graphically on a small screen he's mounted in front of the driver. He started off with a clear goal of what he wanted to see and has added a few things just because they're neat, like the amount of torque being delivered or regenerated via the front and rear axles.

https://candash.app

Regardless of how people feel about glass cockpits and a center-mounted instrument stack, I think it's a good example of what you can do with modern tools and the data coursing around inside a car. It's read-only so there's no chance of borking something. It's really not that different than my analog race dash project but has less hardware screwing around. 

This is different than a scangauge-type unit that's just querying the OBD-II interface. It's much faster and has access to all the data. The downside is that it's manufacturer-specific, you need to know the content of the messages so they can be decoded. The Tesla is a good platform for this because there is a ridiculous amount of information being sent around the car. GM publishes their data format so it would be easy to build something like this.

It would be possible to have something external react to some of these messages. For example, you could have some aftermarket exterior lights turn on and off with the high beams, or undercar lighting that turns on when the door is open. Or undercar lighting that changes color depending on if you're accelerating or regenerating. Or undercar lighting that moves down the road tied to road speed so it looks like the lights are static - okay, I'll stop with the undercar lighting. How about an active wing that trims itself based on speed, steering angle and braking? Or an onboard camera that looks where the wheels are pointing? I think this is where some of the really fun applications potentially lie.

In my case, I used those messages to move some motors that happened to be attached to needles on gauges.

Now, trying to control something by injecting messages is a different matter. To emulate a simple button push, that's easy. So if you wanted to replace the on-screen button in a Tesla for "turn on left rear seat heater" with a physical button, you'd just send the appropriate message and the body control module would react by turning on the heater and changing the status of that heater in the data. Overriding a continuous stream is a lot more difficult. You can spam the network with your version and hope to overwhelm the stock message, which is done by some developers. It obviously means you will get occasional failures where the stock message "wins" and you can saturate the network and make it stop working. It's the lazy and easy method.

A better solution is to block the message and send your own, but this requires physically inserting a device (a gateway) into the appropriate wires and the small delay added can cause problems with other systems. For example, we do use this technique in our ND V8 cars and if the gateway is in the wrong part of the bus, the stability control system notices the very slight lag in the messages being passed through and interprets it as a failure.

Holy rambling, batman. TLDR: neat project, what can we do with this stuff?

Keith Tanner
Keith Tanner MegaDork
1/28/22 1:00 p.m.

I'm thinking a camera tied to steering angle would actually work really well in autocross. I might have to try this.

bentwrench
bentwrench SuperDork
1/28/22 1:04 p.m.

In reply to Keith Tanner :

Do you mean a camera that pans with steering input?

I'd rather have the camera point where I'm looking!

(but then it would miss all the cones I am running over)

Keith Tanner
Keith Tanner MegaDork
1/28/22 1:12 p.m.

Yes, panning with steering input. So it would be looking where you SHOULD be looking :) I've seen ones with vanes that look into the wind which has some of the same effect, but that wouldn't work as well at autox speed.

iansane
iansane Dork
1/28/22 1:34 p.m.

What a world we live in that the DIYer can assemble and play with things like this. The CAN system is so cool and almost limitless in what you can do.

I've really wanted to use this for my Jag's TCM spoofer but I just can't understand the coding side to be able to structure a a rule like, "when this CAN message is sent out, send out this CAN message". All I've been able to do is the heartbeat so there aren't error codes.

Super cool.

tuna55
tuna55 MegaDork
1/28/22 1:45 p.m.

Can you project this onto the windshield like a DIY HUD?

Keith Tanner
Keith Tanner MegaDork
1/28/22 1:52 p.m.

I've actually got a couple of little OLED screens I was going to use for trying that. It would probably be the first thing I'd attempt. I've chatted with my friend about it. Turns out OE HUDs are buried in a "tunnel" in the dash so it might not look the same, but it's a fun thing to try out.

I just realized that a project I built last night would actually do this with just a few more lines of code and I'd only need to attach two wires to make it work. I think I might try it this weekend :)

Ian F (Forum Supporter)
Ian F (Forum Supporter) MegaDork
1/28/22 2:34 p.m.

The idea of some sort of "open source" Body Control Module has some merit. 

Some, for idiots like me who have ideas for adding "modern" features that would typically controlled by a factory BCM into an old car that didn't even have electronic ignition - for instance, being able to program power windows to "auto-dip" when opening/closing the door. 

More practically, it might be a way to future-proof newer cars where a replacement BCM may become difficult to source.  I would imagine there are more than a few perfectly good cars in junk yards simply because the BCM went and the replacement cost was more than the value of the car.

jwagner (Forum Supporter)
jwagner (Forum Supporter) Reader
1/28/22 8:47 p.m.
bentwrench said:

In reply to Keith Tanner :

I'd rather have the camera point where I'm looking!

5 feet in front of the car?  Wouldn't work for me...

Tom_Spangler (Forum Supporter)
Tom_Spangler (Forum Supporter) PowerDork
1/28/22 10:44 p.m.
iansane said:

What a world we live in that the DIYer can assemble and play with things like this. The CAN system is so cool and almost limitless in what you can do.

Kinda puts the lie to that whole "You can't work on modern cars" thing, doesn't it?

Keith Tanner
Keith Tanner MegaDork
1/30/22 10:53 p.m.

So I didn't actually do anything yet other than drop a little display on the dashboard, but this could actually work. You don't get the double vision in real life...

You'll need to log in to post.

Our Preferred Partners
MAn9Txk91PyqNmHXfjA4qTGntDhzP4XxGjdz9UbkXiHsMorEud3271jt9koBhyex