<?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</title><link>https://community.element14.com/technologies/test-and-measurement/w/documents/1896/programmable-electronic-load</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Programmable Electronic Load</title><link>https://community.element14.com/technologies/test-and-measurement/w/documents/1896/programmable-electronic-load</link><pubDate>Sun, 11 Oct 2020 08:05:20 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:68ca03bc-228a-483b-a051-fffd15c6327c</guid><dc:creator>Jan Cumps</dc:creator><comments>https://community.element14.com/technologies/test-and-measurement/w/documents/1896/programmable-electronic-load#comments</comments><description>Current Revision posted to Documents by Jan Cumps on 10/11/2020 8:05:20 AM&lt;br /&gt;
&lt;p style="margin:0;"&gt;Peter, Jon and Jan are building a programmable electronic load. This document is the common design sheet.&lt;/p&gt;&lt;p style="margin:0;text-align:left;"&gt;It&amp;#39;s obviously work in progress. And fun.&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/627x402/__key/communityserver-wikis-components-files/00-00-00-00-21/4848.contentimage_5F00_143944.png"&gt;&lt;img alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/00/21/4848.contentimage_143944.png-627x401.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=YeSmUeWFrfdTl9Mmtlieyn7zeXr0yuiTZQzOvBzWnWY%3D&amp;amp;se=2026-04-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=qDxVdlmnlR0lneGzRGD2Bg==" style="max-height: 401px;max-width: 627px;" /&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;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;We&amp;#39;re building a programmable DC load. The focus is on making a real world working instrument.&lt;/p&gt;&lt;p style="margin:0;"&gt;Hardware and firmware are open source.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;20 V, 6 A&lt;/li&gt;&lt;li&gt;SCPI controlled&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;To keep this document readable, this main post gives an overview of the design.&lt;/p&gt;&lt;p style="margin:0;"&gt;All detailed explanations are broken out in separate posts.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h1&gt;Hardware&lt;/h1&gt;&lt;p style="margin:0;"&gt;The load design is modular.&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/778x900/__key/communityserver-wikis-components-files/00-00-00-00-21/0652.contentimage_5F00_143945.jpg"&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/0652.contentimage_143945.jpg-620x716.jpg?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=RA%2BwFSq%2BJLSNU8FpzfxnHdLKVtBnb7EYQtgfT31Mqko%3D&amp;amp;se=2026-04-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=+dD2ngUbLA4nOgNPqDSqDw==" style="max-height: 716px;max-width: 620px;" /&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;Two out of box modules:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;MSP432 LaunchPad&lt;/li&gt;&lt;li&gt;LCD Shield (optional)&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin:0;"&gt;3 new designs&lt;/p&gt;&lt;ul&gt;&lt;li&gt;DAC-ADC module&lt;/li&gt;&lt;li&gt;Analog control module&lt;/li&gt;&lt;li&gt;Power module&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h5&gt;DAC-ADC BoosterPack&lt;/h5&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/601x406/__key/communityserver-wikis-components-files/00-00-00-00-21/4454.contentimage_5F00_143946.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/4454.contentimage_143946.png-601x406.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=zp0LFvvLA7k2Zkx2IgWRhM5MHOkOKpPeN4rWAAhoW88%3D&amp;amp;se=2026-04-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=AmUqoXJotCUM2cKJWq9A8g==" style="max-height: 406px;max-width: 601px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;This module is a generic, isolated DAC / ADC boosterpack. It&amp;#39;s the interface between the analog controller and the microcontroller.&lt;/p&gt;&lt;p style="margin:0;"&gt;It can also be used outside this project, for your other analog - digital conversion needs.&lt;/p&gt;&lt;p style="margin:0;"&gt;The board design is broken out in a separate post: &lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---dac-adc-boosterpack"&gt;Programmable Electronic Load - DAC / ADC BoosterPack&lt;/a&gt;.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;Analog Controller and Driver Board&lt;/h4&gt;&lt;p style="margin:0;"&gt;This is the core of the analog constant current block. Here lives the circuit that will translate desired constant current into the driver signal for the power MOSFET.&lt;/p&gt;&lt;p style="margin:0;"&gt;It integrates the feedback coming from that power board. This is a closed analog control loop.&lt;/p&gt;&lt;p style="margin:0;"&gt;There are also components to provide the on-off functionality and buffers/amplifiers for the analog data-points that fly back to the ADC module.&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/816x612/__key/communityserver-wikis-components-files/00-00-00-00-21/3426.contentimage_5F00_143947.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/3426.contentimage_143947.png-620x465.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=hwfDu1rx3gcbKVDl9m8XTf8Af9S57iSceg1gIRsr5XE%3D&amp;amp;se=2026-04-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=YykyHzRjrXzX1G/SMlK8kg==" style="max-height: 465px;max-width: 620px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;The board, schematics and BOM are documented in &lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---analog-controller-and-driver-board"&gt;Programmable Electronic Load - Analog Controller and Driver Board&lt;/a&gt;.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;Power Module - the MOSFET Board with Fan&lt;/h4&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/603x401/__key/communityserver-wikis-components-files/00-00-00-00-21/3060.contentimage_5F00_143948.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/3060.contentimage_143948.png-603x401.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=xWgHFbEUdiCzfsJxuUdQhrHD9NW%2BJHVpSrkXVYmwpsU%3D&amp;amp;se=2026-04-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=wF4QWvjq7mfldQS9PHXU0w==" style="max-height: 401px;max-width: 603px;" /&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&gt;&lt;a href="https://community.element14.com/resized-image/__size/607x314/__key/communityserver-wikis-components-files/00-00-00-00-21/3377.contentimage_5F00_143949.png"&gt;&lt;img loading="lazy" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/00/21/3377.contentimage_143949.png-607x314.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=q3C5TcWZ1lsXdn%2FCr4PJTAMyY%2FqfgFDmEQ45dOVaeTs%3D&amp;amp;se=2026-04-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=QrBGPpKBaltaIfKSwwL2Qg==" style="max-height: 314px;max-width: 607px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;For details&amp;nbsp; of the design of the power stage, check &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;.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;BoosterPack Header Use and Pin Allocation&lt;/h4&gt;&lt;p style="margin:0;"&gt;This info is broken out in a separate post: &lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---boosterpack-header-use"&gt;Programmable Electronic Load - BoosterPack Header Use&lt;/a&gt;.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h1&gt;Firmware&lt;/h1&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Prerequisites:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;CCS 8 with MSP432 compiler TI v 16.12.0.STS or &amp;gt;&lt;/li&gt;&lt;li&gt;TI-RTOS for MSP43X, any SimpleLink version&lt;/li&gt;&lt;li&gt;MSP432 LaunchPad (not the black pre-prod because it&amp;#39;s out of support)&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="1" class="jiveBorder" height="75" style="border:1px solid #c6c6c6;width:874px;height:0px;"&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;The firmware is for the MSP432 microcontroller. But the harware can be driven from any controller, processor, PSoC or computer that can deliver i2c and power between 3V3 and 5V.&lt;/p&gt;&lt;p style="margin:0;"&gt;That includes Arduino, Raspberry Pi, BeagleBone, Warp7, IOT20xx, the ST Neo family, ... As long as they match that voltage range and have I2C master, it &amp;#39;ll work.&lt;/p&gt;&lt;p style="margin:0;"&gt;The ADC/DAC board takes care that the logic side is galvanicaly isolated from the power side (that is, if you leave the P1 and P2 jumpers open).&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The only requirement is that you have a positive supply between 3V3 and 5V, a ground, and I2C signals (the board has I2C pull-ups that connect to the positive supply that you provide. If you don&amp;#39;t want that (maybe your dev board already has &amp;#39;m), leave R1 and R2 off.&lt;/p&gt;&lt;p style="margin:0;"&gt;ADC, DAC and Enable are all I2C driven.&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;GITHUB location: &lt;a class="jive-link-external-small" href="https://github.com/jancumps/msp432/tree/master/MSP432_SCPI_ElectronicLoad" rel="nofollow ugc noopener" target="_blank" title="https://github.com/jancumps/msp432/tree/master/MSP432_SCPI_ElectronicLoad"&gt;https://github.com/jancumps/msp432/tree/master/MSP432_SCPI_ElectronicLoad&lt;/a&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;download latest source files as a zip : &lt;a class="jive-link-external-small" href="https://github.com/jancumps/msp432/archive/master.zip" rel="nofollow ugc noopener" target="_blank" title="https://github.com/jancumps/msp432/archive/master.zip"&gt;https://github.com/jancumps/msp432/archive/master.zip&lt;/a&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;doxygen generated API documentation: &lt;a class="jive-link-external-small" href="https://jancumps.github.io/msp432" rel="nofollow ugc noopener" target="_blank" title="https://jancumps.github.io/msp432"&gt;https://jancumps.github.io/msp432&lt;/a&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;GIT artifacts don&amp;#39;t contain CCS project files, only sources - get a zip with CCS project from the attachments at the end of this document.&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/1238x900/__key/communityserver-wikis-components-files/00-00-00-00-21/1234.contentimage_5F00_143950.jpg"&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/1234.contentimage_143950.jpg-620x451.jpg?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=BPOZ9o7MFL8vNOLhD0EB%2FNHo3zGyzj6YEE8foqHQg8o%3D&amp;amp;se=2026-04-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=VFR4Biw5FbX7h7InIR2yHw==" style="max-height: 451px;max-width: 620px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;SCPI interface and Error Handling&lt;/h4&gt;&lt;p style="margin:0;"&gt;The SCPI commands are documented in this breakout post: &lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---scpi-interface-and-error-handling"&gt;SCPI interface&lt;/a&gt;.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;UART Configuration&lt;/h4&gt;&lt;p style="margin:0;"&gt;Together with SCPI, UART is the programming interface of this instrument.&lt;/p&gt;&lt;p style="margin:0;"&gt;The approach, and how to compile for USB or TTL, is documented in this breakout: &lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---uart"&gt;UART&lt;/a&gt;.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;RTOS and Posix Configuration&lt;/h4&gt;&lt;p style="margin:0;"&gt;The TI-RTOS documentation is in breakout post &lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---rtos-config"&gt;RTOS Config&lt;/a&gt;.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h5&gt;LCD Display&lt;/h5&gt;&lt;p style="margin:0;"&gt;Check here for a detailed explanation: &lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---lcd-display"&gt;LCD Display&lt;/a&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;The firmware supports SHARP LCD display,&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;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/465x186/__key/communityserver-wikis-components-files/00-00-00-00-21/0638.contentimage_5F00_143951.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/0638.contentimage_143951.png-465x186.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=XzPDd6Ooa%2F3%2BZemUdtIsE%2FWqAyhKXirFBfxc0LY5z4Q%3D&amp;amp;se=2026-04-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=zFGfBnVELFD9OME/G9V9YA==" style="max-height: 186px;max-width: 465px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/446x844/__key/communityserver-wikis-components-files/00-00-00-00-21/3365.contentimage_5F00_143952.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/3365.contentimage_143952.png-446x844.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=vBOtCulwxYxs%2B0y8ADELxQIhfOChK0D8fsUt4qjOYik%3D&amp;amp;se=2026-04-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=n6nb4/FAUmnuuuN9tgDtwA==" style="max-height: 844px;max-width: 446px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;&lt;/h4&gt;&lt;h5&gt;ADC&lt;/h5&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;I&amp;#39;ve broken out the ADC description to a separate post, because I&amp;#39;m working on improvements:&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a class="jive-link-wiki-small" href="/technologies/test-and-measurement/w/documents/4855/programmable-electronic-load---adc-firmware"&gt;Programmable Electronic Load - ADC Firmware&lt;/a&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;h5&gt;DAC&lt;/h5&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;DAC output is set on command, using RTOS MailBox and messaging.&lt;/p&gt;&lt;p style="margin:0;"&gt;The payload for a DAC message contains the DAC channel that needs to be set, and the 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;typedef struct MsgDAC {
    uint8_t module;
    uint16_t value;
} MsgDAC;&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 DAC task is started by RTOS. It inialises the DAC settings, then waits until it receives a message.&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;void *threadDAC(void *arg0) {


    MsgDAC d_msg;
    d_daci2cTransaction.writeBuf = d_dactxBuffer;
    d_daci2cTransaction.readBuf = d_dacrxBuffer;
    d_daci2cTransaction.slaveAddress = DAC_I2C_ADDR;
    d_daci2cTransaction.writeCount = 3;
    d_daci2cTransaction.readCount = 0;


    mqd_t mq;
    struct mq_attr attr;


    attr.mq_flags = 0;
    attr.mq_maxmsg = 1;
    attr.mq_msgsize = MSGDAC_SIZE;
    attr.mq_curmsgs = 0;
    mq = mq_open(QUEUE_NAME_DAC, O_CREAT | O_RDONLY, 0644, &amp;amp;attr);


    while (1) {
        ssize_t bytes_read;
        bytes_read = mq_receive(mq, (char *)&amp;amp;d_msg, MSGDAC_SIZE, NULL);


        /* wait for mailbox to be posted by writer() */
        if (bytes_read) {
// ...&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 waiting doesn&amp;#39;t take processor time. RTOS takes care that it will only get a slice of clock cycles when there is a message.&lt;/p&gt;&lt;p style="margin:0;"&gt;Two things in the RTOS configuration make this happen:&lt;/p&gt;&lt;p style="margin:0;"&gt;The mailbox with room for exactly one message, and a receive event.&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;br /&gt;Because there is usually no message in the mailbox, the execution of the DAC logic becomes inactive at this line:&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;        bytes_read = mq_receive(mq, (char *)&amp;amp;d_msg, MSGDAC_SIZE, NULL);&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 we send a DAC message somewhere else in the code (e.g.: when the user requests a new setting of the electronic load), RTOS reactivates the process and hands over the payload message.&lt;/p&gt;&lt;p style="margin:0;"&gt;The DAC task sets the output of the requested channel and returns to the point where it waits for a new message.&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;   while (1) {
        ssize_t bytes_read;
        bytes_read = mq_receive(mq, (char *)&amp;amp;d_msg, MSGDAC_SIZE, NULL);


        /* wait for mailbox to be posted by writer() */
        if (bytes_read) {
            d_dactxBuffer[0] = getAddressFromModule(d_msg.module); // set value direct
            d_dactxBuffer[1] = d_msg.value &amp;gt;&amp;gt; 8; // MSB
            d_dactxBuffer[2] = d_msg.value; // LSB
            if (! I2C_transfer(i2c_implGetHandle(), &amp;amp;d_daci2cTransaction)) {
//                System_printf(&amp;quot;I2C Bus fault\n&amp;quot;);
//                System_flush();
            }
        }
    }&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;You select the DAC channel by setting bit 2 and 1 in the control byte (&lt;span style="font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;tx_buffer[0]&lt;/span&gt;). There&amp;#39;s a helper function that gives a correct control record.&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;// address 7 - 6: 0, load mode 5 - 4: 01 direct from i2c, 3: reserved 0, 2 - 1: channel select, 0: pwr down 0
#define DAC857X_CFG_H0 0b00010000
#define DAC857X_CFG_H1 0b00010010
#define DAC857X_CFG_H2 0b00010100
#define DAC857X_CFG_H3 0b00010110&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&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;static const uint8_t array_DAC857X_CFG_H[4] = {DAC857X_CFG_H0, DAC857X_CFG_H1, DAC857X_CFG_H2, DAC857X_CFG_H3};&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;/**
 * get the hex address for the requested DAC module
 */
uint8_t getAddressFromModule(uint8_t module) {
    return array_DAC857X_CFG_H[module];
}&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;Bits 7 - 3 and 0 are all fixed.&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/708x596/__key/communityserver-wikis-components-files/00-00-00-00-21/6012.contentimage_5F00_143953.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/6012.contentimage_143953.png-708x596.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=3q6%2FWPeEor5XVO6ry5lcGPgeoSbJePTjW9%2BsRw1koVE%3D&amp;amp;se=2026-04-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=UeCp1Z8Ca4kFUKAGs/O5Yw==" style="max-height: 596px;max-width: 708px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/800x480/__key/communityserver-wikis-components-files/00-00-00-00-21/3858.contentimage_5F00_143954.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/3858.contentimage_143954.png-800x480.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=7l1%2Bp6IcKDtwE7eEWuhLhEM5c7zXXwtyFmBfXDE84Ek%3D&amp;amp;se=2026-04-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=2ZANub9hHK4hg9bg2scMMQ==" style="max-height: 480px;max-width: 800px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h5&gt;Input Enable&lt;/h5&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The functionality to activate and deactivate the load is documented here: &lt;a class="jive-link-wiki-small" href="/technologies/test-and-measurement/w/documents/3267/programmable-electronic-load---input-enable-functionality"&gt;Programmable Electronic Load - Input Enable Functionality&lt;/a&gt; .&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;Control Strategies&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The firmware uses &lt;a class="jive-link-external-small" href="http://www.adampetersen.se/Patterns%20in%20C%203,%20STRATEGY.pdf" rel="nofollow ugc noopener" target="_blank"&gt;strategies&lt;/a&gt; to handle the different types of load operation (e.g. constant current, constant, voltage, ...).&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;A strategy is a set of functions that you can plug in, and that together run that particular operation type (this is a c version of the Gang of Four&amp;#39;s Strategy Design Pattern).&lt;/p&gt;&lt;p style="margin:0;"&gt;The goal is to avoid that the firmware is riddled with if or switch statements whenever different behaviour is needed depending on the instrument&amp;#39;s mode.&lt;/p&gt;&lt;p style="margin:0;"&gt;Each operation strategy will have the same set of functions that run the instrument in that mode.&lt;/p&gt;&lt;p style="margin:0;"&gt;The price to pay is not expensive - speed and memory burden is low. It is a little more complex to understand than the c++ version. Once you step trough it with a debugger, things become clear.&lt;/p&gt;&lt;p style="margin:0;"&gt;The code also tries to hide that we&amp;#39;re using strategies&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Currently starting to implement constant current strategy. The more difficult operation types can be added later, one by one, with not too much impact on the existing code across the firmware.&lt;/p&gt;&lt;p style="margin:0;"&gt;. Only the eload API (see below) knows about it. All code goes via that eload API.&lt;/p&gt;&lt;p style="margin:0;"&gt;API for the stategies is minimal now:&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;    controlFunction;
    getMode;
    getChar;&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;h4&gt;eload API&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The eload API offers an abstraction layer for the strategies, so that the rest of the firmware doesn&amp;#39;t have to know about it. It simplifies switching operation mode and driving the instrument.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Example: The eload API offers a simple function eloadGetMode() to check what the instrument&amp;#39;s current mode is.&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;eload_mode eloadGetMode() {

    return getControlStrategy()-&amp;gt;getMode();

}&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;In the background, it uses the strategy mechanism to fetch the mode from the currently active strategy and call the implementation function.&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;return getControlStrategy()-&amp;gt;getMode();&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 eload API also has the common eload functions that don&amp;#39;t need a strategy because they are always valid, regardless of mode.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;Calibration and Configuration Data&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The functionality to store calibration and configuration data in Flash is described in a separate article: &lt;a class="jive-link-wiki-small" href="/technologies/test-and-measurement/w/documents/3317/programmable-electronic-load---calibration-data-in-flash"&gt;Programmable Electronic Load - Calibration Data in Flash&lt;/a&gt;.&lt;/p&gt;&lt;p style="margin:0;"&gt;The calibration and configuration procedures are documented in &lt;a class="jive-link-wiki-small" href="/technologies/test-and-measurement/w/documents/3318/programmable-electronic-load---calibration-steps"&gt;Programmable Electronic Load - Calibration Steps&lt;/a&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;Changes To Standard MSP_EXP432P401R.c&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The standard file generated by the TI-RTOS application wizard has defaults for peripherals.&lt;/p&gt;&lt;p style="margin:0;"&gt;The following has changed: none - I removed this section because with the external ADC/DAC board and the SimpleLink RTOS version, everything is kept standard.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h1&gt;Remote Software&lt;/h1&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;Teminal&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Serial communication to the USB UART port.&lt;/p&gt;&lt;p style="margin:0;"&gt;9600/8/1/None&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/453x437/__key/communityserver-wikis-components-files/00-00-00-00-21/1715.contentimage_5F00_143955.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/1715.contentimage_143955.png-453x437.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=pGpwz%2B71AFHPR9Lvc%2FiWmIhI8%2Fu7oPhKuj2hC1LT6Xw%3D&amp;amp;se=2026-04-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=zSMMUr2KmEjWBq4/+6WLoQ==" style="max-height: 437px;max-width: 453px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;SCPI is a non-echoing protocol. To make the characters you type show in the Terminal, set Local echo to Force on.&lt;/p&gt;&lt;p style="margin:0;"&gt;If you also set Local line editing to Force on, you have the opportunity to correct characters in the current line before they are sent to the serial port.&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/451x436/__key/communityserver-wikis-components-files/00-00-00-00-21/0310.contentimage_5F00_143956.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/0310.contentimage_143956.png-451x436.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=tAMnWRdxrf%2FLQbBydTiIUuIM5LnFTXhVpdCMmRh0BEA%3D&amp;amp;se=2026-04-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=GJkpccjMVDSmum2MCFS+0g==" style="max-height: 436px;max-width: 451px;" /&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;Test:&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;*IDN?;SYST:ERR:COUN?&lt;/pre&gt;&lt;/p&gt;&lt;div style="display:none;"&gt;&lt;/div&gt;&lt;p style="margin:0;"&gt;Should return&lt;/p&gt;&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;THEBREADBOARD,ELECTRONICLOAD,0,01.00;0&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;h4&gt;Windows GUI&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;There are two &lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/16x16/__key/communityserver-wikis-components-files/00-00-00-00-21/7266.contentimage_5F00_1.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/7266.contentimage_1.png-16x16.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=5CZXuoYHE3cDKvnPto260J7g6YVTlQZ%2Bo5CZrgW0tuo%3D&amp;amp;se=2026-04-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=zGEM7pHL10Vt71gae75OdA==" style="max-height: 16px;max-width: 16px;" /&gt;&lt;/a&gt;&lt;/span&gt;. A .NET made by Peter, a Java version made by Jan.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;em&gt;The .net GUI&lt;/em&gt; supports reading the 4 ADCs, setting one of the DACs abd shoot any SCPI command.&lt;/p&gt;&lt;p style="margin:0;"&gt;There&amp;#39;s a window for SCPI output and a status window that shows SCPI errors.&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/692x531/__key/communityserver-wikis-components-files/00-00-00-00-21/8737.contentimage_5F00_143957.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/8737.contentimage_143957.png-691x531.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=nJ8MS0HazRVmnLkC3RgECtBTxn3cnpT%2F6j047Ag9XKs%3D&amp;amp;se=2026-04-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=wfEIOYKrINEMBidpQyRS7g==" style="max-height: 531px;max-width: 691px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;Source and binary available from &lt;a class="jive-link-external-small" href="https://github.com/thebreadboard/SCPI_DC_LOAD_WIN" rel="nofollow ugc noopener" target="_blank" title="https://github.com/thebreadboard/SCPI_DC_LOAD_WIN"&gt;https://github.com/thebreadboard/SCPI_DC_LOAD_WIN&lt;/a&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 id="5d9af150_cbd1_45cb_8b88_2fcd623e05b8"&gt;&lt;span&gt;&lt;a href="https://www.youtube.com/watch?v=j66abBoj7EI"&gt;www.youtube.com/watch&lt;/a&gt;&lt;/span&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;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;em&gt;The Java GUI&lt;/em&gt; is made as a POC that cross-platform instrument GUIs are possible.&lt;/p&gt;&lt;p style="margin:0;"&gt;It allows for switching the load on and off, set constant current and replicate the LCD values.&lt;/p&gt;&lt;p style="margin:0;"&gt;Additionally, you can requesst error status and run arbitrary SCPI commands.&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---java-gui-part-1-basic-functionality"&gt;Programmable Electronic Load - Java GUI Part 1: Basic Functionality&lt;/a&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&gt;&lt;a href="https://community.element14.com/resized-image/__size/543x611/__key/communityserver-wikis-components-files/00-00-00-00-21/3060.contentimage_5F00_143959.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/3060.contentimage_143959.png-543x611.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=hX7%2FSplMUc6yCxIeHSPHE55OQ66Ea15%2Fw9GtGDR0y88%3D&amp;amp;se=2026-04-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=qfFtwa6N0B0W+1LYkw8+IQ==" style="max-height: 611px;max-width: 543px;" /&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;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;LabVIEW&lt;/h4&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;The instrument comes with a LabVIEW library: &lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---write-a-labview-library-part-1-initialise-block"&gt;Programmable Electronic Load - Write a LabVIEW Library part 1: Initialise Block&lt;/a&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#333333;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/1131x529/__key/communityserver-wikis-components-files/00-00-00-00-21/0825.contentimage_5F00_143960.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/0825.contentimage_143960.png-1131x528.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=rwqXmVjI7gxwpUbgirSj%2BaSfpuOWKzvOiloqw5xN76M%3D&amp;amp;se=2026-04-19T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=9YCiQs04cBQV99iM+emkIQ==" style="max-height: 528px;max-width: 1131px;" /&gt;&lt;/a&gt;&lt;/span&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:#333333;font-family:&amp;#39;courier new&amp;#39;, courier;"&gt;&lt;span id="60dd5c44_9713_4d77_af40_be35c5c81478"&gt;&lt;span&gt;&lt;a href="https://www.youtube.com/watch?v=rfST8ne7IAo"&gt;www.youtube.com/watch&lt;/a&gt;&lt;/span&gt;&lt;/span&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;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="1" class="jiveBorder" height="687" style="border:1px solid #c6c6c6;height:644px;width:773px;"&gt;&lt;thead&gt;&lt;tr&gt;&lt;th style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;color:#505050;background-color:#f2f2f2;text-align:left;" valign="middle"&gt;&lt;p style="margin:0;"&gt;&lt;strong&gt;Related blog&lt;/strong&gt;&lt;/p&gt;&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="1" style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-wiki-small" href="/technologies/test-and-measurement/w/documents/3267/programmable-electronic-load---input-enable-functionality"&gt;Programmable Electronic Load - Input Enable Functionality&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&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;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&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;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---dac-adc-boosterpack"&gt;Programmable Electronic Load - DAC / ADC BoosterPack&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="1" style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---analog-controller-and-driver-board"&gt;Programmable Electronic Load - Analog Controller and Driver Board&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---scpi-interface-and-error-handling"&gt;Programmable Electronic Load - SCPI interface and Error Handling&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---uart"&gt;Programmable Electronic Load - UART&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---rtos-config"&gt;Programmable Electronic Load - RTOS Config&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-wiki-small" href="/technologies/test-and-measurement/w/documents/3317/programmable-electronic-load---calibration-data-in-flash"&gt;Programmable Electronic Load - Calibration Data in Flash&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-wiki-small" href="/technologies/test-and-measurement/w/documents/3318/programmable-electronic-load---calibration-steps"&gt;Programmable Electronic Load - Calibration Steps&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---lcd-display"&gt;Programmable Electronic Load - LCD Display&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="1" style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-wiki-small" href="/technologies/test-and-measurement/w/documents/4855/programmable-electronic-load---adc-firmware"&gt;Programmable Electronic Load - ADC Firmware&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---current-sense-circuit"&gt;Programmable Electronic Load - Current Sense Circuit&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---boosterpack-header-use"&gt;Programmable Electronic Load - BoosterPack Header Use&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-wiki-small" href="/technologies/test-and-measurement/w/documents/4880/programmable-electronic-load---todo-and-done"&gt;Programmable Electronic Load - ToDo and Done&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;background-color:#f2f2f2;padding:6px;"&gt;&lt;span&gt;&lt;a href="/members/peteroakes"&gt;Robert Peter Oakes&lt;/a&gt;&lt;/span&gt; articles:&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="1" style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/electronic-dc-load---design-and-build-to-test-psu-project"&gt;Electronic DC Load - Design and Build to test PSU Project&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-external-small" href="https://youtu.be/vd5IBFFjnOc" rel="nofollow ugc noopener" target="_blank"&gt;youtube: Electronic DC Load Design and Testing&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-external-small" href="https://youtu.be/BuYB9qPHGNY" rel="nofollow ugc noopener" target="_blank"&gt;youtube: Full Build Analogue DC Load&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-external-small" href="https://youtu.be/rh32ylmlz-A" rel="nofollow ugc noopener" target="_blank"&gt;youtube: Electronic DC Load - Performance Improvements&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/products/raspberry-pi/b/blog/posts/raspberry-pi-2-fun-with-i2c-dacs-and-adc-s"&gt;Raspberry PI 2, Fun with I2C DACs and ADC&amp;#39;s&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;background-color:#f2f2f2;padding:6px;"&gt;&lt;span&gt;&lt;a href="/members/jc2048"&gt;jc2048&lt;/a&gt;&lt;/span&gt; articles:&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load-dynamic-behaviour-part-1-overview"&gt;Programmable Electronic Load: Dynamic Behaviour: Part 1 Overview&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load-dynamic-behaviour-part-2-the-servo-loop"&gt;Programmable Electronic Load: Dynamic Behaviour: Part 2 The Servo Loop&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load-dynamic-behaviour-part-3-effect-of-output-inductance"&gt;Programmable Electronic Load: Dynamic Behaviour: Part 3 Effect of Output Inductance&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load-dynamic-behaviour-part-4-effect-of-output-voltage-change"&gt;Programmable Electronic Load: Dynamic Behaviour: Part 4 Effect of Output Voltage Change&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load-dynamic-behaviour-part-5-stability"&gt;Programmable Electronic Load: Dynamic Behaviour: Part 5 Stability&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="1" style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-load-build"&gt;Programmable Load Build&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;background-color:#f2f2f2;padding:6px;"&gt;&lt;span&gt;&lt;a href="/members/jancumps"&gt;Jan Cumps&lt;/a&gt;&lt;/span&gt; articles:&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="1" style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-wiki-small" href="/technologies/test-and-measurement/w/documents/3257/programmable-electronic-load---adc-and-dac-boosterpack-test"&gt;Programmable Electronic Load - ADC and DAC BoosterPack test&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="1" style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-wiki-small" href="/technologies/test-and-measurement/w/documents/3264/programmable-electronic-load---analyse-the-summing-node-zero-point"&gt;Programmable Electronic Load - Analyse the Summing Node Zero Point&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---measurements-part-1-control-circuit"&gt;Programmable Electronic Load - Measurements Part 1: Control Circuit&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;background-color:#dfe9db;padding:6px;"&gt;Java GUI&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="1" style="border:1px solid black;border:1px solid #c6c6c6;background-color:#ffffff;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---java-gui-part-1-basic-functionality"&gt;Programmable Electronic Load - Java GUI Part 1: Basic Functionality&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---java-gui-part-2-support-for-current-mode-input-on-off-error-log"&gt;Programmable Electronic Load - Java GUI Part 2: Support for Current Mode, Input On/Off, Error Log&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;background-color:#dfe9db;padding:6px;"&gt;LabView&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---write-a-labview-library-part-1-initialise-block"&gt;Programmable Electronic Load - Write a LabVIEW Library part 1: Initialise Block&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---write-a-labview-library-part-2-read-output-block"&gt;Programmable Electronic Load - Write a LabVIEW Library part 2: Read Output Block&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---write-a-labview-library-part-3-close-block"&gt;Programmable Electronic Load - Write a LabVIEW Library part 3: Close Block&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---write-a-labview-library-part-4-function-set-block"&gt;Programmable Electronic Load - Write a LabVIEW Library part 4: Function Set Block&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---write-a-labview-library-part-5-input-control-block"&gt;Programmable Electronic Load - Write a LabVIEW Library part 5: Input Control Block&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---write-a-labview-library-part-6-raw-dac-block"&gt;Programmable Electronic Load - Write a LabVIEW Library part 6: Raw DAC Block&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---write-a-labview-library-part-7-raw-adc-block"&gt;Programmable Electronic Load - Write a LabVIEW Library part 7: Raw ADC Block&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---automating-a-dc-switcher-efficiency-test-with-labview"&gt;Programmable Electronic Load - Automating a DC Switcher Efficiency Test with LabVIEW&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;background-color:transparent;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---labview-test-automation-characterise-the-instrument"&gt;Programmable Electronic Load - LabVIEW Test Automation: Characterise the Instrument&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;background-color:transparent;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/programmable-electronic-load---labview-test-automation-characterise-the-instrument-pt-2-oscilloscope-measurements"&gt;Programmable Electronic Load - LabVIEW Test Automation: Characterise the Instrument Pt 2: Oscilloscope Measurements&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;background-color:transparent;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="/technologies/test-and-measurement/b/blog/posts/example-labview-scenario-test-a-design-with-a-rigol-psu-and-a-keithley-dmm"&gt;Example LabVIEW Scenario: test a design with a Rigol PSU and a Keithley DMM&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;background-color:#dfe9db;padding:6px;"&gt;TI-RTOS: Switching to the SimpleLink Distribution&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="https://www.element14.com/community/people/jancumps/blog/2018/05/05/switch-from-ti-rtos-to-simplelink-posix-threads-and-semaphores"&gt;Switch from TI-RTOS to SimpleLink POSIX: Threads and Semaphores&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="https://www.element14.com/community/people/jancumps/blog/2018/05/11/switch-from-ti-rtos-to-simplelink-posix-eeprom-api"&gt;Switch from TI-RTOS to SimpleLink POSIX: EEPROM API&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="https://www.element14.com/community/people/jancumps/blog/2018/05/12/switch-from-ti-rtos-to-simplelink-posix-from-mailbox-to-message-queue"&gt;Switch from TI-RTOS to SimpleLink POSIX: From MailBox to Message Queue&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="https://www.element14.com/community/people/jancumps/blog/2018/05/14/switch-from-ti-rtos-to-simplelink-posix-lcd-display-driver"&gt;Switch from TI-RTOS to SimpleLink POSIX: LCD Display Driver&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;a class="jive-link-blog-small" href="https://www.element14.com/community/people/jancumps/blog/2018/05/15/switch-from-ti-rtos-to-simplelink-posix-sleeping"&gt;Switch from TI-RTOS to SimpleLink POSIX: Sleep when Idle&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #c6c6c6;padding:6px;"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;div class="migration-injected-attachments"&gt;&lt;div style="font-weight:bold;margin:15px 0 5px 0;"&gt;Attachments:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;table style="border:0;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="2"&gt;&lt;span class="_se_attachment" id="attid_https://www.element14.com/community/api/core/v3/attachments/225543"&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-21/pcb_5F00_proto.zip"&gt;community.element14.com/.../pcb_5F00_proto.zip&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;&lt;span class="_se_attachment" id="attid_https://www.element14.com/community/api/core/v3/attachments/228119"&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-21/eload_5F00_v1_5F00_20170227.zip"&gt;community.element14.com/.../eload_5F00_v1_5F00_20170227.zip&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;&lt;span class="_se_attachment" id="attid_https://www.element14.com/community/api/core/v3/attachments/243650"&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-21/eload_5F00_1_5F00_2a.zip"&gt;community.element14.com/.../eload_5F00_1_5F00_2a.zip&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;&lt;span class="_se_attachment" id="attid_https://www.element14.com/community/api/core/v3/attachments/244382"&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-21/bom.ods"&gt;community.element14.com/.../bom.ods&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;&lt;span class="_se_attachment" id="attid_https://www.element14.com/community/api/core/v3/attachments/252828"&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-21/MSP432_5F00_SCPI_5F00_ElectronicLoad_5F00_20180102.zip"&gt;community.element14.com/.../MSP432_5F00_SCPI_5F00_ElectronicLoad_5F00_20180102.zip&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;&lt;span class="_se_attachment" id="attid_https://www.element14.com/community/api/core/v3/attachments/252870"&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-21/eload_5F00_power_5F00_20180104.zip"&gt;community.element14.com/.../eload_5F00_power_5F00_20180104.zip&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;&lt;span class="_se_attachment" id="attid_https://www.element14.com/community/api/core/v3/attachments/258631"&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-21/eload.zip"&gt;community.element14.com/.../eload.zip&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;&lt;span class="_se_attachment" id="attid_https://www.element14.com/community/api/core/v3/attachments/258632"&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-21/eload_5F00_examples.zip"&gt;community.element14.com/.../eload_5F00_examples.zip&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;&lt;span class="_se_attachment" id="attid_https://www.element14.com/community/api/core/v3/attachments/261880"&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-21/MSP432_5F00_SCPI_5F00_ElectronicLoad_5F00_20180514.zip"&gt;community.element14.com/.../MSP432_5F00_SCPI_5F00_ElectronicLoad_5F00_20180514.zip&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;&lt;span class="_se_attachment" id="attid_https://www.element14.com/community/api/core/v3/attachments/265891"&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-21/measureefficiency.zip"&gt;community.element14.com/.../measureefficiency.zip&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;&lt;span class="_se_attachment" id="attid_https://www.element14.com/community/api/core/v3/attachments/265892"&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-21/measureefficiency_5F00_5V_5F00_10V_5F00_600mA_5F00_RAW.zip"&gt;community.element14.com/.../measureefficiency_5F00_5V_5F00_10V_5F00_600mA_5F00_RAW.zip&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;&lt;span class="_se_attachment" id="attid_https://www.element14.com/community/api/core/v3/attachments/267603"&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-21/MSP432_5F00_SCPI_5F00_ElectronicLoad_5F00_v_5F00_00_5F00_0_5F00_0_5F00_1_5F00_20180914.zip"&gt;community.element14.com/.../MSP432_5F00_SCPI_5F00_ElectronicLoad_5F00_v_5F00_00_5F00_0_5F00_0_5F00_1_5F00_20180914.zip&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;&lt;span class="_se_attachment" id="attid_https://www.element14.com/community/api/core/v3/attachments/284293"&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-00-21/MSP432_5F00_SCPI_5F00_ElectronicLoad_5F00_20190706.zip"&gt;community.element14.com/.../MSP432_5F00_SCPI_5F00_ElectronicLoad_5F00_20190706.zip&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: load_cell, metrology, msp432, ti-rtos, launchpad, laboratory, instrument&lt;/div&gt;
</description></item></channel></rss>