- 900MHz quad-core ARM Cortex-A7 CPU
- 1GB RAM
- 4 USB ports
- 40 GPIO pins (the GPIO pin are to control various things like displays, servomotors, LEDs, relays, etc).
- Full HDMI port
- Ethernet port
- Combined 3.5mm audio jack and composite video
- Camera interface (CSI), the camera interface allows you to plug-in a camera board (this would be very useful if you would like to implement a dash camera or a security camera for your application, in my case this will be for the car surveillance system)
- Display interface (DSI)
- Micro SD card slot
- VideoCore IV 3D graphics core
This little computer board will allow you to install and use an operating system, In my case I am using Raspbian, other operating systems that are available at this time are:
- NOOBs
- Ubuntu Mate
- Snappy Ubuntu Core
- Windows 10 IOT Core
- OSMC
- OpenELEC
- PiNet
- RiscOS
- Kodi
- and other variations
For the BMW E90 I will be using this PC to implement various additional features, the first feature will be that of an onboard OBD2 scanner. This will allow me to monitor live data from the OBD2 port. Below I have listed some parameters that are available over the OBD2 port:
- Fuel system status
- Calculated engine load value
- Engine coolant temperature (this is very important especially to E90 owners since most of the versions don't have an engine coolant temperature indicator)
- Fuel pressure
- Intake manifold absolute pressure
- Engine RPM
- Vehicle speed
- Timing advance
- Intake air temperature
- MAF air flow rate
- Throttle position
- Commanded secondary air status
- Oxygen sensors present
- Oxygen sensor voltage
- Auxiliary input status
- Run time since engine start
- Distance traveled with malfunction indicator lamp (MIL) on
- EGR Error
- Fuel Level Input
- Distance traveled since codes cleared
- Evap. System Vapor Pressure
- Barometric pressure
- Ambient air temperature
- Relative throttle position
- Fuel/Air commanded equivalence ratio
- Absolute load value
- Fuel Type
- Engine oil temperature
- Fuel injection timing
- Engine fuel rate
- Driver's demand engine - percent torque
- Actual engine - percent torque
- Engine reference torque
- Engine percent torque data
- Turbocharger RPM
- Turbocharger temperature
- Boost pressure control
- Manifold surface temperature
- NOx sensor
- Particulate matter (PM) sensor
Besides monitoring these parameters the on-board car computer will also allow you to clear out fault codes. The Raspberry PI car computer will be fitted in the ashtray compartment.The plan is to 3D print a nice bezel for the display so that it will look like it came out of the factory this way.
Please feel free to comment on this post if you would be interested to know more about this project. Until then I have posted some pictures with my ongoing car computer project.
Enjoy! :)
Hey Luis,
ReplyDeleteawesome project idea! I`m interested in reading the OBD2 data using a Raspberry Pi, too. Can you give me an advise which library to use is the best way, when using Java as programming language?
With best regards,
Dennis
Hi Dennis,
ReplyDeleteThanks for your interest, to be honest I don't know if this can be easily implemented in Java. For this particular project Python was easier to implement due to the fact that pyOBD is open-source and contains pretty much everything you need to have this running. If may I ask, why have you decided on JAva?
Best regards,
Luis
Hi Luis,
DeleteGreat post! I really like it and want to investigate doing it for myself too. Do you mind sharing some or all of the scripts that you developed for this? Do you have a GIT repository?
Br,
Rene
Hi Rene,
DeleteThanks for your message. Glad you enjoyed the post. This is based on pyobd, the Git repository can be found on google. If you are interested to see more details on this please feel free to checkout the facebook page:
https://m.facebook.com/mobilesentinel/
I have more pictures and details posted there as I didn't have a chance to update the blog recently.
Many thanks,
Luis