scangauge type display?
#21
Basic Block diagram:
Supporting docs:
Display datasheet, includes overview, pinout, etc...
Low dropout 5V reg
RS232 transceiver (i was very lazy and bought somthing prefabbed, future improvement would be to layout everything on a single board etc...)
Like i said before its worth looking at the 4d website if your interested in the displays, its has a reference for the coding langauge etc...
4D Systems, Research and Development
The whole thing cost less than $100 AUD to make.
Supporting docs:
Display datasheet, includes overview, pinout, etc...
Low dropout 5V reg
RS232 transceiver (i was very lazy and bought somthing prefabbed, future improvement would be to layout everything on a single board etc...)
Like i said before its worth looking at the 4d website if your interested in the displays, its has a reference for the coding langauge etc...
4D Systems, Research and Development
The whole thing cost less than $100 AUD to make.
#26
Elite Member
iTrader: (2)
Join Date: May 2007
Location: Cromwell, Connecticut
Posts: 2,605
Total Cats: 16
I forgot about this thread. I really want to make one of these. I know the kid who originally created the LCdash. He is the one that got me hooked on megasquirt over 6 years ago with his eclipse followed by a Nissan Maxima setup.
IN for the source code and maybe a how to?
The above link for the datasheet isnt working
IN for the source code and maybe a how to?
The above link for the datasheet isnt working
#29
Old code for the simple 4d display <> RS232 <> Megasquirt attached if anyone wants to take a squiz.
Links for displays:
http://www.4dsystems.com.au/
http://www.4dsystems.com.au/prod.php?id=84
http://www.4dsystems.com.au/download...FX-DS-rev3.pdf
I am actually working away at a new version implemented slightly differently:
http://arduino.cc/forum/index.php/topic,53309.0.html
Improvements are:
* More code space and RAM for more features. (Using only the display gives only 400 bytes of RAM to play with)
I always wanted to add a graph feature, so if you felt an engine glitch or hesitation whilst driving you could quickly (whilst taking due care on the road) flick through some key parameter histories to see what just happened. Ran out of RAM trying to implement it in the display alone.
* Uses CAN interface to Megasquirt. (Its not as complicated or difficult as it sounds)
* Simple one wire bus over clock spring for steering wheel switches instead of analog multiplexing. (which was terrible.) Puts ~120ma of current through the clock spring contact to keep it clean.
* Code written in arduino IDE for fast OO code implementation and hopefully opens it up to a wider range of people to have a go at adding their own features.
* OLED display is shut down properly when IGN > off. (Apparently this can damage the display of not performed)
* Don't have to sacrifice horn function to use the clock spring for display functions.
Almost ready to start laying out a PCB which I will make available on batchpcb.com hopefully I can get it nice and small so it can be tucked in a corner of the cluster discretely with a short ribbon cable to the display - so minimal internal hacking of cluster required.
I've attached a pdf of the hardware schematic, feel free to critique.
Links for displays:
http://www.4dsystems.com.au/
http://www.4dsystems.com.au/prod.php?id=84
http://www.4dsystems.com.au/download...FX-DS-rev3.pdf
I am actually working away at a new version implemented slightly differently:
http://arduino.cc/forum/index.php/topic,53309.0.html
Improvements are:
* More code space and RAM for more features. (Using only the display gives only 400 bytes of RAM to play with)
I always wanted to add a graph feature, so if you felt an engine glitch or hesitation whilst driving you could quickly (whilst taking due care on the road) flick through some key parameter histories to see what just happened. Ran out of RAM trying to implement it in the display alone.
* Uses CAN interface to Megasquirt. (Its not as complicated or difficult as it sounds)
* Simple one wire bus over clock spring for steering wheel switches instead of analog multiplexing. (which was terrible.) Puts ~120ma of current through the clock spring contact to keep it clean.
* Code written in arduino IDE for fast OO code implementation and hopefully opens it up to a wider range of people to have a go at adding their own features.
* OLED display is shut down properly when IGN > off. (Apparently this can damage the display of not performed)
* Don't have to sacrifice horn function to use the clock spring for display functions.
Almost ready to start laying out a PCB which I will make available on batchpcb.com hopefully I can get it nice and small so it can be tucked in a corner of the cluster discretely with a short ribbon cable to the display - so minimal internal hacking of cluster required.
I've attached a pdf of the hardware schematic, feel free to critique.
Last edited by FieldEffectDave; 03-10-2011 at 06:07 PM.
#33
Lookup tables attached.
Yeah was a neat little board. Seems crazy that so many people are stuffing about with SPI CAN sheilds on their arduino's when it takes 5 mins to stick the arduino bootloader on this dev board and set up the right environment files in the ardunio IDE.
Another fan of Olimex...coolio!
#34
Elite Member
iTrader: (2)
Join Date: May 2007
Location: Cromwell, Connecticut
Posts: 2,605
Total Cats: 16
Just ordered my parts to do the older 4d display <> RS232 <> Megasquirt setup.
I spent about an hour reading thru your code. Seems real similar to C or BASIC, so I should be able to play with it a bit
I am still pretty limited when it comes to programing. What do you need the .fnc files for btw?
I spent about an hour reading thru your code. Seems real similar to C or BASIC, so I should be able to play with it a bit
I am still pretty limited when it comes to programing. What do you need the .fnc files for btw?
#35
Nice project Dave. I also made a display with an Arduino, so I'm sure that I'll contribute code at some point. BTW, can you do CAN and RS232 comm simultaneously with the MS-II? Edit: I'm sure you can. I look forward to seeing the Arduino code.
In this case it provides a mapping between the raw analog reading and a real temperature/pressure/etc value.
In this case it provides a mapping between the raw analog reading and a real temperature/pressure/etc value.
Last edited by JustinHoMi; 03-10-2011 at 09:54 PM.
#38
Elite Member
iTrader: (2)
Join Date: May 2007
Location: Cromwell, Connecticut
Posts: 2,605
Total Cats: 16
1 more dumb question:
in the above code we request the serial data with
serout(82); which provides a ascii "R" ... I understand that
But after that we assign every variable to serin().
What does the 39 bytes of data look like from megasquirt? when you assign a variable the value serin() such as:
baroADC := serin();
doesnt it Assign the 0 - 255 value that megasquirt spit back? How are the variables being assigned the correct thing?
I guess I am a little confused on how the serial data is returned from megasquirt and assigned to all the individual variables.
in the above code we request the serial data with
serout(82); which provides a ascii "R" ... I understand that
But after that we assign every variable to serin().
What does the 39 bytes of data look like from megasquirt? when you assign a variable the value serin() such as:
baroADC := serin();
doesnt it Assign the 0 - 255 value that megasquirt spit back? How are the variables being assigned the correct thing?
I guess I am a little confused on how the serial data is returned from megasquirt and assigned to all the individual variables.
#39
I haven't looked at his code, but the serial data is returned from the megasquirt in one big block. Each variable is offset by a certain number of bytes. Read these:
http://msextra.com/doc/ms1extra/COM_RS232.htm
http://msextra.com/doc/ms2extra/RS232_MS2.html
http://msextra.com/doc/ms2extra/can/ms2can.html
http://msextra.com/doc/ms1extra/COM_RS232.htm
http://msextra.com/doc/ms2extra/RS232_MS2.html
http://msextra.com/doc/ms2extra/can/ms2can.html