About a week ago I bought a Comma 3X from comma.ai, based on seeing a bunch of quite glowing reviews of it (and other FSD systems) from a number of car and tech reviewers I trust. In particular, since Kate of Transport Evolved has one and also has the exact same car as mine (2019 Kia Niro EV EX Premium in Galaxy Blue) and speaks highly of it, I decided that this might be a useful thing for handling my ongoing driving anxiety and vertigo issues.
Luckily enough it happened to be during a flash sale, where they included the harness for free ($99 off from usual), so my total cost was $999 (shipping was included and there was no sales tax either).
It arrived last Wednesday, and I installed and calibrated it soon after. I didn’t really get a chance to try it out until Sunday, but so far I’m very impressed with it.
The Comma 3X works by installing as a bypass for the lanekeeping assistance camera. It also monitors the CAN bus in order to get additional signals such as turn signal state, blind spot monitoring, and a few other things from the car. As such it does require a car with an existing lane-keeping assistance system (which, you may recall, is the main reason I even upgraded to an EV to begin with, as my Mazda 3 didn’t have this feature), and the steering limits are subject to what the lanekeeping is capable of.
Thankfully, the Kia Niro’s lanekeeping is capable of doing a lot!
Installing it wasn’t too bad. I removed the wiring harness for my dashcam (which I don’t need anymore since the Comma replaces that) and installed the Comma’s hardness and OBD power connector thing. Routing the wire for the OBD power connector was a bit annoying and at some point I’ll want to redo it to make sure it isn’t interfering with my curtain airbag. There’s also a bit of cable management that I could have done better. The hardest part was figuring out where to stuff the harness behind the rear mirror trim piece; I eventually got everything back in place, but it was a challenge.
On my first boot I calibrated it, which took about 10 minutes of driving around the block, and then I decided to switch to SunnyPilot, a fork of OpenPilot that has some nice Kia-specific features and also adds experimental support for full longitudinal1 (acceleration/braking) control. Doing this required a bunch of annoying steps that wouldn’t have been necessary if I’d just started with Sunnypilot to begin with, but it wasn’t a big deal either way.
When enabling longitudinal control, the front collision warning system no longer looks correct to the car, so a big warning indicator comes up, which I find to be distracting. So far I’ve also found the longitudinal control to not be very good (it doesn’t seem to recognize stoplights very well, for example, and that’s pretty important), so for now I have that disabled. Hopefully this improves in the future. In the meantime, if I ever do any longer-distance driving, the Niro already has pretty good adaptive cruise control already.
The other slightly annoying thing is that you have to arm (but not enable) cruise control on the car for OpenPilot to kick in. Since my Niro supported lanekeeping on city streets without enabling cruise control, and because OpenPilot makes a little chime the moment that cruise control turns on, I’m assuming that this is a signal that it’s looking for on the CAN bus to enable steering and that in theory it should be able to just always be active. Fortunately, pressing the cruise button on the steering wheel is pretty easy, I just have to remember to do it when I start driving.
Anyway. With the standard latitudinal (steering) control enabled, driving suddenly becomes a lot less anxiety-inducing for me. My car now knows how to keep itself centered, and my role is now to just direct it to turn or change lanes as necessary. The Comma unit also gives me a nice little warning beep when it sees someone crossing in a crosswalk ahead of me, and it also has a feature where it’ll notify you of traffic lights turning gree, although I have this enabled and it doesn’t seem to do anything just yet.
On some tighter turns, OpenPilot raises an alarm and says that I must take full control of the steering wheel because it’s exceeded the torque limit of the lanekeeping system. For the most part I’m keeping my hands on the wheel especially when there’s any turns happening, so this almost feels like a bit of nannying, but it’s probably good to have as a reminder for people who aren’t aware that this is a driver assistance system, not a driver replacement.
As a driver assistance system it’s pretty great though! Anxiety is one of my big vertigo trigfgers, and having this thing that will make sure my car is still going straight even during a vertigo attack gives me a lot more reassurance, and as a result I don’t seem to be having as much vertigo when driving to begin with. I haven’t done any specifically triggering drives just yet but what drives I have done have felt a lot better than usual for me. I think soemtime this week I’ll finally make my way out to Costco or Chef'Store or something, since those are places I want to visit but have always been concerned about vertigo. I might even use it to drive to choir this week!
I do have a few fairly minor gripes with it though:
The reason for the OBD wiring is so that it can stay always-on even when the car is off, but after a couple hours it ends up shutting down anyway, and booting back up is slow. Presumably this is to protect the car’s battery, but since my car is an EV with automatic 12V charging and reconditioning, I’d much rather it just go into a low-power state but stay ready so I don’t have to wait for 5 minutes for the dang thing to boot up.
The UI is excruciatingly opensourcey. It isn’t always clear how to make certain things come up, actually configuring it with stuff is really annoying (especially for its built-in mapping/navigation system, which currently involves a lot of copy-pasting API keys into a private-but-insecure web app), and there’s many piles of dialog boxes which group settings together with very little rhyme or reason.
Setting up navigation is totally not worth it:
- It requires setting up an account with a routing service provider
- The UI for actually sending destinations either requires using the crappy private-but-insecure user interface, or paying monthly for Comma Prime
- The navigation doesn’t actually direct the car to make any turn-by-turn stuff, it just gives you a crappy routeplan on the display (and what I get from CarPlay on my actual dashboard is way better and easier to see, not to mention comes with voice prompts which are far more useful)
I really wish I could disable the endless ads for Comma Prime, especially since I have no use for it; I’m navigating with CarPlay, my data exchange happens from my home WiFi when I get home, and I have absolutely no use for its WiFi access point functionality. Even when I am traveling I can just put my phone into hotspot mode if I really need the Comma to be able to upload my logs Right Now for some reason.
Some things I particularly like about this system:
It’s open source
The driving model is trained on data from people who opt in to sharing it, and it will only get better over time
If I ever switch cars I can just move this device into the new one, rather than being beholden to the car’s manufacturer who at best wants to charge an exorbitant subscription fee for this stuff (e.g. BlueCruise at $42/month, Chevrolet Super Cruise at $2200 + $25/month, Tesla FSD at $99/month, etc.)
I can easily get low-resolution/quality dashcam footage from Comma Connect instead of having to faff about with SD cards (although getting high-quality video footage seems to need the SD shuffle, since through the web I can only seem to get the first minute or so of a drive’s camera feeds)
This will hopefully have given me some freedom back!