BMW "oDrive" Car-PC

Post Reply
FntX
Posts: 63
Joined: Mon Jun 03, 2019 7:15 pm
languages_spoken: english, german
ODROIDs: N2
Has thanked: 7 times
Been thanked: 13 times
Contact:

BMW "oDrive" Car-PC

Post by FntX »

I've been working on this project for almost a year now and feel confident enough now to present it to the public.
The almighty iDrive supplemental solution for all people who don't have interest in fitting a 1500€ retrofit solution.

The Project consists of the following:
  • Odroid N2 4GB with 32GB eMMC and Android as the car-pc itself
  • Odroid VU7a+ Screen
  • Screen casing assembly to be fitted as a replacement for the small glovebox on the dashboard (See: https://www.ebay.de/itm/Monitorhalter-f ... 1438.l2649)
  • iDrive 7-Button Controller (Facelift)
  • Matching center console assembly for the iDrive Controller
  • Custom command & control board with: Arduino Nano 33 IoT, RN42HID Bluetooth Module, MCP2515 + TJA1050 CAN interface, INA219 voltage sensor, 2 pwm headers for fans (See: https://github.com/Neuroquila-n8fall/od ... rpc-nano33)
  • Teltonika RUT850 automotive 4G access point
  • LTC3780 power supply module
  • A few wires to connect everything
  • A little bit of tinkering
Fitted VU7a+ Display on the dashboard running Torque App
Image

Vu7a+ mounted inside dash casing
Note the pin header on the power button side (left hand side). I've soldered these on to have a proper connection for triggering the power button remotely.
Image


At the heart of the project is the Odroid N2 itself. It resembles the computer which can be found on the iDrive system as well. It doesn't do much, however, because it is either on or off and any change to the power state would mean pushing a button of some sort. It works on its own but to get a integrated solution the N2 has to be powered on or off depending on the current state of the car and "drivers demand".
Also it has no integrated 4G connectivity which makes it, at first sight, useless as an infotainment system with navigation and streaming services.
Because there are harsh conditions in a car it has to be supplied by a power supply which not only delivers enough oomph but also has a high input tolerance and temperature range. At this point I'm very surprised the N2 itself holds together quite nicely under these conditions!

Startup & Shutdown in a Car

We could trigger the power by checking components that will come online if the car is opened or the ignition is turned on. This would mean that as soon as we launch the engine, the PC would start. This would work but isn't the same as we know it from the original iDrive system. It boots very fast and we simply can't achieve these speeds if we want to keep the android system as it is.
So I decided to hack into the CAN Bus of the car and check if I can get any messages that would tell what the current state of the car is and what is expected. This way we could start the N2 as soon as we push the "open" or "close" button on the key fob. The time it takes to walk up to the car the N2 has enough time to boot up and as soon as we enter the car it's ready to do its job.
I've also tinkered with the possibility to have the pc always on and put it to sleep or shut it down if the battery is too low. Simply put this didn't work out in the end because I swapped to a Due MCU and couldn't make it work with a matching voltage divider network to monitor the battery. The code still exists but now that I have all the correct facilities in place, I could re-activate the mechanisms.

Screen Brightness

A problem when driving a car is that the light conditions change continuously. This makes it hard to read a display and that's the reason why we only see now big displays coming to cars in the recent years which replace the whole dashboard instruments. These screens need to be glare-resistant, hellish bright and very robust. But that's not the whole story. The screen needs to adapt to the actual outside light levels so the display is readable at bright sunlight and doesn't dazzle you at night.
Usually we would rely on a photo diode to measure light levels and react on them but in this case, since we're already on the CAN Bus of the car, we can use the light level sensor on the windscreen. This is a whole module fitted on the foot-end of the rear-view mirror called "RLS" (Regen-Licht-Sensor = Rain-Light-Sensor). It reports the current light levels at intervals or if it changed. We can use that to feed in a PWM signal to the VU7a(+) backlight regulator as described on the Wiki.(See: https://wiki.odroid.com/accessory/displ ... th_android)

Command & Control Board

The "Command & Control" Module is the interface between the Car and the N2. It bridges the gap between the Android system and the Cars CAN-bus network and takes care of all the tasks that would otherwise mean a customization of the android system or writing apps.
The first iteration of the control board was a mixture of a loose Arduino Due, Bluetooth module and MCP2515 CAN Interface module. What a mess!
Image

The picture above shows the first iteration. It's really a complete mess but somehow I needed a evaluation platform.

One year later, the whole thing is going to be "final":
New integrated "Command & Control" board
Image

Source code and detail can be found at the Github repo:
https://github.com/Neuroquila-n8fall/od ... rpc-nano33


Note: I will upload more pictures of the whole setup as soon as the weather plays along and I am finally able to swap out the cable mess with the integrated board.
These users thanked the author FntX for the post (total 9):
tobetter (Mon Feb 24, 2020 7:35 pm) • istanbulls (Mon Feb 24, 2020 7:41 pm) • jackinho (Tue Feb 25, 2020 7:18 am) • odroid (Tue Feb 25, 2020 9:48 am) • mad_ady (Thu Mar 12, 2020 2:50 pm) • joy (Mon Apr 20, 2020 3:27 pm) • RahimTux (Sun Apr 26, 2020 8:45 pm) • Chris Oi (Wed Jun 10, 2020 5:24 pm) • dslthomas (Mon Sep 28, 2020 8:32 pm)

FntX
Posts: 63
Joined: Mon Jun 03, 2019 7:15 pm
languages_spoken: english, german
ODROIDs: N2
Has thanked: 7 times
Been thanked: 13 times
Contact:

Re: BMW "oDrive" Car-PC

Post by FntX »

----- Reserved for future use -----

User avatar
rooted
Posts: 8043
Joined: Fri Dec 19, 2014 9:12 am
languages_spoken: english
Location: Gulf of Mexico, US
Has thanked: 724 times
Been thanked: 255 times
Contact:

Re: BMW "oDrive" Car-PC

Post by rooted »

I love what you have done with the control board.

Payano
Posts: 18
Joined: Sat Mar 02, 2019 8:57 pm
languages_spoken: english
ODROIDs: XU4
N2
Has thanked: 13 times
Been thanked: 3 times
Contact:

Re: BMW "oDrive" Car-PC

Post by Payano »

FntX wrote:I've been working on this project for almost a year now and feel confident enough now to present it to the public.
The almighty iDrive supplemental solution for all people who don't have interest in fitting a 1500€ retrofit solution.

The Project consists of the following:
  • Odroid N2 4GB with 32GB eMMC and Android as the car-pc itself
  • Odroid VU7a+ Screen
  • Screen casing assembly to be fitted as a replacement for the small glovebox on the dashboard (See: https://www.ebay.de/itm/Monitorhalter-f ... 1438.l2649)
  • iDrive 7-Button Controller (Facelift)
  • Matching center console assembly for the iDrive Controller
  • Custom command & control board with: Arduino Nano 33 IoT, RN42HID Bluetooth Module, MCP2515 + TJA1050 CAN interface, INA219 voltage sensor, 2 pwm headers for fans (See: https://github.com/Neuroquila-n8fall/od ... rpc-nano33)
  • Teltonika RUT850 automotive 4G access point
  • LTC3780 power supply module
  • A few wires to connect everything
  • A little bit of tinkering
Fitted VU7a+ Display on the dashboard running Torque App
Image

Vu7a+ mounted inside dash casing
Note the pin header on the power button side (left hand side). I've soldered these on to have a proper connection for triggering the power button remotely.
Image


At the heart of the project is the Odroid N2 itself. It resembles the computer which can be found on the iDrive system as well. It doesn't do much, however, because it is either on or off and any change to the power state would mean pushing a button of some sort. It works on its own but to get a integrated solution the N2 has to be powered on or off depending on the current state of the car and "drivers demand".
Also it has no integrated 4G connectivity which makes it, at first sight, useless as an infotainment system with navigation and streaming services.
Because there are harsh conditions in a car it has to be supplied by a power supply which not only delivers enough oomph but also has a high input tolerance and temperature range. At this point I'm very surprised the N2 itself holds together quite nicely under these conditions!

Startup & Shutdown in a Car

We could trigger the power by checking components that will come online if the car is opened or the ignition is turned on. This would mean that as soon as we launch the engine, the PC would start. This would work but isn't the same as we know it from the original iDrive system. It boots very fast and we simply can't achieve these speeds if we want to keep the android system as it is.
So I decided to hack into the CAN Bus of the car and check if I can get any messages that would tell what the current state of the car is and what is expected. This way we could start the N2 as soon as we push the "open" or "close" button on the key fob. The time it takes to walk up to the car the N2 has enough time to boot up and as soon as we enter the car it's ready to do its job.
I've also tinkered with the possibility to have the pc always on and put it to sleep or shut it down if the battery is too low. Simply put this didn't work out in the end because I swapped to a Due MCU and couldn't make it work with a matching voltage divider network to monitor the battery. The code still exists but now that I have all the correct facilities in place, I could re-activate the mechanisms.

Screen Brightness

A problem when driving a car is that the light conditions change continuously. This makes it hard to read a display and that's the reason why we only see now big displays coming to cars in the recent years which replace the whole dashboard instruments. These screens need to be glare-resistant, hellish bright and very robust. But that's not the whole story. The screen needs to adapt to the actual outside light levels so the display is readable at bright sunlight and doesn't dazzle you at night.
Usually we would rely on a photo diode to measure light levels and react on them but in this case, since we're already on the CAN Bus of the car, we can use the light level sensor on the windscreen. This is a whole module fitted on the foot-end of the rear-view mirror called "RLS" (Regen-Licht-Sensor = Rain-Light-Sensor). It reports the current light levels at intervals or if it changed. We can use that to feed in a PWM signal to the VU7a(+) backlight regulator as described on the Wiki.(See: https://wiki.odroid.com/accessory/displ ... th_android)

Command & Control Board

The "Command & Control" Module is the interface between the Car and the N2. It bridges the gap between the Android system and the Cars CAN-bus network and takes care of all the tasks that would otherwise mean a customization of the android system or writing apps.
The first iteration of the control board was a mixture of a loose Arduino Due, Bluetooth module and MCP2515 CAN Interface module. What a mess!
Image

The picture above shows the first iteration. It's really a complete mess but somehow I needed a evaluation platform.

One year later, the whole thing is going to be "final":
New integrated "Command & Control" board
Image

Source code and detail can be found at the Github repo:
https://github.com/Neuroquila-n8fall/od ... rpc-nano33


Note: I will upload more pictures of the whole setup as soon as the weather plays along and I am finally able to swap out the cable mess with the integrated board.
Very nice indeed!

Sent from my SM-G973F using Tapatalk


that_kid
Posts: 16
Joined: Wed Sep 21, 2016 4:36 am
languages_spoken: english
ODROIDs: C2,N2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: BMW "oDrive" Car-PC

Post by that_kid »

Very nice, I'm in the process of installing an Odroid N2 in my Touareg. It'll be replacing an aging Nexus 7 tablet install.

RahimTux
Posts: 4
Joined: Sun Apr 26, 2020 7:25 pm
languages_spoken: english, german
ODROIDs: 1 N2, 2 HC2
Has thanked: 1 time
Been thanked: 0
Contact:

Re: BMW "oDrive" Car-PC

Post by RahimTux »

That is a really cool project, sir! Where did you fit the N2 and control board? Guess the screen casing does not provide enough space for them.

dslthomas
Posts: 1
Joined: Sat Sep 26, 2020 11:38 pm
languages_spoken: deutsch
Has thanked: 1 time
Been thanked: 0
Contact:

Re: BMW "oDrive" Car-PC

Post by dslthomas »

@FntX

So hats off! Brilliant! That's exactly what I'll try with my Scenic III. So far I've solved it like this:



and

.

Unfortunately, that works rather poorly than right. Precisely because I have a car with automatic start & stop and the smartphone then shuts down. Unfortunately, I don't have an ignition plus in the passenger compartment.

Instead of the iDrive at BMW, I have the following keyboard which I would tap:

Image

Question: How realistic is it to adapt your project to my Renault?

Question: Do you also sell the finished circuit boards?

Thanks and greetings from Hamburg.

----------- G E R M A N -------------

Also Hut ab! Genial! Genau das werde ich bei meinem Scenic III ebenfalls versuchen. Bisher habe ich das so gelöst:



und

.

Leider funktioniert das eher schlecht als recht. Gerade weil ich einen Wagen mit Start&Stop Automatik habe und das Smartphone dann runter fährt. Ein Zündungsplus habe ich leider nicht im Fahrgastraum.

Statt dem iDrive bei BMW habe ich folgende Tastatur welche ich anzapfen würde:

Image

Frage: Wie realistisch ist es, dein Projekt auf meinen Renault zu adaptieren?

Frage: Verkaufst du die fertigen Platinen auch?

Danke und Gruß aus Hamburg.

Post Reply

Return to “Projects”

Who is online

Users browsing this forum: No registered users and 2 guests