Wow, awesome work. As with everyone here I am curious as to your control application and detail.s
Hi guys, this is my first post here, and also this is my first in-car project, although i have working on it for almost 3 years.
At the beginning, i just want to install a real computer in my car. I bought all the modules online and integrated to the vehicle. It was chaos! Wires and modules everywhere .
As a software programmer, i have to make my product better.So the long journey starts.
First of all , talk about it's a project, we need to know the requirement clearly. In my plan, it's a long list.
- basic power control, start with the vehicle start up and shutdown after engine stop.
- Bluetooth hand-free , gps navigation
- parking assist, integrated with radar and cameras
- vehicle status (can-bus)
- driving assist prompt (over heat, under inflated, malfunction..)
- text to speech
- centralize all the programs, like "centralfuse"
- remote query & control (via SMS)
- motion detection
I's not that simple actually, hardware and software part make you crazy. anyway, i summary and split it into 4 parts.
- choose a micro size mother board
- build a small-pack circuit board that combined all modules and sensor. it also need to write a firmware.
- make a fit case
- write my own central control application.
The whole project blue print
Mother board EPIC 3.5' intel HM77, supports 2th 3th gen i-7
RAM: 4G DDR 1600
HDD: Mini-PCIE 128G/6Gps SSD [/td]
LCD: 7' 1280 * 800 IPS Screen[/td]
Touch: 4 wires resistance touch screen
The circuit board separate into two boards,
the big I named it Powerboard, its the main embed board, technically it obtains a Cotext-M3 mcu to control all the chips report to host.
Processor: NXP LPC1768 100Mhz
CAN-BUS: two CAN 2.0 , which directly connect to my car
12V Regulator : provide 100W 12DC to pc
Bluetooth: supports HFP & A2DP
GPS : U-blox 6 serial receiver
TTS : Chinese mandarin , she can speak english , oops..
Sensors: 6 Axis Gyro & Gravity Sensor/3 Axis e-compass/temperature sensor/Barometric Pressure Sensor
Other: PWM fan and lcd light control
Since it's base on CAN-bus , I bind most chips to car status. It's a heavy work. I spent 3 months to decode my car's can-bus message.
* power up while unlocking car, and shutdown after locked.
* force to change the audio source while there's an incoming call
* control the screen back-light by in-car light sensor signal
Citroen C5(x7) got four CAN-buses , each of then connect to a central unit which they call "BSI"
"CAN-Comfort" responsible for head-unit, doors, windows and seats
"CAN-HS" is ECU network, connect gearbox/ABS/ESP/steering wheel/AC...
"CAN-Car" connect to Air-bags , wiper and lights
"CAN-Diag" is for ODBII diagnostic
The small one is MuxHub , actually it is a connector dock, there're too many cameras need to be connected.
I put a 8-channels video capture and GSM module in it.
C5 only has a crowd space in central console, if i wanna put all stuff in it , the case has be fit the space precisely....the precision is about 1mm , almost same as my pc board.
I don't think i can make it by hand , so, have to find a factory...
design time draft
the factory make it perfect , and also the cost is heavy
final assembly, seem great!
P.S.: I have finish the draft last December, and got final sample on April this year....
making wire and connectors is a night mate, i don't wanna recall the memory , let's skip this step and just see the lighting up on the table.
seems pretty good, isn't it?
the most important reason that i choose intel i7 CPU is it's so fast, it only took 9 seconds from power up to windows desktop, and it also supports hybrid hibernate, event faster than cool start.
I have to say, those designing hardware, case, mechanism are not my expertise. Without goggle's help will be nothing i can do.
I'm a .net programmer in the real world. Actually , the program is not that complicated as you imaging.
*receive messages from powerboard via USB, display on the screen
*analyst the CAN-bus status and let something start stop. in some case, popup prompt messages or speak
*play mp3/ape/flac/wav audio file
*integrated with video capture card , render them in the right timing
*take care of steering wheel button and map to keyboard or short-cut
*integrated with navigation application, scale it to fit my screen
#main view, i guess your guys can not understand what the Chinese text means.
basically, show the main car status in numerical format. like engine PRM, Volt, coolant and oil temperature, trip summary
the circle on the right with a citroen logo is my favorite, fill color shows steering wheel rotation, the middle logo represent current towards(by GPS data)
*wheel speed monitor, it's generated by ESP, i think we can use it to calculate turn angle
*TPMS monitor, my C5 has an original TPMS system, i have decoded the data
*the jukebox, nothing else. Video playing is not support now, watching video while driving is not allowed.
*Audio DSP , this plug-in is from AMPlayer, i integrated it into my audio player. sounds not bad.
*navigation system, a famous chinese navi program. i can also use Garmin, but Garmin has no reality photo preview on the crossroad
*parking assist, with radar and video , the cyan wheel can also show the current steering wheel rotation.
*curve view, including PRM/speed/gear/gas/brake/acceleration
seems Citroen had pull out of north america, may you guy never see this car before.
Main 12V supply, direct from fusebox, usually there's spare fuse
test console dock place
the controller, a factory part. the original here is a reserve button, i replace it
still editing...... please forgot my poor english, two words per minute...
Last edited by kemp; 07-09-2014 at 10:18 PM.
Wow, awesome work. As with everyone here I am curious as to your control application and detail.s
I have an interest in this stuff as well. I am in the process of installing an i5 based system in my truck and hope to tap into many of the trucks resources.
I would be very interested in more information about the add on boards you are using and possibly how you tracked down the CANbus stuff..
I want a similar interface for my GM based truck.
Sounds awesome otherwise. There are some on here that are making computer controls from scratch for older cars but still think integration with the factory system is the best when possible.
Also would be nice to see a wider view of your interior to see how your computer integrates into the interior since many of us have never seen the type of car you are using.
(I am in school to be a software engineer and I have done some work with .net. I am hoping to use .net to interface into my truck as well. I also have experience in C and C++ as well as Java and others.)
Is the software behind your project open source or are you going to make it available?
Last edited by redheadedrod; 07-09-2014 at 05:40 PM.
like the picture below, i point the key place out. Can-bus is a two wires bus, most modern car use it for internal communication. it's a start network, which means you can just attach to those two wires then can receive everything.
second, need a CAN receiver, it translate CAN signals to digital, such as NXP TJA1040, TJA1050. then connect it to MCU, i see all the contex-m3 MCUs support can-bus stack. like stm32, LPC17xx. i see there are lot of CAN-USB translator available now, can easily receive the can-message from USB virtual comm port, may you can just order one online.
third, find a tools to analyze data. can-bus is a broadcast, low-delay network. each message contain 8 byte data max, broadcast speed can reach 1000 messages per second while running on 500kps, looking into the raw scrolling data is not that smart.
I wrote my own analyst tools. organize by id and capture any changes. I can share it but you guy still to adapt the protocol
those're decoded , only get 100 values yet.
Hope those information can help u.
About the central control software. I bind it to my board and car, so it would be useless if running on other platform.
I'm planning to implement an open source common central control application, may be in months, ....
the administrator masked my reply about decode CAN-bus?? my reply disappeared....
Sometimes messages disappear on here if it was a full message. I have noticed that before myself. I think the system has an error and gets restored to an earlier time. I would hope the messages don't just get deleted without a response of why they were deleted.
Anyhow, I have a couple ODBII to USB adapters. More generic but they do cover the CAN bus.
I have the shop manual for my vehicle and I have not yet dug deep into the wiring yet. Still trying to get my computer together to install.
Would certainly like to see what you are using to capture your codes. Would simplify my work dramatically. I am at a point that I could be "sniffing" my databuses within a couple weeks.
I have some ARM development boards through freescale that come with a CANBUS connection. I believe all I have to do is hook the wires to the bus and the rest is software. But I plan to use my i5 based computer to do most of the sniffing with the USB
Still am interested in the boards you are using. They look like a real cool solution that must have been designed for a specific purpose.
Be precise, ODB-II is a higher level protocol, it use can-bus as its physical network link. It like our internet, in this case, can-bus is actually a Ethernet but ODB-II act as FTP/HTTP. This are still many other techs like udp/snmp/dns over eth.
So, ODB-II is not what you need, it just contains few particular engine emissions information, it's designed for common diagnostic, but not all.
As I mentioned in my last reply, I wrote a tools to analyse can-bus data. If you have grepped raw CAN data from ur vehicle, it's a good option.
About the board, it is my favorite toy. I did produced a few pieces for some others who owned the same model car , but I have no idea whether it can be compatible with other brands.
In your freescale board, u still need to write a firmware to transfer raw CAN data bytes from receiver to your i5 computer may via USB or TTL. Before that, the Baud Rate also need to be figured out. ODB-II use 500Kbps. I don't known what your vehicle used.
Yes I am aware the ODBII connectors are a higher level device. They handle a lot of the low level handshaking for you and allow you to use them on most vehicles for diagnostics. THey are a good tool to learn the ODBII/Canbus protocol.
I am not sure why they won't work to do all the CAN BUS stuff but I guess I have to learn yet. I am sure the Freescale boards I have are likely able to communicate just fine but I would have to figure out the parameters for it etc.
I can capture the raw data now from my car. Is your tool just a log scanner that allows you to track what is coming through and try to identify what it is or does it actually take the readings too? Might be cool to make it work on a text file of a specific format so it can be used to sniff any canbus data regardless of source.
Would love to see your code regardless.
As to the boards. Are you saying you made these boards yourself? I think you might find people on here very interested if that is the case. I personally would want at least one set if possible depending on the cost. You have much of the hardware already built in that I am currently trying to spec out pieces for.
Of course, The analyst tools supports plain text log playback, this allow you do offline work.
These two add-on boards shown in my post r designed by myself, see my name in print text on the board?
But you known that it likes development board, will not work until it flashed with right firmware. I currently have a hard-code version for Citroen vehicles, there are lot of works to do if I want to make it to be more compatible.
the manufacturing costs of this these two boards about USD $200+$50, small quantities manufacturing is too expensive, especially the chips and SMD soldering...
What navigation software is this?
It is not IGO8,right?
Is this navi soft available with european map content and german language?