Monday, December 21, 2015

The Raspberry PI car computer

I've started to play around with a little device called a Raspberry Pi. The Raspberry Pi is essentially a card sized computer with the following specifications:
  • 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.

raspberry pi OBD      raspberry PI


raspberry PI running Raspbian      Raspberry PI case


BMW E90 console keyboard        Raspberry PI booting



Enjoy! :)