<?xml version="1.0"?>
<rss version="2.0"><channel><title><![CDATA[Dodge Cummins Articles: 3rd Generation Engine - Air & Exhaust]]></title><link>https://mopar1973man.com/cummins/articles.html/3rd-generation/engine/air-exhaust/?d=4</link><description><![CDATA[Dodge Cummins Articles: 3rd Generation Engine - Air & Exhaust]]></description><language>en</language><item><title>Calibrate Holset HE351ve He300VE with Arduino Controller</title><link>https://mopar1973man.com/cummins/articles.html/3rd-generation/engine/air-exhaust/calibrate-holset-he351ve-he300ve-with-arduino-controller-r530/</link><description><![CDATA[<p>
	This article will show you how to calibrate a HE351VE turbo using a cheap arduino board and a Canbus shield
</p>

<p>
	<br>
	PLEASE NOTE****  This is not a magic pill for fixing issues with the turbo actuator.  If the actuator is bad then it will still need to be replaced.  We get a lof of questions similar to "hey I ran this and the turbo still doesn't work"    This will not fix an actuator, only calibrate a good actuator to the physical limits of the turbo vanes.<br>
	 
</p>

<p>
	Parts
</p>

<p>
	arduino uno $15-$30
</p>

<p>
	Arduino Uno Canbus Shield $25
</p>

<p>
	Plugs ~$5
</p>

<p>
	Wires ~ $5
</p>

<p>
	 
</p>

<p>
	<span style="font-size:20px;"><u><strong>Code</strong></u></span>
</p>

<p>
	<a class="ipsAttachLink" data-fileid="13376" href="https://mopar1973man.com/applications/core/interface/file/attachment.php?id=13376" rel="">turboreset.ino</a>
</p>

<p>
	 
</p>

<p>
	Canbus Library
</p>

<p>
	<a class="ipsAttachLink" data-fileid="13380" href="https://mopar1973man.com/applications/core/interface/file/attachment.php?id=13380" rel="">CANLibrarymaster.zip</a>
</p>

<p>
	This code will simple send the calibrate command to the turbo after 5 seconds of having power applied to the unit.
</p>

<pre class="ipsCode prettyprint lang-c prettyprinted" id="ips_uid_1198_20" style="">
<span class="com">#include</span><span class="pln"> </span><span class="str">&lt;SPI.h&gt;</span><span class="pln">
</span><span class="com">#include</span><span class="pln"> </span><span class="str">&lt;can.h&gt;</span><span class="pln">
</span><span class="com">#include</span><span class="pln"> </span><span class="str">&lt;Wire.h&gt;</span><span class="pln">  

</span><span class="com">#define</span><span class="pln"> mode NORMAL </span><span class="com">// define CAN mode</span><span class="pln">
</span><span class="com">#define</span><span class="pln"> bitrate </span><span class="lit">250</span><span class="pln"> </span><span class="com">// define CAN speed (bitrate)</span><span class="pln">
MCP CAN1 </span><span class="pun">(</span><span class="lit">10</span><span class="pun">);</span><span class="pln">  </span><span class="com">//****This might be any pin 9 / 10 / 11  depending on the cnabus shield.  Adjust to fit your needs</span><span class="pln">


</span><span class="kwd">unsigned</span><span class="pln"> </span><span class="typ">int</span><span class="pln"> final_vane_position</span><span class="pun">;</span><span class="pln">
</span><span class="kwd">void</span><span class="pln"> setup</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
  </span><span class="com">// put your setup code here, to run once:</span><span class="pln">
 </span><span class="com">// Initialize Serial communications with computer to use serial monitor</span><span class="pln">
  </span><span class="typ">Serial</span><span class="pun">.</span><span class="pln">begin</span><span class="pun">(</span><span class="lit">115200</span><span class="pun">);</span><span class="pln">
  </span><span class="com">// Set CAN mode and speed</span><span class="pln">
  CAN1</span><span class="pun">.</span><span class="pln">begin</span><span class="pun">(</span><span class="pln">NORMAL</span><span class="pun">,</span><span class="pln"> bitrate</span><span class="pun">);</span><span class="pln">
  delay</span><span class="pun">(</span><span class="lit">5000</span><span class="pun">);</span><span class="pln">  </span><span class="com">//wait for 5 seconds</span><span class="pln">
 
</span><span class="pun">}</span><span class="pln">

</span><span class="kwd">void</span><span class="pln"> loop</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln">
  </span><span class="com">// put your main code here, to run repeatedly:</span><span class="pln">
  final_vane_position </span><span class="pun">=</span><span class="pln"> </span><span class="lit">500</span><span class="pun">;</span><span class="pln">
  byte lo_byte </span><span class="pun">=</span><span class="pln"> lowByte</span><span class="pun">(</span><span class="pln">final_vane_position</span><span class="pun">);</span><span class="pln">
  byte hi_byte </span><span class="pun">=</span><span class="pln"> highByte</span><span class="pun">(</span><span class="pln">final_vane_position</span><span class="pun">);</span><span class="pln">
  byte data</span><span class="pun">[]</span><span class="pln"> </span><span class="pun">=</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> lo_byte</span><span class="pun">,</span><span class="pln"> hi_byte</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0x02</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0xFF</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0xFF</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0xFF</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0xFF</span><span class="pun">,</span><span class="pln"> </span><span class="lit">0xFF</span><span class="pln"> </span><span class="pun">};</span><span class="pln"> </span><span class="com">// data message with an added counter</span><span class="pln">
  </span><span class="com">// data[2] = 0x02 for recalibrating gearbox</span><span class="pln">
  </span><span class="com">// Load message and send</span><span class="pln">
  CAN1</span><span class="pun">.</span><span class="pln">send</span><span class="pun">(</span><span class="lit">0x0CFFC600</span><span class="pun">,</span><span class="pln"> extID</span><span class="pun">,</span><span class="pln"> </span><span class="lit">8</span><span class="pun">,</span><span class="pln"> data</span><span class="pun">);</span><span class="pln">

</span><span class="pun">}</span></pre>

<p>
	 
</p>

<p>
	 
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	<span data-mce-style="text-decoration: underline;"><strong><span data-mce-style="font-size: 18pt;" style="font-size:18pt">How to Connect everything</span></strong></span>
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	 
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	I will go into some detail here. 
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	First basics of the arduino uno and cabus_ shield.
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	Arduino boards allow you to "stack" shields onto it via the pins on the outside edge of the board.  Each Pin on the arduino and shield correlate to the Pins the code below.  You can think of the Arduino as a Small computer and the Shield as a device to perform another specific task, like WIFI or Audio or in this Case Communicate on a Canbus Network.  Stacking the shield onto the Arduino allows the arduino to talk in Canbus.
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	 
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	First is the Arduino Uno                                                            Next is the Can bus Shield that you stack on top
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	<a data-fileid="8291" data-ipslightbox="" data-ipslightbox-group="g5270" href="https://mopar1973man.com/storage/attachments/monthly_2016_01/Uno_Pinout.jpg.9031f719e6e30c49827ae817b0d05155.jpg" rel="" style="background-color:transparent; color:#234680" title="Enlarge image"><img alt="Uno_Pinout.jpg" data-fileid="8291" data-unique="slg5zb3ao" src="https://mopar1973man.com/storage/attachments/monthly_2016_01/Uno_Pinout.jpg.9031f719e6e30c49827ae817b0d05155.jpg" style="border:1px solid #e2e2e2; padding:1px; vertical-align:middle" data-ratio="63.49" loading="lazy"></a>                <a data-fileid="8292" data-ipslightbox="" data-ipslightbox-group="g5270" href="https://mopar1973man.com/storage/attachments/monthly_2016_01/Canbus_shield.jpg.ce80ae7abe8f662a9a32e438f09ef54d.jpg" rel="" style="background-color:transparent; color:#234680" title="Enlarge image"><img alt="Canbus_shield.jpg" data-fileid="8292" data-unique="x79adcwz2" src="https://mopar1973man.com/storage/attachments/monthly_2016_01/Canbus_shield.jpg.ce80ae7abe8f662a9a32e438f09ef54d.jpg" style="border:1px solid #e2e2e2; padding:1px; vertical-align:middle" data-ratio="75" loading="lazy"></a>
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	 
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	 
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	Together they should look like this.  notice how they are connected, stacked on top of each other with the pins from the shield extending into the Arduino board.
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	<a data-fileid="8293" data-ipslightbox="" data-ipslightbox-group="g5270" href="https://mopar1973man.com/storage/attachments/monthly_2016_01/Uno_shield_stack.jpg.cf5f7e97201ea30b51a5d39f0378f935.jpg" rel="" style="background-color:transparent; color:#234680" title="Enlarge image"><img alt="Uno_shield_stack.jpg" data-fileid="8293" data-unique="pn9kjpkls" src="https://mopar1973man.com/storage/attachments/monthly_2016_01/Uno_shield_stack.jpg.cf5f7e97201ea30b51a5d39f0378f935.jpg" style="border:1px solid #e2e2e2; padding:1px; vertical-align:middle" data-ratio="79" loading="lazy"></a>
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	 
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	 
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	Each Shield will use some pins so your code must take that into consideration.  Just as an example the can bus shield might use pin 10 and 11 ( I dont remember off the top of my head) so in your code you can't address those pins outside of the canbus shield use.
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	 
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	 
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	<span style="font-size:20px;"><u><strong>Wire up the turbo</strong></u></span>
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	 
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	Early Holset HE351ve's have a different wiring than late Holset HE351ve turbos
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	 
</p>

<p data-mce-style="margin-bottom: 0px; padding: 0px; color: #282828; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 22.3999996185303px;" style="background-color:#ffffff; color:#282828; font-size:14px; padding:0px; text-align:start">
	Easy way to tell the difference is to look at the actuator, if it has a wiring pigtail coming out of it it is a early 351ve if the connector is built into the actuator it is a late he351 or a he300 ve, which is the same size as the he351ve.
</p>

<p>
	 
</p>

<p>
	Early Holset He351ve Wiring
</p>

<p>
	<img alt="Chrysler schematic 6.7 actuator.jpg" class="ipsImage ipsImage_thumbnailed" data-fileid="13377" data-unique="1xvyz3vlh" src="https://mopar1973man.com/storage/attachments/monthly_2017_08/59a6176545e04_Chryslerschematic6.7actuator.jpg.6fb4abd009edf95213f7b795f528a184.jpg" data-ratio="75" loading="lazy">
</p>

<p>
	 
</p>

<p>
	Late He351Ve / He300ve Wiring
</p>

<p>
	 
</p>

<p>
	Still looking, but hte other pins are 12v / Grnd and the inner are can high and can low.  You can use a multimeter to figure out which is which.
</p>

<p>
	 
</p>

<p>
	Connectors PN's can be found over at Lilbb.com 
</p>

<p>
	<a href="http://wiki.lilbb.com/holset_vgt#connectors" ipsnoembed="true" rel="external nofollow">http://wiki.lilbb.com/holset_vgt#connectors</a>
</p>

<p>
	 
</p>

<p>
	He is a guru in terms of the turbo and has a GREAT off the shelf type of controller.
</p>

<p>
	<a href="http://www.lilbb.com" rel="external nofollow">www.lilbb.com</a>
</p>

<p>
	 
</p>

<p>
	You want to wire the Power / ground to a fused line to the battery,  Don't try to power though the arduino as the turbo can pull north of 15 amps.
</p>

<p>
	 
</p>

<p>
	Wire your CanHigh / Low to the Arduino shields high / low screw terminals.  
</p>

<p>
	 
</p>

<p>
	<img alt="imageproxy.php?img=&amp;key=4d11e5b7ded08803" class="ipsImage ipsImage_thumbnailed" data-fileid="o_1booejv1h1m4o1ig01p9g1l8l1ljhq" data-unique="c5sa4k43t" src="" loading="lazy"><img alt="IMG_20170829_201018.jpg" class="ipsImage ipsImage_thumbnailed" data-fileid="13379" data-unique="far0t3w6d" src="https://mopar1973man.com/storage/attachments/monthly_2017_08/IMG_20170829_201018.jpg.9b1059189f49c7533e700184334718d5.jpg" data-ratio="108.27" loading="lazy">
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	<span style="font-size:20px;"><u><strong>Upload You The Code</strong></u></span>
</p>

<p>
	 
</p>

<p>
	Url's are provided in Text to step you through the process.
</p>

<p>
	1. <a href="https://www.arduino.cc/en/Main/Software" rel="external nofollow">Download the Arduino program</a>
</p>

<p>
	2. Plug in your Arduino to the computer, <a href="https://www.arduino.cc/en/Guide/ArduinoUno" rel="external nofollow">select the right settings for the uno</a>
</p>

<p>
	3. Double click the <a class="ipsAttachLink" data-fileid="13376" href="https://mopar1973man.com/applications/core/interface/file/attachment.php?id=13376" rel="">turboreset.ino</a> project, which will open the arduino IDE.  
</p>

<p>
	4. <a href="https://www.arduino.cc/en/Guide/Libraries#toc2" rel="external nofollow">Install the canbus library</a>.   <a class="ipsAttachLink" data-fileid="13380" href="https://mopar1973man.com/applications/core/interface/file/attachment.php?id=13380" rel="">CANLibrarymaster.zip</a>
</p>

<p>
	5. Upload to the board from the Arduino program
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	<span style="font-size:20px;"><u><strong>Operating The Calibrate Tool</strong></u></span>
</p>

<p>
	Line  up the turbo actuator according to this
</p>

<p>
	<img alt="Capture.PNG" class="ipsImage ipsImage_thumbnailed" data-fileid="13381" data-unique="p4l8d4a5p" src="https://mopar1973man.com/storage/attachments/monthly_2017_08/Capture.PNG.85fdb864d7641964b9145214dcfb7b23.PNG" data-ratio="70.94" loading="lazy">
</p>

<p>
	 
</p>

<p>
	Disconnect the Turbo wiring from the truck, this will set a code it's ok.  Plug in your reset tool to the turbo, then connect power to the arduino board.  After 5-10 seconds you should head the turbo cylce the vane position slowly.  Once The turbo comes to rest it is done.  Disconnect the arduino and plug the truck back into the turbo .
</p>

<p>
	 
</p>

<p>
	 
</p>

<p>
	<strong>If you found this helpful please shoot a donation my way.  Everything I do is to help support the community.</strong>
</p>

<p>
	 
</p>

<p>
	<strong>Thanks</strong>
</p>

<p>
	 
</p>

<p>
	<strong>-Me78569</strong>
</p>

<p>
	<input name="cmd" type="hidden" value="_s-xclick"><input name="hosted_button_id" type="hidden" value="J5JN9VPV38LJL"><input alt="PayPal - The safer, easier way to pay online!" border="0" name="submit" src="https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif" type="image"><img alt="pixel.gif" border="0" height="1" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" loading="lazy">
</p>

<p>
	 
</p>

<p>
	 
</p>
]]></description><guid isPermaLink="false">530</guid><pubDate>Wed, 30 Aug 2017 02:23:11 +0000</pubDate></item></channel></rss>
