commaai / openpilot

openpilot is an operating system for robotics. Currently, it upgrades the driver assistance system in 275+ supported cars.
https://comma.ai/openpilot
MIT License
49.19k stars 8.96k forks source link

OpenPilot for BMW's #44

Closed kaeferfreund closed 5 years ago

kaeferfreund commented 7 years ago

Hey George,

I love to see what you are doing here and I'd wish to try the system. But at my place we only got BMW's. These also have radar-sensors and adaptive cruise control.

What is needed to add a BMW Port to open pilot? I could do a can-log/-dump for you on F10, F20 (LCI) and other models, if that helps...

geohot commented 7 years ago

It would take a bit of engineering. It's very doable by an outside party given what we've released.

derek99401 commented 6 years ago

I got a F32, the car's can bus from ODBII port (using Panda) only gives heartbeat messages with msg ID 0:130. I did some search online, it turned out that you have to tap into other ports in order to get more useful data stream.

triscb82 commented 6 years ago

I have a fully loaded G30 along with all the technical documentation. I am looking for someone who has programming knowledge to help me get OpenPilot running on it. Who’s game??

jfrux commented 6 years ago

See Flexray notes in README

greutair commented 5 years ago

Would it be working with the BMW i3 not having built in a radar?

jfrux commented 5 years ago

You can lookup the current “status” of any given vehicle year, make, model, trim at https://opc.ai/lookup On Sep 13, 2018, 10:42 AM -0400, greutair notifications@github.com, wrote:

Would it be working with the BMW i3 not having built in a radar? — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

MrQwertyDude07 commented 3 years ago

Hello! Would this work on a fully loaded 2021 BMW Z4

kaeferfreund commented 3 years ago

I found the latest BMW ADAS with iStep 03/2021 to be very close to open pilot in regards of lane keeping + there are more functions e.g. reading the speed signs and using that as the acc set speed

@geohot try the latest BMW ADAS (I know, its mobileye) but since the 03/2021 OTA update (yes they update the whole car!) it really made OP a lot less attractive :/

Pecacheu commented 2 years ago

Hi, I just heard about this. I'm wanting to know if BMW i3 support is possible. It just feels like a perfect candidate for this, a vehicle with early generation ACC and lane keep that BMW just... Abandoned.

I'm amazed this project even exists, but honestly, surprised it doesn't already support the i3 as that's something I would've thought of quickly alongside the Leaf and Bolt when thinking of "the poor man's Tesla," and evidently it has the sensors and hardware to turn the steering column, so it seems like a good candidate.

First question: How come this issue is closed? That would indicate support was added, and I do see some merged pulls, but I don't see any BMWs on the support list. (NOTE: The link @jfrux gave is dead)

Second question: If the i3/other BMWs are not supported, what would it take to add them? I have a cheap ODBII adapter, used CANBUS once to make two Arduinos talk to each other, know C++ and Python very well, and have a little AI dev experience too, but uh, I know nothing about vehicles at all, other than that the i3 is basically a giant RC toy car with lots of torque and I love it. @derek99401 mentioned you need to tap into more ports than ODBII?

triscb82 commented 2 years ago

This got abandoned due to significant issues supporting FlexRay. The industry has abandoned the protocol but getting the DBC’s for the vehicles has proven to be near impossible. The key guy I had working on the project fell off the face of the earth and we ran out of funding and resources. I honestly don’t see any flexray vehicle being supported. I was super optimistic and excited but have utterly lost hope due to there being so many variables in reliably being able to talk on the flexray bus.

On Thu, Jan 6, 2022 at 1:10 PM Ray @.***> wrote:

Hi, I just heard about this. I'm wanting to know if BMW i3 support is possible. It just feels like a perfect candidate for this, a vehicle with early generation ACC and lane keep that BMW just... Abandoned.

I'm amazed this project even exists, but honestly, surprised it doesn't already support the i3 as that's something I would've thought of quickly alongside the Leaf and Bolt when thinking of "the poor man's Tesla," and evidently it has the sensors and hardware to turn the steering column, so it seems like a good candidate.

First question: How come this issue is closed? That would indicate support was added, and I do see some merged pulls, but I don't see any BMWs on the support list.

Second question: If the i3/other BMWs are not supported, what would it take to add them? I have a cheap ODBII adapter, used CANBUS once to make two Arduinos talk to each other, know C++ and Python very well, and have a little AI dev experience too, but uh, I know nothing about vehicles at all, other than that the i3 is basically a giant RC toy car with lots of torque and I love it. @derek99401 https://github.com/derek99401 mentioned you need to tap into more ports than ODBII?

— Reply to this email directly, view it on GitHub https://github.com/commaai/openpilot/issues/44#issuecomment-1006805119, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB5VK42JIGICTQAIFO6ITILUUXLINANCNFSM4C4HF3KQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

You are receiving this because you commented.Message ID: @.***>

Pecacheu commented 2 years ago

Ah, I see. I honestly didn't know that all modern cars don't use CANBUS. So I take it from Wikipedia, FlexRay is an alternative protocol that some vehicles used to use, including BMWs. I was able to find this rather relevant thread just form a search for 'FlexRay BMW', actually.

And yeah, that sucks. Something tells me you can't just go out and buy an Arduino shield for this like you can with CANBUS (in fact I already have one, as I mentioned). I couldn't find any shields in a quick search, though I did find mention of a a FlexRay library, and whatever the heck this is.

film42 commented 10 months ago

I know there was a bounty for this in the past, and I'd like to renew that if possible. I'd also love to see this happen.

Pecacheu commented 10 months ago

If anyone has any info on FlexRay development, I could give a crack at it. I don't think an Arduino has enough CPU power to handle the throughput, but a Raspberry Pi surely should. But I can find little info about the protocol or adapters available. And without the ability to use software like SAVVYCAN, reverse engineering might be difficult. Honestly, I almost just want to rip the car apart and hook wires straight up to the power steering motor.

On the plus side, folks in the i3 development Discord have figured out the steering angle sensor and some other sensors available on the CANBUS lines. I have given this a test in SAVVYCAN and can confirm it works. Power steering control is definitely on the FlexRay bus though, not CAN. The KFAS (Driver Assist/Front Camera) module talks to the EPS (Electronic Power Steering) module directly over this bus, and the BDC (More or less the main hub of the BMW) is also on this line along with all the CAN lines (of which there are several with different sensors). There are also some separate LIN lines which have various small buttons and sensors on them.

catalinsim commented 9 months ago

Hey George,

I love to see what you are doing here and I'd wish to try the system. But at my place we only got BMW's. These also have radar-sensors and adaptive cruise control.

What is needed to add a BMW Port to open pilot? I could do a can-log/-dump for you on F10, F20 (LCI) and other models, if that helps...

Hi,

Are you still able to provide a can log for any Fxx car?

Thanks