E90Post
 


Coby Wheel
 
BMW 3-Series (E90 E92) Forum > E90 / E92 / E93 3-series Technical Forums > Mechanical Maintenance: Break-in / Oil & Fluids / Servicing / Warranty > BMW! A Challenge for Programmers



Reply
 
Thread Tools Search this Thread
      04-19-2008, 04:43 PM   #1
Willy325i
Private First Class
Willy325i's Avatar
United_States
19
Rep
128
Posts

Drives: E93 LCI 335i M Sport
Join Date: Mar 2008
Location: Pasadena, CA

iTrader: (0)

Garage List
2013 BMW 335i E93  [0.00]
2012 BMW M3  [10.00]
2007 325i  [10.00]
2005 318i  [10.00]
Exclamation BMW! A Challenge for Programmers

Here is a crazy yet sweet idea, that if properly got attention, we are gonna live in heaven hereafter.

I as an IT Engineer, had this idea cuz I'm a software freak, and after I had a look at my gadgets, Like Sony PSP / Sony Vaio Notebook / PDA. I found that some software developers discovered a way to run some applications called Homebrew on the wide variety of gadgets out there!

And since BMW (Our E90s) are using a Windows CE version 3.5, so its basically an OS (Operating System)

The thing is, since any OS can run/exceute applications, why not we can develop an application that can run on the iDrive and collects some useful information such as Software Version (CIP), and may be do more of tweaking and/or settings to the system

Are you guys following me or you got lost already?

It needs some guys with Hardware/Software knowledge to be able to understand me.

I say like the PSP got custom made Firmware that enabled 3rd party applications/utilities, we can do the same here.

Basically, iDrive is running on the OS, which means it has the Following:

1. a CPU
2. a Memory to Store/Save Settings (Hard Drive/RAM/ROM)
3. an Execution Memory (RAM)

this sums up its a PC somehow, or evn a PSP (LOL)

So with some knowledge we can see some software developers Compile some applications that we can run when put properly on the DVD of the Navi, Provided it has the right code to i.e. Reboot the system before execution.

A Crazy Idea, But Plp. out there are doing it day and night, and since our cars are now intelligent enough.... I Guess we should share in this.

Feedbacks are most welcomed.

Just Digest the whole Idea before submitting me replies.

Willy
__________________
Power is Nothing Without Control!
Appreciate 0
      04-19-2008, 04:49 PM   #2
bsavic
Lieutenant
bsavic's Avatar
Canada
18
Rep
490
Posts

Drives: (sold) e90 328xi
Join Date: Sep 2005
Location: Cambridge, Ontario

iTrader: (4)

An interesting idea -Good luck!

Savicbo
Appreciate 0
      04-19-2008, 05:51 PM   #3
E90330iS
Major General
Germany
147
Rep
6,333
Posts

Drives: BMW M4
Join Date: Jan 2006
Location: Arcadia, California

iTrader: (56)

Garage List
2006 330i  [0.00]
Cool, and you are really in Egypt?
__________________
Appreciate 0
      04-19-2008, 06:03 PM   #4
TofuTurkey
Gobble gobbledygook
TofuTurkey's Avatar
5
Rep
287
Posts

Drives: 08 335xi Coupe
Join Date: Dec 2007
Location: North Jersey

iTrader: (0)

Quote:
Originally Posted by Willy325i View Post
And since BMW (Our E90s) are using a Windows CE version 3.5, so its basically an OS (Operating System)

The thing is, since any OS can run/exceute applications, why not we can develop an application that can run on the iDrive and collects some useful information such as Software Version (CIP), and may be do more of tweaking and/or settings to the system
The application needs to be compiled for the specific hardware architecture, e.g. x86, ARM, PowerPC etc. Also, especially for low-level information, such as those retrieved from registers, these hardware addresses need to be known to make sense of the data. If the new program is supposed to interface with some library, then the API must be released. Finally, input methods may be proprietary (or not), at the hardware level (e.g. serial port? usb? bmw's own port?) and the software level (e.g. encryption). Who knows, perhaps they did something like iPhone, where illegal hacking will get the phone bricked upon upgrading.

At the end of the day, I'm not going to hack my car, and risk the system crashing whilst I'm driving at 70mph I suspect that it's a real-time system, where the various components have to be thought out and be in balance. Adding something else may tip that balance.
Appreciate 0
      04-19-2008, 06:18 PM   #5
im spencer
Back in the f80
im spencer's Avatar
United_States
57
Rep
815
Posts

Drives: 2016 F80
Join Date: Nov 2007
Location: Pasadena, CA

iTrader: (1)

Garage List
2007 328i  [0.00]
An idea crazy and ingenious enough such as this has so much potential for disaster. Its hard to say what risks you are willing to take on your car with something like this let alone your life if anything were to go wrong god forbid. But nonetheless im catching your drift and its a really good idea
__________________
2003 SS S2000
2016 MW F80
2018 BMW X3 X-Drive
Appreciate 0
      04-19-2008, 11:50 PM   #6
skimo
Lieutenant
95
Rep
532
Posts

Drives: 2011 335 vert Dinan II
Join Date: May 2005
Location: Austin Texas !!

iTrader: (1)

Quote:
Originally Posted by Willy325i View Post
Here is a crazy yet sweet idea, that if properly got attention, we are gonna live in heaven hereafter.

I as an IT Engineer, had this idea cuz I'm a software freak, and after I had a look at my gadgets, Like Sony PSP / Sony Vaio Notebook / PDA. I found that some software developers discovered a way to run some applications called Homebrew on the wide variety of gadgets out there!

And since BMW (Our E90s) are using a Windows CE version 3.5, so its basically an OS (Operating System)

The thing is, since any OS can run/exceute applications, why not we can develop an application that can run on the iDrive and collects some useful information such as Software Version (CIP), and may be do more of tweaking and/or settings to the system


Willy
Funny, I was also thinking about the same thing. I am an electrical engineer, I design server motherboards for a living. I am also into programming, but thats not my main focus. My intrest was more into the CAN bus of the car, so I can send custom commands to "roll windows" "unlock car when I am near" instead of having to touch the handle...anyway back to your idea

To put a super long story short, without inside information, I believe this task is near impossible. It seems that the OS and the 'idrive apps' are stored on some flash device and thats where the system boots. Placing anything on the DVD will not help unless you can configure the system to "boot off the dvd". If you can get to the flash area, grab an image of whats on there, that would be a good start. Even better, if you can find someone at BMW to give you the source code, API calls, libraries, registry definitions...

However, if you take a slightly different approach to it, you might bear more fruit. Check out the TVandNav2Go units, these interface with the iDrive but act as a layer on top of the system. That way, you don't have to mess with the idrive and risk breaking things. Just find a way to tap into the idrive video, and run your own machine with any app you want! If you want the app to interface with car elements, you might be able to do so to limited non-critical things such as windows, lights..etc by interfacing with the buses running through the car.

Check out the picture below of my buddies honda s2000. this dude basically has a full PC in his trunk. So yeah, he has facebook, movies, tv, outlook..etc in his car


(ps - I have been to egypt several times, cool place! )
Attached Images
 
Appreciate 0
      04-19-2008, 11:57 PM   #7
Calgary Agent
Captain
Canada
21
Rep
703
Posts

Drives: '11 550i
Join Date: Oct 2007
Location: Calgary, Canada

iTrader: (0)

Garage List
2011 F10 550i  [0.00]
Quote:
Originally Posted by Willy325i View Post
And since BMW (Our E90s) are using a Windows CE version 3.5, so its basically an OS (Operating System)
Willy - one problem with your plan. BMW in fact does NOT use any MS/Windows OS ....

"The first generation iDrive system is based on Microsoft's Windows CE for Automotive. This can easily be seen when the system reboots or restarts after a (software) crash displaying a "Windows CE" logo. [1] However, starting with the second generation (first seen in the 2004 5-series), Microsoft Windows CE was replaced with Wind River's VxWorks, a real-time operating system. [2] The third generation will employ Internet Protocol networking, using off-the-shelf IP components to replace proprietary networking systems"
__________________
'11 550i | AT | Dark Graphite on Black
Appreciate 0
      04-20-2008, 04:03 AM   #8
tintivilus
Lieutenant Colonel
tintivilus's Avatar
United_States
26
Rep
1,826
Posts

Drives: E92 335i
Join Date: Sep 2006
Location: Lake County, IL

iTrader: (0)

Garage List
2007 E92 335i  [0.00]
2003 325i  [0.00]
Quote:
Originally Posted by Calgary Agent View Post
Willy - one problem with your plan. BMW in fact does NOT use any MS/Windows OS ....
...so? VxWorks is an off-the-shelf OS. Given all the other humongous roadblocks, which operating system you're targetting is the least of one's worries

Some people have reported that there are vxWorks binaries on the navigation DVD's; maybe there's an update mechanism you could use to get your own code into the system?

I'd lay odds that the binaries are signed, though.
Appreciate 0
      04-20-2008, 06:36 AM   #9
Willy325i
Private First Class
Willy325i's Avatar
United_States
19
Rep
128
Posts

Drives: E93 LCI 335i M Sport
Join Date: Mar 2008
Location: Pasadena, CA

iTrader: (0)

Garage List
2013 BMW 335i E93  [0.00]
2012 BMW M3  [10.00]
2007 325i  [10.00]
2005 318i  [10.00]
All of you are Right, But

TofuTurkey, You described the thing as I was hoping, and yes there is a specific ARCHITECTURE, for the Application to be compiled, and yes after (Calgary Agent) rectified my plan regarding the OS, there should be an SDK that one can use to write/edit/compile binaries for the VxWorks OS, I know it should be (SIGNED CODES) to be able to run on the system.

THEN: SAFETY!

Well, Why would we tamper with SETTINGS OF THE CCC, its just we can READ-IN/scan Data, not nessecarily (WRITE), IT can enlighten us about SW Versions/Fault codes/etc.

I know that safety matters alot, but also let not forget that the base is MECHANICAL, so Brakes/Gears/Engine/Shocks/Etc. are all mechanical, ofcourse they are somehow controlled via SW, but we can stay away of WRITING DATA TO THE SYSTEM, JUST (READ) THE INFO.

the CCC monitor several sensors, Like the OBD FAULT CODES AVAILABLE IN THE HIDDEN SERVICE MENU, thats i used to calculate various settings, like coolant TEMP, Oil Level, Fuel in Left and Right Tanks - Those are what Im talking about.

E90330iS: Yes Im at Egypt!

im spencer: Nothing Should go wrong, IF we didn't Tamper (WRITE) settings to the System. You shouldn't be that afraid.

skimo :

Exactly, TV/Nav2Go surely uses/has a SW/HW info. that they can INTEGRATE theire devices to work with iDrive, so its not impossible!

btw, the layout you have is freaken nice, in a way.

Finally:

Since we have now a Semi-clear idea about OS being deployed/used, and since we are missing some HW Archeticture, we can communicate with VxWorks for that matter.

Believe me guys, its going to be ultra geniuos machine, and we would love the end result.

keep it up!
__________________
Power is Nothing Without Control!
Appreciate 0
      04-20-2008, 08:35 AM   #10
nuxted
Private
5
Rep
73
Posts

Drives: Sparkling Graphite 335i
Join Date: Apr 2008
Location: Chattanooga, TN

iTrader: (0)

First post on the forums, so hi there

I will soon be getting my 335i as soon as school is out, so i can prob. help a lot more when I get it. While I have been waiting i have been researching the same things you guys are talking about.

I have been drawing plans for my own computer in my car (as it wont be leased ) and I have got a few routes for said "carputer"

1. Obvious choice, hook up to the iDrive. A lot of problems here, one being that this isn't off the shelf parts, its OEM parts designed to run iDrive and iDrive only, so that is more trouble than its worth IMO.

2. Integrate a computer into the Dashboard: Buy a LCD Screen with no frame and have a dashboard frame fabricated into the console, much more complex/expensive to do.

3. Build a "carputer", mounting the LCD on a retractable mount.

4. Lastly, and probably the best way, hack the nav screen and hook up a computer to it. Have a switch to toggle from display to display maybe?

http://www.europeanautosource.com/in...cPath=67_69_73

The NAV systems have a TV Tuner in europe, but not in the US Versions, they sell kits for the older systems (e46/e36) to do exactly that, but no word on e9- models yet.

edit: VxWorks is a unix-based RTOS for embedded platforms, so its not like you can get all the info you want off the internet about it. Plus just having to buy the parts to test/develop such a hack would be more expensive than doing 2,3 or 4.
Appreciate 0
      04-20-2008, 09:14 AM   #11
TofuTurkey
Gobble gobbledygook
TofuTurkey's Avatar
5
Rep
287
Posts

Drives: 08 335xi Coupe
Join Date: Dec 2007
Location: North Jersey

iTrader: (0)

Quote:
Originally Posted by Willy325i View Post
[B]
Well, Why would we tamper with SETTINGS OF THE CCC, its just we can READ-IN/scan Data, not nessecarily (WRITE), IT can enlighten us about SW Versions/Fault codes/etc.

I know that safety matters alot, but also let not forget that the base is MECHANICAL, so Brakes/Gears/Engine/Shocks/Etc. are all mechanical, ofcourse they are somehow controlled via SW, but we can stay away of WRITING DATA TO THE SYSTEM, JUST (READ) THE INFO.

the CCC monitor several sensors, Like the OBD FAULT CODES AVAILABLE IN THE HIDDEN SERVICE MENU, thats i used to calculate various settings, like coolant TEMP, Oil Level, Fuel in Left and Right Tanks - Those are what Im talking about.
Hmm, there's the issue of application: what it's supposed to achieve. Is it just reading fault codes, which we can do with a code reader, or do you want it to do more?

For the code-reader sort of thing, the application will reside in an external device, and communicate via a (well-known?) interface. In this case, all that's necessary is to know the protocol (packet headers and fields definitions, which might be BMW-specific). There's no need to worry about OS and hardware on the car.

For something else, even if it simply reads but does not write, the fact that it resides on and runs off the car's computer means that it is utilizing CPU and memory. Depending on how those are managed, it may have an adverse effect on the rest of the system. For instance, you may decide to continuously poll the registers, at the highest priority, so the rest of the system might appear to hang. Or allocate so much memory that the other processes starve and die.

Perhaps it would be good to define the application's capabilities first

Quote:
Originally Posted by nuxted View Post
4. Lastly, and probably the best way, hack the nav screen and hook up a computer to it. Have a switch to toggle from display to display maybe?
Agree it's the best way. Display interface should be standard, and the toggle can be something like those KVM switches perhaps (??)
Appreciate 0
      04-20-2008, 11:01 AM   #12
Willy325i
Private First Class
Willy325i's Avatar
United_States
19
Rep
128
Posts

Drives: E93 LCI 335i M Sport
Join Date: Mar 2008
Location: Pasadena, CA

iTrader: (0)

Garage List
2013 BMW 335i E93  [0.00]
2012 BMW M3  [10.00]
2007 325i  [10.00]
2005 318i  [10.00]
Lets DEFINE the Application Requirements as a starter, Everyone should share his wishes in this, Yet Make sure that the requirements doesn't NEED TO WRITE, Just READ INFO.

Secondly, Why Desgin the Application to be WITH LOTS OF LOAD, and/or HIGH PERIORITY, if we just develop it with an (EXIT) Command, we are done!

(nuxted):

You didn't address any of the requiremet we are talking about, The PC Retrofit in the Car is sth. and the JUNCTION between the Car's CCC and OUTSIDE APPLICATION is another thing.

Keep it up again!
__________________
Power is Nothing Without Control!
Appreciate 0
      04-20-2008, 12:45 PM   #13
Willy325i
Private First Class
Willy325i's Avatar
United_States
19
Rep
128
Posts

Drives: E93 LCI 335i M Sport
Join Date: Mar 2008
Location: Pasadena, CA

iTrader: (0)

Garage List
2013 BMW 335i E93  [0.00]
2012 BMW M3  [10.00]
2007 325i  [10.00]
2005 318i  [10.00]
OK, I will very Soon vist the BMW Manufacturing Facility (Factory) in Egypt - Cairo, and I will see if some of the Engineers over there might be of any good help.

I will try to collect more technical information from the development Engineer, yet this surely a classified information, but with some good connections I guess I will be able to pull out with sth. useful

I will let you Know, when I complete this much anticipated VISIT
__________________
Power is Nothing Without Control!
Appreciate 0
      04-20-2008, 04:43 PM   #14
tintivilus
Lieutenant Colonel
tintivilus's Avatar
United_States
26
Rep
1,826
Posts

Drives: E92 335i
Join Date: Sep 2006
Location: Lake County, IL

iTrader: (0)

Garage List
2007 E92 335i  [0.00]
2003 325i  [0.00]
I think you might be misunderstanding a few points:

Quote:
Originally Posted by Willy325i View Post
...there should be an SDK that one can use to write/edit/compile binaries for the VxWorks OS, I know it should be (SIGNED CODES) to be able to run on the system.
Yes, you should be able to create signed builds with the VxWorks SDK, but you won't be able to sign builds with BMW's key.

To be fair, the signed-build requirement is pure speculation but is not uncommon in the industry.

Quote:
Originally Posted by Willy325i View Post
Exactly, TV/Nav2Go surely uses/has a SW/HW info. that they can INTEGRATE theire devices to work with iDrive, so its not impossible!
Nav2Go doesn't interact with iDrive: it has an LVDS pass-thru for the monitor and picks up some commands from the CAN bus.

This is a really a pretty solid solution: there's no need to modify the software on the iDrive system unless you just want to see if it can be done. It sounds like you think modifying the CCC is the only way to read off the car's CAN bus? You can tap the bus anywhere with off-the-shelf hardware.

Last edited by tintivilus; 04-21-2008 at 12:49 AM..
Appreciate 0
      04-20-2008, 11:06 PM   #15
nuxted
Private
5
Rep
73
Posts

Drives: Sparkling Graphite 335i
Join Date: Apr 2008
Location: Chattanooga, TN

iTrader: (0)

I found this while browsing the forms:

http://www.kudausa.com/kuda_mount_an...006-3-38.html#

its exactly what i was gona try and make, except it looks 100 times better than I would ever be able to do, I could probably make a mount to fix a nice 7inch or 10 inch display on there and have everything wireless or wired to a trunk computer or maybe a laptop underneath the passengers seat?
Appreciate 0
      05-30-2008, 02:51 PM   #16
glamprecht
Private First Class
glamprecht's Avatar
7
Rep
173
Posts

Drives: 330iE90, F15X5, F25X3, F15X5
Join Date: Jun 2006
Location: Ilinois

iTrader: (0)

The graphics apps are written in Java.

The diagnostics (easter eggs) seems to be written in C.

There is no safety concern. You cannot access the byteflight bus that controls safety devices such as airbags. You also cannot interfere with the PTCAN bus.

Having physical access to a CCC would be very useful. If anyone can post some pictures I can certainly have a look at what the implementation is. We have done Java on VxWorx before. The boot loader is often in a seperate block of completely seperate flash. Often the boot loader can be interrupted by having access to a UART. So if we have access to the CCC we can trace that and see if this is the case. It is quite likely that they have flash implementing a file system. Often the boot loader can view/replace the contents of the file system.

Anyway to start we need to take the lid off the CCC. In South Africa we have something they call a motorplan with all cars. If I touch the CCC I may loose my motorplan which is like a full warranty covering free repairs, services, software updates, etc.

Let me know if anyone have access to a CCC and a digital camera - we can get going.
__________________
Jun 2006 330i Manual, Active Cruise, Comfort Access, Nav prof, Voice, Bluetooth
Appreciate 0
      06-06-2008, 05:57 PM   #17
Houman21
Captain
Houman21's Avatar
United_States
31
Rep
949
Posts

Drives: Nothin right now
Join Date: Jul 2005
Location: L.A.

iTrader: (0)

These systems are closed systems - and for good reason. I just don't think the niche is big enough to make this something an independent development community would pick up. Maybe in the future these systems will open up.

Good Luck!
__________________
2008 e92 335i Step | Is Gone - It was fun but not meant to be | M3 - Cancelled | 135 Ordered
Appreciate 0
      06-06-2008, 07:29 PM   #18
Eliminator
First Lieutenant
Eliminator's Avatar
United_States
33
Rep
311
Posts

Drives: 2008 M3 SSII 6M, '87 911
Join Date: Mar 2008
Location: Michigan

iTrader: (0)

Sure would be nice to see Turbo Boost Pressure displayed real-time.
Appreciate 0
      07-15-2008, 04:49 PM   #19
glamprecht
Private First Class
glamprecht's Avatar
7
Rep
173
Posts

Drives: 330iE90, F15X5, F25X3, F15X5
Join Date: Jun 2006
Location: Ilinois

iTrader: (0)

Quote:
Originally Posted by Houman21 View Post
These systems are closed systems - and for good reason. I just don't think the niche is big enough to make this something an independent development community would pick up. Maybe in the future these systems will open up.

Good Luck!
I am pretty sure that at more than 300 000 sold per year the market would be large enough well for me at least.
__________________
Jun 2006 330i Manual, Active Cruise, Comfort Access, Nav prof, Voice, Bluetooth
Appreciate 0
Reply

Bookmarks


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT -5. The time now is 02:59 PM.




e90post
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
1Addicts.com, BIMMERPOST.com, E90Post.com, F30Post.com, M3Post.com, ZPost.com, 5Post.com, 6Post.com, 7Post.com, XBimmers.com logo and trademark are properties of BIMMERPOST