‘Blog entry: http://www.cantanko.com/rx-8/reverse-engineering-the-rx-8s-instrument-cluster-part-one/
This is a quick video of a Mazda RX-8 instrument cluster being driven via CAN from an Arduino Uno fitted with a SparkFun (purchased from SKPang) CAN shield. As much as people hate the Arduino, it’s incredibly useful with which to do stuff like this — everything you see was worked out in a couple of evenings, probably 8 man-hours including rigging the hardware, writing the code and fuzzing the bus.
As I plan to be messing with the engine of one of these cars and removing the factory PCM, I needed to figure out what messages needed to be sent to keep both the dash and the other ECUs on the vehicle happy. Seeing if I could drive the dash was a very cheap way (£5 from eBay) to see if I could talk to the instruments happily enough.
The appropriate PIDs were discovered by fuzzing «usual suspect» PIDs and most things were located easily enough. The traction control / stability control, power steering and cruise are proving to be a little more elusive, but once they’re found I’ll post full details of the packets used to address them.
I’ll update this description when I’ve finished noodling around with it and have the data in some kind of intelligible format. Code (such as it is) will be released also.
Principle components used:
Arduino uno: http://arduino.cc/en/Main/arduinoBoardUno
SparkFun / SKPang CANbus shield: https://www.sparkfun.com/products/10039
Cory Fowler’s version of the Arduino CAN library: https://github.com/coryjfowler/MCP2515_lib
Music by Kevin MacLeod: http://incompetech.com/music/royalty-free/
Смотреть в источнике
11 комментариев
Nice job. I'm planning on doing something similar so I've purchased a CANBus shield for my MEGA 2560. Do you think this will work on my Jaguar instrument cluster?
Instrument_controller.ino: In function 'void setup()':
Instrument_controller:54: error: 'CAN' was not declared in this scope
Instrument_controller:54: error: 'CAN_500KBPS' was not declared in this scope
Instrument_controller:54: error: 'CAN_OK' was not declared in this scope
Instrument_controller.ino: In function 'void loop()':
Instrument_controller:88: error: 'CAN' was not declared in this scope
Instrument_controller:106: error: 'CAN' was not declared in this scope
Instrument_controller:107: error: 'CAN' was not declared in this scope
Instrument_controller:108: error: 'CAN' was not declared in this scope
Instrument_controller:202: error: 'CAN' was not declared in this scope
Instrument_controller:220: error: 'CAN' was not declared in this scope
This is what came up when I tried to upload the program. Please help.
Hello,
Great work, i have been trying the code myself but keep getting errors in the loop function saying "undefined reference to `CAN'"
Any ideas?
I am not very good at coding sorry
Thanks in advance
Wow nice Harry, great work
wanna run an Altezza Cluster in my Toyota Starlet.
some help would be nice =D
Great job Harry!
Which year is the RX-8 donor? Not sure if different years are different but still 🙂
wondering if you got any farther with this looking into trying to get my megasquirt (standalone) to send the signals for rpm speed and coolant
I've always wondered if you can get your cluster to do a sweep at start-up if your car didn't come with that feature. Where can I order this
Hi Harry ,
Recently i swap a 2JZGTE VVTI to my Mazda RX8 and the only issue that i have is that my cluster is not working .All the lights are on and non of them are functioning .my mechanic suggest me to go with external gauges or some aftermarket ECU which are so expensive . I will be very happy if i can get some solution from you .
Good work! Appreciate it. Your blog decently helped me figure out the temp reading.
Hi
I have an rx8 with 1jz vvti engine swap, automatic transmission. paddle shift is not working, only shiftronic is working. how may I make paddle shift to work?
p/s have you ever get trip counter to work?