Jump to content
lekonna

DIY vipec display

Recommended Posts

Alright,

So i was looking for a very small display, just to show me couple of basic items i need to know from the ECU such as oil pressure and oil temp ect.

basically everything out there was way over spec and price for this type of application.

I had an arduino uno laying around and decided to play with that a bit.

arduino_display.jpg

so what we have here is essentially, arduino uno, serial lcd and a can shield.

https://www.sparkfun.com/products/11021

https://www.sparkfun.com/products/10039

https://www.sparkfun.com/products/9394

which is just bit under 100$ if you have to purchase them all trough sparkfun which is not the cheapest option out there.

I soldered a pin header on the Can shield so that it sits on top of the arduino uno and hacked up some leads for the lcd.

Jean delivered me a flying leads can cable for Vipec and today i finally had some time to play around with it.

What i would like to know from the vipec support is that where is the data format defined in which the vipec sends the different variables? For example the TPS seems to range from 32-360 when reading it as a sequential data with 2 bytes of data with the data1 as H and data0 as L byte.

Would be much easier to implement the stuff i need if i didn't have to reverse engineer the data format for each variable i possibly want to see :)

Is there a table available somewhere in the documentation ?

I will publish the code and the setup if somebody wishes to modify and take it into use for them selves, though most likely i will not have time to support it too much.

the Can shield has a 4 way joystic and a SD card place also so if somebody wants to get creative and implement something more complex, it should work fine.

Share this post


Link to post
Share on other sites

Nice!

Im whant do the same thing with a nexus 7 tablet.

More room for dashes as a matrix display.

Have the nexus here but not shure what kind of can->Bluetooth adapter i should buy.

Where you get the vipec->canbus plug?

Share this post


Link to post
Share on other sites

the can thingy, is the mcp2515 chip on the add-on board there, it communicates with the AVR micro controller through spi-bus, not exactly something you can just go and plug on a nexus tablet.

you might get away with either:

if you can hack the nexus to work in a usb host mode and connect some can usb dongle that actually support linux you might get data on the tablet. Also don't know if the nexus kernel is compile with module support for the usb drivers.

Or:

actually, as the arduino works as usb serial, and also works in linux, it might be possible to use the nexus with just usb connected to this thing, i use the serial connection to debug stuff and it works just fine under linux.

but then you'd have to write the ui and all that tedious crap ;) life is so much simpler if you just stick close enough to the hardware.

Share this post


Link to post
Share on other sites

If you go to the help file in VTS and search "Device Specific CAN Information

"Device Specific CAN Information"

That will give you the CAN info.

If you search "Datastream" you will find the Serial information

Share this post


Link to post
Share on other sites
dang it, you beat me to it :P

I wanted to do the exact same thing... I bought an Arduino Uno and an LCD and it is sitting on my work table.

Would you be willing to share code?

sure thing, i'm using library made by some other guy, but the copyright states that it can be shared, so i see no problem

with sharing it. i'll push it to github this way its easier to see the updates, but seriously, what i did to the example that came with the can shield was just add a function to the Canbus class that reads 4 variables and then used that to dig stuff out, vipec documentation made it quite easy to do this.

Share this post


Link to post
Share on other sites

This is awesome!

Very inspirational for an electronics hack and Arduino fan like me. :)

Thanks so much for posting this info, please continue to update this thread with more great stuff!

Much appreciated!

Cheers,

Will

Share this post


Link to post
Share on other sites

added a button to flip between pages. code also updated.

was initially going to add max and min value display on a double click but since i was lazy and didn't solder a small capasitor in the switch i get lots of noise and had to filter it in the interrupt handler to make the button behave better.

will think of a way to implement the display for min and max also.

the button is wired between digital pin 3 and ground.

Share this post


Link to post
Share on other sites

You mentioned that you would provide the pinouts. I could not see them here. Also, I have not read this whole article in depth, but this "code" your referring to, how does this "code" get into the unit? Do you have to hook it up to a laptop via USB and communicate with it then upload the "code" I think what your saying that in order for this to communicate with the Vipec, this code needs to be installed onto the Arduino MB. Also, where did you procure this "Flying Leads" CAN cable for he Vipec?

Now for a stupid question.........Is there a product now on the market with a display and all that does the same thing, yet all pulg n play?

Stu

Share this post


Link to post
Share on other sites
You mentioned that you would provide the pinouts. I could not see them here. Also, I have not read this whole article in depth, but this "code" your referring to, how does this "code" get into the unit? Do you have to hook it up to a laptop via USB and communicate with it then upload the "code" I think what your saying that in order for this to communicate with the Vipec, this code needs to be installed onto the Arduino MB. Also, where did you procure this "Flying Leads" CAN cable for he Vipec?

Now for a stupid question.........Is there a product now on the market with a display and all that does the same thing, yet all pulg n play?

Stu

here is the wiring:

vipec pin 3 (white) CAN H <---> arduino shield pin 3 on the DB9 plug

vipec pin 4 (green) CAN L <---> arduino shield pin 5 on the DB9

ref.

http://www.sparkfun.com/datasheets/DevT ... ld-v12.pdf

vts -> help -> wiring information -> communications port pinout

you are correct, the code i'm referring to here is the source code for the microcontroller in the arduino that will run the can stuff

and direct the display.

what you do is once you have the arduino, you plug it into your pc with usb cable and use the arduino ide do flash the software

to the board. At this point you can modify the parameters you want the display to show, it is quite easy to do. then you just hook everything

together, setup the vipec and you are done.

vipec can setup

user_can_setup.png?raw=true

Share this post


Link to post
Share on other sites

Digging up an old thread...  A friend has assembled one of these displays and programmed it to be an additional display for his turbo 1zzfe.  I'm now trying to get it to work with his CAN enabled v88 (serial 10484).  Is there any reference for the CAN Status runtime values available?

While playing around with a couple of different CAN Shields I'm getting Stuff Error most of the time and sometimes a Bit0 error when trying a different data rate..  ECU is in transmit with compound format, Data Rate is 500kBPS and the canshield is initialised at 500kBPS.

 

Share this post


Link to post
Share on other sites

Hi JMP,

We don't have any information on the causes of errors for the different CAN Statuses. Normally the only time I've seen errors has been if the CAN H and CAN L need to be swapped, or if the data rate of the ECU and CAN device do not match. When you make a change on the CAN settings I would recommend storing then cycling the power to both the ECU and the CAN device.

Can you show us a screenshot of the CAN Setup window when the Stuff error is occurring? 

Share this post


Link to post
Share on other sites

I did a bit of searching and found a website earlier today that had a number of the error states explained, LEC stands for Last Error Code and it seems the "Stuff Error" is actually one of the standard error states defined for CAN comms:

Error checking

CAN is a very reliable system with multiple error checks ( below is the CAN 2.0 the CAN FD is more complex

Stuffing error  -  a transmitting node inserts a high after five consecutive low bits (and a low after five consecutive high). A receiving node that detects violation will flag a bit stuffing error.

Bit error  -  A transmitting node always reads back the message as it is sending. If it detects a different bit value on the bus than the one it sent, and the bit is not part of the arbitration field or in the acknowledgement field, an error is detected.

Checksum error - each receiving node checks CAN messages for checksum errors (different rules apply for CAN 2.0 and CAN FD).

Frame error - There are certain predefined bit values that must be transmitted at certain points within any CAN Message Frame. If a receiver detects an invalid bit in one of these positions a Form Error (sometimes also known as a Format Error) will be flagged.

Acknowledgement Error - If a transmitter determines that a message has not been ACKnowledged then an ACK Error is flagged.

The owner's going to try a later CAN library for the Arduino tomorrow with the ECU on the bench. I thought it was interesting that the transmitting node flagged the stuffing error, but I'm still learning how CAN comms is meant to function.

 

Setup screen looked like this:

configcan.JPG

Edited by JMP

Share this post


Link to post
Share on other sites

slight update, turns out the libraries define the clock speed and subsequent block sizes.  We were using a 16Mhz library and the can shield had an 8Mhz clock...  Replaced the 8Mhz clock with a 16Mhz and the comms is now working well :)

Testing with a really cheap shield: http://www.aliexpress.com/item/EMS-Free-shipping-6870C-0243C-LC420WUN-LC470WUN-SBA1-Logic-board-High-quality-Hot-sale/620222773.html

Edited by JMP

Share this post


Link to post
Share on other sites

hi, this looks great and a bridge gap between a full CANBUS setup like the KMS display or display dashes etc

 

would this work with the V44 topboard I have (evo 9 PNP unit), but it still requires the CANBUS upgrade (serial below 10,000)

if i wanted the KMS display unit i had to upgrade to Link G4 and then but the KMS display, but this looks like it might work with native V44 CANBUS - as the audrino can do arithmetic on the CANBUS values

Share this post


Link to post
Share on other sites

I think this would work. You could send out the 'Generic Dash' CAN stream, as this contains most of the data the KMS dash is capable of receiving. You would then re-transmit the data to the KMS after some maths.

We have just finished adding G4+/iSeries support for another good value dash manufactured by Microtech. There is talk of them making a mode in the dash to support the 'Generic dash' CAN stream, this would mean the dash could work with the V44/V88 and G4 ECUs.

http://microtechefi.com/product/ltc-display-dash/

One other good value dash which already has support for the V44/V88 and GG4 ECUs is the Toucan.

http://www.jti.uk.com/toucan-available-for-link-g4g4-and-vi-pec/

 

Share this post


Link to post
Share on other sites

thanks and good insight, i hadn't considered using the aurdrino as in inbetween CANBUS gate to the KMS display, i only thought of it as a do it yourself display.

ill chat to my friend tomorrow to see if he can get the audrino as a CANBUS gate to the KMS display

Share this post


Link to post
Share on other sites

What you build is very cool. I am also looking for the same kind of thing.

Can you please share your system details here? What are the specifications for your MCU?

Which firmware you used and how? Also what are the specifications for your other hardware components?

 

electronic pcb assembly

Edited by EttaTodd

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×