Loading files
This file is pinned to the selected release. Download the original to open it in your design tool.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 1.5.6.1">
<title>STMBL Getting Started Guide</title>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700">
<style>
/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
/* Remove comment around @import statement below when using as a custom stylesheet */
/*@import "https://fonts.googleapis.com/css?family=Open+Sans:300,300italic,400,400italic,600,600italic%7CNoto+Serif:400,400italic,700,700italic%7CDroid+Sans+Mono:400,700";*/
article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}
audio,canvas,video{display:inline-block}
audio:not([controls]){display:none;height:0}
[hidden],template{display:none}
script{display:none!important}
html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}
a{background:transparent}
a:focus{outline:thin dotted}
a:active,a:hover{outline:0}
h1{font-size:2em;margin:.67em 0}
abbr[title]{border-bottom:1px dotted}
b,strong{font-weight:bold}
dfn{font-style:italic}
hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}
mark{background:#ff0;color:#000}
code,kbd,pre,samp{font-family:monospace;font-size:1em}
pre{white-space:pre-wrap}
q{quotes:"\201C" "\201D" "\2018" "\2019"}
small{font-size:80%}
sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}
sup{top:-.5em}
sub{bottom:-.25em}
img{border:0}
svg:not(:root){overflow:hidden}
figure{margin:0}
fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}
legend{border:0;padding:0}
button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}
button,input{line-height:normal}
button,select{text-transform:none}
button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}
button[disabled],html input[disabled]{cursor:default}
input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}
input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}
input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}
button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}
textarea{overflow:auto;vertical-align:top}
table{border-collapse:collapse;border-spacing:0}
*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}
html,body{font-size:100%}
body{background:#fff;color:rgba(0,0,0,.8);padding:0;margin:0;font-family:"Noto Serif","DejaVu Serif",serif;font-weight:400;font-style:normal;line-height:1;position:relative;cursor:auto;tab-size:4;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}
a:hover{cursor:pointer}
img,object,embed{max-width:100%;height:auto}
object,embed{height:100%}
img{-ms-interpolation-mode:bicubic}
.left{float:left!important}
.right{float:right!important}
.text-left{text-align:left!important}
.text-right{text-align:right!important}
.text-center{text-align:center!important}
.text-justify{text-align:justify!important}
.hide{display:none}
img,object,svg{display:inline-block;vertical-align:middle}
textarea{height:auto;min-height:50px}
select{width:100%}
.center{margin-left:auto;margin-right:auto}
.spread{width:100%}
p.lead,.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{font-size:1.21875em;line-height:1.6}
.subheader,.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{line-height:1.45;color:#7a2518;font-weight:400;margin-top:0;margin-bottom:.25em}
div,dl,dt,dd,ul,ol,li,h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6,pre,form,p,blockquote,th,td{margin:0;padding:0;direction:ltr}
a{color:#2156a5;text-decoration:underline;line-height:inherit}
a:hover,a:focus{color:#1d4b8f}
a img{border:none}
p{font-family:inherit;font-weight:400;font-size:1em;line-height:1.6;margin-bottom:1.25em;text-rendering:optimizeLegibility}
p aside{font-size:.875em;line-height:1.35;font-style:italic}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{font-family:"Open Sans","DejaVu Sans",sans-serif;font-weight:300;font-style:normal;color:#ba3925;text-rendering:optimizeLegibility;margin-top:1em;margin-bottom:.5em;line-height:1.0125em}
h1 small,h2 small,h3 small,#toctitle small,.sidebarblock>.content>.title small,h4 small,h5 small,h6 small{font-size:60%;color:#e99b8f;line-height:0}
h1{font-size:2.125em}
h2{font-size:1.6875em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.375em}
h4,h5{font-size:1.125em}
h6{font-size:1em}
hr{border:solid #ddddd8;border-width:1px 0 0;clear:both;margin:1.25em 0 1.1875em;height:0}
em,i{font-style:italic;line-height:inherit}
strong,b{font-weight:bold;line-height:inherit}
small{font-size:60%;line-height:inherit}
code{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;color:rgba(0,0,0,.9)}
ul,ol,dl{font-size:1em;line-height:1.6;margin-bottom:1.25em;list-style-position:outside;font-family:inherit}
ul,ol{margin-left:1.5em}
ul li ul,ul li ol{margin-left:1.25em;margin-bottom:0;font-size:1em}
ul.square li ul,ul.circle li ul,ul.disc li ul{list-style:inherit}
ul.square{list-style-type:square}
ul.circle{list-style-type:circle}
ul.disc{list-style-type:disc}
ol li ul,ol li ol{margin-left:1.25em;margin-bottom:0}
dl dt{margin-bottom:.3125em;font-weight:bold}
dl dd{margin-bottom:1.25em}
abbr,acronym{text-transform:uppercase;font-size:90%;color:rgba(0,0,0,.8);border-bottom:1px dotted #ddd;cursor:help}
abbr{text-transform:none}
blockquote{margin:0 0 1.25em;padding:.5625em 1.25em 0 1.1875em;border-left:1px solid #ddd}
blockquote cite{display:block;font-size:.9375em;color:rgba(0,0,0,.6)}
blockquote cite:before{content:"\2014 \0020"}
blockquote cite a,blockquote cite a:visited{color:rgba(0,0,0,.6)}
blockquote,blockquote p{line-height:1.6;color:rgba(0,0,0,.85)}
@media only screen and (min-width:768px){h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2}
h1{font-size:2.75em}
h2{font-size:2.3125em}
h3,#toctitle,.sidebarblock>.content>.title{font-size:1.6875em}
h4{font-size:1.4375em}}
table{background:#fff;margin-bottom:1.25em;border:solid 1px #dedede}
table thead,table tfoot{background:#f7f8f7;font-weight:bold}
table thead tr th,table thead tr td,table tfoot tr th,table tfoot tr td{padding:.5em .625em .625em;font-size:inherit;color:rgba(0,0,0,.8);text-align:left}
table tr th,table tr td{padding:.5625em .625em;font-size:inherit;color:rgba(0,0,0,.8)}
table tr.even,table tr.alt,table tr:nth-of-type(even){background:#f8f8f7}
table thead tr th,table tfoot tr th,table tbody tr td,table tr td,table tfoot tr td{display:table-cell;line-height:1.6}
h1,h2,h3,#toctitle,.sidebarblock>.content>.title,h4,h5,h6{line-height:1.2;word-spacing:-.05em}
h1 strong,h2 strong,h3 strong,#toctitle strong,.sidebarblock>.content>.title strong,h4 strong,h5 strong,h6 strong{font-weight:400}
.clearfix:before,.clearfix:after,.float-group:before,.float-group:after{content:" ";display:table}
.clearfix:after,.float-group:after{clear:both}
*:not(pre)>code{font-size:.9375em;font-style:normal!important;letter-spacing:0;padding:.1em .5ex;word-spacing:-.15em;background-color:#f7f7f8;-webkit-border-radius:4px;border-radius:4px;line-height:1.45;text-rendering:optimizeSpeed;word-wrap:break-word}
*:not(pre)>code.nobreak{word-wrap:normal}
*:not(pre)>code.nowrap{white-space:nowrap}
pre,pre>code{line-height:1.45;color:rgba(0,0,0,.9);font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;font-weight:400;text-rendering:optimizeSpeed}
em em{font-style:normal}
strong strong{font-weight:400}
.keyseq{color:rgba(51,51,51,.8)}
kbd{font-family:"Droid Sans Mono","DejaVu Sans Mono",monospace;display:inline-block;color:rgba(0,0,0,.8);font-size:.65em;line-height:1.45;background-color:#f7f7f7;border:1px solid #ccc;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em white inset;box-shadow:0 1px 0 rgba(0,0,0,.2),0 0 0 .1em #fff inset;margin:0 .15em;padding:.2em .5em;vertical-align:middle;position:relative;top:-.1em;white-space:nowrap}
.keyseq kbd:first-child{margin-left:0}
.keyseq kbd:last-child{margin-right:0}
.menuseq,.menuref{color:#000}
.menuseq b:not(.caret),.menuref{font-weight:inherit}
.menuseq{word-spacing:-.02em}
.menuseq b.caret{font-size:1.25em;line-height:.8}
.menuseq i.caret{font-weight:bold;text-align:center;width:.45em}
b.button:before,b.button:after{position:relative;top:-1px;font-weight:400}
b.button:before{content:"[";padding:0 3px 0 2px}
b.button:after{content:"]";padding:0 2px 0 3px}
p a>code:hover{color:rgba(0,0,0,.9)}
#header,#content,#footnotes,#footer{width:100%;margin-left:auto;margin-right:auto;margin-top:0;margin-bottom:0;max-width:62.5em;*zoom:1;position:relative;padding-left:.9375em;padding-right:.9375em}
#header:before,#header:after,#content:before,#content:after,#footnotes:before,#footnotes:after,#footer:before,#footer:after{content:" ";display:table}
#header:after,#content:after,#footnotes:after,#footer:after{clear:both}
#content{margin-top:1.25em}
#content:before{content:none}
#header>h1:first-child{color:rgba(0,0,0,.85);margin-top:2.25rem;margin-bottom:0}
#header>h1:first-child+#toc{margin-top:8px;border-top:1px solid #ddddd8}
#header>h1:only-child,body.toc2 #header>h1:nth-last-child(2){border-bottom:1px solid #ddddd8;padding-bottom:8px}
#header .details{border-bottom:1px solid #ddddd8;line-height:1.45;padding-top:.25em;padding-bottom:.25em;padding-left:.25em;color:rgba(0,0,0,.6);display:-ms-flexbox;display:-webkit-flex;display:flex;-ms-flex-flow:row wrap;-webkit-flex-flow:row wrap;flex-flow:row wrap}
#header .details span:first-child{margin-left:-.125em}
#header .details span.email a{color:rgba(0,0,0,.85)}
#header .details br{display:none}
#header .details br+span:before{content:"\00a0\2013\00a0"}
#header .details br+span.author:before{content:"\00a0\22c5\00a0";color:rgba(0,0,0,.85)}
#header .details br+span#revremark:before{content:"\00a0|\00a0"}
#header #revnumber{text-transform:capitalize}
#header #revnumber:after{content:"\00a0"}
#content>h1:first-child:not([class]){color:rgba(0,0,0,.85);border-bottom:1px solid #ddddd8;padding-bottom:8px;margin-top:0;padding-top:1rem;margin-bottom:1.25rem}
#toc{border-bottom:1px solid #efefed;padding-bottom:.5em}
#toc>ul{margin-left:.125em}
#toc ul.sectlevel0>li>a{font-style:italic}
#toc ul.sectlevel0 ul.sectlevel1{margin:.5em 0}
#toc ul{font-family:"Open Sans","DejaVu Sans",sans-serif;list-style-type:none}
#toc li{line-height:1.3334;margin-top:.3334em}
#toc a{text-decoration:none}
#toc a:active{text-decoration:underline}
#toctitle{color:#7a2518;font-size:1.2em}
@media only screen and (min-width:768px){#toctitle{font-size:1.375em}
body.toc2{padding-left:15em;padding-right:0}
#toc.toc2{margin-top:0!important;background-color:#f8f8f7;position:fixed;width:15em;left:0;top:0;border-right:1px solid #efefed;border-top-width:0!important;border-bottom-width:0!important;z-index:1000;padding:1.25em 1em;height:100%;overflow:auto}
#toc.toc2 #toctitle{margin-top:0;margin-bottom:.8rem;font-size:1.2em}
#toc.toc2>ul{font-size:.9em;margin-bottom:0}
#toc.toc2 ul ul{margin-left:0;padding-left:1em}
#toc.toc2 ul.sectlevel0 ul.sectlevel1{padding-left:0;margin-top:.5em;margin-bottom:.5em}
body.toc2.toc-right{padding-left:0;padding-right:15em}
body.toc2.toc-right #toc.toc2{border-right-width:0;border-left:1px solid #efefed;left:auto;right:0}}
@media only screen and (min-width:1280px){body.toc2{padding-left:20em;padding-right:0}
#toc.toc2{width:20em}
#toc.toc2 #toctitle{font-size:1.375em}
#toc.toc2>ul{font-size:.95em}
#toc.toc2 ul ul{padding-left:1.25em}
body.toc2.toc-right{padding-left:0;padding-right:20em}}
#content #toc{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
#content #toc>:first-child{margin-top:0}
#content #toc>:last-child{margin-bottom:0}
#footer{max-width:100%;background-color:rgba(0,0,0,.8);padding:1.25em}
#footer-text{color:rgba(255,255,255,.8);line-height:1.44}
.sect1{padding-bottom:.625em}
@media only screen and (min-width:768px){.sect1{padding-bottom:1.25em}}
.sect1+.sect1{border-top:1px solid #efefed}
#content h1>a.anchor,h2>a.anchor,h3>a.anchor,#toctitle>a.anchor,.sidebarblock>.content>.title>a.anchor,h4>a.anchor,h5>a.anchor,h6>a.anchor{position:absolute;z-index:1001;width:1.5ex;margin-left:-1.5ex;display:block;text-decoration:none!important;visibility:hidden;text-align:center;font-weight:400}
#content h1>a.anchor:before,h2>a.anchor:before,h3>a.anchor:before,#toctitle>a.anchor:before,.sidebarblock>.content>.title>a.anchor:before,h4>a.anchor:before,h5>a.anchor:before,h6>a.anchor:before{content:"\00A7";font-size:.85em;display:block;padding-top:.1em}
#content h1:hover>a.anchor,#content h1>a.anchor:hover,h2:hover>a.anchor,h2>a.anchor:hover,h3:hover>a.anchor,#toctitle:hover>a.anchor,.sidebarblock>.content>.title:hover>a.anchor,h3>a.anchor:hover,#toctitle>a.anchor:hover,.sidebarblock>.content>.title>a.anchor:hover,h4:hover>a.anchor,h4>a.anchor:hover,h5:hover>a.anchor,h5>a.anchor:hover,h6:hover>a.anchor,h6>a.anchor:hover{visibility:visible}
#content h1>a.link,h2>a.link,h3>a.link,#toctitle>a.link,.sidebarblock>.content>.title>a.link,h4>a.link,h5>a.link,h6>a.link{color:#ba3925;text-decoration:none}
#content h1>a.link:hover,h2>a.link:hover,h3>a.link:hover,#toctitle>a.link:hover,.sidebarblock>.content>.title>a.link:hover,h4>a.link:hover,h5>a.link:hover,h6>a.link:hover{color:#a53221}
.audioblock,.imageblock,.literalblock,.listingblock,.stemblock,.videoblock{margin-bottom:1.25em}
.admonitionblock td.content>.title,.audioblock>.title,.exampleblock>.title,.imageblock>.title,.listingblock>.title,.literalblock>.title,.stemblock>.title,.openblock>.title,.paragraph>.title,.quoteblock>.title,table.tableblock>.title,.verseblock>.title,.videoblock>.title,.dlist>.title,.olist>.title,.ulist>.title,.qlist>.title,.hdlist>.title{text-rendering:optimizeLegibility;text-align:left;font-family:"Noto Serif","DejaVu Serif",serif;font-size:1rem;font-style:italic}
table.tableblock>caption.title{white-space:nowrap;overflow:visible;max-width:0}
.paragraph.lead>p,#preamble>.sectionbody>.paragraph:first-of-type p{color:rgba(0,0,0,.85)}
table.tableblock #preamble>.sectionbody>.paragraph:first-of-type p{font-size:inherit}
.admonitionblock>table{border-collapse:separate;border:0;background:none;width:100%}
.admonitionblock>table td.icon{text-align:center;width:80px}
.admonitionblock>table td.icon img{max-width:initial}
.admonitionblock>table td.icon .title{font-weight:bold;font-family:"Open Sans","DejaVu Sans",sans-serif;text-transform:uppercase}
.admonitionblock>table td.content{padding-left:1.125em;padding-right:1.25em;border-left:1px solid #ddddd8;color:rgba(0,0,0,.6)}
.admonitionblock>table td.content>:last-child>:last-child{margin-bottom:0}
.exampleblock>.content{border-style:solid;border-width:1px;border-color:#e6e6e6;margin-bottom:1.25em;padding:1.25em;background:#fff;-webkit-border-radius:4px;border-radius:4px}
.exampleblock>.content>:first-child{margin-top:0}
.exampleblock>.content>:last-child{margin-bottom:0}
.sidebarblock{border-style:solid;border-width:1px;border-color:#e0e0dc;margin-bottom:1.25em;padding:1.25em;background:#f8f8f7;-webkit-border-radius:4px;border-radius:4px}
.sidebarblock>:first-child{margin-top:0}
.sidebarblock>:last-child{margin-bottom:0}
.sidebarblock>.content>.title{color:#7a2518;margin-top:0;text-align:center}
.exampleblock>.content>:last-child>:last-child,.exampleblock>.content .olist>ol>li:last-child>:last-child,.exampleblock>.content .ulist>ul>li:last-child>:last-child,.exampleblock>.content .qlist>ol>li:last-child>:last-child,.sidebarblock>.content>:last-child>:last-child,.sidebarblock>.content .olist>ol>li:last-child>:last-child,.sidebarblock>.content .ulist>ul>li:last-child>:last-child,.sidebarblock>.content .qlist>ol>li:last-child>:last-child{margin-bottom:0}
.literalblock pre,.listingblock pre:not(.highlight),.listingblock pre[class="highlight"],.listingblock pre[class^="highlight "],.listingblock pre.CodeRay,.listingblock pre.prettyprint{background:#f7f7f8}
.sidebarblock .literalblock pre,.sidebarblock .listingblock pre:not(.highlight),.sidebarblock .listingblock pre[class="highlight"],.sidebarblock .listingblock pre[class^="highlight "],.sidebarblock .listingblock pre.CodeRay,.sidebarblock .listingblock pre.prettyprint{background:#f2f1f1}
.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{-webkit-border-radius:4px;border-radius:4px;word-wrap:break-word;padding:1em;font-size:.8125em}
.literalblock pre.nowrap,.literalblock pre[class].nowrap,.listingblock pre.nowrap,.listingblock pre[class].nowrap{overflow-x:auto;white-space:pre;word-wrap:normal}
@media only screen and (min-width:768px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:.90625em}}
@media only screen and (min-width:1280px){.literalblock pre,.literalblock pre[class],.listingblock pre,.listingblock pre[class]{font-size:1em}}
.literalblock.output pre{color:#f7f7f8;background-color:rgba(0,0,0,.9)}
.listingblock pre.highlightjs{padding:0}
.listingblock pre.highlightjs>code{padding:1em;-webkit-border-radius:4px;border-radius:4px}
.listingblock pre.prettyprint{border-width:0}
.listingblock>.content{position:relative}
.listingblock code[data-lang]:before{display:none;content:attr(data-lang);position:absolute;font-size:.75em;top:.425rem;right:.5rem;line-height:1;text-transform:uppercase;color:#999}
.listingblock:hover code[data-lang]:before{display:block}
.listingblock.terminal pre .command:before{content:attr(data-prompt);padding-right:.5em;color:#999}
.listingblock.terminal pre .command:not([data-prompt]):before{content:"$"}
table.pyhltable{border-collapse:separate;border:0;margin-bottom:0;background:none}
table.pyhltable td{vertical-align:top;padding-top:0;padding-bottom:0;line-height:1.45}
table.pyhltable td.code{padding-left:.75em;padding-right:0}
pre.pygments .lineno,table.pyhltable td:not(.code){color:#999;padding-left:0;padding-right:.5em;border-right:1px solid #ddddd8}
pre.pygments .lineno{display:inline-block;margin-right:.25em}
table.pyhltable .linenodiv{background:none!important;padding-right:0!important}
.quoteblock{margin:0 1em 1.25em 1.5em;display:table}
.quoteblock>.title{margin-left:-1.5em;margin-bottom:.75em}
.quoteblock blockquote,.quoteblock blockquote p{color:rgba(0,0,0,.85);font-size:1.15rem;line-height:1.75;word-spacing:.1em;letter-spacing:0;font-style:italic;text-align:justify}
.quoteblock blockquote{margin:0;padding:0;border:0}
.quoteblock blockquote:before{content:"\201c";float:left;font-size:2.75em;font-weight:bold;line-height:.6em;margin-left:-.6em;color:#7a2518;text-shadow:0 1px 2px rgba(0,0,0,.1)}
.quoteblock blockquote>.paragraph:last-child p{margin-bottom:0}
.quoteblock .attribution{margin-top:.5em;margin-right:.5ex;text-align:right}
.quoteblock .quoteblock{margin-left:0;margin-right:0;padding:.5em 0;border-left:3px solid rgba(0,0,0,.6)}
.quoteblock .quoteblock blockquote{padding:0 0 0 .75em}
.quoteblock .quoteblock blockquote:before{display:none}
.verseblock{margin:0 1em 1.25em 1em}
.verseblock pre{font-family:"Open Sans","DejaVu Sans",sans;font-size:1.15rem;color:rgba(0,0,0,.85);font-weight:300;text-rendering:optimizeLegibility}
.verseblock pre strong{font-weight:400}
.verseblock .attribution{margin-top:1.25rem;margin-left:.5ex}
.quoteblock .attribution,.verseblock .attribution{font-size:.9375em;line-height:1.45;font-style:italic}
.quoteblock .attribution br,.verseblock .attribution br{display:none}
.quoteblock .attribution cite,.verseblock .attribution cite{display:block;letter-spacing:-.025em;color:rgba(0,0,0,.6)}
.quoteblock.abstract{margin:0 0 1.25em 0;display:block}
.quoteblock.abstract blockquote,.quoteblock.abstract blockquote p{text-align:left;word-spacing:0}
.quoteblock.abstract blockquote:before,.quoteblock.abstract blockquote p:first-of-type:before{display:none}
table.tableblock{max-width:100%;border-collapse:separate}
table.tableblock td>.paragraph:last-child p>p:last-child,table.tableblock th>p:last-child,table.tableblock td>p:last-child{margin-bottom:0}
table.tableblock,th.tableblock,td.tableblock{border:0 solid #dedede}
table.grid-all>thead>tr>.tableblock,table.grid-all>tbody>tr>.tableblock{border-width:0 1px 1px 0}
table.grid-all>tfoot>tr>.tableblock{border-width:1px 1px 0 0}
table.grid-cols>*>tr>.tableblock{border-width:0 1px 0 0}
table.grid-rows>thead>tr>.tableblock,table.grid-rows>tbody>tr>.tableblock{border-width:0 0 1px 0}
table.grid-rows>tfoot>tr>.tableblock{border-width:1px 0 0 0}
table.grid-all>*>tr>.tableblock:last-child,table.grid-cols>*>tr>.tableblock:last-child{border-right-width:0}
table.grid-all>tbody>tr:last-child>.tableblock,table.grid-all>thead:last-child>tr>.tableblock,table.grid-rows>tbody>tr:last-child>.tableblock,table.grid-rows>thead:last-child>tr>.tableblock{border-bottom-width:0}
table.frame-all{border-width:1px}
table.frame-sides{border-width:0 1px}
table.frame-topbot{border-width:1px 0}
th.halign-left,td.halign-left{text-align:left}
th.halign-right,td.halign-right{text-align:right}
th.halign-center,td.halign-center{text-align:center}
th.valign-top,td.valign-top{vertical-align:top}
th.valign-bottom,td.valign-bottom{vertical-align:bottom}
th.valign-middle,td.valign-middle{vertical-align:middle}
table thead th,table tfoot th{font-weight:bold}
tbody tr th{display:table-cell;line-height:1.6;background:#f7f8f7}
tbody tr th,tbody tr th p,tfoot tr th,tfoot tr th p{color:rgba(0,0,0,.8);font-weight:bold}
p.tableblock>code:only-child{background:none;padding:0}
p.tableblock{font-size:1em}
td>div.verse{white-space:pre}
ol{margin-left:1.75em}
ul li ol{margin-left:1.5em}
dl dd{margin-left:1.125em}
dl dd:last-child,dl dd:last-child>:last-child{margin-bottom:0}
ol>li p,ul>li p,ul dd,ol dd,.olist .olist,.ulist .ulist,.ulist .olist,.olist .ulist{margin-bottom:.625em}
ul.checklist,ul.none,ol.none,ul.no-bullet,ol.no-bullet,ol.unnumbered,ul.unstyled,ol.unstyled{list-style-type:none}
ul.no-bullet,ol.no-bullet,ol.unnumbered{margin-left:.625em}
ul.unstyled,ol.unstyled{margin-left:0}
ul.checklist{margin-left:.625em}
ul.checklist li>p:first-child>.fa-square-o:first-child,ul.checklist li>p:first-child>.fa-check-square-o:first-child{width:1.25em;font-size:.8em;position:relative;bottom:.125em}
ul.checklist li>p:first-child>input[type="checkbox"]:first-child{margin-right:.25em}
ul.inline{margin:0 auto .625em auto;margin-left:-1.375em;margin-right:0;padding:0;list-style:none;overflow:hidden}
ul.inline>li{list-style:none;float:left;margin-left:1.375em;display:block}
ul.inline>li>*{display:block}
.unstyled dl dt{font-weight:400;font-style:normal}
ol.arabic{list-style-type:decimal}
ol.decimal{list-style-type:decimal-leading-zero}
ol.loweralpha{list-style-type:lower-alpha}
ol.upperalpha{list-style-type:upper-alpha}
ol.lowerroman{list-style-type:lower-roman}
ol.upperroman{list-style-type:upper-roman}
ol.lowergreek{list-style-type:lower-greek}
.hdlist>table,.colist>table{border:0;background:none}
.hdlist>table>tbody>tr,.colist>table>tbody>tr{background:none}
td.hdlist1,td.hdlist2{vertical-align:top;padding:0 .625em}
td.hdlist1{font-weight:bold;padding-bottom:1.25em}
.literalblock+.colist,.listingblock+.colist{margin-top:-.5em}
.colist>table tr>td:first-of-type{padding:.4em .75em 0 .75em;line-height:1;vertical-align:top}
.colist>table tr>td:first-of-type img{max-width:initial}
.colist>table tr>td:last-of-type{padding:.25em 0}
.thumb,.th{line-height:0;display:inline-block;border:solid 4px #fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}
.imageblock.left,.imageblock[style*="float: left"]{margin:.25em .625em 1.25em 0}
.imageblock.right,.imageblock[style*="float: right"]{margin:.25em 0 1.25em .625em}
.imageblock>.title{margin-bottom:0}
.imageblock.thumb,.imageblock.th{border-width:6px}
.imageblock.thumb>.title,.imageblock.th>.title{padding:0 .125em}
.image.left,.image.right{margin-top:.25em;margin-bottom:.25em;display:inline-block;line-height:0}
.image.left{margin-right:.625em}
.image.right{margin-left:.625em}
a.image{text-decoration:none;display:inline-block}
a.image object{pointer-events:none}
sup.footnote,sup.footnoteref{font-size:.875em;position:static;vertical-align:super}
sup.footnote a,sup.footnoteref a{text-decoration:none}
sup.footnote a:active,sup.footnoteref a:active{text-decoration:underline}
#footnotes{padding-top:.75em;padding-bottom:.75em;margin-bottom:.625em}
#footnotes hr{width:20%;min-width:6.25em;margin:-.25em 0 .75em 0;border-width:1px 0 0 0}
#footnotes .footnote{padding:0 .375em 0 .225em;line-height:1.3334;font-size:.875em;margin-left:1.2em;text-indent:-1.05em;margin-bottom:.2em}
#footnotes .footnote a:first-of-type{font-weight:bold;text-decoration:none}
#footnotes .footnote:last-of-type{margin-bottom:0}
#content #footnotes{margin-top:-.625em;margin-bottom:0;padding:.75em 0}
.gist .file-data>table{border:0;background:#fff;width:100%;margin-bottom:0}
.gist .file-data>table td.line-data{width:99%}
div.unbreakable{page-break-inside:avoid}
.big{font-size:larger}
.small{font-size:smaller}
.underline{text-decoration:underline}
.overline{text-decoration:overline}
.line-through{text-decoration:line-through}
.aqua{color:#00bfbf}
.aqua-background{background-color:#00fafa}
.black{color:#000}
.black-background{background-color:#000}
.blue{color:#0000bf}
.blue-background{background-color:#0000fa}
.fuchsia{color:#bf00bf}
.fuchsia-background{background-color:#fa00fa}
.gray{color:#606060}
.gray-background{background-color:#7d7d7d}
.green{color:#006000}
.green-background{background-color:#007d00}
.lime{color:#00bf00}
.lime-background{background-color:#00fa00}
.maroon{color:#600000}
.maroon-background{background-color:#7d0000}
.navy{color:#000060}
.navy-background{background-color:#00007d}
.olive{color:#606000}
.olive-background{background-color:#7d7d00}
.purple{color:#600060}
.purple-background{background-color:#7d007d}
.red{color:#bf0000}
.red-background{background-color:#fa0000}
.silver{color:#909090}
.silver-background{background-color:#bcbcbc}
.teal{color:#006060}
.teal-background{background-color:#007d7d}
.white{color:#bfbfbf}
.white-background{background-color:#fafafa}
.yellow{color:#bfbf00}
.yellow-background{background-color:#fafa00}
span.icon>.fa{cursor:default}
a span.icon>.fa{cursor:inherit}
.admonitionblock td.icon [class^="fa icon-"]{font-size:2.5em;text-shadow:1px 1px 2px rgba(0,0,0,.5);cursor:default}
.admonitionblock td.icon .icon-note:before{content:"\f05a";color:#19407c}
.admonitionblock td.icon .icon-tip:before{content:"\f0eb";text-shadow:1px 1px 2px rgba(155,155,0,.8);color:#111}
.admonitionblock td.icon .icon-warning:before{content:"\f071";color:#bf6900}
.admonitionblock td.icon .icon-caution:before{content:"\f06d";color:#bf3400}
.admonitionblock td.icon .icon-important:before{content:"\f06a";color:#bf0000}
.conum[data-value]{display:inline-block;color:#fff!important;background-color:rgba(0,0,0,.8);-webkit-border-radius:100px;border-radius:100px;text-align:center;font-size:.75em;width:1.67em;height:1.67em;line-height:1.67em;font-family:"Open Sans","DejaVu Sans",sans-serif;font-style:normal;font-weight:bold}
.conum[data-value] *{color:#fff!important}
.conum[data-value]+b{display:none}
.conum[data-value]:after{content:attr(data-value)}
pre .conum[data-value]{position:relative;top:-.125em}
b.conum *{color:inherit!important}
.conum:not([data-value]):empty{display:none}
dt,th.tableblock,td.content,div.footnote{text-rendering:optimizeLegibility}
h1,h2,p,td.content,span.alt{letter-spacing:-.01em}
p strong,td.content strong,div.footnote strong{letter-spacing:-.005em}
p,blockquote,dt,td.content,span.alt{font-size:1.0625rem}
p{margin-bottom:1.25rem}
.sidebarblock p,.sidebarblock dt,.sidebarblock td.content,p.tableblock{font-size:1em}
.exampleblock>.content{background-color:#fffef7;border-color:#e0e0dc;-webkit-box-shadow:0 1px 4px #e0e0dc;box-shadow:0 1px 4px #e0e0dc}
.print-only{display:none!important}
@media print{@page{margin:1.25cm .75cm}
*{-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}
a{color:inherit!important;text-decoration:underline!important}
a.bare,a[href^="#"],a[href^="mailto:"]{text-decoration:none!important}
a[href^="http:"]:not(.bare):after,a[href^="https:"]:not(.bare):after{content:"(" attr(href) ")";display:inline-block;font-size:.875em;padding-left:.25em}
abbr[title]:after{content:" (" attr(title) ")"}
pre,blockquote,tr,img,object,svg{page-break-inside:avoid}
thead{display:table-header-group}
svg{max-width:100%}
p,blockquote,dt,td.content{font-size:1em;orphans:3;widows:3}
h2,h3,#toctitle,.sidebarblock>.content>.title{page-break-after:avoid}
#toc,.sidebarblock,.exampleblock>.content{background:none!important}
#toc{border-bottom:1px solid #ddddd8!important;padding-bottom:0!important}
.sect1{padding-bottom:0!important}
.sect1+.sect1{border:0!important}
#header>h1:first-child{margin-top:1.25rem}
body.book #header{text-align:center}
body.book #header>h1:first-child{border:0!important;margin:2.5em 0 1em 0}
body.book #header .details{border:0!important;display:block;padding:0!important}
body.book #header .details span:first-child{margin-left:0!important}
body.book #header .details br{display:block}
body.book #header .details br+span:before{content:none!important}
body.book #toc{border:0!important;text-align:left!important;padding:0!important;margin:0!important}
body.book #toc,body.book #preamble,body.book h1.sect0,body.book .sect1>h2{page-break-before:always}
.listingblock code[data-lang]:before{display:block}
#footer{background:none!important;padding:0 .9375em}
#footer-text{color:rgba(0,0,0,.6)!important;font-size:.9em}
.hide-on-print{display:none!important}
.print-only{display:block!important}
.hide-for-print{display:none!important}
.show-for-print{display:inherit!important}}
</style>
</head>
<body class="article">
<div id="header">
<h1>STMBL Getting Started Guide</h1>
</div>
<div id="content">
<div class="sect1">
<h2 id="_description">Description</h2>
<div class="sectionbody">
<div class="paragraph">
<p>STMBL is a motor drive controlled by the STM32 microprocessor. It can
power motors of up to 2.2kW and up to around 350V DC bus voltage.</p>
</div>
<div class="paragraph">
<p>The name "STMBL" is based on the combination of the STM32 microprocessor
and BrushLess motor. However the drive is also capable of powering AC
induction motors. The hardware is also capable of driving 3-phase
stepper motors.</p>
</div>
<div class="paragraph">
<p>The drive is configurable for a wide range of command and feedback types
through a HAL layer analagous to that used by
<a href="http://linuxcnc.org/docs/2.7/html/hal/intro.html">LinuxCNC</a>.</p>
</div>
<div class="paragraph">
<p>Supported command interfaces are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Mesa Smart-Serial</p>
</li>
<li>
<p>Step-Dir</p>
</li>
<li>
<p>Quadrature</p>
</li>
<li>
<p>Serial</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>+/-10V control is not supported, though the hardware capability exists.</p>
</div>
<div class="paragraph">
<p>Supported feedback interfaces are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Encoder</p>
</li>
<li>
<p>Resolver</p>
</li>
<li>
<p>sin/cos 1vpp</p>
</li>
<li>
<p>Mitsubishi absolute encoder</p>
</li>
<li>
<p>Yaskawa absolute encoder</p>
</li>
<li>
<p>Sick Hyperface</p>
</li>
<li>
<p>Sanyo Denki absolute encoder</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Encoder power is 5V by default but 12V can be selected by jumper pads on
the PCB.</p>
</div>
<div class="paragraph">
<p>In addition to motor control and feedback each STMBL drive has two
+/-30V analogue inputs and three 24V / 2A digital outputs.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_anatomy_of_the_stmbl">Anatomy of the STMBL</h2>
<div class="sectionbody">
<div class="paragraph">
<p>The STMBL consists of two separate PCBs (though they are made as one,
assembled and then split to be connected in the manner shown below.
The vertical (top) board is the Low Voltage (LV) board and this handles
the command, feedback and configuration tasks. The STM32F4
microprocessor is in charge of these tasks.
The lower board is the
high-voltage (HV) board and this is where the power driver is situated.
The only connection between the two boards is a serial connection
through a 5kV isolation IC. To make this possible there is a second
STM32 chip on the lower board. This is an STM32F3 and is referred to as
the "F3" in the remainder of this document. The processor on the upper
board is referred to as "F4".</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/ISO1.svg" alt="ISO1">
</div>
</div>
<div class="paragraph">
<p>The connectors on the HV board are 5.08mm pitch. Those on the LV board
are 3.5mm pitch. Mating part numbers are:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>HV Power: <a href="https://octopart.com/1757019-phoenix+contact-789">1757019</a></p>
</li>
<li>
<p>HV Motor: <a href="https://octopart.com/1757022-phoenix+contact-902">1757022</a> or
<a href="https://octopart.com/1792760-phoenix+contact-29279">1792760</a></p>
</li>
<li>
<p>LV Power: <a href="https://octopart.com/1840366-phoenix+contact-6675">1840366</a> or
<a href="https://octopart.com/1862852-phoenix+contact-118535">1862852</a></p>
</li>
<li>
<p>IO: <a href="https://octopart.com/1840405-phoenix+contact-14126">1840405</a> or
<a href="https://octopart.com/1862894-phoenix+contact-79205">1862894</a></p>
</li>
</ul>
</div>
<div class="paragraph">
<p>If preferred 2 x 3 position or 3 x 2 position plugs can be inserted in
the 6-position sockets.</p>
</div>
<div class="paragraph">
<p>Logic power to the LV board should be 24V. A green LED will light
adjacent to the socket when power is supplied.</p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<div class="title">Warning</div>
</td>
<td class="content">
The LV board is safe up to about 30V but take care that 0V is
common with the PC GND before connecting a USB cable.
</td>
</tr>
</table>
</div>
<div class="paragraph">
<p>Motor power should be 30 to 350V, though the logic parts of the HV
board may work at 24V for firmware flashing etc. Again a green LED
adjacent to the connector confirms that the board is powered-up.</p>
</div>
<div class="admonitionblock warning">
<table>
<tr>
<td class="icon">
<div class="title">Warning</div>
</td>
<td class="content">
The HV and LV boards are isolated in normal use but it is easy
to accidentally connect them. One way to do this is via USB cables which
can easily tie GND lines together through the setup PC. It is imperative
that the HV board should be powered from an isolated (and preferably
low voltage) supply when flashing firmware.
</td>
</tr>
</table>
</div>
<div class="imageblock">
<div class="content">
<img src="images/ISO2.svg" alt="ISO2">
</div>
</div>
<div class="paragraph">
<p>The command and feedback connectors use standard 8P8C (RJ45) connectors
and standard CAT5 or CAT6 cables can be conveniently used. To connect
to cables with larger conductors than supported by CAT5 it is possible
to use, for example,
<a href="https://octopart.com/j00026a2001-telegärtner-24873031">Industrial CAT6a</a>
connectors which can accept core wires up to 1.6mm and overall cable
diameters up to 9.0mm.</p>
</div>
<div class="paragraph">
<p>Feedback 0 will typically be the encoder or resolver mounted on the
motor and feedback 1 can be used to connect either Hall sensors for
initial commutation or (potentially) scales mounted directly to the
axes. See the <a href="#_pinouts">Pinouts</a> section of this document for pin assigments
and typical wiring colour codes.</p>
</div>
<div class="paragraph">
<p>The 6-way socket below the 24V logic power connector contains the three
digital outputs. These are current-sinking (switch-to-GND) and each is
adjacent to a 24V suppply pin. DIO0 (nearest the top) is the one that is
typically used to operate the holding brake on motors so-equipped.</p>
</div>
<div class="paragraph">
<p>On the top of the drive are two analogue inputs, with 0V and 24V on
either side to that a potentiometer can be connected. These are
typically used as variable-threshold digital inputs and are used, for
example, for axis limit switches. However it is relatively simple to
configure them for other uses in the HAL layer.</p>
</div>
<div class="paragraph">
<p>Three LEDS on top of the unit indicate drive status. Red displays error
codes (using <a href="#_blink_codes">blink codes</a>). Amber indicates that all is well but the
drive is not enabled, and green shows that the drive is active and
operating normally.</p>
</div>
<div class="paragraph">
<p>If no LEDs on the top of the board are illuminated, and the green power
LEDs near the power connectors <em>are</em> illuminated then it is probably
necessary to <a href="#_flashing_firmware">flash the firmware</a>. If there are
LEDs lit on top of the drive then it is probably safe to assume that
firmware is loaded.</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_hal_hardware_abstraction_layer">HAL (Hardware Abstraction Layer)</h2>
<div class="sectionbody">
<div class="paragraph">
<p>STMBL uses a Hardware abstraction layer to configure the drive for
different types of motor, feedback and operation mode.
This is conceptually similar to the HAL in LinuxCNC but the format and
cmmands are different. Also, all pins are floating point so no data
conversion is needed.</p>
</div>
<div class="paragraph">
<p>An Application called <a href="#_servoterm">Servoterm</a> is used to interact with the HAL
interface and configure the drive. You will need to install and launch
this before it is possible to configure the STMBL.</p>
</div>
<div class="paragraph">
<p>STMBL HAL configuration does not use any commands other than the = sign
and the <a href="#_servoterm_commands">servoterm commands</a></p>
</div>
<div class="paragraph">
<p>Assuming that there is already a motor connected to the drive and that
the drive it powered up the <a href="#_servoterm">Servoterm</a> display should already be
indicating the motor position feedback. Rotating the motor shaft by hand
might produce something like:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/servoterm3.png" alt="servoterm3">
</div>
</div>
<div class="paragraph">
<p>Though it equally well might not if the configuration is set up for a
resolver and the motor has an encoder.</p>
</div>
<div class="paragraph">
<p>It should be possible to make the motor turn at this point without any
further configuration. The commands that follow will set the hv0 module
up to simply rotate the motor open-loop in direct-mode. (like a stepper
motor) with an excitation current of 0.5A. This should be safe for most
motors that the STMBL is a good match for, but you should choose your
own value. For an explanation of direct and quadrature current see the
section on <a href="#Motor Control Basics">[Motor Control Basics]</a></p>
</div>
<div class="paragraph">
<p><code>hv0.pos = sim0.vel</code>
<code>hv0.d_cmd = 0.5</code>
<code>hv0.en = 1</code></p>
</div>
<div class="paragraph">
<p>The rotation speed can be altered by changing the sim0 frequency:</p>
</div>
<div class="paragraph">
<p><code>sim0.freq = 5</code></p>
</div>
<div class="paragraph">
<p>STMBL v4 HAL contains a number of components that have built-in linking
behaviour.</p>
</div>
<div class="sect2">
<h3 id="_hal_modules">HAL modules</h3>
<div class="paragraph">
<p>The Servoterm command <code>show</code> will list all the HAL modules that can be
loaded (whereas <code>list</code> will show all those that currently are loaded)</p>
</div>
<div class="paragraph">
<p>The modules available are as follows (the link will take you to the
reference section for each component)</p>
</div>
<div class="paragraph">
<p><a href="HAL Reference.html#acim_ttc">acim_ttc</a> - The module used for AC induction
motors (cf pmsm) ttc is Torque to Current+
<a href="HAL Reference.html#adc">adc</a> - Analogue to digital converter for Resolver
feedback. Outputs the sine and cosine amplitudes.<br>
<a href="HAL Reference.html#conf">conf</a> - A module used to supply config data to
other modules.<br>
<a href="HAL Reference.html#curpid">curpid</a> - No idea<br>
<a href="HAL Reference.html#dc">dc</a> - No idea<br>
<a href="HAL Reference.html#dc_limits">dc_limits</a> - no idea<br>
<a href="HAL Reference.html#dc_ttc">dc_ttc</a> - no idea<br>
<a href="HAL Reference.html#dq">dq</a> - not much idea<br>
<a href="HAL Reference.html#enc_cmd">enc_cmd</a> - Used to supply position commands
through quadrature signals<br>
<a href="HAL Reference.html#enc_fb">enc_fb</a> Encoder counter, converts AB quadrature
and index on FB0 connector to motor position<br>
<a href="HAL Reference.html#encm">encm</a><br>
<a href="HAL Reference.html#fanuc">fanuc</a> Converts Fanuc 4-channel commutation
signals<br>
<a href="HAL Reference.html#fault">fault</a> Handles the checking and distribution of
fault information and reactons between the modules<br>
<a href="HAL Reference.html#fb_switch">fb_switch</a> This module arbitrates between
commutation inputs for motors where UVW (Hall) sensors are suppplied in
addition to an encoder.<br>
<a href="HAL Reference.html#hal_test">hal_test</a> Something to do with testing, I
assume<br>
<a href="HAL Reference.html#hv">hv</a> This module controls the HV board, provides the
current and voltage commands to the H-bridge.<br>
<a href="HAL Reference.html#idq">idq</a> - Something to do with commutation<br>
<a href="HAL Reference.html#idx_home">idx_home</a> - Handles homing to the index pulse<br>
<a href="HAL Reference.html#iit">iit</a> - No idea<br>
<a href="HAL Reference.html#io">io</a> - Controls the IO, both input and output.<br>
Including the feedback and command connector LEDs. Also mirrors ABZ and
UVW states.<br>
<a href="HAL Reference.html#linrev">linrev</a> - Converts linear position into motor
single-turn command positions and vice-versa.<br>
<a href="HAL Reference.html#move">move</a> - Surely does something<br>
<a href="HAL Reference.html#o_fb">o_fb</a> - A feedback, but from where?<br>
<a href="HAL Reference.html#pe">pe</a> - No idea.
<a href="HAL Reference.html#pid">pid</a> - The position PID controller.<br>
<a href="HAL Reference.html#pmsm">pmsm</a> - Permananet Magnet Servo Motor control
module. Required for nearly all servo motors.<br>
<a href="HAL Reference.html#pmsm_limits">pmsm_limits</a> - Controls the limits for
pmsm, used to clamp the PID<br>
<a href="HAL Reference.html#pmsm_ttc">pmsm_ttc</a> - PMSM torque to current
calculation<br>
<a href="HAL Reference.html#psi">psi</a> - Motor Constant calculations. Nm/A<br>
<a href="HAL Reference.html#ramp">ramp</a> - Ramp?<br>
<a href="HAL Reference.html#res">res</a> - Resolver module for motors that use them.
Calculates rotor position from the sine-cosine of ADC and generates the
excitation.<br>
<a href="HAL Reference.html#reslimit">reslimit</a> - Limitation for the Resolver
module<br>
<a href="HAL Reference.html#rev">rev</a> - Very important<br>
<a href="HAL Reference.html#scale">scale</a> - A scaling utility function.<br>
<a href="HAL Reference.html#sim">sim</a> - Provides a set of waveforms useful for motor
characterisation and testing.<br>
<a href="HAL Reference.html#spid">spid</a> - Simple PID. Usable but not used<br>
<a href="HAL Reference.html#sserial">sserial</a> - Handles communication through the
Mesa Electronics Smart Serial interface. Takes digital (floating point
position and velocity commands and returns digital position and current
feedback data. Also handles STMBL GPIO to LinuxCNC HAL. <br>
<a href="HAL Reference.html#stp">stp</a> - Simple Trajectory Plannner<br>
<a href="HAL Reference.html#svm">svm</a> - Space Vector Modulation<br>
<a href="HAL Reference.html#term">term</a> - Graphing terminal in Servoterm.<br>
<a href="HAL Reference.html#uf">uf</a> - Good question<br>
<a href="HAL Reference.html#uvw">uvw</a> - Hall sensor (trapzeoidal) commutation
module.<br>
<a href="HAL Reference.html#vel">vel</a> - Velocit Observer<br>
<a href="HAL Reference.html#vel_int">vel_int</a> - Also not sure<br>
<a href="HAL Reference.html#ypid">ypid</a> - YoloPID module. Usable but not used.</p>
</div>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_servoterm">Servoterm</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Servoterm (servo terminal) provides an interface which allows editing
of the drive HAL configuration. It also provides a rolling graphical
representation of any chosen parameter in the HAL which can be a great
aid to tuning and motor setup.</p>
</div>
<div class="paragraph">
<p>Servoterm is supplied as a Google Chrome Add-in. This might seem
somewhat odd, but does provide for good cross-platform availability.</p>
</div>
<div class="paragraph">
<p>Servoterm can be downloaded from <a href="https://github.com/STMBL/Servoterm-app">
this link</a>.
Use the green button to download as a ZIP file and then extract on your
PC (Linux / Mac / PC). Open Google Chrome and click the three-dots icon
→ more-tools → extensions.</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/Extensions.png" alt="Extensions" width="600">
</div>
</div>
<div class="paragraph">
<p>Click
"developer mode" and then "Load Unpacked Extension". Then navigate to
the downloaded files and select the "Servoterm" folder.
You should then be presented with the following, including an option to
launch the application.</p>
</div>
<div class="imageblock thumb">
<div class="content">
<img src="images/Extensions2.png" alt="Extensions2" width="600">
</div>
</div>
<div class="paragraph">
<p>To connect to the STMBL you will need a mini-USB B cable.</p>
</div>
<div class="paragraph">
<p>WARNING:Be sure that the 24V PSU is floating or shares a ground
reference with the PC.(Maybe even check the voltage between the
connector and socket before inserting the plug)</p>
</div>
<div class="paragraph">
<p>You can then click the "connect" button and you should get something
like the image below. <a href="#_servoterm_connection_problems">what if I can
not connect</a></p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/servoterm1.png" alt="servoterm1">
</div>
</div>
<div class="paragraph">
<p>Taking the buttons from left to right:</p>
</div>
<div class="ulist">
<ul>
<li>
<p>Connect / Disconnect - Should be fairly self-evident</p>
</li>
<li>
<p>Clear - simply clears the screen</p>
</li>
<li>
<p>Reset - Resets the connection. Does not reset the STMBL. To do that
type the <a href="#_servoterm_commands"><code>reset</code></a> command</p>
</li>
<li>
<p>Capture - Allows the output of the graphs to be saved and exported to
file</p>
</li>
<li>
<p>Jog - when ticked the left-right arrow keys on the keyboard can be
used to jog the motor.</p>
</li>
<li>
<p>Trigger - stops the graph plot until the trigger condition is met.</p>
</li>
<li>
<p>Trigger Status Indicator - not a button</p>
</li>
<li>
<p>Edit Config - Brings up a sub-window in which the basic system config
can be edited.</p>
</li>
</ul>
</div>
<div class="paragraph">
<p>Other than the buttons described above the ramainder of servoterm (and
the STMBL HAL) is controlled by a command-line interface.</p>
</div>
<div class="paragraph">
<p>Servoterm uses the up and down arrow keys to scroll through previous
commands, but there is no tab-completion.</p>
</div>
<div class="paragraph">
<p>This is mainly described in the <a href="#_hal_hardware_abstraction_layer">HAL</a>
section of this document.
The graphing display is controlled by the "term0" interface. Typing
<code>term0</code> at the prompt will show output similar to:</p>
</div>
<div class="imageblock">
<div class="content">
<img src="images/servoterm2.png" alt="servoterm2">
</div>
</div>
<div class="paragraph">
<p>The first two entries are internal information about the HAL component
and can be ignored for now.
The next 8 lines say what internal signal each of the wave plots is
connected to. In this case wave0 (the black one) is connected to a sim
signal, in this case the sine wave. (as you might have guessed, typing
"sim0" will show you the parameters of the simulated signals.)</p>
</div>
<div class="paragraph">
<p>To connect wave1 (red) to the sawtooth output (which simulates both
encoder feedback and a position command for steady rotation) then simply
type
<code>term0.wave1 = sim0.vel</code>
Each wave has an associated offset and gain parameter that can be used
to adjust vertical scale and position. The <code>term0.send_step</code> parameter
functions like the time-base of an oscilloscope.</p>
</div>
<div class="sect2">
<h3 id="_servoterm_commands">Servoterm Commands</h3>
<div class="paragraph">
<p>The servoterm command list can be obtained at the command line by using
the <code>help</code> command.</p>
</div>
<div class="ulist">
<ul>
<li>
<p>bootloader: enter bootloader</p>
</li>
<li>
<p>reset: reset STMBL</p>
</li>
<li>
<p>confcrc: Shows the CRC checksum of the loaded config.</p>
</li>
<li>
<p>flashloadconf: load config from flash</p>
</li>
<li>
<p>flashsaveconf: save config to flash</p>
</li>
<li>
<p>loadconf: parse config</p>
</li>
<li>
<p>showconf: show config - pressing the <code>Edit config</code> button is better.</p>
</li>
<li>
<p>appendconf: append string to config - also redundant with the config
editor</p>
</li>
<li>
<p>deleteconf: delete config</p>
</li>
<li>
<p>hal: print HAL stats</p>
</li>
<li>
<p>load: load comp from flash</p>
</li>
<li>
<p>show: show comps in flash</p>
</li>
<li>
<p>list: show comp instances</p>
</li>
<li>
<p>start: start rt system</p>
</li>
<li>
<p>stop: stop rt system</p>
</li>
<li>
<p>fault: trigger fault</p>
</li>
<li>
<p>about: show system infos</p>
</li>
<li>
<p>help: print this</p>
</li>
<li>
<p>link: load config template</p>
</li>
<li>
<p>show_config: show config templates</p>
</li>
</ul>
</div>
</div>
<div class="sect2">
<h3 id="_servoterm_connection_problems">Servoterm Connection Problems</h3>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_flashing_firmware">Flashing Firmware</h2>
<div class="sectionbody">
</div>
</div>
<div class="sect1">
<h2 id="_pinouts">Pinouts</h2>
<div class="sectionbody">
<div class="sect2">
<h3 id="_command_connector_wiring">Command connector wiring:</h3>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
<col style="width: 20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Pin</th>
<th class="tableblock halign-left valign-top">Colour</th>
<th class="tableblock halign-left valign-top">Smart Serial</th>
<th class="tableblock halign-left valign-top">Step/Dir</th>
<th class="tableblock halign-left valign-top">Quadrature</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Orange Stripe</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">RX+</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Step+</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A+</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Orange</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">RX-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Step-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A-</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">3</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Green Stripe</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Dir-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B-</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">4</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Blue</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">TX+</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">5</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Blue Stripe</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">TX-</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">6</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Green</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Dir+</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B+</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">7</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Brown Stripe</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">VCC</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">VCC</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">VCC</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Brown</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GND</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GND</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GND</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="_feedback_connector_wiring_encoders_etc">Feedback connector wiring - encoders etc</h3>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 11.1111%;">
<col style="width: 11.1111%;">
<col style="width: 11.1111%;">
<col style="width: 11.1111%;">
<col style="width: 11.1111%;">
<col style="width: 11.1111%;">
<col style="width: 11.1111%;">
<col style="width: 11.1111%;">
<col style="width: 11.1112%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Pin</th>
<th class="tableblock halign-left valign-top">Colour</th>
<th class="tableblock halign-left valign-top">Resolver</th>
<th class="tableblock halign-left valign-top">Encoder</th>
<th class="tableblock halign-left valign-top">1Vpp</th>
<th class="tableblock halign-left valign-top">Mitsubishi</th>
<th class="tableblock halign-left valign-top">Sanyo-Denki</th>
<th class="tableblock halign-left valign-top">Yaskawa</th>
<th class="tableblock halign-left valign-top">Omron</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Orange Stripe</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sin+</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A+</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sin+</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A+</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Orange</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sin-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Sin-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A-</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">3</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Green Stripe</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Cos-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Cos-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B-</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">4</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Blue</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Ref-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Z-</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Blue</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">5</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Blue Stripe</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Ref+</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Z+</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Brown</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">5</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">6</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Green</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Cos+</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B+</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Cos+</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B+</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">4</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">7</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Brown Stripe</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">VCC</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">VCC</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">VCC</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">VCC</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Red</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Brown</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GND</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GND</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GND</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GND</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GND</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Black</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="_connector_wiring_serial_protocols">Connector wiring - serial protocols</h3>
<table class="tableblock frame-all grid-all spread">
<colgroup>
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 10%;">
<col style="width: 10%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Pin</th>
<th class="tableblock halign-left valign-top">Colour</th>
<th class="tableblock halign-left valign-top">RS485</th>
<th class="tableblock halign-left valign-top">RS422</th>
<th class="tableblock halign-left valign-top">UART</th>
<th class="tableblock halign-left valign-top">USART</th>
<th class="tableblock halign-left valign-top">UART HD</th>
<th class="tableblock halign-left valign-top">USART HD</th>
<th class="tableblock halign-left valign-top">SPI</th>
<th class="tableblock halign-left valign-top">SPI HD</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">1</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Orange Stripe</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">RX+</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">RX+</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MISO+</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">2</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Orange</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">RX-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">RX-</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MISO-</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">3</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Green Stripe</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CLK+</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CLK+</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CLK+</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CLK+</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">4</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Blue</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">B</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Z</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">TX-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">TX-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">TX/RX-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">TX/RX-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MOSI-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MOSI-</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">5</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Blue Stripe</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">A</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Y</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">TX+</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">TX+</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">TX/RX+</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">TX/RX+</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MOSI+</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">MOSI+</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">6</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Green</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CLK-</p></td>
<td class="tableblock halign-left valign-top"></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CLK-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CLK-</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">CLK-</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">7</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Brown Stripe</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">VCC</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">VCC</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">VCC</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">VCC</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">VCC</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">VCC</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">VCC</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">VCC</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">8</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Brown</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GND</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GND</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GND</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GND</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GND</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GND</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GND</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">GND</p></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_blink_codes">Blink Codes</h2>
<div class="sectionbody">
<div class="paragraph">
<p>Count the number of blinks of the red LED. Each number indicates a
different class of faults.</p>
</div>
<div class="olist arabic">
<ol class="arabic">
<li>
<p>Command error - This will be quite common during setup</p>
</li>
<li>
<p>Feedback error</p>
</li>
<li>
<p>Commutation feedback error</p>
</li>
<li>
<p>Joint feedback error</p>
</li>
<li>
<p>Position error</p>
</li>
<li>
<p>Saturation error</p>
</li>
<li>
<p>HV CRC error</p>
</li>
<li>
<p>HV timeout error</p>
</li>
<li>
<p>Overtemperature error</p>
</li>
<li>
<p>High/Low voltage error (Or no communication with F3 board)</p>
</li>
<li>
<p>HV fault</p>
</li>
<li>
<p>Motor overtemperature</p>
</li>
</ol>
</div>
</div>
</div>
</div>
<div id="footer">
<div id="footer-text">
Last updated 2017-12-13 01:06:59 GMT
</div>
</div>
</body>
</html>b11ddf64fThis file is pinned to the selected release. Download the original to open it in your design tool.