1. Join the Community!

    DSMtuners is a massive archive of DSM information - but more importantly, it's a COMMUNITY! Join in and participate with other DSMers, and invite all of your DSM friends to make this place their home. Chat with others, create a build thread, post questions and answers. Get involved! Logging in will also remove many of the advertisements, along with this notice. ;)

HE351ve, how to control the factory actuator

Posted by ILiveForBoost, Feb 3, 2014

Please Support ExtremePSI
Please Support STM Tuned
  1. ILiveForBoost

    ILiveForBoost Proven Member

    10
    6
    Joined Mar 6, 2005
    Bismarck, North Dakota
    Here is the basic info needed to control the HE351ve actuator. I will edit this post later to add more detailed and organized information.

    The CAN protocol used is j1939 at 250kbps. 29bit extended IDs are used.

    The messages used to control the vanes are Proprietary B PGNs so documentation is not available. All that I know was determined by reviewing CAN traffic and experimenting with sending messages.

    There is only one PGN required to control the actuator, PGN 0xFFC6. The actuator expects to see this from an address of 0 so the complete 29 bit CAN ID is 0x18FFC600. With the ID formed, you can ignore every other part of the J1939 protocol and work with pure CAN.

    Only the first three data bytes are required but I have been sending full 8 byte messages with the remaining bytes padded with 0xFF.

    Data Byte 0: Vane position low order bits
    Data Byte 1: Vane position high order bits
    Data Byte 2: Mode
    Data Byte 3: 0xFF
    Data Byte 4: 0xFF
    Data Byte 5: 0xFF
    Data Byte 6: 0xFF
    Data Byte 7: 0xFF

    Sudo code:
    static void sendVaneCmd(uint16_t pos)
    {
    static can_frame_t frame;

    frame.id = 0x18FFC600;
    frame.extID = true;
    frame.dlc = 8;
    frame.data[0] = (uint8_t)pos;
    frame.data[1] = (uint8_t)(pos >> 8);
    frame.data[2] = 1;
    frame.data[3] = 0xFF;
    frame.data[4] = 0xFF;
    frame.data[5] = 0xFF;
    frame.data[6] = 0xFF;
    frame.data[7] = 0xFF;

    can_txFrame(&frame);
    }

    Mode:
    This tells the actuator what to do. A value of '1' tells the actuator to move the vanes to the commanded position.

    Position:
    Vane position ranging from 0 to 1000, 0 being vanes fully open and 1000 being vanes fully closed. Values over 1000 seem to be ignored.

    The message must be sent out frequently or the vanes return to a default position. I am sending command messages at a rate of 1 every 10ms.
     
    Last edited: Feb 3, 2014

    365  0

    1999 Mitsubishi Eclipse GSX
    automatic · 2G DSM
    Loading...
    Dsmkauai, kmetiuk and knochgoon24 like this.
  2. Morphius

    Morphius DSM Wiseman

    1,336
    41
    Joined Jun 9, 2003
    M-Town, Michigan
    Sweet! Good info.
     
  3. Morphius

    Morphius DSM Wiseman

    1,336
    41
    Joined Jun 9, 2003
    M-Town, Michigan
    Lots of reads, but no discussion. Where's all the comments? Would have thought this would drive lots of discussion.
     
  4. kmetiuk

    kmetiuk Proven Member

    361
    120
    Joined Mar 10, 2010
    Edmonton, AB, Canada
    To busy utilizing the info to comment ahahahaha.
     

    Road Race Build 1K  1

    1997 Eagle Talon N/T
    manual · 2G DSM
    Loading...
  5. knochgoon24

    knochgoon24 DSM Wiseman

    4,753
    64
    Joined Jan 29, 2008
    Troy, Michigan
    I was curious if he had any info on how to read the shaft speed, but I'm way to busy to mess with mine right now anyway. I'd love to grab a CAN shield for my Arduino and give it a shot.
     

    2K  1

    1997 Mitsubishi Eclipse Spyder GST
    fwd · manual · 2G DSM

    1K  0

    1991 Eagle Talon N/T
    manual · 1G DSM

    2K  0

    1996 Mitsubishi Eclipse GST
    automatic · 2G DSM

    2K  0

    1997 Eagle Talon TSi AWD
    13.869 @ 95.090 · 2G DSM
    Loading...
  6. TexasTurbo

    TexasTurbo Proven Member

    174
    8
    Joined Jan 19, 2011
    Austin, Texas
    This conversation would be much better suited on dsmecu.com. We talk about code and high level tuning/engine concepts all the time there and get good quick answers from people that know a ton.
     
  7. kmetiuk

    kmetiuk Proven Member

    361
    120
    Joined Mar 10, 2010
    Edmonton, AB, Canada
    What is the difference between these two:
    Data Byte 0: Vane position low order bits
    Data Byte 1: Vane position high order bits

    From examples elsewhere I see that byte 0 seems to be the main positioning variable.

    So what is Data Byte 1's function? Is it always 0 (or rather 0x00)?
     

    Road Race Build 1K  1

    1997 Eagle Talon N/T
    manual · 2G DSM
    Loading...
  8. ILiveForBoost

    ILiveForBoost Proven Member

    10
    6
    Joined Mar 6, 2005
    Bismarck, North Dakota
    The actuator can be commanded to move to 1001 different positions (0 to 1000). Each byte can only represent 256 values (0 to 255). The second byte is used to expand the range of the first byte.

    I will list a few examples.

    Position 1000 = 0x03E8
    Data Byte 0: 0xE8
    Data Byte 1: 0x03

    Position 500 = 0x01F4
    Data Byte 0: 0xF4
    Data Byte 1: 0x01

    Position 100 = 0x0064
    Data Byte 0: 0x64
    Data Byte 1: 0x00

    If you would like more information on this type of data representation, look up endianness on wikipedia. This value is little-endian.
     

    365  0

    1999 Mitsubishi Eclipse GSX
    automatic · 2G DSM
    Loading...
    defi likes this.
  9. kmetiuk

    kmetiuk Proven Member

    361
    120
    Joined Mar 10, 2010
    Edmonton, AB, Canada

    Thanks so much for this. After much learning, I now understand this completely. (not the endianness but hex in general).

    I now have the complete CAN message formed and ready to send to the turbo, but I am still unsure as to what the frame.id should be.

    You have it listed as "frame.id = 0x18FFC600" but elsewhere someone has said it is random...they are using "0x0CFFC600". The "FFC600" is the same in both, but what is the difference between "0x0C" and "0x18"?
     

    Road Race Build 1K  1

    1997 Eagle Talon N/T
    manual · 2G DSM
    Loading...
  10. kmetiuk

    kmetiuk Proven Member

    361
    120
    Joined Mar 10, 2010
    Edmonton, AB, Canada
    I guess my main question is how much does the first term matter as long as the "FFC6600" term is in there?
     

    Road Race Build 1K  1

    1997 Eagle Talon N/T
    manual · 2G DSM
    Loading...
  11. ILiveForBoost

    ILiveForBoost Proven Member

    10
    6
    Joined Mar 6, 2005
    Bismarck, North Dakota
    Both should work fine. Those bits are used to prioritize messages on the CAN bus. 0x18 will have a slightly higher priority than 0x0C.

    Where else are you finding information about this protocol? I was unable to find anything when I was looking about a year ago.
     

    365  0

    1999 Mitsubishi Eclipse GSX
    automatic · 2G DSM
    Loading...
  12. kmetiuk

    kmetiuk Proven Member

    361
    120
    Joined Mar 10, 2010
    Edmonton, AB, Canada
    I found it over on the cummins forum.

    http://www.cumminsforum.com/forum/94-98-performance-parts-discussion/1072194-he351ve-control-2.html

    I have most of the coding done for the basic CAN control uploaded/working and I actually got the vanes to move!!!

    WOOOO!!!

    After 2 days of wiring, coding, and learning (thanks ILiveForBoost).....I got it moving by turning a knob.

    Now I just need to add an LCD, Joystick, add some mapping for TPS/RPM input and add some menu's for dialing in the mapping on the dyno.


    SOOOO STOKED!!! Thank you so much ILiveForBoost!
     

    Road Race Build 1K  1

    1997 Eagle Talon N/T
    manual · 2G DSM
    Loading...
  13. kmetiuk

    kmetiuk Proven Member

    361
    120
    Joined Mar 10, 2010
    Edmonton, AB, Canada
    After playing around I have found the following:
    - values above ~960 tend to cause the turbo to cycle from open to closed.
    - values below ~140 tend to cause the turbo to start its initial cycling. It cycles from about ~5% closed to fully open. The initial cycling seems to be for it to find out where it is. ie: zero position
    - starting serial monitor (I'm using an Arduino) AFTER the initial CAN channel has been started seems to reset the system and cause the turbo to cycle again.

    I'm not sure if the limits of 140-960 are related to the Arduino or to the Turbo. That being said 967 is basically slammed shut and 140 is past open. By past open I mean if you measure the height of VGT mechanism relative to the exhaust housing you will find that the the VGT needs to be slightly shut in order to make the entrance flush. Its hard to explain, but I modeled everything in CAD and you can see that it needs to be slightly closed to make it flush.
     
    Last edited: Jun 22, 2014

    Road Race Build 1K  1

    1997 Eagle Talon N/T
    manual · 2G DSM
    Loading...
  14. kmetiuk

    kmetiuk Proven Member

    361
    120
    Joined Mar 10, 2010
    Edmonton, AB, Canada
    Something I cannot seem to figure out is why when I quickly move the knob back and forth (aggressively) it seems to reset the power in the turbo (I think) as it does its initial cycling again.

    Now that I have observed it a bit more I think its the power source I am using. I think its drawing to much current and causing it to reset. I just noticed (barely) the power LED on the micro controller flicker and then the cycling started.

    Its funny cause its a 2A 12V supply....thought that would be enough.
     

    Road Race Build 1K  1

    1997 Eagle Talon N/T
    manual · 2G DSM
    Loading...
  15. hakcenter

    hakcenter Proven Member

    39
    28
    Joined Jun 9, 2004
    Riverside, California
    HE351VE certainly controllable through Arduino. Wouldn't you imagine under 140 would help clean out the veins ?

    I also found a mode that seems to cycle the motor from completely open, to closed, and then it shuts off. ie: Needs to be re-powered.

    Here's a video though of what my controller looks like so far.


    Anyways, mine is going on my 12 valve cummins. So engine brake is like, the first thing I wanted. :)
     
    CrackedDSM and Kapok6 like this.
  16. Morphius

    Morphius DSM Wiseman

    1,336
    41
    Joined Jun 9, 2003
    M-Town, Michigan
    ^^Nice job guys!

    This winter, I think I'm going to get started with setting up one of these.
     
  17. kmetiuk

    kmetiuk Proven Member

    361
    120
    Joined Mar 10, 2010
    Edmonton, AB, Canada
    Very cool man!

    Its almost the exact setup that I had for testing.

    I actually just finished installing my FINAL controller on my 2G DSM for testing about an hour ago.

    So as not to thread jack, I'll start my own thread here right away to show a video of all the features and also the turbo with controller installed in my car with it being actuated by "regular" driving conditions.

    Cheers.
     

    Road Race Build 1K  1

    1997 Eagle Talon N/T
    manual · 2G DSM
    Loading...
  18. Kapok6

    Kapok6 Proven Member

    1,229
    254
    Joined Aug 10, 2004
    Fort Worth, Texas

    Curtis, don't go making me switch my turbo up to a 351ve...
     
    Kapok6

    Street Build 2K  0

    1991 Mitsubishi Eclipse GSX
    11.3 @ 130.75 · 1G DSM
    Loading...
  19. TexasTurbo

    TexasTurbo Proven Member

    174
    8
    Joined Jan 19, 2011
    Austin, Texas
    What would you be referencing to determine which vein position to send? I would think that you'd want to know things like manifold back pressure and shaft speed, along with engine rpm, tps, current boost pressure, etc. There seems to be like a lot of things that need to be known by the OEM system to control the turbo properly. Boost pressure alone won't make this efficient. What happens when you have a wastegate on this system such as required when running a lot more than stock power levels this turbo was designed for on a diesel engine?
     
  20. hakcenter

    hakcenter Proven Member

    39
    28
    Joined Jun 9, 2004
    Riverside, California
    Depends on your description of the word proper.

    If you want max power potential, all you need is boost reference. And then scale the vein position as boost rises.
    If you want a little safety, you reference the VR sensor in the housing, which my controller can do. All the other aspects of the turbo are not absolutely essential to mapping out vein position realistically.

    Beings how I'm building my controller off the arduino platform (ATmega328 processor) there becomes a ton of freedom. I'm specifically designing my controller with 3 modes, exhaust brake, cruise mode, and performance mode. All based on a I/O ground reference.

    So take that another step further say on the DSM platform, there are 3 controllable grounds that come to mind immediately, the fuel pressure solenoid, purge solenoid and egr solenoid. With Jackal, Werewolf and Link you can control these pins however you want essentially.

    So there wouldn't be necessary ADC requirement for TPS. Since you would just program the ecu to trigger whatever you want based on your scope. Say VSS > 20, TPS < 25 = cruise mode, or say TPS > 70 = performance mode, how about studder box with exhaust brake on for maximum launch boost ? Or any other combination, how cool is that ?

    I have read over numerous places, that shaft speed of 110-120k is most efficient for this compressor, so I don't see a reason to reference back pressure, not that anyone I know even cares about back pressure when they are hauling ass every where. BP realistically comes down to the MPG guys, but with my controller I imagine cruise would be used at all possible times so again.. why care.. at least for the controller ?

    Secondly a wastegate is not needed, how do you think stock oem controls the boost ? Vein position based on boost pressure.

    You can follow me and my development on my site @ http://forums.ds-map.net/development/he351ve-controller/
    Currently I am designing a box to house the controller in. I'm on the base at the moment, so I'll probably have that printed first to see if the dimensions work.
     
    Last edited: Nov 27, 2014
    Kapok6 and CrackedDSM like this.
  21. CrackedDSM

    CrackedDSM Proven Member

    802
    288
    Joined Dec 17, 2009
    Oak Ridge, North Carolina
    Definitely tempting me to go with an HE351VE. Would go quite nicely with the 2.4. Great work Hak!
     

    Street Build 4K  0

    1995 Eagle Talon TSi AWD
    automatic · 2G DSM
    Loading...
    Kapok6 likes this.
  22. TexasTurbo

    TexasTurbo Proven Member

    174
    8
    Joined Jan 19, 2011
    Austin, Texas
    It was my understanding that the gasoline motor at higher boost levels will push enough exhaust to warrant a wastegate on these turbos. The OEM configuration doesn't need this because the boost being run on the turbo doesn't go up as high as a DSM guy will want it.

    I guess the next thing after controlling it properly would be what kind of upgraded wheels can be used on this. I seem to remember that the max HP output of this turbo wasn't a whole lot.

    Neat project, nonetheless.... controlling this turbo is cool. There are window switches in Swede Density as well so the options are not only limited to the tuning solutions named above. Really with a standalone controller all the stuff can be monitored/controlled with one ecu output as long as the ecu code is sane enough to know what signal to send to the turbo.
     
    airmail96 likes this.
  23. Kapok6

    Kapok6 Proven Member

    1,229
    254
    Joined Aug 10, 2004
    Fort Worth, Texas
    Kapok6

    Street Build 2K  0

    1991 Mitsubishi Eclipse GSX
    11.3 @ 130.75 · 1G DSM
    Loading...
  24. hakcenter

    hakcenter Proven Member

    39
    28
    Joined Jun 9, 2004
    Riverside, California
    At maximum opening the HE351VE should be at around 27cm, which is why it can basically be its own wastegate.

    Name me some other 60lbs/min turbo with a 27cm opening ? Or post a link to the requirement otherwise stop with the FUD.
     
  25. CrackedDSM

    CrackedDSM Proven Member

    802
    288
    Joined Dec 17, 2009
    Oak Ridge, North Carolina
    If you can trap 130 on low 500's Ryan, I'm sure this turbo will make plenty of power when someone made 650whp on it but couldn't even break out of the 11's. :sneaky::cool:
     

    Street Build 4K  0

    1995 Eagle Talon TSi AWD
    automatic · 2G DSM
    Loading...

Share This Page

Support Vendors who Support the DSM Community
Archer Fabrication ECM Tuning ExtremePSI Feal Suspension Fuel Injector Clinic Jacks Transmissions JNZ Tuning Kiggly Racing Morrison Fabrications OHM Racing RockAuto SouthBay Fuel Injectors STM Tuned Track Decals Track Sculptures VR Speed Factory WheelWell.com