<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Programmable Electronic Load - Calibration Steps</title><link>https://community.element14.com/technologies/test-and-measurement/w/documents/3318/programmable-electronic-load---calibration-steps</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Programmable Electronic Load - Calibration Steps</title><link>https://community.element14.com/technologies/test-and-measurement/w/documents/3318/programmable-electronic-load---calibration-steps</link><pubDate>Mon, 17 Sep 2018 13:36:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:dcbae40f-5277-40e5-aedf-0bec4ecbf970</guid><dc:creator>Jan Cumps</dc:creator><comments>https://community.element14.com/technologies/test-and-measurement/w/documents/3318/programmable-electronic-load---calibration-steps#comments</comments><description>Current Revision posted to Documents by Jan Cumps on 9/17/2018 1:36:00 PM&lt;br /&gt;
&lt;table border="1" class="jiveBorder mce-item-table" height="454" style="border:1px solid #c6c6c6;width:666px;height:323px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;background-color:#ffffdb;padding:6px;"&gt;&lt;p style="margin:0;"&gt;&lt;span style="background-color:#ffffdb;"&gt;This blog documents explains how to calibrate the &lt;/span&gt;&lt;a class="jive-link-wiki-small" href="/technologies/test-and-measurement/w/documents/1896/programmable-electronic-load"&gt;electronic load&lt;/a&gt;&lt;span style="background-color:#ffffdb;"&gt; that &lt;/span&gt;&lt;span&gt;&lt;a href="/members/peteroakes"&gt;Robert Peter Oakes&lt;/a&gt;&lt;/span&gt;&lt;span style="background-color:#ffffdb;"&gt;, &lt;/span&gt;&lt;span&gt;&lt;a href="/members/jc2048"&gt;jc2048&lt;/a&gt;&lt;/span&gt;&lt;span style="background-color:#ffffdb;"&gt; and &lt;/span&gt;&lt;span&gt;&lt;a href="/members/jancumps"&gt;Jan Cumps&lt;/a&gt;&lt;/span&gt;&lt;span style="background-color:#ffffdb;"&gt; are designing.&lt;/span&gt;&lt;/p&gt;&lt;table border="0px" class="jiveBorder mce-item-table" height="357" style="border:0px solid #c6c6c6;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:0pxpx solid black;border:0px solid #c6c6c6;text-align:center;padding:6px;"&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/1078x808/__key/communityserver-wikis-components-files/00-00-00-00-21/6320.contentimage_5F00_101899.png"&gt;&lt;img alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/00/21/6320.contentimage_101899.png-1078x808.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=tZ7e8ojp%2BsUIBxG3ucyIAJHtgYTKFyMcnWHAiTvlJFY%3D&amp;amp;se=2026-04-24T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=cYO1qkElLjVCOQA3cgArXQ==" style="max-height: 808px;max-width: 1078px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin:0;"&gt;&lt;span style="background-color:#ffffdb;"&gt;Some functionality of the instrument are dependent on the components you select and tolerances. Follow the steps below to initialise the instrument after the build and to correct for drift and these tolerances.&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;em&gt;Status: calibration functions available for &lt;/em&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;em&gt;temperature protection, &lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;sense resistor, &lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;current set,&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;current read,&lt;/em&gt;&lt;/li&gt;&lt;li&gt;&lt;em&gt;voltage read&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;Approach&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Calibration and configuration are done via SCPI commands.&lt;/p&gt;&lt;p style="margin:0;"&gt;You init the calibration session, perform steps and close the session.&lt;/p&gt;&lt;p style="margin:0;"&gt;While a calibration session is active, any changes made to the calibration settings are active but not saved.&lt;/p&gt;&lt;p style="margin:0;"&gt;At session closure, calibration data is stored on the device.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/1074x790/__key/communityserver-wikis-components-files/00-00-00-00-21/1122.contentimage_5F00_101900.png"&gt;&lt;img loading="lazy" alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/00/21/1122.contentimage_101900.png-1074x790.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=vfXq3s3j2qDjFLZo61TYtnHYHpDybC9mZhNLH4MX9j8%3D&amp;amp;se=2026-04-24T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=nvc6R2uGoD2wB2lQw6baPA==" style="max-height: 790px;max-width: 1074px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Inspiration for the sequence of activities comes from the &lt;a class="jive-link-external-small" href="https://www.eevblog.com/forum/testgear/rigol-dp832-firmware-updates-and-bug-list/?action=dlattach;attach=121068" rel="nofollow ugc noopener" target="_blank"&gt;RIGOL DP800 SCPI calibration user&amp;#39;s guide&lt;/a&gt;.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;&lt;span style="color:#3334ca;"&gt;Calibration Sequence&lt;/span&gt;&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#3334ca;"&gt;Opening sequence&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;strong&gt;CALibration:STArt&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;Inform the device that a calibration/configuration session starts.&lt;/p&gt;&lt;p style="margin:0;"&gt;If you don&amp;#39;t do this, any other calibration &amp;quot;set&amp;quot; command will throw an error and no changes will be applied to the instrument&amp;#39;s calibration data.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="1" class="jiveBorder mce-item-table" height="67" style="border:1px solid #c6c6c6;height:56px;width:839px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;background-color:#fdd9ae;padding:6px;"&gt;&lt;p style="margin:0;"&gt;&lt;em&gt;The Clear &lt;span style="text-decoration:line-through;"&gt;and *RST&lt;/span&gt; commands aren&amp;#39;t implemented.&lt;/em&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;em&gt;I&amp;#39;m not sure yet if the Clear command is desired or needed.&lt;/em&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;em&gt;&lt;span style="text-decoration:line-through;"&gt;There&amp;#39;s no discussion on the *RST command, we&amp;#39;ll have to implement that at some time to put the device in a known state&lt;/span&gt;.&lt;/em&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:STArt ...
CALibration:Clear ... // NOT implemented
*RST&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#3334ca;"&gt;Calibration sequence&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;When a session is opened, you can start using calibration &amp;quot;set&amp;quot;&amp;nbsp; commands. &amp;quot;Query&amp;quot; commands also work without a session opened.&lt;/p&gt;&lt;p style="margin:0;"&gt;If used without a session, they will return the stored values. If used in a session, they reflect whatever changes are done during the session&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:SET ...
CALibration:MEAs ...&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#3334ca;"&gt;Closing sequence&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;strong&gt;CALibration:END&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;The End comment saves the settings to the device. As long as you don&amp;#39;t call this command, no changes are permanent. They will only stay active as long as the device isn&amp;#39;t reset or power cycled.&lt;/p&gt;&lt;p style="margin:0;"&gt;If you want to undo any changes and start over again, call the Start function again.&lt;/p&gt;&lt;p style="margin:0;"&gt;If you want to cancel the exercise, power cycle the device.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:END  ....&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Error: throws &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;SCPI_ERROR_EXECUTION_ERROR&lt;/span&gt; if there is no active calibration session&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;&lt;span style="color:#3334ca;"&gt;Configure the Over Temparature Protection&lt;/span&gt;&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Two API functions are available to set the over-temperature protection:&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:TEMPERATUREMaxResistance
CALibration:TEMPERATUREMaxResistance?&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The value related to this function is the resistance of thermistor TH1 at the temperature where protection should kick in.&lt;/p&gt;&lt;p style="margin:0;"&gt;If the value is 0, temperature overprotection is disabled. This is the default behaviour of the device if the designer doesn&amp;#39;t go through the calibration procedure &lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/16x16/__key/communityserver-wikis-components-files/00-00-00-00-21/1070.contentimage_5F00_3890.png"&gt;&lt;img loading="lazy" alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/00/21/1070.contentimage_3890.png-16x16.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=0lT70R2YSz5S7hlExFkg55N4A%2F2a3tCskSXmCfiz370%3D&amp;amp;se=2026-04-24T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=RRWKTMF3xBxZMoZorJmxoA==" style="max-height: 16px;max-width: 16px;" /&gt;&lt;/a&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p style="margin:0;"&gt;That value (in Ohm) is typically documented in the datasheet for the thermistor you&amp;#39;re using in your design. Check this post for more info: &lt;a class="jive-link-wiki-small" href="/technologies/test-and-measurement/w/documents/3316/programmable-electronic-load---temperature-protection"&gt;Programmable Electronic Load - Temperature Protection&lt;/a&gt;.&lt;/p&gt;&lt;p style="margin:0;"&gt;In this example, we want to switch off the input when the temperature reaches 125°C. The data sheet of our NTC documents 339 Ohm for that temperature.&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/200x162/__key/communityserver-wikis-components-files/00-00-00-00-21/6761.contentimage_5F00_101901.png"&gt;&lt;img loading="lazy" alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/00/21/6761.contentimage_101901.png-200x162.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=jBDh5LCG73hVubD%2B7XIbTwdewA9mNHNCcmh29hCHht8%3D&amp;amp;se=2026-04-24T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=5ShuVY1tDbqrkWsDUe75Dg==" style="max-height: 162px;max-width: 200px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#3334ca;"&gt;&lt;em&gt;Get the Tripover Temperature setting:&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;strong&gt;CALibration:TEMPERATUREMAXResistance?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;This function will return the resistance of the NTC when the protection will kick in, in Ohm&lt;/p&gt;&lt;p style="margin:0;"&gt;A return value of 0 indicates that temperature protection is inactive.&lt;/p&gt;&lt;p style="margin:0;"&gt;Example:&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:TEMPERATUREMAXResistance?
339&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#3334ca;"&gt;&lt;em&gt;Set the Tripover temperature setting:&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;strong&gt;CALibration:TEMPERATUREMAXResistance [NUMBER]&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;This function will set the resistance of the NTC when the protection should kick in.&lt;/p&gt;&lt;p style="margin:0;"&gt;Example:&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:STArt
*RST
CALibration:TEMPERATUREMAXResistance 339
CALibration:END&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;When using the default NTC &lt;span style="color:#333333;font-family:Verdana, &amp;#39;Verdana Ref&amp;#39;, Geneva, Tahoma, sans-serif;"&gt; &lt;/span&gt;&lt;span style="font-family:Verdana, &amp;#39;Verdana Ref&amp;#39;, Geneva, Tahoma, sans-serif;color:#333333;"&gt;&lt;span class="e14-init-shown" style="font-weight:inherit;font-style:inherit;font-family:inherit;"&gt;&lt;a class="" href="https://www.element14.com/community/view-product.jspa?fsku=2103179&amp;amp;nsku=NULL&amp;amp;COM=noscript" style="font-weight:inherit;font-style:inherit;font-family:inherit;color:#007fac;" title="View product details"&gt;https://www.element14.com/community/view-product.jspa?fsku=2103179&amp;amp;nsku=NULL&amp;amp;COM=noscript&lt;/a&gt;&lt;span&gt;&lt;span class="e14-init-shown" id="addProduct-HbzIMc3k-linked" style="white-space:nowrap;"&gt;&lt;a class="jive-link-product-addtolist" href="https://www.element14.com/community/view-product.jspa?fsku=2103179&amp;amp;nsku=NULL&amp;amp;COM=noscript" target="_blank"&gt;&lt;span class="pf-widget-map pf-productlink-cart-icon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a class="jive-link-product pf-embedded-product-link" href="https://www.element14.com/community/view-product.jspa?fsku=2103179&amp;amp;nsku=NULL&amp;amp;COM=noscript" target="_blank"&gt;Vishay NTCS0805E3103JLT&lt;/a&gt;&lt;/span&gt;&lt;span class="e14-init-hidden" id="addProduct-HbzIMc3k-unlinked"&gt;Vishay NTCS0805E3103JLT&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#333333;font-family:Verdana, &amp;#39;Verdana Ref&amp;#39;, Geneva, Tahoma, sans-serif;"&gt; &lt;/span&gt; (see &lt;a class="jive-link-wiki-small" href="/technologies/test-and-measurement/w/documents/3314/programmable-electronic-load---power-stage"&gt;Programmable Electronic Load - Power Stage&lt;/a&gt;) this command will enable over-temperature protection at 125°C:&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:TEMPERATUREMAXResistance 518&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Error: throws &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;SCPI_ERROR_EXECUTION_ERROR&lt;/span&gt; if there is no active calibration session&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;&lt;span style="color:#3334ca;"&gt;Configure the Current Sense Resistor&lt;/span&gt;&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Two API functions are available to set the sense resistor value:&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;CALibration:SENSEResistance
CALibration:SENSEResisitance?&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The value related to this function is the resistance of the sense resistor R2 on the MOSFET board.&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/267x306/__key/communityserver-wikis-components-files/00-00-00-00-21/0003.contentimage_5F00_101902.png"&gt;&lt;img loading="lazy" alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/00/21/0003.contentimage_101902.png-267x306.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=tohWrf5rtt%2B%2Fi9zeWUxO99kIYULu4klzRuaSD%2FUXXWM%3D&amp;amp;se=2026-04-24T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=xDFu3nJ80/TbBEm5Q8SUaw==" style="max-height: 306px;max-width: 267px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#3334ca;"&gt;&lt;em&gt;Get the Sense Resistor setting:&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;strong&gt;CALibration:SENSEResistance?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;This function will return the resistance of the current sense resistor as stored in calibration data.&lt;/p&gt;&lt;p style="margin:0;"&gt;Example:&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;CALibration:SENSEResistance?
0.05&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#3334ca;"&gt;&lt;em&gt;Set the Sense Resistor setting:&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;strong&gt;CALibration:SENSEResistance [NUMBER]&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;This function will set the resistance of the current sense resistor in the calibration data.&lt;/p&gt;&lt;p style="margin:0;"&gt;Example:&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;CALibration:STArt
*RST
CALibration:SENSEResistance 0.05
CALibration:END&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Error: throws &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;SCPI_ERROR_EXECUTION_ERROR&lt;/span&gt; if there is no active calibration session&lt;/p&gt;&lt;p style="margin:0;"&gt;Error: throws&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt; SCPI_ERROR_ILLEGAL_PARAMETER_VALUE&lt;/span&gt; if you set the value to 0.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;&lt;span style="color:#3334ca;"&gt;Configure the Input Voltage Sense Read Correction&lt;/span&gt;&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Five API functions are available to correct the Input Volage Sense measurement:&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:SENSEVOLTREADOffset
CALibration:SENSEVOLTREADOffset?
CALibration:SENSEVOLTREADMultiplier
CALibration:SENSEVOLTREADMultiplier?
CALibration:ADC2:VOLT?&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The offset is the DC component measured by the ADC when the sense inputs of the instrument are shortcut.&lt;/p&gt;&lt;p style="margin:0;"&gt;The multiplier is the gain in the circuit between the sense inputs and the ADC.&lt;/p&gt;&lt;p style="margin:0;"&gt;The input voltage sense signals are measured by opamp U3D.&lt;/p&gt;&lt;p style="margin:0;"&gt;This opamp has a gain of 0.033. It divides the voltage by 33.3333333.&lt;/p&gt;&lt;p style="margin:0;"&gt;That value is then sampled by ADC 2.&lt;/p&gt;&lt;p style="margin:0;"&gt;To show the correct voltage at the sense inputs, we have to multiply the sampled value again by theoretically 33.3333.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;To correct for the tolerances of the input circuit, the instrument allows you to fine tune this offset and multiplier.&lt;/p&gt;&lt;p style="margin:0;"&gt;It requires a calculator and a reference voltage.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;To correct the &lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;offset&lt;/strong&gt;&lt;/span&gt;, shortcut the sense inputs of the load.&lt;/p&gt;&lt;p style="margin:0;"&gt;That should give us a value at the ADC of 0 V.&lt;/p&gt;&lt;p style="margin:0;"&gt;Then check the voltage of the ADC 2, using &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:ADC2:VOLT?&lt;/span&gt;. This returns -0.0057 V in my case.&lt;/p&gt;&lt;p style="margin:0;"&gt;We use &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:SENSEVOLTREADOffset&lt;/span&gt; to store this measurement in Flash. All future measurements will take the offset into account.&lt;/p&gt;&lt;p style="margin:0;"&gt;Start a calibration session with &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:STArt&lt;/span&gt; and configure the multiplier with &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:SENSEVOLTREADOffset -0.0057&lt;/span&gt;.&lt;/p&gt;&lt;p style="margin:0;"&gt;Check if the value is accepted with &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:SENSEVOLTREASOffset?&lt;/span&gt;.&lt;/p&gt;&lt;p style="margin:0;"&gt;When OK, close the session and save the settings by calling &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:END&lt;/span&gt;.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;To correct the &lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;multiplier&lt;/strong&gt;&lt;/span&gt;, provide a precise voltage at the voltage sense inputs. If you have a voltage reference (there is one on the ADC/DAC board), you can use that. Else use a power supply and a reasonable DMM.&lt;/p&gt;&lt;p style="margin:0;"&gt;I use a lab power supply and set it close to the maximum voltage that gives 3 digit precision on my DMM:&amp;nbsp; 6.583. The DMM is connected on the same voltage sense inputs&lt;/p&gt;&lt;p style="margin:0;"&gt;Then check the voltage of the ADC 2, using &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:ADC2:VOLT?&lt;/span&gt;. This returns 0.218063 in my case.&lt;/p&gt;&lt;p style="margin:0;"&gt;The multiplier for my board is 6.583 / 0.218063 = 30.188523500089423698655893021741.&lt;/p&gt;&lt;p style="margin:0;"&gt;Start a calibration session with &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:STArt&lt;/span&gt; and configure the multiplier with &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:SENSEVOLTREADMultiplier 30.188523500089423698655893021741&lt;/span&gt;.&lt;/p&gt;&lt;p style="margin:0;"&gt;Check if the value is accepted with &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:SENSEVOLTREADMultiplier?&lt;/span&gt;.&lt;/p&gt;&lt;p style="margin:0;"&gt;When OK, close the session and save the settings by calling &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:END&lt;/span&gt;.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#3334ca;"&gt;&lt;em&gt;Get the ADC 2 sampled voltage:&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;strong&gt;CALibration:ADC2:VOLT?&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;This function will return the currents sampled voltage at ADC 2. This value should be close to the volt on the voltage sense inputs divided by&amp;nbsp; 33.3333&lt;/p&gt;&lt;p style="margin:0;"&gt;Example:&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:ADC2:VOLT?
0.218063&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#3334ca;"&gt;&lt;em&gt;Get the voltage read offset setting:&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;strong&gt;CALibration:SENSEVOLTREADOffset?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;This function will return the input voltage sense offset. This value should be close to 0.0.&lt;/p&gt;&lt;p style="margin:0;"&gt;The instrument uses 0.0 in the case that the calibration hasn&amp;#39;t been set to return the voltage via SCPI and LCD display.&lt;/p&gt;&lt;p style="margin:0;"&gt;Example:&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:SENSEVOLTREADOffset?
0.1225&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#3334ca;"&gt;&lt;em&gt;Set the voltage read offset setting:&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;strong&gt;CALibration:SENSEVOLTREADOffset [FLOAT]&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;This function will set the input voltage sense offset.&lt;/p&gt;&lt;p style="margin:0;"&gt;Example:&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:STArt
*RST
CALibration:SENSEVOLTREADOffset -0.0057
CALibration:END&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Error: throws &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;SCPI_ERROR_EXECUTION_ERROR&lt;/span&gt; if there is no active calibration session&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#3334ca;"&gt;&lt;em&gt;Get the voltage read multiplier setting:&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;strong&gt;CALibration:SENSEVOLTREADMultiplier?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;This function will return the input voltage sense multiplier. This value should be close to 33.3333.&lt;/p&gt;&lt;p style="margin:0;"&gt;A return value of 0 indicates that the multiplier is not set. The instrument uses 33.3333 in that case to return the voltage via SCPI and LCD display.&lt;/p&gt;&lt;p style="margin:0;"&gt;Example:&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:SENSEVOLTREADMultiplier?
30.1885&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#3334ca;"&gt;&lt;em&gt;Set the voltage read multiplier setting:&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;strong&gt;CALibration:SENSEVOLTREADMultiplier [FLOAT]&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;This function will set the input voltage sense read multiplier.&lt;/p&gt;&lt;p style="margin:0;"&gt;Example:&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:STArt
*RST
CALibration:SENSEVOLTREADMultiplier 30.188523500089423698655893021741
CALibration:END&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Error: throws &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;SCPI_ERROR_EXECUTION_ERROR&lt;/span&gt; if there is no active calibration session&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;&lt;span style="color:#3334ca;"&gt;Configure the Input Current Read Correction&lt;/span&gt;&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Five API functions are available to correct the Input Current measurement:&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:CURRENTREADOffset
CALibration:CURRENTREADOffset?
CALibration:CURRENTREADMultiplier
CALibration:CURRENTREADMultiplier?
CALibration:ADC1:VOLT?&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The offset is the DC component measured by the ADC when the load inputs of the instrument are shortcut.&lt;/p&gt;&lt;p style="margin:0;"&gt;The multiplier is the gain in the circuit between the load inputs and the ADC.&lt;/p&gt;&lt;p style="margin:0;"&gt;The input voltage sense signals are measured by opamp U3C and U3B.&lt;/p&gt;&lt;p style="margin:0;"&gt;This opamps have a gain of -6.8 and -1. They divide the voltage measured over the current sense resistor by 6.8.&lt;/p&gt;&lt;p style="margin:0;"&gt;That value is then sampled by ADC 1.&lt;/p&gt;&lt;p style="margin:0;"&gt;To show the correct current at the load inputs, we have to multiply the sampled value again by theoretically 6.8 (and apply Ohm&amp;#39;s law to turn the voltage to a current, but that&amp;#39;s not relevant in this exercise).&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;To correct for tolerances in the input circuit, the instrument allows you to fine tune this offset and multiplier.&lt;/p&gt;&lt;p style="margin:0;"&gt;It requires a calculator a power supply and two DMMs.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;To correct the &lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;offset&lt;/strong&gt;&lt;/span&gt;, shortcut the load inputs of the load.&lt;/p&gt;&lt;p style="margin:0;"&gt;That should give us a value at the ADC of 0 V.&lt;/p&gt;&lt;p style="margin:0;"&gt;Then check the voltage of the ADC 1, using &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:ADC1:VOLT?&lt;/span&gt;. This returns 0.00112500 V in my case.&lt;/p&gt;&lt;p style="margin:0;"&gt;We use &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:CURRENTREADOffset&lt;/span&gt; to store this measurement in Flash. All future measurements will take the offset into account.&lt;/p&gt;&lt;p style="margin:0;"&gt;Start a calibration session with &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:STArt&lt;/span&gt; and configure the multiplier with &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:CURRENTREADOffset 0.00112500&lt;/span&gt;.&lt;/p&gt;&lt;p style="margin:0;"&gt;Check if the value is accepted with &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:CURRENTREADOffset?&lt;/span&gt;.&lt;/p&gt;&lt;p style="margin:0;"&gt;When OK, close the session and save the settings by calling &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:END&lt;/span&gt;.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;To correct the &lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;multiplier&lt;/strong&gt;&lt;/span&gt;, provide a stable voltage at the load inputs. Add a good DC current meter in series.&lt;/p&gt;&lt;p style="margin:0;"&gt;Set DAC 1 to a value so that the current meter shows 1 A. &lt;span style="color:#e23d39;"&gt;// todo: provide a calibration function. Currently it is the very low level &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;DEVE:DAC1 xxxxx&lt;/span&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;Measure the voltage over the current sense resistor with a second multimeter. I measure &lt;span style="color:#e23d39;"&gt;0.05 V&lt;/span&gt;.&lt;/p&gt;&lt;p style="margin:0;"&gt;Then check the voltage of the ADC 1, using &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:ADC1:VOLT?&lt;/span&gt;. This returns &lt;span style="color:#e23d39;"&gt;0.0073529411764706 V&lt;/span&gt; in my case.&lt;/p&gt;&lt;p style="margin:0;"&gt;The multiplier for my board is &lt;span style="color:#e23d39;"&gt;0.05&lt;/span&gt; / &lt;span style="color:#e23d39;"&gt;0.0073529411764706&lt;/span&gt; = &lt;span style="color:#e23d39;"&gt;6.8493&lt;/span&gt;.&lt;/p&gt;&lt;p style="margin:0;"&gt;Start a calibration session with &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:STArt&lt;/span&gt; and configure the multiplier with &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:CURRENTREADMultiplier 6.8493&lt;/span&gt;.&lt;/p&gt;&lt;p style="margin:0;"&gt;Check if the value is accepted with &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:CURRENTREADMultiplier?&lt;/span&gt;.&lt;/p&gt;&lt;p style="margin:0;"&gt;When OK, close the session and save the settings by calling &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;CALibration:END&lt;/span&gt;.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#3334ca;"&gt;&lt;em&gt;Get the ADC 1 sampled voltage:&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;strong&gt;CALibration:ADC1:VOLT?&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;This function will return the currents sampled voltage at ADC 1. This value should be close to the volt on the current sense resistor divided by&amp;nbsp; 6.8.&lt;/p&gt;&lt;p style="margin:0;"&gt;Example:&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:ADC1:VOLT?
0.007363&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#3334ca;"&gt;&lt;em&gt;Get the current read offset setting:&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;strong&gt;CALibration:CURRENTREADOffset?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;This function will return the input current read offset. This value should be close to 0.0.&lt;/p&gt;&lt;p style="margin:0;"&gt;The instrument uses 0.0 in the case that the calibration hasn&amp;#39;t been set to return the current via SCPI and LCD display.&lt;/p&gt;&lt;p style="margin:0;"&gt;Example:&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:CURRENTREADOffset?
0.1885&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#3334ca;"&gt;&lt;em&gt;Set the current reads offset setting:&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;strong&gt;CALibration:CURRENTREADOffset [FLOAT]&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;This function will set the input current offset.&lt;/p&gt;&lt;p style="margin:0;"&gt;Example:&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:STArt
*RST
CALibration:CURRENTREADOffset 0.1885
CALibration:END&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Error: throws &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;SCPI_ERROR_EXECUTION_ERROR&lt;/span&gt; if there is no active calibration session&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#3334ca;"&gt;&lt;em&gt;Get the current read multiplier setting:&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;strong&gt;CALibration:CURRENTREADMultiplier?&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;This function will return the input current multiplier. This value should be close to 6.8.&lt;/p&gt;&lt;p style="margin:0;"&gt;A return value of 0 indicates that the multiplier is not set. The instrument uses 6.8 in that case to return the current via SCPI and LCD display.&lt;/p&gt;&lt;p style="margin:0;"&gt;Example:&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:CURRENREADTMultiplier?
6.8493&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#3334ca;"&gt;&lt;em&gt;Set the current read multiplier setting:&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;strong&gt;CALibration:CURRENTREADMultiplier [FLOAT]&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;This function will set the input current read multiplier.&lt;/p&gt;&lt;p style="margin:0;"&gt;Example:&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:STArt
*RST
CALibration:CURRENTREADMultiplier 6.8493
CALibration:END&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Error: throws &lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;SCPI_ERROR_EXECUTION_ERROR&lt;/span&gt; if there is no active calibration session&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;&lt;span style="color:#3334ca;"&gt;Configure the Input Current Set Correction&lt;/span&gt;&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Five API functions are available to correct the Input Current setting:&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;CALibration:CURRENTWRITEOffset
CALibration:CURRENTWRITEOffset?
CALibration:CURRENTWRITEMultiplier
CALibration:CURRENTWRITEMultiplier?
CALibration:ADC1:VOLT?&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The offset is the DC component measured when the DAC&amp;nbsp; is set to 0.&lt;/p&gt;&lt;p style="margin:0;"&gt;The multiplier is the translation of the DAC setting vs the FET output.&lt;/p&gt;&lt;p style="margin:0;"&gt;These settings allow to deal with different FETs. It also compensates OpAmp and DAC tolerances.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;To correct for tolerances in the loadcircuit, the instrument allows you to fine tune this offset and multiplier.&lt;/p&gt;&lt;p style="margin:0;"&gt;It requires a calculator a power supply and a DMM (or an already calibrated current read on the load).&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;To correct the &lt;span style="text-decoration:underline;"&gt;&lt;strong&gt;offset&lt;/strong&gt;&lt;/span&gt;, load the input with a significan voltage (say: more than 10 V) the load inputs of the load.&lt;/p&gt;&lt;p style="margin:0;"&gt;That should give us a value at the ADC of 0 V, enable the input and set the DAC to 0.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;... to be continued&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: electronic_load, msp432, scpi, launchpad&lt;/div&gt;
</description></item></channel></rss>