Common Questions

1) Why do cars perform differently when using openpilot?

TL;DR: Different wheelbases, steer ratios, tire stiffness, center of gravity, and actuator lag create different drive experiences when using a comma device.

If you want the technical, in-depth answer to this question watch Vivek Aithal's talk from COMMA_CON linked here. I will be approaching this question for newer non-techy types of users.

Same Steering Angle, Different Results

Image from Vivek's [talk](https://www.youtube.com/watch?v=sU2mLUn_pi8)

Image from Vivek's talk

The above shows differences between how the 3 car models handle the same steering angle differently. The X-axis is how far a car has driven in meters. Y-Axis represents how far the car has drifted away from the center of the path if there was no steering angle applied. For example, if we had these cars in an empty flat parking lot and had them going at the same speed with the steering wheel turned left 10 degrees we would see the Honda Fit(red line) would appear the furthest left. The Ram 1500(yellow line) would be closest to the original path compared to the Toyota and Honda. The Honda Fit's steering wheel results in a greater wheel turn compared to the Ram 1500.

Factors Influencing openpilot's Performance

The way OpenPilot interacts with each car is influenced by several key characteristics of the vehicle. Here's how each factor plays a role in determining the driving experience:

  • Wheelbase: Distance between the front and rear wheels. Longer wheelbases can feel more stable but make the car less agile while a shorter wheelbase is agile but doesn't feel as stable as a longer wheelbase.
  • Steer Ratio: How much your car turns with how much steering wheel turn is applied. A lower steer ratio means the car turns more with less steering wheel movement, making it very responsive but potentially too sensitive at high speeds. A higher steering ratio requires more turning of the steering wheel, which can make the car feel more stable and less reactive to small movements.
  • Tire Stiffness: Refers to how much torque your tire transfers from the wheels to the road when turning the car. Stiffer tires can provide better handling and stability as they deform less under load, leading to more predictable tire behavior, but can also result in a harsher ride. Softer tires might offer a smoother ride but can lead to increased tire roll and less precise handling.
  • Center of Gravity(CoG): The center of gravity of a vehicle affects its stability and handling. A lower CoG generally leads to better stability and less body roll during turns, improving handling. A higher CoG can make the vehicle more prone to rolling over and harder to control. Things like height and car body style, engine placement, cargo, aftermarket changes, etc. will affect CoG.
  • Actuator Lag: Refers to the delay between a command from openpilot and the response from the vehicle’s actuators (such as steering, brakes, and throttle). Each brand and platform has a different way of processing the signal that is sent from the comma to the car. This lag impacts how quickly and smoothly the car adjusts its path or speed according to OpenPilot's instructions.

Different car designs and mechanics, physical properties(tire stiffness, CoG), and mechanical response times all play a role in how each car performs differently than another when using openpilot. Without going deeper, openpilot adjusts its commands based on each car's characteristics to maintain a similar trajectory on the road. It uses data from the car and comma device, learns how the car responds, and continually adjusts its commands to match the desired driving behavior. For a deeper explanation of how openpilot can handle many different types of vehicles and compensate for their different driving characteristics watch Vivek's talk from COMIC_CON.



2) Why does openpilot support certain cars but not others?

openpilot uses the existing steering, gas, and brake interfaces in your car. If your car lacks any one of these interfaces, openpilot will not be able to control the car. If your car has ACC and any form of LKAS/LCA, then it almost certainly has these interfaces. These features generally started shipping on cars around 2016. Note that manufacturers will often make their own marketing terms for these features, such as Hyundai's "Smart Cruise Control" branding of Adaptive Cruise Control.

If your car has the following packages or features, then it's a good candidate for support.

MakeRequired Package/Features
AcuraAny car with AcuraWatch Plus will work. AcuraWatch Plus comes standard on many newer models.
FordAny car with Lane Centering will likely work.
HondaAny car with Honda Sensing will work. Honda Sensing comes standard on many newer models.
SubaruAny car with EyeSight will work. EyeSight comes standard on many newer models.
NissanAny car with ProPILOT will likely work.
Toyota & LexusAny car that has Toyota/Lexus Safety Sense with "Lane Departure Alert with Steering Assist (LDA w/SA)" and/or "Lane Tracing Assist (LTA)" will work. Note that LDA without Steering Assist will not work. These features come standard on most newer models.
Hyundai, Kia, & GenesisAny car with Smart Cruise Control (SCC) and Lane Following Assist (LFA) or Lane Keeping Assist (LKAS) will work. LKAS/LFA comes standard on most newer models. Any form of SCC will work, such as NSCC.
Chrysler, Jeep, & RamAny car with LaneSense and Adaptive Cruise Control will likely work. These come standard on many newer models.

Many factors play into why there is official support for certain cars. But, they are adding support for new cars all the time. comma does not have a roadmap for car support but most of the car support comes from users from the community.

Officially Supported Vehicles

How does a car get to this point? In a Reddit post, @jyoung8607 replied with, "Some cars have been made to work, to varying extent, by folks in the community but the code may not have been accepted upstream yet. There are a variety of reasons for this. The port maintainer may simply not have gone to the effort to clean it up and upstream it or the car may not be capable of a quality openpilot experience, or the effort to integrate it into the car may be unusually high, or the parts necessary may not be easily obtainable, etc. Or, of course, there are cars out there where openpilot could potentially be made to work, but nobody has gone to the effort of trying yet. It's not possible to answer your question more specifically without some indication of which make/model vehicles you're interested in."

Most cars in question will have their specific reasons why it's not officially supported. The best way to find out why is to search and then ask in the car maker specific channel on Discord. To list out the points @jyoung8607 made about why some cars aren't yet officially supported vehicles they are

  • The port maintainer may simply not have gone to the effort to clean it up and upstream it
  • Car may not be capable of a quality openpilot experience
  • Effort to integrate it into the car may be unusually high
  • Parts necessary may not be easily obtainable
  • There are cars out there where openpilot could potentially be made to work, but nobody has gone to the effort of trying yet

Guidelines (Not an official comma statement)

In a COMMA_CON talk by Jason Young, he talks all about porting a car and shows the above slide. Above is a rule of thumb on what cars get upstreamed or not. If you want the best "guidelines", refer to the 291 carports already shipped. From a comment on Discord Adeeb says, "we are very likely to merge something that looks like those 274, and unlikely to merge something that looks different (e.g. reflash)". Please refer to the full conversation on Discord to get the full context.

Community Maintained Cars

Although they're not upstream, the community has openpilot running on other makes and models. See the 'Community Supported Models' section of each make on the GitHub wiki.

Flex Ray

As seen in Jason Young's talk during COMMA_CON, some older cars may be easier to support than newer cars with FlexRay for ADAS controls. All the cars that openpilot supports use a CAN bus for communication between all the car's computers, however, a CAN bus isn't the only way that the computers in your car can communicate. Most, if not all, vehicles from the following manufacturers use FlexRay instead of a CAN bus: BMW, Mercedes, Audi, Land Rover, and some Volvo. These cars may one day be supported, but there are no immediate plans to support FlexRay. Interested in a hack comma did on an Audi car that had FlexRay? Click here to read more about it.