Welcome to Tesla Motors Club
Discuss Tesla's Model S, Model 3, Model X, Model Y, Cybertruck, Roadster and More.
Register

Let the hacking begin... (Model S parts on the bench)

This site may earn commission on affiliate links.
Likely correct...... I'm simply trying to generate a capability for those here to easily capture targeted data. I just happen to have a hardware platform that allows me to filter messages and arrange data for efficient storage.

That said, if there is already something out there that meets the need, I have no problem standing down. I'll concentrate on doing something just for me as I would prefer not to drag around my netbook and the IXXAT tool every time I want to capture some data.

I've heard of SavvyCAN and will look into further.
 
Just looked at a youtube video demo of SavvyCAN. EVTV is painful to watch at times. The ability to build and use "DBC" (not sure exactly what he was saying) files to display engineering units for logged CAN data is nice provided you have the CAN frame definitions. I suspect most of the work here will be in properly defining the CAN messages.

From my perspective, I'm used to working with the IXXAT tools to capture data and simply write VS utilities to manipulate data as needed. I then move the knowledge over to my hardware such that I log only select data and store in binary when space is a concern or in ASCII text in engineering units when people simply want a txt file off the device (which appears as a simple USB drive). There was no way previous projects would support several hundreds of dollars in hardware which is why the board was originally built.

The above approach also allows for selective data logging at high speeds. For example, very high resolution current/voltage could be logged at or near bus frame rates when current exceeds a pre-determined value. This would allow for accurate acceleration runs to be logged with high frame rates. Add wheel speed and now you have a simple way to capture vehicle performance.

Again, this may not have any application here. Given that I do not write apps for general consumption, I'm just pitching in where I CAN (pun intended).
 
Yeah, seems like the hard work is decoding the CAN frames into something useful. Performance logging is a goal of mine, for sure.

For example, looking at the Tesla in-dash CAN debugging tool on the bench setup while playing back data from a 0-60 launch is cool. Can see the individual motor powers and torque values and see it shift power from one motor to the other during the launch. However, Tesla's in-dash tool doesn't tell me HOW to decode it or what IDs it is. Still have to work that out by hand. But, I'm able to verify that I have the right data using the bench. :)
 
Encryption? Not easily with the kind of low end hardware and slow data rates that are typical of CAN. It was designed to be fast and cheap, remember the engineering triangle, "good, fast or cheap" pick two, the auto folks weren't thinking this would be a big hacking target so good wasn't on the table. That said, there is a lot more error checking and arbitration that automakers could do to better protect against injection attacks.

Also, you are assuming that Tesla wants to put serious money towards locking out a few curious nerds and in the process have to rewrite millions of line of code, not to mention lag the whole system down with some kind of encryption scheme (most of which are easily broken at this level), see Miller and Valsek's research into the Ford, child's play.


I'd argue that it is good. It's an intelligently designed protocol with address priority built-in, and doesn't suffer from overloading and unreliability issues like Ethernet simply because things don't talk unless they've got something to say. If a taillight doesn't work, it's not because it dropped off the network (!) ... it's just burnt out. If your computer can't access the 'net, for whatever reason it's been booted off the network. CAN was never intended to stream HD video to the center console, so why should slow bit-rates automatically make CAN "not good?" The protocol fulfills its design requirments. Ethernet fulfills its own requirements, and impeccable reliability doesn't seem to be one of them. Highly reliable should earn CAN some "good," no?
 
  • Like
Reactions: APotatoGod
@int32_t

I totally agree with you, CAN is simple (though some would say "less" secure) and should probably stay that way for the sake of reliability and speed. The good benchmark I was referring to was more from the perspective of Pentagon level security (which even Ethernet can't boast).

The issue comes once the elite "hacker" crowd gets involved, who, knowing nothing about the needs or reasons of the automotive industry, give talks featuring HACK and TESLA in the same slide, this of course (after some bozo at Forbes blows it out of the water) gets Tesla fans knickers in a bunch because they know even less about the complicated systems that make their vehicle work, so they in turn write posts on TMC freaking out that some Russian guy named Pavel is going to take control of their car from Siberia and asking why Tesla hasn't encrypted, obfuscated and padlocked this so called "CAN bus". Little do they know the layers of security (both physical and digital) that prevent people from tampering with things at the actual bus level, like Tesla's restrictive gateway which is the only link between the in-car CAN and ethernet networks or the CRC and counter bits added to most critical CAN messages. Instead they tell us that we shouldn't look too closely at our own cars because we might let the "magical pixies" out of the computer, or worse yet get kidnapped by Elon's private SWAT team, all of which is utter horse...well you get the idea ;-)

**steps off soapbox**
 
The Model S wifi sucks so bad because the antenna for the wifi is just a little wire that is barely outside the the *back* of the 17" screen near the bottom. So the antenna is buried deep inside the dash, and it's a crappy antenna.

screen-cid-2016-01-11-18.04.59.jpg


*whistles innocently...*

(yes I know the revision is displayed wrong... hehe)
 
Just looked at a youtube video demo of SavvyCAN. EVTV is painful to watch at times. The ability to build and use "DBC" (not sure exactly what he was saying) files to display engineering units for logged CAN data is nice provided you have the CAN frame definitions. I suspect most of the work here will be in properly defining the CAN messages.

From my perspective, I'm used to working with the IXXAT tools to capture data and simply write VS utilities to manipulate data as needed. I then move the knowledge over to my hardware such that I log only select data and store in binary when space is a concern or in ASCII text in engineering units when people simply want a txt file off the device (which appears as a simple USB drive). There was no way previous projects would support several hundreds of dollars in hardware which is why the board was originally built.

The above approach also allows for selective data logging at high speeds. For example, very high resolution current/voltage could be logged at or near bus frame rates when current exceeds a pre-determined value. This would allow for accurate acceleration runs to be logged with high frame rates. Add wheel speed and now you have a simple way to capture vehicle performance.

Again, this may not have any application here. Given that I do not write apps for general consumption, I'm just pitching in where I CAN (pun intended).

I'm the person who wrote SavvyCAN. The whole reason it exists is to reverse engineer canbus protocols. So, it has lots of features that I wanted while doing reverse engineering. I also wrote the GVRET firmware that runs on EVTVDue and CANDue boards. It is my opinion and hope that these tools are useful for a wide range of canbus work. I've specifically done my best to make the EVTV tools work well enough to operate at the bus rate found on a Tesla canbus such that no filtering is necessary. We routinely capture all traffic as it comes in without missing frames. Technically the hardware and firmware support filtering but I basically never use that capability. It's easier to decide later that you don't want certain messages and filter them in software than it is to find that you needed a certain frame ID and now you don't have it.

If you've got access to IXXAT hardware then chances are the SavvyCAN compatible canbus dongles aren't anything special. However, I'm always willing to add new file formats so if you want to load and save in whatever format your IXXAT tools normally use I'll add it. SavvyCAN is under fairly steady development. Usually it progresses as I find new things I'd like to do. It's cross platform so there are binaries for WIndows, OSX, and Linux. I do the development on Linux primarily.

So, anyway, hello everyone. I've been lurking for a long time in this thread and just haven't gotten around to registering an ID and trying to post until now.
 
I think you're the first person I've "heard" say nice things about the S's wifi.

I have a May 2015 build, and it's easily one of the most frustrating things about the car.

I've tried everything that I can think of, but nothing works long term. Long term being able to go more than a week with it reconnecting just fine after going for a drive.

I tried putting an extender in the garage, but that didn't work.
I tried putting an extender before the extender, but that didn't work either.
I tried moving the extenders around, but that didn't work either.

I can get the maximum bars, but then when I leave and come back I get 2 bars with it not reconnecting.

Short of giving up, and putting an access point in my garage I have no idea what to do.

I might get so desperate that I get a wifi antenna with the right connector, and ask the service people to stuff it in. Assuming its near the 17inch screen. Why they didn't put it in the mirrors with the other antenna I don't know. I know there are lots of good discussions on the good and bad side of hacking within this thread on hacking. But, to me one of the best hacks that can be done is: Better WIFI.

I wouldn't mind so much if the car would update its firmware. It hasn't done an update since the original V7.0. At least then I wouldn't be so OCD about it.

It doesn't help that in my garage I get close to no cell signal. My phone gives me full strength for wifi, and no bars for cell. My car gives me a bar or two for cell, and no wifi.
 
The Model S wifi sucks so bad because the antenna for the wifi is just a little wire that is barely outside the the *back* of the 17" screen near the bottom. So the antenna is buried deep inside the dash, and it's a crappy antenna.

screen-cid-2016-01-11-18.04.59.jpg


*whistles innocently...*

(yes I know the revision is displayed wrong... hehe)

I thought it was in the passenger side mirror? And why a sig and not a founder's ? :)
 
I might get so desperate that I get a wifi antenna with the right connector, and ask the service people to stuff it in. Assuming its near the 17inch screen. Why they didn't put it in the mirrors with the other antenna I don't know. I know there are lots of good discussions on the good and bad side of hacking within this thread on hacking. But, to me one of the best hacks that can be done is: Better WIFI.

I'm getting the LTE upgrade next month. Is there some wifi extender antenna I can buy and ask them to plug it into the wifi board replacing the existing antenna? Is that connector accessible during the LTE upgrade?
 
Last edited: