<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>HAL Templates on STMBLv5 Documentation</title><link>https://freakontrol.github.io/stmbl/docs/hal_templates/</link><description>Recent content in HAL Templates on STMBLv5 Documentation</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://freakontrol.github.io/stmbl/docs/hal_templates/index.xml" rel="self" type="application/rss+xml"/><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/acim/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/acim/</guid><description>&lt;h1 id="acim">
 ACIM
 &lt;a class="anchor" href="#acim">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load acim_ttc&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">acim_ttc0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">9&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.max_torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">acim_ttc0.t_max&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.neg_min_torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">acim_ttc0.t_max&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.max_vel&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">acim_ttc0.torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.torque_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">acim_ttc0.polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">acim_ttc0.vel_m&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel1.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">acim_ttc0.mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">acim_ttc0.sensorless&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.q_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">acim_ttc0.q_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.d_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">acim_ttc0.d_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cmd_mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">acim_ttc0.cmd_mode&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.phase_mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">acim_ttc0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.vel&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">acim_ttc0.vel_e&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_acim.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/acim.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/acim_foc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/acim_foc/</guid><description>&lt;h1 id="acim_foc">
 ACIM_FOC
 &lt;a class="anchor" href="#acim_foc">#&lt;/a>
&lt;/h1>
&lt;p>induction motor, rotor flux orientation on the encoder.&lt;br>
link after pid: link pid, link acim_foc. Needs in the config:&lt;br>
acim_flux0.tr, acim_flux0.lmr (idacim), acim_foc0.id_n,&lt;br>
conf0.l = sigma*Ls (leakage), conf0.lq 0, conf0.psi 0.&lt;br>
field weakening: acim_fw0.duty = hv0.duty (optional)&lt;br>
optional, all off by default; values that fit any motor:&lt;br>
acim_foc0.k_boost 2, acim_foc0.boost_max 0.3 (flux boost)&lt;br>
acim_flux0.tr_flux_min 0.95, tr_acc_max 0.3 (tr MRAS gates;&lt;br>
tr_ki is per motor, spindle 1e-4; tr_iq_min about 0.03 x id_n&lt;br>
to adapt at no load)&lt;br>
acim_flux0.lmr_sat from idacim; i_knee, tr_sat from a tr map&lt;br>
acim_flux0.lmr_ki 0.5: lmr trim, for checking lmr_sat&lt;br>
fluxopt0.min 0.5: light-load flux reduction (1 = off,&lt;br>
default); lower flux at idle, less torque on a&lt;br>
sudden load until the flux is back (tr)&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/com_test/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/com_test/</guid><description>&lt;h1 id="com_test">
 COM_TEST
 &lt;a class="anchor" href="#com_test">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sim0.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.com_fb_no_offset&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.mot_abs_fb_no_offset&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave3&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.com_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">20.000000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain3&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">20.000000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sim0.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.d_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1.000000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1.000000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.max_pos_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_com_test.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/com_test.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/conf/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/conf/</guid><description>&lt;h1 id="conf">
 CONF
 &lt;a class="anchor" href="#conf">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load conf&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.r&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.l&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.01&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.j&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.000025&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.j_lpf&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">100.0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.psi&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.055&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.mot_fb_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.mot_fb_res&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">16384&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.com_fb_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.com_fb_res&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">16384&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.joint_fb_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.joint_fb_res&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">16384&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.high_mot_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">80&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.max_mot_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">100&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.phase_time&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.phase_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.max_vel&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">320&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.max_acc&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">80000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.max_force&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.max_dc_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">15&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.max_ac_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.cmd_res&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">16384&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.max_dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">380&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.max_hv_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">90&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.max_pos_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1.5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.high_dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">350&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.low_dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">24&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.high_hv_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">70&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.fan_hv_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">50&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.pos_bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">25&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.vel_bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">250&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.vel_d&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.vel_g&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.torque_g&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.cur_bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">3000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.max_sat&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.high_ipm_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">125&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.max_ipm_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">140&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_conf.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/conf.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/dc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/dc/</guid><description>&lt;h1 id="dc">
 DC
 &lt;a class="anchor" href="#dc">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load dc_ttc&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">dc_ttc0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">9&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">dc_ttc0.psi&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.psi&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">dc_ttc0.torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.torque_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.d_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.phase_mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.q_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">dc_ttc0.cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cmd_mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.phase_time&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.phase_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_dc.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/dc.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/en/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/en/</guid><description>&lt;h1 id="en">
 EN
 &lt;a class="anchor" href="#en">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load en&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">en0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">en0.en_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">en0.en_out0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">en0.fault&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.fault&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">en0.time&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_en.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/en.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/enc_cmd/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/enc_cmd/</guid><description>&lt;h1 id="enc_cmd">
 ENC_CMD
 &lt;a class="anchor" href="#enc_cmd">#&lt;/a>
&lt;/h1>
&lt;p>incremental position command: link enc_cmd. conf0.cmd_res =&lt;br>
counts per rev: quadrature lines x 4, step/dir steps per rev&lt;/p>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># incremental position command: link enc_cmd. conf0.cmd_res =&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># counts per rev: quadrature lines x 4, step/dir steps per rev&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load enc_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">enc_cmd0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">enc_cmd0.res&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.cmd_res&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">rev0.in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">enc_cmd0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.cmd_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">enc_cmd0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.cmdg&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_enc_cmd.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/enc_cmd.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/enc_fb0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/enc_fb0/</guid><description>&lt;h1 id="enc_fb0">
 ENC_FB0
 &lt;a class="anchor" href="#enc_fb0">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load enc_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">adc0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">enc_fb0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">enc_fb0.res&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.mot_fb_res&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">enc_fb0.sin&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">adc0.sin0l&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">enc_fb0.cos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">adc0.cos0l&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">enc_fb0.quad&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">adc0.quad&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">enc_fb0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_abs_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">enc_fb0.abs_pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_state&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">enc_fb0.state&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.mot_fb_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">enc_fb0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fb0y&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">enc_fb0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fb0g&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">enc_fb0.vel&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel1.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">enc_fb0.amp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">adc0.amp0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">enc_fb0.en_index&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_enc_fb0.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/enc_fb0.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/encdmm_fb0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/encdmm_fb0/</guid><description>&lt;h1 id="encdmm_fb0">
 ENCDMM_FB0
 &lt;a class="anchor" href="#encdmm_fb0">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load dmm&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">dmm0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">dmm0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_abs_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">dmm0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.mot_fb_polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_state&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.mot_fb_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">dmm0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fb0y&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">dmm0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fb0g&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_encdmm_fb0.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/encdmm_fb0.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/encm_fb0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/encm_fb0/</guid><description>&lt;h1 id="encm_fb0">
 ENCM_FB0
 &lt;a class="anchor" href="#encm_fb0">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load encm&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">encm0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">encm0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_abs_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">encm0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.mot_fb_polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_state&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">encm0.state&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.mot_fb_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">encm0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fb0y&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">encm0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fb0g&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_encm_fb0.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/encm_fb0.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/encs_fb0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/encs_fb0/</guid><description>&lt;h1 id="encs_fb0">
 ENCS_FB0
 &lt;a class="anchor" href="#encs_fb0">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load encs&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">encs0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">encs0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_abs_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">encs0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.mot_fb_polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_state&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">encs0.state&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.mot_fb_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">encs0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fb0y&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">encs0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fb0g&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_encs_fb0.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/encs_fb0.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/encws_fb0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/encws_fb0/</guid><description>&lt;h1 id="encws_fb0">
 ENCWS_FB0
 &lt;a class="anchor" href="#encws_fb0">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">link enc_fb0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">link uvw_fb0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">uvw0.mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">enc_fb0.en_index&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_encws_fb0.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/encws_fb0.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/fanuc_fb0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/fanuc_fb0/</guid><description>&lt;h1 id="fanuc_fb0">
 FANUC_FB0
 &lt;a class="anchor" href="#fanuc_fb0">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load encf&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">encf0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">encf0.com_pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_abs_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">encf0.com_pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_state&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.com_fb_polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.com_fb_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># commutation track: fb_switch commutates from com_pos + conf0.com_fb_offset&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># until encf is indexed (state 3), e.g. after a battery loss before the first&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># index crossing. id_pmsm prints conf0.com_fb_offset; append it to the config&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">encf0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_abs_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">encf0.abs_pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_state&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">encf0.state&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># an index re-reference while enabled is held as an offset on encf0.pos/turns&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># until disable, so the position loop does not jump&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">encf0.hold&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.mot_fb_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">encf0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.mot_fb_res&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1048576&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fb0y&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">encf0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fb0g&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_fanuc_fb0.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/fanuc_fb0.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/fanuc_io/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/fanuc_io/</guid><description>&lt;h1 id="fanuc_io">
 FANUC_IO
 &lt;a class="anchor" href="#fanuc_io">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load fanuc&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fanuc0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fanuc0.C2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">io0.CTX&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fanuc0.C1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">io0.C12&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fanuc0.C4&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">io0.CRX&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fanuc0.C8&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">io0.C54&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.cmd_remap&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fanuc0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_abs_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fanuc0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_state&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.com_fb_polecount&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_fanuc_io.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/fanuc_io.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/filters/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/filters/</guid><description>&lt;h1 id="filters">
 FILTERS
 &lt;a class="anchor" href="#filters">#&lt;/a>
&lt;/h1>
&lt;p>torque command filters, opt-in: link filters&lt;br>
(after link pmsm). pid0.torque_cmd -&amp;gt; biquad0&lt;br>
-&amp;gt; dob0 -&amp;gt; pmsm_ttc0; both pass through as set&lt;br>
here (biquad0.type 0, dob0.k 0).&lt;br>
rt_prio must be set before start: a comp&lt;br>
loaded at runtime without it never runs&lt;br>
(torque 0, fault 6 at enable). At runtime:&lt;br>
stop, link filters, start.&lt;br>
acim/dc: relink acim_ttc0 / acim_foc0 /&lt;br>
dc_ttc0 .torque to dob0.out instead.&lt;/p>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># torque command filters, opt-in: link filters&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># (after link pmsm). pid0.torque_cmd -&amp;gt; biquad0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># -&amp;gt; dob0 -&amp;gt; pmsm_ttc0; both pass through as set&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># here (biquad0.type 0, dob0.k 0).&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># rt_prio must be set before start: a comp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># loaded at runtime without it never runs&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># (torque 0, fault 6 at enable). At runtime:&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># stop, link filters, start.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># acim/dc: relink acim_ttc0 / acim_foc0 /&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># dc_ttc0 .torque to dob0.out instead.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load biquad&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load dob&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">biquad0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">8.3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">dob0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">8.4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">biquad0.in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.torque_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">dob0.in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">biquad0.out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pmsm_ttc0.torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">dob0.out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># observers see the filtered command&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel1.torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">dob0.out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel2.torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">dob0.out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pe0.torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">dob0.out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># notch: type 1, f0 = frf0.f_res from an&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># id_frf sweep that brackets one mode,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># q 2, depth 0..0.1. Only above crossover.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">biquad0.type&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># dob: j = total inertia (id_frf 5-60 Hz&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># total, or conf0.j + conf0.j_sys). k 1 needs&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># conf0.f/d/o = 0: dob estimates friction too&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># and k 1 with the friction ff counts it twice.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># dob0.k = 0 before id_mot / id_sys: dob cancels&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># the friction and offset they measure.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">dob0.vel&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel1.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># j_sys is a safe lower bound (j 0 with k 1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># feeds the command back on itself); set the&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># total per axis before k 1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">dob0.j&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.j_sys&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">dob0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_pid&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">dob0.bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">20&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">dob0.k&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">dob0.max&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_force&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># standstill hold with dob: pid0.hold_en 2. the&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># hold slews the compensation so the torque goes&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># to hold_o; with conf0.o 0 on a vertical axis&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># set dob0.hold_o to the id_sys o. dob0.max must&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># leave room: abs(o) + f or more&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">dob0.hold&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.hold&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">dob0.hold_o&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.o&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_filters.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/filters.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/flux_obs/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/flux_obs/</guid><description>&lt;h1 id="flux_obs">
 FLUX_OBS
 &lt;a class="anchor" href="#flux_obs">#&lt;/a>
&lt;/h1>
&lt;p>Spindle bench (14 Oct, no load): shadow within 0.03 rad cold; trim kp_s 20&lt;br>
ki_s 2 follows the rotor temperature (k 1.0 cold, 1.07-1.11 after 20 min&lt;br>
at 2352 rpm) and holds pos_err within 0.02 rad. Not tested under a&lt;br>
cutting load yet.&lt;br>
hybrid rotor flux observer (B5), for an induction motor on an encoder.&lt;br>
link after acim_foc: link flux_obs. Loads in shadow: flux_obs0.pos_err&lt;br>
shows how far the current model&amp;rsquo;s orientation is off at speed (tr).&lt;br>
To trim the slip with it: flux_obs0.kp_s 20, flux_obs0.ki_s 2 (k follows&lt;br>
the rotor temperature, minutes; faster chases load transients) and&lt;br>
angle0.slip = flux_obs0.slip; flux_obs0.k is then true/modelled slip.&lt;br>
flux_obs0.wc: crossover to the voltage model [rad/s electrical]&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/hx/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/hx/</guid><description>&lt;h1 id="hx">
 HX
 &lt;a class="anchor" href="#hx">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load hx&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hx0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1.5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hx0.gain&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">100&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_hx.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/hx.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/id_acim/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/id_acim/</guid><description>&lt;h1 id="id_acim">
 ID_ACIM
 &lt;a class="anchor" href="#id_acim">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load idacim&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idacim0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idacim0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.pos_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idacim0.en_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cur_bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idacim0.cur_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cmd_mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idacim0.cmd_mode&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.d_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idacim0.d_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.q_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idacim0.q_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idacim0.com_pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.vel&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idacim0.com_vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.rev&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idacim0.out_rev&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.r&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idacim0.r&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.l&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idacim0.l&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.lq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.psi&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idacim0.psi&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># identify with the dead time compensation off&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.drop_k&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idacim0.ud_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.ud_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idacim0.id_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.id_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idacim0.uq_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.uq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idacim0.iq_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.iq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idacim0.pwm_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.pwm_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idacim0.dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idacim0.loop_bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.cur_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idacim0.vel_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel1.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idacim0.pos_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.vel_fb&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_id_acim.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/id_acim.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/id_brk/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/id_brk/</guid><description>&lt;h1 id="id_brk">
 ID_BRK
 &lt;a class="anchor" href="#id_brk">#&lt;/a>
&lt;/h1>
&lt;p>breakaway torque at standstill only (idm0.brk_only): the test id_sys&lt;br>
ends with, with the drive&amp;rsquo;s own gains and conf0.o in the feedforward.&lt;br>
the trajectory holds the axis where it stands, idm ramps an extra torque&lt;br>
(idm0.brk_rate, 3 Nm/s) until the axis moves idm0.brk_win (0.002 rad),&lt;br>
positive then negative, and prints the static friction (half the&lt;br>
difference) and the static load (the mean, gravity on a vertical axis)&lt;br>
next to conf0.f and conf0.o. the axis moves brk_win each way and comes&lt;br>
back; about 15 s on a vertical axis. the velocity integrator is parked&lt;br>
for the run (pid0.vel_d = idm0.vel_d_pid, 1e6 while ramping).&lt;br>
starts on enable; disable to abort or clear. run it with dob0.k = 0&lt;br>
(dob cancels the ramp) and the brake released.&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/id_dac/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/id_dac/</guid><description>&lt;h1 id="id_dac">
 ID_DAC
 &lt;a class="anchor" href="#id_dac">#&lt;/a>
&lt;/h1>
&lt;p>one shot hv0.dac search: prints hv0.dac for a trip at iddac0.cur&lt;br>
set conf0.max_ac_cur over 1.05 x cur (1.2 x in mode 1) first; reset afterwards&lt;/p>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># one shot hv0.dac search: prints hv0.dac for a trip at iddac0.cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># set conf0.max_ac_cur over 1.05 x cur (1.2 x in mode 1) first; reset afterwards&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load iddac&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iddac0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iddac0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.pos_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.sat&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.hv_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iddac0.hv_error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iddac0.hv_fault&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.fault&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iddac0.max_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_ac_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iddac0.com_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.com_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iddac0.en_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cmd_mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iddac0.cmd_mode&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.d_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iddac0.d_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.q_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iddac0.q_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iddac0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.dac&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iddac0.dac&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 0 free axis (three angles), 1 loaded or blocked axis (rotor d axis)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iddac0.mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iddac0.cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">20&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># fast ramp: a slow one heats ipm0&amp;#39;s junction model at a fixed angle and&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># clamps the current before high trips (Z, 25 A at 20 A/s, 21 Oct)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iddac0.ramp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">200&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># scope: current command and feedback (4/A), dac under test (0.25/count),&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># hv fault code (4/code, 16 = HW overcurrent trip), search state (20/state)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iddac0.d_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.id_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iddac0.dac&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.25&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave3&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.fault&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain3&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave4&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iddac0.state&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain4&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">20&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_id_dac.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/id_dac.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/id_dc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/id_dc/</guid><description>&lt;h1 id="id_dc">
 ID_DC
 &lt;a class="anchor" href="#id_dc">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load iddc&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iddc0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iddc0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.pos_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iddc0.en_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cur_bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iddc0.cur_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cmd_mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iddc0.cmd_mode&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.q_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iddc0.q_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iddc0.com_pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.rev&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iddc0.out_rev&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.r&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iddc0.r&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.l&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iddc0.l&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.lq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.phase_mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># iddc drives a brushed motor on q alone; r and l are its own outputs&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iddc0.uq_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.uq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iddc0.iq_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.iq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iddc0.pwm_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.pwm_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iddc0.pos_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.pos_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iddc0.vel_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel1.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iddc0.vel_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel1.vel&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_id_dc.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/id_dc.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/id_frf/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/id_frf/</guid><description>&lt;h1 id="id_frf">
 ID_FRF
 &lt;a class="anchor" href="#id_frf">#&lt;/a>
&lt;/h1>
&lt;p>measure the coupling with a stepped-sine FRF (comp frf) for conf0.j_lpf.&lt;br>
replaces id_lpf&amp;rsquo;s ring down: it fits a two-mass model to the whole curve&lt;br>
instead of timing one ring. needs the axis free to move: it goes back and&lt;br>
forth at frf0.creep_vel between frf0.min_pos and frf0.max_pos about where&lt;br>
it starts (both sides, rad), measures only while cruising, and ends where&lt;br>
it started. the sweep prints a table, then the fit and conf0.j_lpf.&lt;br>
creep_vel 3 rad/s keeps the load sliding through the sine near the&lt;br>
anti-resonance, where it swings most (1 rad/s read the mode 10 % low in&lt;br>
the sim). the lowest point needs one cruise: (max_pos - min_pos) / creep_vel&lt;br>
has to exceed about 3 s at f_start 5 Hz.&lt;br>
starts on enable like the other id templates (frf0.start follows the pid&lt;br>
enable, so the creep starts once the loop runs); disable to abort or to&lt;br>
clear a finished sweep. unlinked, frf0.start = 1 / 0 starts and stops it.&lt;br>
run it before id_pid: j_lpf changes the plant the gains are tuned against.&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/id_lpf/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/id_lpf/</guid><description>&lt;h1 id="id_lpf">
 ID_LPF
 &lt;a class="anchor" href="#id_lpf">#&lt;/a>
&lt;/h1>
&lt;p>measure the coupling resonance for conf0.j_lpf (ids ring down, state 2.x).&lt;br>
needs conf0.j and conf0.j_sys from id_mot and id_sys. run it before id_pid:&lt;br>
j_lpf changes the plant the gains are tuned against. the axis goes&lt;br>
back and forth ids0.ring_reps times, in pairs at ids0.ring_vel and&lt;br>
1.5 x ring_vel rad/s, up to about 1.5 x ring_vel x ring_dwell rad each&lt;br>
way (15 rad), and ends where it started. the ring is timed at each&lt;br>
speed and a result needs both to agree, so speed ripple is not taken&lt;br>
for the coupling.&lt;br>
ids0.ring_vel = 0 twitches ids0.ring_pos rad from standstill instead,&lt;br>
which friction can stall before the ring is timed.&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/id_mot/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/id_mot/</guid><description>&lt;h1 id="id_mot">
 ID_MOT
 &lt;a class="anchor" href="#id_mot">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load idm&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idm0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idm0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idm0.pos_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.pos_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.pos_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idm0.pos_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.vel_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idm0.vel_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.acc_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idm0.acc_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.j_mot&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idm0.inertia&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.d&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idm0.damping&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.f&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idm0.friction&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.o&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idm0.offset&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># idm&amp;#39;s estimators converge only with each estimate fed back into the&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># feedforward, offset included. li 0.005 gives the offset loop a 25 s time&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># constant, inside 1% on a ~110 s run.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idm0.li&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.005&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.pos_bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idm0.pos_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.vel_bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idm0.vel_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># vel_d_pid is vel_d, or 1e6 (velocity integrator parked) during the&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># breakaway test (id_brk, or id_sys with idm0.brk 1)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.vel_d&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idm0.vel_d_pid&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idm0.torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.torque_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idm0.fb_torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.fb_torque_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># breakaway test: the ramp torque, limited to max_force&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.torque_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idm0.torque_ext&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idm0.brk_max&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_force&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idm0.cur_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.q_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idm0.cur_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.iq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idm0.scale&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.scale&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel1.torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel2.torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># the bare motor: conf0.j_sys would add the coupled axis&amp;#39;s inertia&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.j_sys&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.max_pos_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.max_sat&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.vel_g&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idm0.pos_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idm0.vel_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave4&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.fb_torque_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain4&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">100&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.send_step&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">21&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_id_mot.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/id_mot.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/id_pid/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/id_pid/</guid><description>&lt;h1 id="id_pid">
 ID_PID
 &lt;a class="anchor" href="#id_pid">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load ids&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ids0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ids0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.pos_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">ids0.pos_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.vel_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">ids0.vel_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.acc_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">ids0.acc_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.pos_bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">ids0.pos_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.vel_bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">ids0.vel_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.vel_d&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">ids0.vel_d&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ids0.pos_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.pos_error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ids0.vel_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.vel_error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ids0.cur_bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.cur_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ids0.pos_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.pos_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ids0.torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.torque_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ids0.fb_torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.fb_torque_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ids0.max_torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_force&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ids0.sat&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.sat&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ids0.pos_bw0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.pos_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ids0.vel_bw0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.vel_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ids0.vel_d0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.vel_d&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># speed mode (pid0.pos_en 0): vel_bw from speed noise and a load step&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ids0.pos_en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.pos_en&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.torque_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">ids0.torque_dist&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ids0.acc_lim&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_acc&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ids0.vel_lim&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.max_pos_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.max_sat&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.vel_g&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">ids0.pos_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">ids0.vel_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave4&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">ids0.min_cost&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain4&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">20&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#term0.wave1 = ids0.cost&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e">#term0.gain1 = 20&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave5&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">ids0.pos_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain5&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1.0;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave6&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">ids0.vel_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain6&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave7&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">ids0.vel_d&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain7&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">10.0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.send_step&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">21&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_id_pid.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/id_pid.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/id_pmsm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/id_pmsm/</guid><description>&lt;h1 id="id_pmsm">
 ID_PMSM
 &lt;a class="anchor" href="#id_pmsm">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load idpmsm&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.pos_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.sat&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idpmsm0.en_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cur_bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idpmsm0.cur_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.loop_bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.cur_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cmd_mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idpmsm0.cmd_mode&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.d_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idpmsm0.d_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.q_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idpmsm0.q_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idpmsm0.com_pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.rev&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idpmsm0.out_rev&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.r&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idpmsm0.r&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.l&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idpmsm0.l&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.lq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idpmsm0.lq&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># identify with the dead time compensation off&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.drop_k&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.ud_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.ud_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.uq_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.uq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.id_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.id_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.iq_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.iq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.pwm_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.pwm_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.pwm_freq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.pwm_freq&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.u_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.u_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.v_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.v_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># per pole back emf map on the psi test&amp;#39;s coast, summed on the f3 (emf0)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.emf_run&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idpmsm0.emf_run&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.emf_sel&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idpmsm0.emf_sel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.emf_pp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idpmsm0.emf_pp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.emf_val&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.emf_val&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.pos_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.mot_abs_fb_no_offset&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.mot_state&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.mot_state_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.com_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.com_fb_no_offset&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.com_rev&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.com_fb_rev&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.com_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.com_fb_polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idpmsm0.vel_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel1.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># runtime links are not flattened like the boot config: a = b, b = c -&amp;gt; a = c,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># so idpmsm0.com_polecount reads conf0.polecount through conf0.com_fb_polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">relink&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_id_pmsm.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/id_pmsm.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/id_sys/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/id_sys/</guid><description>&lt;h1 id="id_sys">
 ID_SYS
 &lt;a class="anchor" href="#id_sys">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">link id_mot&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.j_mot&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.j&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.j_sys&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idm0.inertia&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idm0.sys&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_id_sys.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/id_sys.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/id_sys_sl/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/id_sys_sl/</guid><description>&lt;h1 id="id_sys_sl">
 ID_SYS_SL
 &lt;a class="anchor" href="#id_sys_sl">#&lt;/a>
&lt;/h1>
&lt;p>id_sys without the encoder: link pid, link acim_foc, link sl_acim, link id_sys_sl.&lt;br>
idm sweeps vel_offset +- max_vel (default 125 +- 75 = 50..200 rad/s), one&lt;br>
direction, so sl_seq stays on the observer. idm starts once pid is enabled.&lt;br>
J and d come out as usual. f and o are both a constant torque here and&lt;br>
split arbitrarily: read f + o, and take f from an encoder run.&lt;br>
Set sl_seq0.acc &amp;gt;= idm0.max_acc, or sl_seq&amp;rsquo;s ramp cuts the profile.&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/id_tune/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/id_tune/</guid><description>&lt;h1 id="id_tune">
 ID_TUNE
 &lt;a class="anchor" href="#id_tune">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load idtune&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idtune0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># run after id_pmsm, with its results in the config. hv0.pos and hv0.vel stay&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># on the running path, so the angle tuned is the angle that runs.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idtune0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.pos_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.sat&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idtune0.en_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cmd_mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idtune0.cmd_mode&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.d_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idtune0.d_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.q_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idtune0.q_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.adv&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idtune0.adv&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># before hv0.drop_k is pointed at id_tune: the config&amp;#39;s drop_k, kept when&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># drop_knee &amp;gt; 0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idtune0.drop_k_cfg&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.drop_k&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idtune0.drop_knee&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.drop_knee&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.drop_k&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idtune0.drop_k&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idtune0.ud_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.ud_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idtune0.uq_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.uq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idtune0.id_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.id_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idtune0.iq_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.iq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idtune0.dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idtune0.vel_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel1.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idtune0.vel_e&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel2.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idtune0.r&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.r&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idtune0.l&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.l&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idtune0.lq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.lq&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_id_tune.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/id_tune.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/ipm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/ipm/</guid><description>&lt;h1 id="ipm">
 IPM
 &lt;a class="anchor" href="#ipm">#&lt;/a>
&lt;/h1>
&lt;p>bridge junction temperature model and its derate. The motor templates (pid,&lt;br>
uf and vf) link this at their end, so a config doesn&amp;rsquo;t: a second&lt;br>
link ipm loads an ipm1 nothing reads. The defaults are for the IKCM30F60GD;&lt;br>
link ipm_im06b50gc1 after the motor template for that module.&lt;br>
conf0.high_ipm_temp starts the derate, conf0.max_ipm_temp trips.&lt;/p>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># bridge junction temperature model and its derate. The motor templates (pid,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># uf and vf) link this at their end, so a config doesn&amp;#39;t: a second&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># link ipm loads an ipm1 nothing reads. The defaults are for the IKCM30F60GD;&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># link ipm_im06b50gc1 after the motor template for that module.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># conf0.high_ipm_temp starts the derate, conf0.max_ipm_temp trips.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load ipm&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">13&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.id&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.id_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.iq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.iq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.ud&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.ud_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.uq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.uq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.f_sw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.pwm_freq&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.case_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.hv_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.ipm_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">ipm0.temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.high_ipm_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.high_ipm_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_ipm_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_ipm_temp&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_ipm.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/ipm.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/ipm_ikcm30f60gd/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/ipm_ikcm30f60gd/</guid><description>&lt;h1 id="ipm_ikcm30f60gd">
 IPM_IKCM30F60GD
 &lt;a class="anchor" href="#ipm_ikcm30f60gd">#&lt;/a>
&lt;/h1>
&lt;p>IKCM30F60GD, the module fitted to v5.0: ipm.c&amp;rsquo;s own defaults, so linking&lt;br>
this after another module&amp;rsquo;s template restores them. Change both together.&lt;br>
rth_i and rth_d are the datasheet Rth(J-C), 1.58 and 2.05 K/W, times 1.5.&lt;/p>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># IKCM30F60GD, the module fitted to v5.0: ipm.c&amp;#39;s own defaults, so linking&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># this after another module&amp;#39;s template restores them. Change both together.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># rth_i and rth_d are the datasheet Rth(J-C), 1.58 and 2.05 K/W, times 1.5.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.f_sw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.pwm_freq&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.e_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">300&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.v_tc&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.00155&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.vi&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.667&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.ri&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.0442&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.ei&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">56.65e-6&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.ei_tc&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.00316&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.rth_i&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2.37&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.vd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.729&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.rd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.0306&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.ed&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">4.75e-6&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.ed_tc&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.00665&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.rth_d&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">3.08&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.tau1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.00041&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.tau2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.0143&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.tau3&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.229&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.fi1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.054&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.fi2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.170&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.fd1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.110&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ipm0.fd2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.247&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_ipm_ikcm30f60gd.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/ipm_ikcm30f60gd.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/ipm_im06b50gc1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/ipm_im06b50gc1/</guid><description>&lt;h1 id="ipm_im06b50gc1">
 IPM_IM06B50GC1
 &lt;a class="anchor" href="#ipm_im06b50gc1">#&lt;/a>
&lt;/h1>
&lt;p>IM06B50GC1, 600 V 50 A, pin and package compatible with the IKCM30F60GD.&lt;br>
Device values are the datasheet&amp;rsquo;s (V 1.20). rth is the datasheet Rth(J-C),&lt;br>
0.6 and 1.0 K/W, times 2.84: ipm.c fitted to the part&amp;rsquo;s SOA chart (Fig. 12,&lt;br>
15 kHz, 300 V, MI 0.8, PF 0.8, Tj 150 C) needs 2.63 at Tc 80 C, 1.74 at&lt;br>
125 C and 2.84 with the line extended to 30 C, a water cooled case.&lt;br>
ABS_MAX_CURRENT is unchanged.&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/jog_cmd/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/jog_cmd/</guid><description>&lt;h1 id="jog_cmd">
 JOG_CMD
 &lt;a class="anchor" href="#jog_cmd">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load jog&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load stp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">jog0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">stp0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2.1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">stp0.jog&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">jog0.jog&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">rev0.in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">stp0.mpos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.cmd_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_jog_cmd.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/jog_cmd.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/melody/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/melody/</guid><description>&lt;h1 id="melody">
 MELODY
 &lt;a class="anchor" href="#melody">#&lt;/a>
&lt;/h1>
&lt;h2 id="overview">
 Overview
 &lt;a class="anchor" href="#overview">#&lt;/a>
&lt;/h2>
&lt;p>Template for the &lt;code>melody&lt;/code> component: tunes, a ready chime and &lt;code>identify&lt;/code>&lt;br>
played as a tone on the motor&amp;rsquo;s d-axis current.&lt;/p>
&lt;h2 id="how-it-works">
 How It Works
 &lt;a class="anchor" href="#how-it-works">#&lt;/a>
&lt;/h2>
&lt;p>&lt;code>melody0&lt;/code> sits between the field current and hv: &lt;code>melody0.in&lt;/code> takes&lt;br>
&lt;code>pmsm_ttc0.id&lt;/code> (what &lt;code>pmsm&lt;/code> links to &lt;code>hv0.d_cmd&lt;/code>: the phasing current plus&lt;br>
the MTPA d current) and &lt;code>hv0.d_cmd&lt;/code> takes &lt;code>melody0.out&lt;/code>, which is &lt;code>in&lt;/code> plus&lt;br>
the tone. rt_prio 9.5 runs it after pmsm_ttc (9) and before hv (10). The&lt;br>
tone makes the stator hum without torque (with the commutation offset&lt;br>
right).&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/misc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/misc/</guid><description>&lt;h1 id="misc">
 MISC
 &lt;a class="anchor" href="#misc">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">reslimit0.pos_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.plot_fb_pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel0.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave3&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel1.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">20&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">20&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain3&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_misc.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/misc.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/obs_check/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/obs_check/</guid><description>&lt;h1 id="obs_check">
 OBS_CHECK
 &lt;a class="anchor" href="#obs_check">#&lt;/a>
&lt;/h1>
&lt;p>observer shadow check, on the encoder: link pid, link pmsm, link obs_check.&lt;br>
obs0.pos_err: observer minus the encoder angle.&lt;/p>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># observer shadow check, on the encoder: link pid, link pmsm, link obs_check.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># obs0.pos_err: observer minus the encoder angle.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load obs&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">9.4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.r&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.r&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.ld&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.l&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.lq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.lq&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.adv&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.adv&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.id&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.id_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.iq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.iq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.ud&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.ud_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.uq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.uq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.pos_ref&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">angle0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.vel_ref&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">angle0.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.slip&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.track&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">obs0.pos_err&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">obs0.err&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">obs0.eq&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave3&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">obs0.ok&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain3&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_obs_check.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/obs_check.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/ocdac/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/ocdac/</guid><description>&lt;h1 id="ocdac">
 OCDAC
 &lt;a class="anchor" href="#ocdac">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load ocdac&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.dac&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">ocdac0.dac&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">ocdac0.cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">20&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_ocdac.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/ocdac.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/pid/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/pid/</guid><description>&lt;h1 id="pid">
 PID
 &lt;a class="anchor" href="#pid">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load adc&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load reslimit&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load rev&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load fb_switch&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load pid&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load fault&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load hv&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load sim&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load io&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load iit&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load pe&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load angle&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">link conf&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">rev0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># after rev0: before it, pid0.pos_ext_cmd would read rev0.out a tick late&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># while vel0&amp;#39;s feedforward is current, a pos_error of acc * 200 us / pos_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">reslimit0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">4.5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">6&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel1.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">6&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel2.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">6&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">7&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.frt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">8&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">angle0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">9.5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iit0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">13&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sim0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">13&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">16&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">rev0.rev&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.cmd_rev&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_rev&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.mot_fb_rev&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_rev&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.com_fb_rev&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.joint_rev&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.joint_fb_rev&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">reslimit0.res&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.mot_fb_res&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel1.j&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.j&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel2.j&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.j&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.j_mot&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.j&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.d&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.d&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.f&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.f&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.o&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.o&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># standstill hold (pid0.hold_en, default 0 = off): at rest the torque&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># goes to o instead of staying where stiction froze it. 1 without dob,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># 2 with dob (filters.txt links dob0.hold)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.hold_o&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.o&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.j_sys&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.j_sys&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.j_lpf&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.j_lpf&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.pos_bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.pos_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.vel_bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.vel_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.vel_d&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.vel_d&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.vel_g&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.vel_g&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.torque_g&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.torque_g&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.max_vel&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.neg_min_vel&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.max_acc&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_acc&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.max_torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_force&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.neg_min_torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_force&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_sat&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_sat&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_pos_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_pos_error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_dc_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_dc_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_ac_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_ac_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.high_dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.high_dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.min_dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.low_dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_hv_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_hv_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_mot_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_mot_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.high_hv_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.high_hv_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.high_mot_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.high_mot_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.fan_hv_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.fan_hv_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.fan_mot_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.fan_mot_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.ac_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.abs_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.rev&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.out_rev&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.r&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.r&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.l&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.l&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.lq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.lq&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.psi&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.psi&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cur_bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.cur_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cur_ff&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.cur_ff&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cur_ind&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.cur_ind&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.max_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_ac_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">reslimit0.pos_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">rev0.out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.cmd_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">reslimit0.pos_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.mot_fb_polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.com_fb_polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_offset&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.mot_fb_offset&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.joint_offset&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.joint_fb_offset&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_offset&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.com_fb_offset&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.phase_time&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.phase_time&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.phase_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.phase_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel0.pos_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">rev0.out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel1.pos_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.vel_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel1.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel1.torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.torque_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel2.pos_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.com_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel2.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel2.torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.torque_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_pid&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.pos_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">reslimit0.pos_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.vel_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel0.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.acc_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel0.acc&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.pos_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.pos_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.vel_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel1.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">rev0.in_d&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel0.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.pos_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.pos_error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.sat&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.sat&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.hv_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.hv_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.dc_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.dc_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.hv_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.fault&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.fb_ready&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.state&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.sbrake&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.sbrake&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.sbrake_arm&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.sbrake_en&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.vel_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel1.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.stop&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.rstop&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">angle0.pos_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel2.pos_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">angle0.vel_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel2.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">angle0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.vel&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">angle0.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.scale&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.scale&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fan&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.hv_fan&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fault&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.fault&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.state&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.state&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pe0.udc&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pe0.idc&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pe0.ud&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pe0.uq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pe0.id&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.id_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pe0.iq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.iq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pe0.torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.torque_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pe0.vel&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel1.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pe0.r&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.r&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pe0.j&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.j&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pe0.cap&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.00054&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iit0.max_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_mot_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iit0.high_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.high_mot_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iit0.max_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_ac_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.mot_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iit0.temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iit0.cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.abs_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># bridge junction model and derate, conf0.high_ipm_temp and max_ipm_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">link ipm&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_pid.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/pid.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/pmsm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/pmsm/</guid><description>&lt;h1 id="pmsm">
 PMSM
 &lt;a class="anchor" href="#pmsm">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load pmsm_ttc&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pmsm_ttc0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">9&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pmsm_ttc0.psi&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.psi&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pmsm_ttc0.polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pmsm_ttc0.pos_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel2.pos_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pmsm_ttc0.torque&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pid0.torque_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># pmsm_ttc0.mtpa 1: id/iq split for the least current per torque (ld != lq)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pmsm_ttc0.ld&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.l&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pmsm_ttc0.lq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.lq&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pmsm_ttc0.id_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.id&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.d_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pmsm_ttc0.id&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.q_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pmsm_ttc0.cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cmd_mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.phase_mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">angle0.pos_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pmsm_ttc0.pos_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">angle0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_pmsm.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/pmsm.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/pos_filter/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/pos_filter/</guid><description>&lt;h1 id="pos_filter">
 POS_FILTER
 &lt;a class="anchor" href="#pos_filter">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load pos_filter&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pos_filter-1.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">6&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pos_filter-1.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pos_filter-1.pos_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">rev0.out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pos_filter-1.vel_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">rev0.out_d&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pos_filter-1.bandwidth&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1000&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pos_filter-1.vel_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">reslimit0.pos_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pos_filter-1.pos_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.vel_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pos_filter-1.vel_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.acc_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pos_filter-1.acc_out&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_pos_filter.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/pos_filter.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/res_fb0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/res_fb0/</guid><description>&lt;h1 id="res_fb0">
 RES_FB0
 &lt;a class="anchor" href="#res_fb0">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load res&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">adc0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">res0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">res0.sin&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">adc0.sin0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">res0.cos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">adc0.cos0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">adc0.res_mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">res0.res_mode&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">res0.quad&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">adc0.quad&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">res0.poles&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.mot_fb_polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">res0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_abs_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">res0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.mot_fb_polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_state&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">res0.state&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.mot_fb_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">res0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">res0.vel&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel1.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fb0y&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">res0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fb0g&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_res_fb0.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/res_fb0.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/rl/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/rl/</guid><description>&lt;h1 id="rl">
 RL
 &lt;a class="anchor" href="#rl">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">link pid&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">link pmsm&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.max_ac_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">15&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load rl&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">rl0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">6&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">rl0.en_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.d_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">rl0.ud_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.q_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">rl0.uq_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">rl0.id_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.id_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">rl0.iq_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.iq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">rl0.ud_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.ud_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">rl0.uq_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.uq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cmd_mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">rl0.ud_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.id_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">rl0.r&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave3&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">rl0.ld&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">30&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain3&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">3000&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_rl.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/rl.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/sensorless/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/sensorless/</guid><description>&lt;h1 id="sensorless">
 SENSORLESS
 &lt;a class="anchor" href="#sensorless">#&lt;/a>
&lt;/h1>
&lt;p>sensorless start and observer, common part. Use sl_pmsm or sl_acim.&lt;/p>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># sensorless start and observer, common part. Use sl_pmsm or sl_acim.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load obs&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load sl_seq&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sl_seq0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">9.3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">9.4&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.r&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.r&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.ld&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.l&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.lq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.lq&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.adv&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.adv&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.id&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.id_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.iq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.iq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.ud&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.ud_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.uq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.uq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.pos_ref&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">angle0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.vel_ref&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">angle0.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.track&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sl_seq0.track&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sl_seq0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_pid&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sl_seq0.vel_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel0.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sl_seq0.polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sl_seq0.obs_ok&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">obs0.ok&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sl_seq0.obs_vel&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">obs0.vel_m&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sl_seq0.e_min&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">obs0.e_min&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sl_seq0.pid_en&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.pos_en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.vel_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">obs0.vel_m&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.vel_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sl_seq0.vel_ref&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.acc_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sl_seq0.acc_ref&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">angle0.src&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sl_seq0.src&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">angle0.vel_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sl_seq0.vel_e&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">angle0.pos_obs&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">obs0.pos_c&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">angle0.vel_obs&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">obs0.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.d_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sl_seq0.d_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.q_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sl_seq0.q_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sl_seq0.state&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">obs0.chk_err&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">obs0.vel_m&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave3&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.iq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.05&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.gain3&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_sensorless.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/sensorless.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/sl_acim/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/sl_acim/</guid><description>&lt;h1 id="sl_acim">
 SL_ACIM
 &lt;a class="anchor" href="#sl_acim">#&lt;/a>
&lt;/h1>
&lt;p>induction motor sensorless: link pid, link acim_foc, link sl_acim.&lt;br>
obs uses conf0.l = sigma*Ls for both axes (conf0.lq 0). chk_err is not&lt;br>
meaningful here: the encoder angle is the rotor&amp;rsquo;s, not the flux&amp;rsquo;s.&lt;br>
From the motor values: i_f = id_n, align_time 3 * tr, w_hand where the&lt;br>
emf is 5 * obs0.e_min, hyst w_hand / 3 (sl_seq0.align, hand show them);&lt;br>
a value in the config wins. obs0.bw = 5 * w_hand * polecount (sl_seq0.obs_bw).&lt;br>
Optional, with a spindle encoder: sl_seq0.vel_enc = &amp;lt;encoder speed,&lt;br>
e.g. vel1.vel&amp;gt;, sl_seq0.enc_tol 1 (multiple of acim_flux0.slip_max);&lt;br>
then acim_flux0.tr_ks 1 trims tr from the slip error in steady holds.&lt;br>
command through ramp0: sl_seq0.vel_cmd = ramp0.vel_cmd (sensorless&lt;br>
links vel0.vel); pid takes sl_seq0.vel_ref, keep no pid0.vel_ext_cmd line.&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/sl_pmsm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/sl_pmsm/</guid><description>&lt;h1 id="sl_pmsm">
 SL_PMSM
 &lt;a class="anchor" href="#sl_pmsm">#&lt;/a>
&lt;/h1>
&lt;p>PMSM without the encoder in the loop: link pid, link pmsm, link sl_pmsm.&lt;br>
The encoder stays for fb_ready and for obs0.chk_err (observer vs encoder).&lt;br>
Set in the config: sl_seq0.i_f, sl_seq0.acc, obs0.bw. w_hand 0 = where&lt;br>
the emf is 5 * obs0.e_min (from conf0.psi), hyst w_hand / 3.&lt;/p>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># PMSM without the encoder in the loop: link pid, link pmsm, link sl_pmsm.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># The encoder stays for fb_ready and for obs0.chk_err (observer vs encoder).&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># Set in the config: sl_seq0.i_f, sl_seq0.acc, obs0.bw. w_hand 0 = where&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># the emf is 5 * obs0.e_min (from conf0.psi), hyst w_hand / 3.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">link sensorless&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sl_seq0.psi&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.psi&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sl_seq0.d_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pmsm_ttc0.id&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sl_seq0.q_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pmsm_ttc0.cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.slip&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">obs0.pos_chk&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">pmsm_ttc0.pos_out&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_sl_pmsm.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/sl_pmsm.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/smartabs_fb0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/smartabs_fb0/</guid><description>&lt;h1 id="smartabs_fb0">
 SMARTABS_FB0
 &lt;a class="anchor" href="#smartabs_fb0">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load smartabs&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">smartabs0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.8&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">smartabs0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_abs_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">smartabs0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.mot_fb_polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.mot_state&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">smartabs0.state&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.mot_fb_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">smartabs0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fb0y&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">smartabs0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fb0g&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_smartabs_fb0.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/smartabs_fb0.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/sserial/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/sserial/</guid><description>&lt;h1 id="sserial">
 SSERIAL
 &lt;a class="anchor" href="#sserial">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load sserial&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load vel_int&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load linrev&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load idx_home&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2.3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.frt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2.0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">linrev0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2.1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel_int0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2.2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idx_home0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2.05&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">linrev0.cmd_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.pos_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">linrev0.cmd_d_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.pos_cmd_d&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel_int0.pos_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">linrev0.cmd_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel_int0.vel_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">linrev0.cmd_d_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.enable&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.fault&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.fault&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.fault_code&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.last_fault&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.cmd_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">linrev0.fb_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idx_home0.pos_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">linrev0.fb_d_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel1.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idx_home0.fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.mot_fb_no_offset&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idx_home0.fb_abs&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.mot_abs_fb_no_offset&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idx_home0.index_en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.index_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idx_home0.mot_state&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fb_switch0.mot_state_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.index_clear&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idx_home0.index_clear&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">linrev0.rev_clear&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.index_clear&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">linrev0.abs_neg&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.mot_fb_rev&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.pos_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">linrev0.fb_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.vel_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">linrev0.fb_d_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># feedback timing: tune per axis, tools/sserial_advance.py&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.pos_advance&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.0003&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">rev0.in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel_int0.pos_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">rev0.in_d&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel_int0.vel_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.vel_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">rev0.out_d&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># acceleration feedforward from the host frames (pid.txt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># links vel0.acc, 0 here: vel0 is off)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel_int0.max_acc&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_acc&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">rev0.in_dd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel_int0.acc_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.acc_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">rev0.out_dd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel_int0.wd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.002&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># frame clock: host jitter off the command&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel_int0.sync_k&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.05&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">velbuf0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.cmdy&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.cmdg&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.in0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">io0.ind0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.in1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">io0.ind1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.out0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.out0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.out1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.out1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.out2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.out2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.brake_release&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.out3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">linrev0.cmd_d_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.current&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.iq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">linrev0.scale&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.scale&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.clock_scale&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.clock_scale&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_sserial.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/sserial.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/sserial_dummy/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/sserial_dummy/</guid><description>&lt;h1 id="sserial_dummy">
 SSERIAL_DUMMY
 &lt;a class="anchor" href="#sserial_dummy">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load sserial&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load vel_int&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load linrev&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load idx_home&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2.3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.frt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2.0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">linrev0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2.1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel_int0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2.2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">idx_home0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2.05&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">linrev0.cmd_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.pos_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">linrev0.cmd_d_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.pos_cmd_d&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel_int0.pos_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">linrev0.cmd_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel_int0.vel_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">linrev0.cmd_d_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">linrev0.fb_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">linrev0.cmd_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">linrev0.fb_d_in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">linrev0.cmd_d_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.index_clear&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">idx_home0.index_clear&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">linrev0.rev_clear&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.index_clear&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">linrev0.abs_neg&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.mot_fb_rev&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.pos_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">linrev0.fb_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.vel_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">linrev0.fb_d_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># feedback timing: tune per axis, tools/sserial_advance.py&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.pos_advance&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.0003&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.vel_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">rev0.out_d&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># acceleration feedforward from the host frames (pid.txt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># links vel0.acc, 0 here: vel0 is off)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel_int0.max_acc&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_acc&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">rev0.in_dd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vel_int0.acc_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.acc_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">rev0.out_dd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel_int0.wd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.002&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># frame clock: host jitter off the command&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel_int0.sync_k&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.05&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.cmdy&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.cmdg&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">linrev0.scale&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">6&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_sserial_dummy.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/sserial_dummy.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/sserial_uf/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/sserial_uf/</guid><description>&lt;h1 id="sserial_uf">
 SSERIAL_UF
 &lt;a class="anchor" href="#sserial_uf">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load sserial&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2.0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.frt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2.0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.enable&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.fault&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.fault&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.fault_code&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.last_fault&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.cmd_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.vel_fb&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">avg0.out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># no position feedback: report pos_fb 0, not vel_fb extrapolated&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.pos_extrap&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.cmdy&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.cmdg&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.in0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">io0.ind0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.in1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">io0.ind1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.out0&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.out0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.out1&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.out1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.out2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.out2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.brake_release&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.out3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">linrev0.cmd_d_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">avg0.in&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">sserial0.pos_cmd_d&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sserial0.current&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.abs_cur&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_sserial_uf.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/sserial_uf.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/uf/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/uf/</guid><description>&lt;h1 id="uf">
 UF
 &lt;a class="anchor" href="#uf">#&lt;/a>
&lt;/h1>
&lt;p>deprecated: use vf.txt or vf_enc.txt instead.&lt;br>
known faults in shared/comps/uf2.c (header)&lt;/p>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># deprecated: use vf.txt or vf_enc.txt instead.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># known faults in shared/comps/uf2.c (header)&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load adc&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load fault&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load hv&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load sim&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load io&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load iit&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">link conf&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load uf&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0.9&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.frt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">uf0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">6&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">7&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iit0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">13&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sim0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">13&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">16&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_sat&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_sat&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_pos_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_pos_error&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_dc_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_dc_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_ac_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_ac_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.high_dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.min_dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.low_dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_hv_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_hv_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_mot_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_mot_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.high_hv_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.high_hv_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.high_mot_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.high_mot_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.fan_hv_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.fan_hv_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.fan_mot_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.fan_mot_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.ac_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.abs_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.rev&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.out_rev&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.r&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.r&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.l&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.l&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.lq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.lq&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.psi&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.psi&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cur_bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.cur_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cur_ff&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.cur_ff&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cur_ind&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.cur_ind&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.max_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_ac_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">uf0.polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">uf0.scale&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.scale&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">uf0.cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.abs_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">uf0.com_pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.d_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">uf0.u_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cmd_mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.phase_mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.hv_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.hv_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.dc_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.dc_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.hv_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.fault&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.scale&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.scale&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fan&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.hv_fan&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fault&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.fault&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.state&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.state&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iit0.max_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_mot_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iit0.high_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.high_mot_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iit0.max_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_ac_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.mot_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iit0.temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iit0.cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.abs_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># bridge junction model and derate, conf0.high_ipm_temp and max_ipm_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">link ipm&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_uf.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/uf.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/uvw_fb0/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/uvw_fb0/</guid><description>&lt;h1 id="uvw_fb0">
 UVW_FB0
 &lt;a class="anchor" href="#uvw_fb0">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load uvw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">adc0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">uvw0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">uvw0.u&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">io0.fb0a&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">uvw0.v&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">io0.fb0b&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">uvw0.w&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">io0.fb0z&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">uvw0.amp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">adc0.amp0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">uvw0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_abs_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">uvw0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_state&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">uvw0.state&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.com_fb_polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.com_fb_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.com_fb_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">uvw0.error&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_uvw_fb0.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/uvw_fb0.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/uvw_fb1/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/uvw_fb1/</guid><description>&lt;h1 id="uvw_fb1">
 UVW_FB1
 &lt;a class="anchor" href="#uvw_fb1">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load uvw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">adc0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">uvw0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">uvw0.u&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">io0.fb1a&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">uvw0.v&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">io0.fb1b&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">uvw0.w&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">io0.fb1z&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">uvw0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_abs_pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">uvw0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_state&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">uvw0.state&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fb_switch0.com_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.com_fb_polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fb1g&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fb1y&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">uvw0.led&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">conf0.com_fb_polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">uvw0.amp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">adc0.amp1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.com_fb_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">uvw0.error&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_uvw_fb1.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/uvw_fb1.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/velbuf/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/velbuf/</guid><description>&lt;h1 id="velbuf">
 VELBUF
 &lt;a class="anchor" href="#velbuf">#&lt;/a>
&lt;/h1>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load velbuf&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">velbuf0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">6&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># the frt part fills the buffer; without an frt_prio it never runs&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">velbuf0.frt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">6&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vel0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">velbuf0.pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">rev0.out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">pid0.vel_ext_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">velbuf0.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">rev0.in_d&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">velbuf0.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.wave2&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">velbuf0.vel&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_velbuf.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/velbuf.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/vf/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/vf/</guid><description>&lt;h1 id="vf">
 VF
 &lt;a class="anchor" href="#vf">#&lt;/a>
&lt;/h1>
&lt;p>induction motor, open loop V/f, no feedback needed.&lt;br>
replaces uf for new configs. speed: vf0.vel_cmd [rad/s mech]&lt;br>
set vf0.u_n (phase peak V at vf0.vel_n), u_boost, i_stall&lt;br>
encoder slip control: link vf_enc instead (or vf0.vel_fb = &lt;rotor speed>,&lt;br>
vf0.enc 1, vf0.slip_max (0 = 2 * slip_n); tune vf0.enc_kp / enc_ki.&lt;/p>
&lt;h2 id="configuration-content">
 Configuration Content
 &lt;a class="anchor" href="#configuration-content">#&lt;/a>
&lt;/h2>
&lt;div class="highlight">&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-ini" data-lang="ini">&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># induction motor, open loop V/f, no feedback needed.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># replaces uf for new configs. speed: vf0.vel_cmd [rad/s mech]&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># set vf0.u_n (phase peak V at vf0.vel_n), u_boost, i_stall&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># encoder slip control: link vf_enc instead (or vf0.vel_fb = &amp;lt;rotor speed&amp;gt;,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># vf0.enc 1, vf0.slip_max (0 = 2 * slip_n); tune vf0.enc_kp / enc_ki.&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load adc&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load fault&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load hv&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load sim&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load io&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load iit&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load vf&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">load angle&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">link conf&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">adc0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">7&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vf0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">8&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">angle0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">9.5&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">10&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iit0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">13&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">sim0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">13&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">term0.rt_prio&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">16&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_dc_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_dc_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_ac_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_ac_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.high_dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.high_dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.min_dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.low_dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_hv_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_hv_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.max_mot_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_mot_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.high_hv_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.high_hv_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.high_mot_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.high_mot_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.fan_hv_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.fan_hv_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.fan_mot_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.fan_mot_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.ac_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.abs_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.hv_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.hv_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.dc_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.dc_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.hv_error&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.fault&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.fb_ready&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">1&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">fault0.mot_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">iit0.temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.rev&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.out_rev&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.r&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.r&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.l&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.l&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.lq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.lq&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.psi&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cur_bw&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.cur_bw&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.max_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_ac_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.scale&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.scale&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.cmd_mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.phase_mode&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">2&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vf0.en&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.en_out&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vf0.polecount&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.polecount&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vf0.scale&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.scale&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vf0.id&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.id_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vf0.iq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.iq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vf0.ud&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.ud_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vf0.uq&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.uq_fb&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vf0.dc_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vf0.pwm_volt&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.pwm_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vf0.dc_hold&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.high_dc_volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># standstill boost: covers the dead time drop (no compensation in volt&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># mode) plus r * the magnetizing current, so the encoder path (enc 1) starts&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># from rest on the slip frequency alone. 12 V on the spindle (IM06B50GC1,&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># drop ~8.7 V); set it in the config for other motors&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">vf0.u_boost&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">12&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">angle0.src&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">3&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">angle0.vel_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vf0.vel_e&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.d_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">vf0.u_cmd&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.q_cmd&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">0&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.pos&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">angle0.pos&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">hv0.vel&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">angle0.vel&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fan&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.hv_fan&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.fault&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.fault&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">io0.state&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">fault0.state&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iit0.max_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_mot_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iit0.high_temp&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.high_mot_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iit0.max_cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">conf0.max_ac_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">iit0.cur&lt;/span> &lt;span style="color:#f92672">=&lt;/span> &lt;span style="color:#e6db74">hv0.abs_cur&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#75715e"># bridge junction model and derate, conf0.high_ipm_temp and max_ipm_temp&lt;/span>
&lt;/span>&lt;/span>&lt;span style="display:flex;">&lt;span>&lt;span style="color:#a6e22e">link ipm&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;img src="https://freakontrol.github.io/stmbl/stmbl/graph/f4_template_vf.dot.svg" data-zoomable alt="Description of image">
&lt;p>Source: 
 &lt;a href="https://github.com/freakontrol/stmbl/blob/main/conf/template/vf.txt">Configuration File&lt;/a>&lt;/p></description></item><item><title/><link>https://freakontrol.github.io/stmbl/docs/hal_templates/vf_enc/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://freakontrol.github.io/stmbl/docs/hal_templates/vf_enc/</guid><description>&lt;h1 id="vf_enc">
 VF_ENC
 &lt;a class="anchor" href="#vf_enc">#&lt;/a>
&lt;/h1>
&lt;p>induction motor, V/f with encoder slip control (vf0.enc 1): the field&lt;br>
runs at the rotor speed plus a slip from a speed PI, so the speed&lt;br>
holds to the encoder and the rotor cannot pull out. link vf_enc&lt;br>
instead of vf, then the feedback template (e.g. link fanuc_fb0) and&lt;br>
the motor&amp;rsquo;s values. speed: vf0.vel_cmd [rad/s mech]. Set in the config&lt;br>
as for vf: vf0.u_n, vel_n, slip_n, cur_n, i_stall. vf0.slip_max 0 = 2&lt;/p></description></item></channel></rss>