User:1sfoerster/enes100/fall2014/CAN bus

Problem
CAN buses are found in elevators, theaters, coffee pots, assembly lines and cars. But the connectors, wires, speeds and codes are evolving. Because CAN bus is not visible to the general public, each manufacturer can extend the technology in a unique way. This makes standardizing car repair difficult. CAN bus replaces the star wiring topology to an ECU (Electronic Control Unit ... car computer) with a two wire bus (plus power and chassis ground) and distributed ECU's or modules. CAN Bus is the starting point for automation design. CAN bus is also replacing belts in cars (significant source of problems and noise). This article describes a "gateway" between the CAN bus and unique Volkswage "K-Cable". It appears innovation (both after market and vendor) is on the CAN bus side so the gateway has to be replaced. Yet this standard technology is crippling car owner DIY repair/modification. The problem is how to expose CAN Bus secrets.
 * CANbus introduction
 * power point presentation

Conceive

 * Build CAN bus, start attaching ECU's it using arduino's in a manner similar to this Netherlands company's kits.
 * Document existing CAN Bus systems installed within a university.
 * Raid automobile junk yards for ECU's or devices with CAN Bus connections and get them working with arduino's and code scanners through an ODB port.

Next Steps: Will easier to forward engineer both using standard off the shelf technology such as CAN bus.
 * Reverse engineer the arm rest controller
 * Reverse engineer speed controller


 * different motors on different models
 * how to take apart and put back together motor
 * 4-Pole Motor and Gearboxes After 8/31/98
 * Motor/Gearbox Assembly Reference Chart
 * forum help request of someone working on same type motor

Design
Failed (video) because too many pieces needed to be found:
 * USB Host Shield software that talked to the USB ODB scanning hardware
 * Software running on windows machines that would work with the USB ODB scanning hardware to reverse engineer
 * An active CAN bus with ODB connector that could be used to test the above

All the USB ODB parts purchased and all the software tried on a PC to talk to them are now no longer available or supported. This link is to $150 package similar to what was purchased and tried. This was purchased and maybe can be made to work with the lastest free software.

Lesson learned:
 * Need something more generic to CAN Bus, and not a packaged solution (video) dedicated to troubleshooting cars

The idea was to purchase a wireless device with potential connection to a CAN Bus. So a wireless tire pressure system for cars was purchased.

Turned out that wireless communication with pressure sensors in rotating tires was proprietary, that the devices turn on only above a certain miles/per hour or a test rig with magnets on it spins past the stationary pressure sensor. No referenced links have been found to this information.

The controller for this system had an LED read out and was to be attached to the dashboard by the car owner, not to the CAN bus of the car. The controller has not been hacked to see if their is a CAN Bus connection within the controller.

Freematrics has the exact products to invest in, but the links are all bad, appears that the web site has been abandoned.

Found pdf files describing in detail the Xilinix Intellectual Property (IP) in the Xilinix documentation: In the notes, it says this will work with Spartan3E FPGA hardware, but can not implement in hardware without writing them and getting licensing.
 * Getting Started Guide
 * Version 3.2 Specifications

The latest version of CAN BUS is version 2.0 published in 1991, so version 3.2 must refer to a Xilinx version. There are also Xilinix documents for versions 4.1 and 4.2, but these refer to different automotive FPGA hardware (not Spartan3E).

Not finished. Need to spend couple of hours doing this.

Implement
After labeling finished, showed that all of the thicker wires controlled the motors and thinner wires received the input commands from the seat adjustment nobs and the electricity to power the circuit board. Also evident that each motor was controlled using two relays. Still not clear which wire controlled the function of which motor or of anything CAN Bus related.

Conducted an extensive search in the internet for a wiring diagram. Diagrams were available, however almost all of them required payment in order to view it. workshop-manuals.com had pictures of wiring diagrams for free. Wiring diagram for power seat on pages 7928-7941.

Video demonstration of power seat functioning.

Demo

 * Presentation Fall 2014

Next Steps

 * 1) Build theory of operation of can bus
 * 2) See if can get some of the old odb devices working with the latest free software.
 * 3) Hook odb port scanner for cars to the arduino can bus and see if it can recognize the CAN bus.
 * 4) Begin searching for and documenting CAN buses at a university.
 * 5) Figure out how one-sided, or fault-tolerant CAN bus operates (theory of operation) .. appears Izuzu ECU might operate this way
 * 6) Look through DARPA information about specifics of transmission speed, header information, interrupts, etc. to see if the language is the same as the CAN Bus connector implies.
 * 7) Find CAN Bus in non-car product can purchase .. CAN Bus in a consumer product that can hack instead of car
 * 8) Develop theory of operation of the CAN bus ... from physical layer, up through the application layer .. for example does an ODB scanner just listen, or does it query?
 * 9) Chase power on the Izuzu ECU .. figure out where 12 volts is attached
 * 10) Figure out what the power switch and the 120 load resistors on the SEEED shield do ... see LED's above
 * 11) Go to after market auto part store, find cheapest CAN bus product can purchase
 * 12) Read through this article summarize to prove how strategic this project is
 * 13) Connect Jetta ECU and Lexus power seat position control module and get it to work together.