{"id":36277,"date":"2026-01-30T09:08:29","date_gmt":"2026-01-30T09:08:29","guid":{"rendered":"https:\/\/imperix.com\/doc\/?p=36277"},"modified":"2026-03-11T14:25:04","modified_gmt":"2026-03-11T14:25:04","slug":"endat-digital-encoder-input","status":"publish","type":"post","link":"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input","title":{"rendered":"EnDat &#8211; Digital encoder input"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-right-text counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input\/#EnDat-protocol-in-a-nutshell\" >EnDat protocol in a nutshell<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input\/#Strengths-and-limitations\" >Strengths and limitations<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input\/#Simulink-block\" >Simulink block<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input\/#Signal-specification\" >Signal specification<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input\/#Parameters\" >Parameters<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input\/#PLECS-block\" >PLECS block<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input\/#Signal-specification-2\" >Signal specification<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input\/#Parameters-2\" >Parameters<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input\/#C-functions\" >C++ functions<\/a><\/li><\/ul><\/nav><\/div>\n\n<p>The EnDat block instantiates an EnDat master to communicate with compatible digital encoders and similar digital sensors, typically in motor drive applications.<\/p>\n\n\n\n<p id=\"block-1620b70b-d6f6-49e0-90be-0a2eca602532\">This block is only compatible with the B-Box4, which provides two RS-485-based serial ports (SERIAL A and SERIAL B). Both ports can interface with sensors using three widely adopted communication protocols: <a href=\"https:\/\/imperix.com\/doc\/software\/ssi-digital-encoder-input\">SSI<\/a>, <a href=\"https:\/\/imperix.com\/doc\/software\/biss-angle-encoder-input\">BiSS-C<\/a> and EnDat2.2 (this page).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"EnDat-protocol-in-a-nutshell\"><\/span>EnDat protocol in a nutshell<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The EnDat protocol is a master-slave serial interface standard developed by <a href=\"https:\/\/www.heidenhain.com\/\">HEIDENHAIN<\/a> and widely used in industrial applications. <\/p>\n\n\n\n<p id=\"block-49644aa1-4565-4938-a5e8-a3d07e015aef\">Similarly to SSI and BiSS-C, the interface is composed of two signals, CLOCK (driven by the master) and DATA (bidirectional), regardless of the resolution (i.e., number of bits per revolution) of the sensor. Differential signaling improves the noise immunity and allows for longer cable runs, making it suitable for industrial environments. Starting from version 2.2, EnDat supports propagation delay compensation and a clock frequency up to 16MHz, therefore faster than <a href=\"https:\/\/imperix.com\/doc\/software\/ssi-digital-encoder-input\">SSI<\/a> or <a href=\"https:\/\/imperix.com\/doc\/software\/biss-angle-encoder-input\">BiSS-C<\/a>.<\/p>\n\n\n\n<p>EnDat provides room for a control mechanism to access the slave\u2019s configuration memory and transmits special commands. However, this mechanism significantly increases complexity and is currently not supported in the imperix implementation.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Strengths-and-limitations\"><\/span>Strengths and limitations<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Similarly to <a href=\"https:\/\/imperix.com\/doc\/software\/ssi-digital-encoder-input\">SSI<\/a> and <a href=\"https:\/\/imperix.com\/doc\/software\/biss-angle-encoder-input\">BiSS-C<\/a>, EnDat can be easily integrated and performs reliably even in electrically noisy environments. The synchronous data transfer provides accurate, low-latency position feedback, making it well suited for real-time control. It supports higher clock frequencies (up to 16 MHz) and allows for the compensation of the propagation delay.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Simulink-block\"><\/span>Simulink block<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Signal-specification\"><\/span>Signal specification<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<ul class=\"wp-block-list\">\n<li>The output \u03b8 is the single-turn position, in radians, in [0, 2\u03c0].<\/li>\n\n\n\n<li>The output <code>cnt<\/code> is the multi-turn counter, as received from the sensor. This port is hidden by default but it can be shown using the&nbsp;<code>Output multi-turn counter<\/code>&nbsp;checkbox.<\/li>\n\n\n\n<li>The output <code>v<\/code> is the valid data signal, set to 1 each time new data are available.<\/li>\n\n\n\n<li>The&nbsp;input <code>sim<\/code> is a 2-dimensional vector used in simulation and represents the angle value (in radians) and multi-turn counter (-) computed by the simulation plant model.<\/li>\n\n\n\n<li>The&nbsp;<code>&gt;<\/code>&nbsp;input signal needs to be connected to the sampling clock generated by the&nbsp;<a href=\"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration\">CONFIG block<\/a>.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"797\" height=\"473\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-52.png\" alt=\"\" class=\"wp-image-37014\" style=\"width:150px\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-52.png 797w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-52-300x178.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-52-768x456.png 768w\" sizes=\"auto, (max-width: 797px) 100vw, 797px\" \/><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Parameters\"><\/span>Parameters<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Device ID<\/code>&nbsp;selects which device to address when used in a multi-device configuration.<\/li>\n\n\n\n<li><code>Serial port<\/code> selects the serial port.<\/li>\n\n\n\n<li><code>EnDat version<\/code> specifies the EnDat version of the sensor, either EnDat 2.2 or EnDat 2.1.<\/li>\n\n\n\n<li><code>Clock frequency<\/code> specifies the transmission clock frequency for the BiSS-C communication, in MHz. The clock frequency cannot exceed 10 MHz, as defined by the BiSS-C standard.<\/li>\n\n\n\n<li><code>Direction<\/code> specifies the direction as clockwise or counterclockwise. When counterclockwise is selected, the output angle \u03b8 is 2\u03c0-\u03b8&#8217;, where \u03b8&#8217; is the angle received from the sensor.<\/li>\n\n\n\n<li><code>Single-turn resolution<\/code> specifies the resolution (i.e., number of bits) for the single-turn position. The single-turn resolution cannot exceed 32 bits.<\/li>\n\n\n\n<li><code>Multi-turn resolution<\/code> specifies the resolution (i.e., number of bits) for the multi-turn counter. The multi-turn resolution cannot exceed 32 bits.<\/li>\n\n\n\n<li><code>Output multi-turn counter<\/code> shows or hides the multi-turn counter output <code>cnt<\/code>.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"424\" height=\"591\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-57.png\" alt=\"\" class=\"wp-image-37019\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-57.png 424w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-57-215x300.png 215w\" sizes=\"auto, (max-width: 424px) 100vw, 424px\" \/><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"424\" height=\"591\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-58.png\" alt=\"\" class=\"wp-image-37020\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-58.png 424w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-58-215x300.png 215w\" sizes=\"auto, (max-width: 424px) 100vw, 424px\" \/><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"PLECS-block\"><\/span>PLECS block<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Signal-specification-2\"><\/span>Signal specification<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<ul class=\"wp-block-list\">\n<li>The output \u03b8 is the single-turn position, in radians, in [0, 2\u03c0].<\/li>\n\n\n\n<li>The output <code>cnt<\/code> is the multi-turn counter, as received from the sensor. This port is hidden by default but it can be shown using the&nbsp;<code>Output multi-turn counter<\/code>&nbsp;checkbox.<\/li>\n\n\n\n<li>The output <code>v<\/code> is the data valid signal, set to 1 each time a new data are available.<\/li>\n\n\n\n<li>The&nbsp;input <code>sim<\/code> is a 2-dimensional vector used in simulation and represents the angle value (in radians) and multi-turn counter (-) computed by the simulation plant model.<\/li>\n\n\n\n<li>The&nbsp;<code>&gt;<\/code>&nbsp;input signal needs to be connected to the sampling clock generated by the&nbsp;<a href=\"https:\/\/imperix.com\/doc\/software\/config-control-task-configuration\">CONFIG block<\/a>.<\/li>\n<\/ul>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"813\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-59-1024x813.png\" alt=\"\" class=\"wp-image-37026\" style=\"width:150px\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-59-1024x813.png 1024w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-59-300x238.png 300w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-59-768x610.png 768w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-59.png 1164w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Parameters-2\"><\/span>Parameters<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>Device ID<\/code>&nbsp;selects which device to address when used in a multi-device configuration.<\/li>\n\n\n\n<li><code>Serial port<\/code> selects the serial port.<\/li>\n\n\n\n<li><code>EnDat version<\/code> specifies the EnDat version of the sensor, either EnDat 2.2 or EnDat 2.1.<\/li>\n\n\n\n<li><code>Clock frequency<\/code> specifies the transmission clock frequency for the BiSS-C communication, in MHz. The clock frequency cannot exceed 10 MHz, as defined by the BiSS-C standard.<\/li>\n\n\n\n<li><code>Direction<\/code> specifies the direction as clockwise or counterclockwise. When counterclockwise is selected, the output angle \u03b8 is 2\u03c0-\u03b8&#8217;, where \u03b8&#8217; is the angle received from the sensor.<\/li>\n\n\n\n<li><code>Single-turn resolution<\/code> specifies the resolution (i.e., number of bits) for the single-turn position. The single-turn resolution cannot exceed 32 bits.<\/li>\n\n\n\n<li><code>Multi-turn resolution<\/code> specifies the resolution (i.e., number of bits) for the multi-turn counter. The multi-turn resolution cannot exceed 32 bits.<\/li>\n\n\n\n<li><code>Output multi-turn counter<\/code> shows or hides the multi-turn counter output <code>cnt<\/code>.<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"342\" height=\"404\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-53.png\" alt=\"\" class=\"wp-image-37015\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-53.png 342w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-53-254x300.png 254w\" sizes=\"auto, (max-width: 342px) 100vw, 342px\" \/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"342\" height=\"404\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-55.png\" alt=\"\" class=\"wp-image-37017\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-55.png 342w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-55-254x300.png 254w\" sizes=\"auto, (max-width: 342px) 100vw, 342px\" \/><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"342\" height=\"404\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-54.png\" alt=\"\" class=\"wp-image-37016\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-54.png 342w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-54-254x300.png 254w\" sizes=\"auto, (max-width: 342px) 100vw, 342px\" \/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"342\" height=\"404\" src=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-56.png\" alt=\"\" class=\"wp-image-37018\" srcset=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-56.png 342w, https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/11\/image-56-254x300.png 254w\" sizes=\"auto, (max-width: 342px) 100vw, 342px\" \/><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"C-functions\"><\/span>C++ functions<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n<style>.kt-accordion-id36277_a78a2f-d6 .kt-accordion-inner-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:1px;}.kt-accordion-id36277_a78a2f-d6 .kt-accordion-panel-inner{border-top:2px solid transparent;border-right:2px solid transparent;border-bottom:2px solid transparent;border-left:2px solid transparent;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px;background:#ffffff;padding-top:20px;padding-right:20px;padding-bottom:20px;padding-left:20px;}.kt-accordion-id36277_a78a2f-d6 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:2px solid #f2f2f2;border-right:2px solid #f2f2f2;border-bottom:2px solid #f2f2f2;border-left:2px solid #f2f2f2;border-top-left-radius:2px;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:2px;background:#ffffff;font-size:16px;line-height:24px;letter-spacing:0px;font-weight:bold;text-transform:none;color:var(--global-palette3, #1A202C);padding-top:12px;padding-right:10px;padding-bottom:8px;padding-left:16px;}.kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger:before{background:var(--global-palette3, #1A202C);}.kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger{background:var(--global-palette3, #1A202C);}.kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger:before{background:#ffffff;}.kt-accordion-id36277_a78a2f-d6 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id36277_a78a2f-d6 .kt-blocks-accordion-header:focus-visible{color:#444444;background:#ffffff;border-top:2px solid #eeeeee;border-right:2px solid #eeeeee;border-bottom:2px solid #eeeeee;border-left:2px solid #eeeeee;}.kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before, body:not(.hide-focus-outline) .kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-blocks-accordion--visible .kt-blocks-accordion-icon-trigger:after, body:not(.hide-focus-outline) .kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:before{background:#444444;}.kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger, body:not(.hide-focus-outline) .kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger{background:#444444;}.kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before, body:not(.hide-focus-outline) .kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:after, body:not(.hide-focus-outline) .kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:before{background:#ffffff;}.kt-accordion-id36277_a78a2f-d6 .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id36277_a78a2f-d6 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{color:var(--global-palette3, #1A202C);background:var(--global-palette9, #ffffff);border-top:2px solid var(--global-palette6, #718096);border-right:2px solid var(--global-palette6, #718096);border-bottom:2px solid var(--global-palette6, #718096);border-left:2px solid var(--global-palette6, #718096);}.kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before{background:var(--global-palette3, #1A202C);}.kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger{background:var(--global-palette3, #1A202C);}.kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id36277_a78a2f-d6:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before{background:var(--global-palette9, #ffffff);}@media all and (max-width: 1024px){.kt-accordion-id36277_a78a2f-d6 .kt-accordion-panel-inner{border-top:2px solid transparent;border-right:2px solid transparent;border-bottom:2px solid transparent;border-left:2px solid transparent;}}@media all and (max-width: 1024px){.kt-accordion-id36277_a78a2f-d6 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:2px solid #f2f2f2;border-right:2px solid #f2f2f2;border-bottom:2px solid #f2f2f2;border-left:2px solid #f2f2f2;}}@media all and (max-width: 1024px){.kt-accordion-id36277_a78a2f-d6 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id36277_a78a2f-d6 .kt-blocks-accordion-header:focus-visible{border-top:2px solid #eeeeee;border-right:2px solid #eeeeee;border-bottom:2px solid #eeeeee;border-left:2px solid #eeeeee;}}@media all and (max-width: 1024px){.kt-accordion-id36277_a78a2f-d6 .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id36277_a78a2f-d6 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{border-top:2px solid var(--global-palette6, #718096);border-right:2px solid var(--global-palette6, #718096);border-bottom:2px solid var(--global-palette6, #718096);border-left:2px solid var(--global-palette6, #718096);}}@media all and (max-width: 767px){.kt-accordion-id36277_a78a2f-d6 .kt-accordion-inner-wrap{display:block;}.kt-accordion-id36277_a78a2f-d6 .kt-accordion-inner-wrap .kt-accordion-pane:not(:first-child){margin-top:1px;}.kt-accordion-id36277_a78a2f-d6 .kt-accordion-panel-inner{border-top:2px solid transparent;border-right:2px solid transparent;border-bottom:2px solid transparent;border-left:2px solid transparent;}.kt-accordion-id36277_a78a2f-d6 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:2px solid #f2f2f2;border-right:2px solid #f2f2f2;border-bottom:2px solid #f2f2f2;border-left:2px solid #f2f2f2;}.kt-accordion-id36277_a78a2f-d6 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id36277_a78a2f-d6 .kt-blocks-accordion-header:focus-visible{border-top:2px solid #eeeeee;border-right:2px solid #eeeeee;border-bottom:2px solid #eeeeee;border-left:2px solid #eeeeee;}.kt-accordion-id36277_a78a2f-d6 .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id36277_a78a2f-d6 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{border-top:2px solid var(--global-palette6, #718096);border-right:2px solid var(--global-palette6, #718096);border-bottom:2px solid var(--global-palette6, #718096);border-left:2px solid var(--global-palette6, #718096);}}<\/style>\n<div class=\"wp-block-kadence-accordion alignnone\"><div class=\"kt-accordion-wrap kt-accordion-id36277_a78a2f-d6 kt-accordion-has-34-panes kt-active-pane-0 kt-accordion-block kt-pane-header-alignment-left kt-accodion-icon-style-arrow kt-accodion-icon-side-left\" style=\"max-width:none\"><div class=\"kt-accordion-inner-wrap\" data-allow-multiple-open=\"false\" data-start-open=\"none\">\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-2 kt-pane36277_f0a929-b1\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code><code>EnDat_Init<\/code> <\/code><strong>\u2014 <\/strong>Initialize the EnDat master<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp shcb-wrap-lines\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">EnDat_Init<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> port, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Initializes a given serial port (A or B) for EnDat communication protocol.<\/p>\n\n\n\n<p>Can only be called in&nbsp;<code>UserInit()<\/code>.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.1\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>port<\/code>: the serial port to initialize (0 for Port A, 1 for Port B)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-30 kt-pane36277_5aadc9-7b\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>EnDat_ConfigureEnDatVersion<\/code> \u2014 Configure the EnDat version<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">EnDat_ConfigureEnDatVersion<\/span><span class=\"hljs-params\">(tRs485EndatVersion version, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> port, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Configures the EnDat communication protocol version for a given serial port (A or B). The version 2.2 is used by default.<\/p>\n\n\n\n<p>Can only be called in&nbsp;<code>UserInit()<\/code>.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.1\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>version<\/code>: the EnDat version (RS485_ENDAT_21 for v2.1 or RS485_ENDAT_22 for v2.2)<\/li>\n\n\n\n<li><code>port<\/code>: the serial port to configure (0 for Port A, 1 for Port B)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-16 kt-pane36277_26e144-2f\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>EnDat_ConfigureClkFrequency<\/code> \u2014 Configure the transmission clock frequency<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">EnDat_ConfigureClkFrequency<\/span><span class=\"hljs-params\">(tRs485EndatFreq clk_frequency, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> port, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Configures the EnDat clock speed for a given serial port (A or B). Supported frequencies include 100 kHz, 200 kHz, 1 MHz, 2 MHz, 4 MHz, 8 MHz, and 16 MHz.<\/p>\n\n\n\n<p>Frequencies higher than 2MHz should not be used with EnDat 2.1.<\/p>\n\n\n\n<p>Can only be called in&nbsp;<code>UserInit()<\/code>.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.1\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>clk_frequency<\/code>: the EnDat transmission clock frequency\n<ul class=\"wp-block-list\">\n<li>100kHz (RS485_ENDAT_100KHZ)<\/li>\n\n\n\n<li>200kHz (RS485_ENDAT_200KHZ)<\/li>\n\n\n\n<li>1MHz (RS485_ENDAT_1MHZ)<\/li>\n\n\n\n<li>2MHz (RS485_ENDAT_2MHZ)<\/li>\n\n\n\n<li>4MHz (RS485_ENDAT_4MHZ)<\/li>\n\n\n\n<li>8MHz (RS485_ENDAT_8MHZ)<\/li>\n\n\n\n<li>16MHz (RS485_ENDAT_16MHZ)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>port<\/code>: the serial port to configure (0 for Port A, 1 for Port B)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-20 kt-pane36277_326de0-54\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>EnDat_ConfigureDirection<\/code> \u2014 Configure the rotation direction<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">EnDat_ConfigureDirection<\/span><span class=\"hljs-params\">(tRs485Direction direction, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> port, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Configures the angular direction (<em>clockwise<\/em> or <em>counterclockwise<\/em>) of the EnDat communication protocol for a given serial port (A or B). If <em>counterclockwise<\/em> is selected, the output angle \u03b8 is 2\u03c0-\u03b8&#8217;, where \u03b8&#8217; is the angle received from the sensor.<\/p>\n\n\n\n<p>Can only be called in&nbsp;<code>UserInit()<\/code>.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.1\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>direction<\/code>: the angular direction (RS485_CW or RS485_CCW)<\/li>\n\n\n\n<li><code>port<\/code>: the serial port to configure (0 for Port A, 1 for Port B)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-21 kt-pane36277_6ea3d6-c6\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>EnDat_ConfigureSingleturnResolution<\/code> \u2014 Configure the single-turn resolution<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">EnDat_ConfigureSingleturnResolution<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> resolution, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> port, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Configures the EnDat communication protocol single-turn resolution (i.e., number of bits of the single-turn position) for a given serial port (A or B).<\/p>\n\n\n\n<p>The single-turn and multi-turn resolution fields are each limited to 32 bits, with a maximum combined size of 48 bits.<\/p>\n\n\n\n<p>Can only be called in&nbsp;<code>UserInit()<\/code>.<\/p>\n\n\n\n<p><strong>Parameters<\/strong><\/p>\n\n\n\n<ul id=\"block-f4b9bced-e6ca-4452-bb01-d89dc21729e6\" class=\"wp-block-list\">\n<li><code>resolution<\/code>: the single-turn resolution (number of bits of the single-turn position)<\/li>\n\n\n\n<li><code>port<\/code>: the serial port to configure (0 for Port A, 1 for Port B)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-32 kt-pane36277_d3ea08-fd\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>EnDat_ConfigureMultiturnResolution<\/code> \u2014 Configure the multi-turn resolution<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">EnDat_ConfigureMultiturnResolution<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> resolution, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> port, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Configures the EnDat communication protocol multi-turn resolution (i.e., number of bits of the multi-turn counter) for a given serial port (A or B).<\/p>\n\n\n\n<p>The single-turn and multi-turn resolution fields are each limited to 32 bits, with a maximum combined size of 48 bits.<\/p>\n\n\n\n<p>Can only be called in&nbsp;<code>UserInit()<\/code>.<\/p>\n\n\n\n<p><strong>Parameters<\/strong><\/p>\n\n\n\n<ul id=\"block-f4b9bced-e6ca-4452-bb01-d89dc21729e6\" class=\"wp-block-list\">\n<li><code>resolution<\/code>: the multi-turn resolution (number of bits of the multi-turn counter)<\/li>\n\n\n\n<li><code>port<\/code>: the serial port to configure (0 for Port A, 1 for Port B)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-24 kt-pane36277_e3d023-4d\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>EnDat_ReadFrame<\/code> \u2014 Read the current frame<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">EnDat_ReadFrame<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> port, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Reads and interprets the latest EnDat frame received from the sensor.<\/p>\n\n\n\n<p>Can only be called in&nbsp;the interrupt routine.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.1\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>port<\/code>: the serial port to configure (0 for Port A, 1 for Port B)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-25 kt-pane36277_cdcdf9-09\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>EnDat_GetPosition<\/code> \u2014 Get the sensor&#8217;s position<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">float<\/span> <span class=\"hljs-title\">EnDat_GetPosition<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> port, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Returns the single-turn position received from the sensor as an angle, in radians within [0, 2\u03c0].<\/p>\n\n\n\n<p>Can only be called in&nbsp;the interrupt routine, after <code>EnDat_ReadFrame()<\/code>.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.1\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>port<\/code>: the serial port to configure (0 for Port A, 1 for Port B)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n\n\n\n<p id=\"CANinputmailbox-Returnvalue.1\"><strong>Return value<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Returns the single-turn position  in radians [0, 2\u03c0].<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-27 kt-pane36277_547b7c-69\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>EnDat_GetMultiturnCounter<\/code> \u2014 Get the sensor&#8217;s multi-turn counter<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> <span class=\"hljs-title\">EnDat_GetMultiturnCounter<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> port, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Returns the multi-turn counter received from the sensor.<\/p>\n\n\n\n<p>Can only be called in&nbsp;the interrupt routine, after <code>EnDat_ReadFrame()<\/code>.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.1\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>port<\/code>: the serial port to configure (0 for Port A, 1 for Port B)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n\n\n\n<p id=\"CANinputmailbox-Returnvalue.1\"><strong>Return value<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Returns the multi-turn counter.<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n\n\n\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-29 kt-pane36277_7daea7-1f\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\"><code>EnDat_GetDataValid<\/code> \u2014 Get the data valid flag<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\"><pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"C++\" data-shcb-language-slug=\"cpp\"><span><code class=\"hljs language-cpp\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> <span class=\"hljs-title\">EnDat_GetDataValid<\/span><span class=\"hljs-params\">(<span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> port, <span class=\"hljs-keyword\">unsigned<\/span> <span class=\"hljs-keyword\">int<\/span> device)<\/span><\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C++<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cpp<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Returns the data valid flag, which indicates whether new sensor data has been received. A value of 1 means the single-turn position and the multi-turn counter were updated since last interruption. A value of 0 indicates that no new data was received and the previous values have been retained.<\/p>\n\n\n\n<p>Can only be called in&nbsp;the interrupt routine, after <code>EnDat_ReadFrame()<\/code>.<\/p>\n\n\n\n<p id=\"SVPWMSpacevectorPWM-Parameters.1\"><strong>Parameters<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>port<\/code>: the serial port to configure (0 for Port A, 1 for Port B)<\/li>\n\n\n\n<li><code>device<\/code>: the ID of the addressed device (optional, used in multi-device configuration only)<\/li>\n<\/ul>\n\n\n\n<p id=\"CANinputmailbox-Returnvalue.1\"><strong>Return value<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Returns <strong>1<\/strong> if the single-turn position and multi-turn counter have been updated since the last interrupt; returns <strong>0<\/strong> if the outputs remain unchanged.<\/li>\n<\/ul>\n<\/div><\/div><\/div>\n<\/div><\/div><\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The EnDat block instantiates an EnDat master to communicate with compatible digital encoders and similar digital sensors, typically in motor drive applications. This block is&#8230;<\/p>\n","protected":false},"author":17,"featured_media":33315,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[16],"tags":[18],"software-environments":[105,103,104],"provided-results":[],"related-products":[50,32,51,114],"guidedreadings":[],"tutorials":[],"user-manuals":[],"coauthors":[82],"class_list":["post-36277","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","tag-motor-drives","software-environments-c-plus-plus","software-environments-matlab","software-environments-plecs","related-products-acg-sdk","related-products-b-box-rcp","related-products-cpp-sdk","related-products-motor"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>EnDat - Digital encoder input - imperix<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"EnDat - Digital encoder input - imperix\" \/>\n<meta property=\"og:description\" content=\"The EnDat block instantiates an EnDat master to communicate with compatible digital encoders and similar digital sensors, typically in motor drive applications. This block is...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input\" \/>\n<meta property=\"og:site_name\" content=\"imperix\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-30T09:08:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-11T14:25:04+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png\" \/>\n\t<meta property=\"og:image:width\" content=\"500\" \/>\n\t<meta property=\"og:image:height\" content=\"334\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Fran\u00e7ois Ledent\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fran\u00e7ois Ledent\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/endat-digital-encoder-input#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/endat-digital-encoder-input\"},\"author\":{\"name\":\"Fran\u00e7ois Ledent\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/1a0c3f44c7b64b1fd38dec245646aa8c\"},\"headline\":\"EnDat &#8211; Digital encoder input\",\"datePublished\":\"2026-01-30T09:08:29+00:00\",\"dateModified\":\"2026-03-11T14:25:04+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/endat-digital-encoder-input\"},\"wordCount\":1426,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/endat-digital-encoder-input#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/software.png\",\"keywords\":[\"Motor drives\"],\"articleSection\":[\"Software reference\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/endat-digital-encoder-input#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/endat-digital-encoder-input\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/endat-digital-encoder-input\",\"name\":\"EnDat - Digital encoder input - imperix\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/endat-digital-encoder-input#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/endat-digital-encoder-input#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/software.png\",\"datePublished\":\"2026-01-30T09:08:29+00:00\",\"dateModified\":\"2026-03-11T14:25:04+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/endat-digital-encoder-input#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/endat-digital-encoder-input\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/endat-digital-encoder-input#primaryimage\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/software.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2025\\\/05\\\/software.png\",\"width\":500,\"height\":334},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/software\\\/endat-digital-encoder-input#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Knowledge base\",\"item\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Software reference\",\"item\":\"https:\\\/\\\/imperix.com\\\/doc\\\/category\\\/software\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"EnDat &#8211; Digital encoder input\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#website\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\",\"name\":\"imperix\",\"description\":\"power electronics\",\"publisher\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/imperix.com\\\/doc\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#organization\",\"name\":\"imperix\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/imperix_logo.png\",\"contentUrl\":\"https:\\\/\\\/imperix.com\\\/doc\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/imperix_logo.png\",\"width\":350,\"height\":120,\"caption\":\"imperix\"},\"image\":{\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/imperix.com\\\/doc\\\/#\\\/schema\\\/person\\\/1a0c3f44c7b64b1fd38dec245646aa8c\",\"name\":\"Fran\u00e7ois Ledent\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2021b1358e31ad6f0aa701e6470e41e82025de794c9a6b2014338cbea729454b?s=96&d=mm&r=g6a16fb4ee9f5452cba63eb2a62f66a0f\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2021b1358e31ad6f0aa701e6470e41e82025de794c9a6b2014338cbea729454b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/2021b1358e31ad6f0aa701e6470e41e82025de794c9a6b2014338cbea729454b?s=96&d=mm&r=g\",\"caption\":\"Fran\u00e7ois Ledent\"},\"description\":\"Fran\u00e7ois is an electrical engineer working mainly on power applications and low-level FPGA developments. On the knowledge base, he is the author of several articles on a broad range of applications.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/francois-ledent\\\/\"],\"url\":\"https:\\\/\\\/imperix.com\\\/doc\\\/author\\\/ledent\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"EnDat - Digital encoder input - imperix","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input","og_locale":"en_US","og_type":"article","og_title":"EnDat - Digital encoder input - imperix","og_description":"The EnDat block instantiates an EnDat master to communicate with compatible digital encoders and similar digital sensors, typically in motor drive applications. This block is...","og_url":"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input","og_site_name":"imperix","article_published_time":"2026-01-30T09:08:29+00:00","article_modified_time":"2026-03-11T14:25:04+00:00","og_image":[{"width":500,"height":334,"url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png","type":"image\/png"}],"author":"Fran\u00e7ois Ledent","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Fran\u00e7ois Ledent","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input#article","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input"},"author":{"name":"Fran\u00e7ois Ledent","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/1a0c3f44c7b64b1fd38dec245646aa8c"},"headline":"EnDat &#8211; Digital encoder input","datePublished":"2026-01-30T09:08:29+00:00","dateModified":"2026-03-11T14:25:04+00:00","mainEntityOfPage":{"@id":"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input"},"wordCount":1426,"commentCount":0,"publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"image":{"@id":"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png","keywords":["Motor drives"],"articleSection":["Software reference"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input#respond"]}]},{"@type":"WebPage","@id":"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input","url":"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input","name":"EnDat - Digital encoder input - imperix","isPartOf":{"@id":"https:\/\/imperix.com\/doc\/#website"},"primaryImageOfPage":{"@id":"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input#primaryimage"},"image":{"@id":"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input#primaryimage"},"thumbnailUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png","datePublished":"2026-01-30T09:08:29+00:00","dateModified":"2026-03-11T14:25:04+00:00","breadcrumb":{"@id":"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input#primaryimage","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2025\/05\/software.png","width":500,"height":334},{"@type":"BreadcrumbList","@id":"https:\/\/imperix.com\/doc\/software\/endat-digital-encoder-input#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Knowledge base","item":"https:\/\/imperix.com\/doc\/"},{"@type":"ListItem","position":2,"name":"Software reference","item":"https:\/\/imperix.com\/doc\/category\/software"},{"@type":"ListItem","position":3,"name":"EnDat &#8211; Digital encoder input"}]},{"@type":"WebSite","@id":"https:\/\/imperix.com\/doc\/#website","url":"https:\/\/imperix.com\/doc\/","name":"imperix","description":"power electronics","publisher":{"@id":"https:\/\/imperix.com\/doc\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/imperix.com\/doc\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/imperix.com\/doc\/#organization","name":"imperix","url":"https:\/\/imperix.com\/doc\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/imperix.com\/doc\/#\/schema\/logo\/image\/","url":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/imperix_logo.png","contentUrl":"https:\/\/imperix.com\/doc\/wp-content\/uploads\/2021\/03\/imperix_logo.png","width":350,"height":120,"caption":"imperix"},"image":{"@id":"https:\/\/imperix.com\/doc\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/imperix.com\/doc\/#\/schema\/person\/1a0c3f44c7b64b1fd38dec245646aa8c","name":"Fran\u00e7ois Ledent","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/2021b1358e31ad6f0aa701e6470e41e82025de794c9a6b2014338cbea729454b?s=96&d=mm&r=g6a16fb4ee9f5452cba63eb2a62f66a0f","url":"https:\/\/secure.gravatar.com\/avatar\/2021b1358e31ad6f0aa701e6470e41e82025de794c9a6b2014338cbea729454b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2021b1358e31ad6f0aa701e6470e41e82025de794c9a6b2014338cbea729454b?s=96&d=mm&r=g","caption":"Fran\u00e7ois Ledent"},"description":"Fran\u00e7ois is an electrical engineer working mainly on power applications and low-level FPGA developments. On the knowledge base, he is the author of several articles on a broad range of applications.","sameAs":["https:\/\/www.linkedin.com\/in\/francois-ledent\/"],"url":"https:\/\/imperix.com\/doc\/author\/ledent"}]}},"_links":{"self":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/36277","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/users\/17"}],"replies":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/comments?post=36277"}],"version-history":[{"count":20,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/36277\/revisions"}],"predecessor-version":[{"id":43642,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/posts\/36277\/revisions\/43642"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media\/33315"}],"wp:attachment":[{"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/media?parent=36277"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/categories?post=36277"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tags?post=36277"},{"taxonomy":"software-environments","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/software-environments?post=36277"},{"taxonomy":"provided-results","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/provided-results?post=36277"},{"taxonomy":"related-products","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/related-products?post=36277"},{"taxonomy":"guidedreadings","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/guidedreadings?post=36277"},{"taxonomy":"tutorials","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/tutorials?post=36277"},{"taxonomy":"user-manuals","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/user-manuals?post=36277"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/imperix.com\/doc\/wp-json\/wp\/v2\/coauthors?post=36277"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}