lekonna Posted August 29, 2012 Report Share Posted August 29, 2012 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. 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. Quote Link to comment Share on other sites More sharing options...
lemmy01 Posted August 29, 2012 Report Share Posted August 29, 2012 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? Quote Link to comment Share on other sites More sharing options...
lekonna Posted August 29, 2012 Author Report Share Posted August 29, 2012 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. Quote Link to comment Share on other sites More sharing options...
Simon Posted August 29, 2012 Report Share Posted August 29, 2012 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 Quote Link to comment Share on other sites More sharing options...
lekonna Posted August 30, 2012 Author Report Share Posted August 30, 2012 now it does what i want it to do. nice. Quote Link to comment Share on other sites More sharing options...
trd87t Posted August 30, 2012 Report Share Posted August 30, 2012 dang it, you beat me to it 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? Quote Link to comment Share on other sites More sharing options...
lekonna Posted August 30, 2012 Author Report Share Posted August 30, 2012 dang it, you beat me to it 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. Quote Link to comment Share on other sites More sharing options...
lekonna Posted August 30, 2012 Author Report Share Posted August 30, 2012 here you go: https://github.com/lekonna/vipec_can_display the main code is dead simple https://github.com/lekonna/vipec_can_di ... isplay.ino I'll play around with it some more during the weekend when i have some time. so far seems to work just fine. I can dig out the pin order i used to solder the serial cable to the vipec wires tomorrow. Quote Link to comment Share on other sites More sharing options...
WillM Posted September 2, 2012 Report Share Posted September 2, 2012 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 Quote Link to comment Share on other sites More sharing options...
lekonna Posted September 10, 2012 Author Report Share Posted September 10, 2012 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. Quote Link to comment Share on other sites More sharing options...
Dave Kriedeman Posted September 10, 2012 Report Share Posted September 10, 2012 Hi lekonna, Very, very cool. Well done, i like what you have done. Regards Dave Quote Link to comment Share on other sites More sharing options...
barrym Posted October 19, 2012 Report Share Posted October 19, 2012 'float' the AFR and divide by 0.1 then Serial.print(afr,1); and it will give you your afr as 14.7 (for example) great work by the way ... thanks for sharing your code ... Quote Link to comment Share on other sites More sharing options...
Stuhagen Posted October 23, 2012 Report Share Posted October 23, 2012 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 Quote Link to comment Share on other sites More sharing options...
Scott Posted October 24, 2012 Report Share Posted October 24, 2012 Hi Stu, The DisplayLink is also compatible with Vi-PEC ECUs. http://www.linkecu.com/products/TuningTools/DisplayLink Cheers, Scott. Quote Link to comment Share on other sites More sharing options...
lekonna Posted October 28, 2012 Author Report Share Posted October 28, 2012 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 Quote Link to comment Share on other sites More sharing options...
JMP Posted January 24, 2016 Report Share Posted January 24, 2016 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. Quote Link to comment Share on other sites More sharing options...
Scott Posted January 25, 2016 Report Share Posted January 25, 2016 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? Quote Link to comment Share on other sites More sharing options...
JMP Posted January 25, 2016 Report Share Posted January 25, 2016 (edited) 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 checkingCAN is a very reliable system with multiple error checks ( below is the CAN 2.0 the CAN FD is more complexStuffing 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: Edited January 25, 2016 by JMP Quote Link to comment Share on other sites More sharing options...
Scott Posted January 26, 2016 Report Share Posted January 26, 2016 Hi JMP, thanks for the info and the screenshot. Let us know how it goes with the later CAN library.Cheers, Quote Link to comment Share on other sites More sharing options...
JMP Posted January 30, 2016 Report Share Posted January 30, 2016 (edited) 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 January 30, 2016 by JMP Quote Link to comment Share on other sites More sharing options...
Scott Posted February 1, 2016 Report Share Posted February 1, 2016 Good work, glad you got it going. I would be interested in seeing the setup once you have it all going. Quote Link to comment Share on other sites More sharing options...
paulr33 Posted March 11, 2016 Report Share Posted March 11, 2016 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 Quote Link to comment Share on other sites More sharing options...
Scott Posted March 14, 2016 Report Share Posted March 14, 2016 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/ Quote Link to comment Share on other sites More sharing options...
paulr33 Posted March 14, 2016 Report Share Posted March 14, 2016 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 Quote Link to comment Share on other sites More sharing options...
EttaTodd Posted March 15, 2016 Report Share Posted March 15, 2016 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.