Code Monkey home page Code Monkey logo

7226ctrl's Introduction

7226ctrl

"controller for 722.6 automatic transmission"

In a nutshell this was supposed to be reverse engineered transmission controller for 722.6 gearboxes found in many mercedes and chrysler vehicles, design is similar with more recent (7gtronic++) gear boxes, so in theory this could be applied with gentle care to work with those as well.

As with most things of life, this got bit out of hand and currently also controls boost, speedometer, rpm meter, fuelpumps and even horn, its also able to communicate with electrical steering wheel for menus and manual button shifts. Canbus interface is also supported on pcb but I have not yet utilized in any meaningful fashion.

First revision of working pcb (rev H) is done:

http://www.mui.fi/pcb-valmis.jpg

Fourth (rev K) just finished also and seems to pass testing;

http://www.mui.fi/smd-revk.jpg

and gerber files are available under pcb/ with boms.

Assembly instructions are not included, but I would be happy if someone would wish to write those.

  • Not yet fully functional
  • Use at your own risk!

Currently should work:

  • Automatic downshift / upshift based on vehicle speed and throttle position (tested and works)
  • Manual shifting (tested and works)
  • Throttle position sensor (tested and works)
  • Pressure maps for shifts and modulation pressure based on oil temperature and load, even when P/N/R (tested and works)
  • W202 gearstick can be read (tested and works)
  • SPI OLED for data output (tested and works)
  • Boost sensor reading
  • Boost limit maps (tested and works)
  • Staged boost limiting (eg. drop boost on pre-shift, then continue shift etc.) (tested and works)
  • w124 wire-speedometer (tested and works)
  • Fuel pump control on idle (tested and works)
  • vehicle speed reading based on tire size and diff ratio with and without engine rpm (tested and works)
  • rpm reading (tested and works)
  • Electric steering wheel support (manual shifts, menu control)
  • oil temperature (tested and works)
  • n2/n3 speed sensors (tested and works)
  • evaluateGear, make sure which gear is in (tested and works)
  • Torque converter lock based on default scenario (100% lock when on 5th gear, >80km/h and low load conditions)
  • percentual map reads preferably without floats (eg. value between point x and y).
  • External datalogging (format, method)
  • Exhaust pressure sensor
  • Pressure ratio calculation (intake vs exhaust)
  • adaptative shift pressure (transloppy/maps)

Implemented but needs real life testing:

  • w124 rpm meter (works in theory)

Work in progress:

  • External datalogging (hardware implementation, visualization)

Currently datalogged (custom intervals, default is once per second):

  • vehicle speed
  • RPM
  • Throttle position
  • Coolant/Oil temperature
  • ATF temperature
  • Calculated load (engine rpm+throttle position+boost)
  • Intake pressure
  • Exhaust pressure
  • Pressure difference
  • Current boostlimit
  • N2 & N3 transmission rpm sensors
  • Evaluated gear (based on ratio calculation with abs-sensor and n2/n3 sensors)
  • Current real gear ratio
  • Current slippage
  • Battery voltage

External datalogging is going to provide GPS location data and 3-axis acceleration data.

work by Markus Kovero ([email protected]) with regards and big thanks to:

  • Tuomas Kantola for maps and related math
  • Tommi Otsavaara for guiding in electronics
  • Mikko Kovero and Pete for mechanical side of things
  • Jami Karvanen for datalogging and frontend stuff
  • Liia Ahola for pcb tracing
  • Joosep Vahar for testing
  • Toni Lassila and Jan Blonski for ideas
  • Krzysztof Dymianiuk for enclosure solution and PCB design

Schematics are for teensy, can be utilized with mega as well to some extent, tho mega support is going to be deprecated due obvious performance reasons.

There are four revisions of PCBs complete, tested and working "Rev H", "Rev I" and "Rev K".

7226ctrl's People

Contributors

jmtsi avatar mkovero avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

7226ctrl's Issues

Possible collaberation on updated controller for 2001-2011 Mercs

Hi.

As you know, I posted all the 722.6 CAN messages to another issue on here. I would like to ask if you are up for collaborating on a more modern drop in replacement TCU for the 203-204 series vehicles (Basically anything with a 722.6 from 2001 to 2011).

I had some ideas on how to update your codebase for CAN compatibility, but it will also require PCB modifications to allow for CAN C Tx/Rx support.

I also wish to add adaptive learning based on a simple neural network that can run on the Teensy 4 board, and allow it to be trained in pure manual mode (M), the apply the learned values in both Sport, Comfort, or Agility mode (A is supported on all 722.6 transmissions, but it was only implemented on the 204 chassis). Due to it being on CANBUS, its possible to take into consideration a lot more sensors on the car before determining if it should shift. Just some of whats avaliable on CANBUS below:

  1. Individual wheel RPM (all 4)
  2. Steering wheel angle (Driver input)
  3. Steering wheel angle (Wheel output)
  4. Boost pressure
    5 .Engine torque production (Nm)
  5. ESP / ABS actuation values

In regards to determining shift pressure. I can make that user configurable in each mode (S/C/A), in fact i plan to enable configuration over CANBUS for my Headunit project, allowing me to adjust shift parameters from a touch screen within the car.

I've also updated the CAN messages below with data extracted from my MercedesUI project (Custom infotainment system for older mercs)...This contains additional parsed values for enum based data:
7226_can.txt

Pins for Arduino mega?

Hi all! Anyone try it on Arduino mega? I thought I make a full smd board with atmega2560. Anyone have pins.h for arduino mega? And how well it is run on mega or i need teensy?

Schematic update for Rev K

The schematic needs to be updated to to reflect the rev K board. The BOM is different for this revision and does not match the schematic.

Display pin out

I’m trying to use a 7 pin SPI OLED. Could somebody please clarify the pin function for ‘DISPLAY 1’ to ‘DISPLAY 5’? Clk, MOSI, DC etc.

I’ve looked at the U8G2 stuff but fear I’m just going round and round in circles. Should the display boot as soon as power is applied to the board.

I’m a relative noob when it comes to the code.

Thank you in advance.

test modularity

  • test how well controller works when different parts are disabled in config.cpp
  • remove unnecessary modularity

jssc need change to 2.9.4 under windows 10

jssc need change to 2.9.4 under windows 10
jssc 2.9.4 Under win10 work fine
Снимок

On lib/jssc-2.8.0-arduino4.jar open port

Problematic frame:

C [jSSC-2.8_x86_64.dll+0xb5db]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j jssc.SerialNativeInterface.openPort(Ljava/lang/String;Z)J+0
j jssc.SerialPort.openPort()Z+65
j util.Serial.init(Ljava/lang/String;IIIC)V+95
j util.Serial.(Ljava/lang/String;I)V+26

vehicleSpeed safety checks

  • compare speed differences in RPM-vehicleSpeed and or differential sensor-vehicleSpeed to determine whether vehicleSpeed is accurate.
  • if not, or no speed data available, disable automatic shifting.

Create hardware test-mode

Idea is to create simple test mode for controller to see if wiring is alright.

  • test sensors / solenoids / actuators (test that tps is in range, if not, calibrate it etc.)
  • display test / align (support for different displays people might have)

ALL 722.6 TCU CAN MESSAGES

I found these ID's from a python script I wrote to decompile data found in Xentry:
https://github.com/rnd-ash/W203-canbus/blob/master/DAT_TRANSLATOR/parse_dat.py

These ID's are broadcast on CANBUS C - The ECU name is just the name of the message in Xentry, but they all come from the GS controller (AKA TCU) - Original text was in German so most of it has been translated :)

The offset and len in the messages are viewed from a big endian position within the can frame, where 0 is byte 0 and 64 is the 8th bit in the 8th byte

ECU NAME: GS_218h, ID: 0x0218. MSG COUNT: 31
MSG NAME: MTGL_EGS - Motormomentenanf. Toggle 40ms +-10, OFFSET 0, LENGTH 1
MSG NAME: MMIN_EGS - Engine torque requirment Min, OFFSET 1, LENGTH 1
MSG NAME: MMAX_EGS - Engine torque requirment Max, OFFSET 2, LENGTH 1
MSG NAME: M_EGS - Current engine torque, OFFSET 3, LENGTH 13
MSG NAME: GZC - Target gear, OFFSET 16, LENGTH 4
MSG NAME: GIC -Current gear, OFFSET 20, LENGTH 4
MSG NAME: K_S_B - torque converter slipping, OFFSET 24, LENGTH 1
MSG NAME: K_O_B - torque converter open, OFFSET 25, LENGTH 1
MSG NAME: K_G_B - torque converter closed, OFFSET 26, LENGTH 1
MSG NAME: G_G - off road gear, OFFSET 27, LENGTH 1
MSG NAME: GSP_OK - gear shift program o.k., OFFSET 28, LENGTH 1
MSG NAME: FW_HOCH - Driving resistance too high, OFFSET 29, LENGTH 1
MSG NAME: SCHALT - Schaltung, OFFSET 30, LENGTH 1
MSG NAME: HSM - Manual shift mode active, OFFSET 31, LENGTH 1
MSG NAME: GET_OK - Transmission ok, OFFSET 32, LENGTH 1
MSG NAME: KS - Knallstart, OFFSET 33, LENGTH 1
MSG NAME: ALF - start enabled, OFFSET 34, LENGTH 1
MSG NAME: GS_NOTL - Gearbox in limp home mode, OFFSET 35, LENGTH 1
MSG NAME: UEHITZ_GET - Gearbox overheating, OFFSET 36, LENGTH 1
MSG NAME: KD - Kickdown, OFFSET 37, LENGTH 1
MSG NAME: FPC_AAD - Driving program for AAD, OFFSET 38, LENGTH 2
MSG NAME: MPAR_EGS - Motor torque request parity (even parity) OFFSET 40, LENGTH 1
MSG NAME: DYN1_EGS - Engagement mode / drive torque control, OFFSET 41, LENGTH 1
MSG NAME: DYN0_AMR_EGS - Engagement mode / drive torque control OFFSET 42, LENGTH 1
MSG NAME: K_LSTFR - Torque converter lockup free of load, OFFSET 45, LENGTH 1
MSG NAME: MOT_NAUS_CNF - Confirm bit OFFSET 46, LENGTH 1
MSG NAME: MOT_NAUS - Engine emergency stop, OFFSET 47, LENGTH 1
MSG NAME: MKRIECH - creep torque (FF for EGS + CVT), OFFSET 48, LENGTH 8
MSG NAME: FEHLPRF_ST - Status error check, OFFSET 56, LENGTH 2
MSG NAME: CALID_CVN_AKT - CALID/CVN transmission active OFFSET 58, LENGTH 1
MSG NAME: FEHLER - Error number counter, OFFSET 59, LENGTH 5

ECU NAME: GS_338h, ID: 0x0338. MSG COUNT: 2
MSG NAME: NAB - Gearbox output speed (only 463/461, otherwise FFFF), OFFSET 0, LENGTH 16
MSG NAME: NTURBINE - Turbine speed (NAG1/NAG2 only), OFFSET 48, LENGTH 16

ECU NAME: GS_418h, ID: 0x0418. MSG COUNT: 17
MSG NAME: FSC - Driving position, OFFSET 0, LENGTH 8
MSG NAME: FPC - Driving program, OFFSET 8, LENGTH 8
MSG NAME: T_GET - Gearbox oil tempurature, OFFSET 16, LENGTH 8
MSG NAME: ALLRAD - All wheel drive?, OFFSET 24, LENGTH 1
MSG NAME: FRONT - Front wheel drive [1], Rear wheel drive [0], OFFSET 25, LENGTH 1
MSG NAME: SCHALT - Schaltung, OFFSET 26, LENGTH 1
MSG NAME: CVT - Stepless gears[1], Stepped gear [0], OFFSET 27, LENGTH 1
MSG NAME: MECH - Gear mechanism varient, OFFSET 28, LENGTH 2
MSG NAME: ESV_BRE - Apply brake when switched on, OFFSET 30, LENGTH 1
MSG NAME: KD - Kickdown, OFFSET 31, LENGTH 1
MSG NAME: GZC - Target gear, OFFSET 32, LENGTH 4
MSG NAME: GIC - Actual gear, OFFSET 36, LENGTH 4
MSG NAME: M_VERL - Torque loss, OFFSET 40, LENGTH 8
MSG NAME: FMRADPAR - wheel torque (even parity), OFFSET 48, LENGTH 1
MSG NAME: FMRADTGL - Factor wheel torque toggle 40ms + -10, OFFSET 49, LENGTH 1
MSG NAME: WHST - Gear selector lever posititon (NAG, KSG, CVT), OFFSET 50, LENGTH 3
MSG NAME: FMRAD - Wheel torque factor (FF for KSG), OFFSET 53, LENGTH 11

Current gear always resets to first

We've built one of these controllers (rev.K) and installed it in a '98 E300TD with the old-style shifter. It seems to be somewhat functioning, however we are facing an issue where if you shift say from 1st gear through 4th in manual-mode, let it sit for a while and then try to shift, suddenly the controller thinks it is in 1st gear all of a sudden. Got any pointers on what could be wrong here, some sensor input or? Surely something has to be ways off?

Libraries

Hi,can you upload your necessary library folder for that code? I have problem with compiling with last version of Arduino IDE.

SMD Rev K assembled board photos

Could somebody please share close up photos of assembled rev k board.
Finished mine yesterday, only half powered up, I have a dead short somewhere although I currently can’t find it. Would like to check component polarity against a working board before I decide it’s the PCB. Thanks!

compilation error

Arduino:1.8.16 (Mac OS X), TD: 1.55, Płytka:"Teensy 3.5, Serial, 120 MHz, Faster, US English"

/private/var/folders/zj/vq9z9vvx4r7fwmdkt_43ng6w0000gn/T/AppTranslocation/675F2C8C-30CE-4822-B6C4-8DD2C2BAAA7E/d/Teensyduino.app/Contents/Java/hardware/teensy/avr/libraries/TeensyThreads/TeensyThreads.cpp:29:25: fatal error: utils/debug.h: No such file or directory
compilation terminated.
Błąd kompilacji dla płytki Teensy 3.5.

All libraries installed:

Użycie biblioteki SoftTimer w wersji 3.1.3 z folderu: /Users/michalgrabinski/Documents/Arduino/libraries/SoftTimer
Użycie biblioteki EEPROM w wersji 2.0 z folderu: /private/var/folders/zj/vq9z9vvx4r7fwmdkt_43ng6w0000gn/T/AppTranslocation/675F2C8C-30CE-4822-B6C4-8DD2C2BAAA7E/d/Teensyduino.app/Contents/Java/hardware/teensy/avr/libraries/EEPROM
Użycie biblioteki SPI w wersji 1.0 z folderu: /private/var/folders/zj/vq9z9vvx4r7fwmdkt_43ng6w0000gn/T/AppTranslocation/675F2C8C-30CE-4822-B6C4-8DD2C2BAAA7E/d/Teensyduino.app/Contents/Java/hardware/teensy/avr/libraries/SPI
Użycie biblioteki U8g2 w wersji 2.31.2 z folderu: /Users/michalgrabinski/Documents/Arduino/libraries/U8g2
Użycie biblioteki AutoPID w wersji 1.0.3 z folderu: /Users/michalgrabinski/Documents/Arduino/libraries/AutoPID
Użycie biblioteki IFCT-master z folderu /Users/michalgrabinski/Documents/Arduino/libraries/IFCT-master (legacy)
Użycie biblioteki Adafruit_MAX31855_library w wersji 1.3.0 z folderu: /Users/michalgrabinski/Documents/Arduino/libraries/Adafruit_MAX31855_library
Użycie biblioteki Adafruit_BusIO w wersji 1.9.3 z folderu: /Users/michalgrabinski/Documents/Arduino/libraries/Adafruit_BusIO
Użycie biblioteki Filters-master z folderu /Users/michalgrabinski/Documents/Arduino/libraries/Filters-master (legacy)
Użycie biblioteki PciManager w wersji 2.1.4 z folderu: /Users/michalgrabinski/Documents/Arduino/libraries/PciManager
Użycie biblioteki Wire w wersji 1.0 z folderu: /private/var/folders/zj/vq9z9vvx4r7fwmdkt_43ng6w0000gn/T/AppTranslocation/675F2C8C-30CE-4822-B6C4-8DD2C2BAAA7E/d/Teensyduino.app/Contents/Java/hardware/teensy/avr/libraries/Wire
Użycie biblioteki TeensyThreads w wersji 1.0.1 z folderu: /private/var/folders/zj/vq9z9vvx4r7fwmdkt_43ng6w0000gn/T/AppTranslocation/675F2C8C-30CE-4822-B6C4-8DD2C2BAAA7E/d/Teensyduino.app/Contents/Java/hardware/teensy/avr/libraries/TeensyThreads

Discord Chat

I am interested in building one of these. I am hardly a coder, I can definitely assemble a PCB and flash microcontrollers. I read that you are looking for someone to write instructions. I think this is something I could do well. Is there a group chat where we can communicate more quickly? I often use Discord for things like this, but would readily adopt another platform.

One of my interests for my 1995 E300D (aside from ditching the 722.4) is implementing a VGT boost controller using a vacuum controlled VGT from the OM648. I do wonder if this controller could operate a purge flow solenoid to modulate the vacuum signal to the VGT actuator.

Read gear number from CAN.

Hello Markus,

May I ask You, if You know how to read the gear number, lock-up state and gearbox oil temperature from the CAN (preferably through OBDII)?
I am using Jeep WG with this gearbox for around 3 years now, and since beginning I have idea to prepare Arduino based indicator of these values.
I was trying unsuccessfully to sniff messages and analyze them, and when i lost my hope, there appeared new version of JeepDiagPro, that was showing these values.
I know from Krzysztof Dymaniuk, that it wasn't so far in the scope of Your engineering, but perhaps as You already have all needed facilities it would be easier for You to investigate it?
I'd really appreciate if You can share anything substantial, as this fight with obsession i feel i am loosing slowly... :-)

Schematic - transistors

Hi
I have few remark.
IRF540 need Vgs = ~10V to full open
to drive transistor direct from arduino pin you have to use Logic Level mosfet eg. IRFZ44N or use mosfet driver TC4427.
You have to protect transistors by diodes,
swap on schematic drain pin with source pin because now is incorrect.

best regards

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.