{"id":1888,"date":"2025-04-14T09:36:40","date_gmt":"2025-04-14T09:36:40","guid":{"rendered":"https:\/\/webprojects.cloud\/wordpress\/splatco\/?post_type=spl_knowledgebase&#038;p=1888"},"modified":"2025-06-10T08:45:10","modified_gmt":"2025-06-10T08:45:10","slug":"sx10501-programming","status":"publish","type":"spl_knowledgebase","link":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/product-documentation-xwire-peripherals\/sx10501-ultrasonic-distance-measurement-non-contact-temperature-measurement-optional\/sx10501-programming\/","title":{"rendered":"SX10501: Programming"},"content":{"rendered":"\n<p>The following tables show how the&nbsp;<a href=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/tutorials-application-notes-and-white-papers\/xwire\/xwire-introduction\/\">Xwire<\/a>&nbsp;data block needs to appear in memory. Because the SX10501 can be used with or without an optional TN9301 peripheral board there are 2 sets of Xwire data blocks.<\/p>\n\n\n\n<p>If the SX10501 is used only for the Ultrasonic distance measurement the Transmit data block will consist of 1 byte and the Receive data block will consist of 5 bytes.<\/p>\n\n\n\n<p>However if the SX10501 is also using a TN9301 then the Transmit data block would consist of 2 bytes and the Receive data block would consist of 13 bytes.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Xwire transmit data block:<\/h6>\n\n\n\n<h6 class=\"wp-block-heading\">SX10501 only<\/h6>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><th>Memory<\/th><th>Description<\/th><th>Format<\/th><\/tr><tr><td>0<\/td><td>Master sequence number<\/td><td>Byte<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Memory location 0 in the Xwire transmit data block corresponds to the &#8216;Master sequence number&#8217;. The Master sequence number consists of a single byte in the range of 0 &#8211; 255. Whenever the controller software changes this number, the ultrasonic sensor will take a single reading. This allows several ultrasonic ranging modules to be used on the same controller and be sequenced to avoid interaction between them.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">SX10501 with TN9301 attached<\/h6>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><th>Memory<\/th><th>Description<\/th><th>Format<\/th><\/tr><tr><td>0<\/td><td>Master sequence number<\/td><td>Byte<\/td><\/tr><tr><td>1<\/td><td>Master sequence number<\/td><td>Byte<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>To enable the use of a TN9301 peripheral board the &#8216;Master sequence number&#8217; length is equated as 2 bytes size in the Xwire transmit data block. This second byte does not contain any data and the Master sequence number performs exactly as described above in the &#8220;SX10501 only&#8221; transmit data block. The 2nd byte invokes the TN9301 temperature measurement option.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Xwire receive data block:<\/h6>\n\n\n\n<h6 class=\"wp-block-heading\">SX10501 only<\/h6>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><th>Memory<\/th><th>Description<\/th><th>Format<\/th><\/tr><tr><td>0 &#8211; 3<\/td><td>&nbsp;<\/td><td>Floating point number returned in the range of 30cm &#8211; 600cm<\/td><\/tr><tr><td>4<\/td><td>Returned sequence number<\/td><td>Byte returned in the range of 0 &#8211; 255<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>*Note that this data block does not need to start at memory location 0 and can be moved anywhere in memory as long as it stays together, is in the order above and is defined in the&nbsp;<a href=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/glossary-of-terms\/#o2970\">NVEM<\/a>&nbsp;Xwire table in the program code.<\/p>\n\n\n\n<p>Memory locations 0-3 in the Xwire receive data block is the &#8216;Distance&#8217; read back from the SX10501. The distance is returned in 4 bytes as a floating point number in the range of 30cm to 600cm. If the Ultrasonic sensor is operated outside of this range erroneous readings will result.<\/p>\n\n\n\n<p>Memory location 4 in the Xwire receive data block is the &#8216;Returned sequence number&#8217; from the SX10501. When the &#8216;Returned sequence number&#8217; becomes the same value that is inside the &#8216;Master sequence number&#8217; the distance measurement is complete and the data is ready to be taken.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">SX10501 with TN9301 attached<\/h6>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><th>Memory<\/th><th>Description<\/th><th>Format<\/th><\/tr><tr><td>0 &#8211; 3<\/td><td>&nbsp;<\/td><td>Floating point number returned in the range of 30cm &#8211; 600cm<\/td><\/tr><tr><td>4<\/td><td>Returned sequence number<\/td><td>Byte returned in the range of 0 &#8211; 255<\/td><\/tr><tr><td>5 &#8211; 8<\/td><td>Target temperature from the TN9301<\/td><td>Floating point number returned in Degrees Celsius.<\/td><\/tr><tr><td>9 &#8211; 12<\/td><td>Ambient temperature from the TN9301<\/td><td>Floating point number returned in Degrees Celsius.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>*Note that this data block does not need to start at memory location 0 and can be moved anywhere in memory as long as it stays together, is in the order above and is defined in the NVEM Xwire table in the program code.<\/p>\n\n\n\n<p>Memory locations 5-8 in the Xwire receive data block is the remote Target temperature from the TN9301. This is the temperature of an object in front of the sensor. The temperature is returned as a floating point number in degrees Celsius. The temperature is updated at a rate of 1.4Hz.<\/p>\n\n\n\n<p>Memory locations 9-12 in the Xwire receive data block is the Ambient temperature from the TN9301. The temperature is returned as a floating point number in degrees Celsius. The temperature is updated at a rate of 1.4Hz.<\/p>\n\n\n\n<p>If the TN9301 is removed from the SX10501 or damaged an error value of NaN is returned from the SX10501 for the affected function.<\/p>\n\n\n\n<h6 class=\"wp-block-heading\">Example Program 1<\/h6>\n\n\n\n<p>Interfaces with an SX10501 without TN9301 attachment.<\/p>\n\n\n\n<p>Displays Distance in Centimetres and Inches updating 5 times a second.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">********************* Xwire ****************************<br><br>DistMastSeqNum:         mEQU            218,1                   ;Define Xwire Tx Ram for slave  <br>DistMastSeqNumLen:      EQU             1                       ;length of Tx Ram   *alternatively set to 2 if using TN9301 attachment                                             <br>DistReadyFlag:          mEQU            224,1                   ;where the return sequence flag from the slave is stored<br>DistData:               mEQU            220,4                   ;Define Xwire Rx Ram for slave          * Distance<br>DistDataLen:            EQU             5                       ;length of Rx Ram   *alternatively set to 13 if using TN9301 attachment    <br>DistAddress:            EQU             0                       ;Xwire Address of slave         <br><br><br>;Initialisation:<br>                on              20                              ;turn on MS120 backlight<br>                XwireMaster     XwireTab                        ;start xwire going<br>                gosub           DSP_DO_Init                     ;initialise the Display handler<br>                gosub           XW_DO_Init                      ;Initialise the XWire handler<br>                runtasksforever<br><br><br><br>;***************  Display  OBJECT  **********************               <br>;*****************  Description  ************************       <br><br>;Short name:    DSP_ <br>;<br>;Purpose        Display handler task.<br>;<br>;Behavior       *Initially displays a splash screen for 4 seconds.<br>;<br>;               *Displays Distance in Centimetres and Inches updating- <br>;                5 times a second.<br><br><br>******************* Entry points ************************<br><br>********************* Methods ***************************<br><br>* Entry point to initialise this task *<br><br>DSP_DO_Init:<br>                launchtask      DSP_Task                        ;initialise the task<br>                return<br><br>*********************************************************<br>******************  Display Task  ***********************<br>*********************************************************<br><br>DSP_Task:<br><br>DSP_Set0:<br>                                ;0123456789012345<br>                Oblcd_Cls<br>                Oblcd_SetCur    0,0<br>                Oblcd_Text      \"  SX10501 Demo  \"<br>DSP_0:<br>                pause           400<br>DSP_Set1:<br>DSP_1:<br>                yieldtask<br>                gosub           XW_GetDistance<br>                Oblcd_SetCur    0,0                             ;set curser to home position on line 1<br>                                ;0123456789012345               ;space available on lcd<br>                Oblcd_Text      \"Distance        \"                      <br>                Oblcd_SetCur    1,0                             ;set curser to home position on line 1<br>                                ;0123456789012345               ;space available on lcd<br>                Oblcd_fDispW    3,0                             ;display the distance           <br>                Oblcd_Text              \"cm   \"<br>                gosub           DSP_ConvDist                    ;Convert Centimetres to Inches<br>                Oblcd_fDispW    3,0                             ;display the distance           <br>                Oblcd_Text              \"in   \"<br>                goto            DSP_1           <br><br>DSP_ConvDist:   ;will convert Centimetres to inches and return it in W<br><br>                floadQ          2.54<br>                fswap<br>                fdiv                                            ;distance in cm \/ 2.54 = inches. A -&gt; W<br>                                <br>                Return<br><br>;*****************  XWire Handler ***********************               <br>;*****************  Description  ************************       <br><br>;Short name:    XW_ <br>;<br>;Purpose        Maintains and handles communications over XWire.<br>;<br>;Behavior       <br>;<br>;               * The following task increments 'DistMastSeqNum' to request <br>;                 the current distance measurement from the slave. <br>;               * The slave responds when the measurement is ready to take <br>;                 by setting 'DistReadyFlag' to the same value in 'DistMastSeqNum'.<br><br>********************* Defines ***************************<br><br>;Define Memory<br><br>sXWireChange:   defsem                                          ;XWire index change semaphore <br>XWireIdx:       defbyte                                         ;index number of data to obtain<br>XW_Distance:    defbyte         4                               ;where distance data is stored in floating point<br><br>;Define Outputs<br><br>oXW_XWireError: oequ            9                               ;LED turns on when there is an Xwire communication error.<br><br>******************* Entry points ************************<br><br>********************* Methods ***************************<br><br>* Entry point to initialise this task *<br><br>XW_DO_Init:     launchtask      XW_Task                         ;put the XWire handler task in the task queue<br>                return<br><br>****************** Property Gets ************************<br><br>* Entry point to check Distance Ready *<br><br>XW_ChkDistRdy:<br>                Recalls         sXWireChange                    ;returns with data in X, if 0 then data ready for use           <br>                return          <br><br>* Entry point to retrieve Distance data *<br><br>XW_GetDistance:<br>                fRecallW        XW_Distance                     ;returns with data in W         <br>                return          <br><br>*********************************************************<br>******************  XWire Task  *************************<br>*********************************************************<br><br>XW_Task:<br><br>* XWire Distance data recovery *<br><br>XW_0:<br>                pause           20                              ;only update distance 5 times a second<br>                incm            DistMastSeqNum                  ;incrementing this memory makes slave measure distance and send it back<br>                                <br>XW_1:           yieldtask                                       ;wait looking at that status byte<br>                xwiregeterrcount                                ;get the xwire error count<br>                goiff           XW_2<br>                on              oXW_XWireError                  ;turn on error LED if there are XWire errors<br>                pause           1<br>                goto            XW_3<br>XW_2:           off             oXW_XWireError                  <br><br>XW_3:           recall          DistMastSeqNum                  ;recall counter number currently in transmit mem <br>                recall          DistReadyFlag                   ;recall status byte, if same as counter then data ready to take<br>                compare<br>                goifnz          XW_1<br>                fRecallw        DistData                        ;recall the distance data returned via xwire<br>                fstore          XW_Distance                     ;move to storage memory location<br>                clrs            sXWireChange                    ;clear message changed semaphore so main knows to come get data<br>                goto            XW_0<br><br>*********************************************************<br><br>                NVEM0<br>XwireTab:<br><br>                NV0Byte         DistAddress,DistMastSeqNum,DistMastSeqNumLen,DistData,DistDataLen<br>                <br>                NV0Byte         255             ;end of table<\/pre>\n\n\n\n<h6 class=\"wp-block-heading\">Example Program 2<\/h6>\n\n\n\n<p>Interfaces with an SX10501 with TN9301 attachment.<\/p>\n\n\n\n<p>Displays Ambient (A) and Target (T) temperature values in Celsius and Fahrenheit for 4 seconds.<\/p>\n\n\n\n<p>Displays Distance in Centimetres and Inches for 4 seconds.<\/p>\n\n\n\n<p>Repeats cycle.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">********************* Xwire ****************************<br><br>DistMastSeqNum:         mEQU            218,1                   ;Define Xwire Tx Ram for slave  <br>DistMastSeqNumLen:      EQU             2                       ;length of Tx Ram   *alternatively set to 1 if ONLY using Ultrasonic distance measurement                                               <br>DistReadyFlag:          mEQU            224,1                   ;where the return sequence flag from the slave is stored<br>DistData:               mEQU            220,4                   ;Define Xwire Rx Ram for slave          * Distance<br>DistDataLen:            EQU             13                      ;length of Rx Ram   *alternatively set to 5 if ONLY using Ultrasonic distance measurement       <br>DistAddress:            EQU             0                       ;Xwire Address of slave         <br>TempData:               mEQU            225,8                   ;Define Xwire Rx Ram for slave          * Temperature (2 float, target\/ambient temp)<br><br><br><br>;Initialisation:<br>                on              20                              ;turn on MS120 backlight<br>                XwireMaster     XwireTab                        ;start xwire going<br>                gosub           DSP_DO_Init                     ;initialise the Display handler<br>                gosub           XW_DO_Init                      ;Initialise the XWire handler<br>                runtasksforever<br><br><br><br>;***************  Display  OBJECT  **********************               <br>;*****************  Description  ************************       <br><br>;Short name:    DSP_ <br>;<br>;Purpose        Display handler task.<br>;<br>;Behavior       *Initially displays a splash screen for 4 seconds.<br>;<br>;               *Displays Ambient (A) and Target (T) temperature values in<br>;                Celsius and Fahrenheit for 4 seconds.<br>;               *Displays Distance in Centimetres and Inches for 4 seconds.<br>;               *Repeats cycle.<br><br><br>******************* Entry points ************************<br><br>********************* Methods ***************************<br><br>* Entry point to initialise this task *<br><br>DSP_DO_Init:<br>                launchtask      DSP_Task                        ;initialise the task<br>                return<br><br>*********************************************************<br>******************  Display Task  ***********************<br>*********************************************************<br><br>DSP_Task:<br><br>DSP_Set0:<br>                                ;0123456789012345<br>                Oblcd_Cls<br>                Oblcd_SetCur    0,0<br>                Oblcd_Text      \"  SX10501 Demo  \"<br>                Oblcd_SetCur    1,0<br>                Oblcd_Text      \"   with TN9301  \"<br>DSP_0:<br>                pause           400<br>DSP_Set1:<br>                marktime<br>DSP_1:<br>                yieldtask<br>                gosub           XW_GetAmbientT                  ;get the ambient temperature<br>                Oblcd_SetCur    0,0<br>                Oblcd_Text      \"A\"<br>                Oblcd_fDispW    3,0                             ;display the temperature<br>                Oblcd_SpclChar  223                             ;display degree sign<br>                Oblcd_Text      \"C  \"<br><br>                gosub           XW_GetTargetT                   ;get the target temperature<br>                Oblcd_Text      \"T\"<br>                Oblcd_fDispW    3,0                             ;display the temperature<br>                Oblcd_SpclChar  223                             ;display degree sign<br>                Oblcd_Text      \"C  \"<br>        <br>                gosub           XW_GetAmbientT                  ;get the ambient temperature<br>                gosub           DSP_ConvTemp                    ;convert Celsius to Fahrenheit<br>                Oblcd_SetCur    1,0<br>                Oblcd_Text      \"A\"<br>                Oblcd_fDispW    3,0                             ;display the temperature<br>                Oblcd_SpclChar  223                             ;display degree sign<br>                Oblcd_Text      \"F  \"<br><br>                gosub           XW_GetTargetT                   ;get the target temperature<br>                gosub           DSP_ConvTemp                    ;convert Celsius to Fahrenheit<br>                Oblcd_Text      \"T\"<br>                Oblcd_fDispW    3,0                             ;display the temperature<br>                Oblcd_SpclChar  223                             ;display degree sign<br>                Oblcd_Text      \"F  \"<br>                loopiftiming    400,DSP_1                       ;Display temperatures for 4 seconds.<br>DSP_Set2:<br>                marktime<br>DSP_2:<br>                yieldtask<br>                gosub           XW_GetDistance<br>                Oblcd_SetCur    0,0                             ;set curser to home position on line 1<br>                                ;0123456789012345               ;space available on lcd<br>                Oblcd_Text      \"Distance        \"                      <br>                Oblcd_SetCur    1,0                             ;set curser to home position on line 1<br>                                ;0123456789012345               ;space available on lcd<br>                Oblcd_fDispW    3,0                             ;display the distance           <br>                Oblcd_Text              \"cm   \"<br>                gosub           DSP_ConvDist                    ;Convert Centimetres to Inches<br>                Oblcd_fDispW    3,0                             ;display the distance           <br>                Oblcd_Text              \"in   \"<br>                loopiftiming    400,DSP_2<br>                goto            DSP_Set1                <br><br>DSP_ConvDist:   ;will convert Centimetres to inches and return it in W<br><br>                floadQ          2.54<br>                fswap<br>                fdiv                                            ;distance in cm \/ 2.54 = inches. A -&gt; W<br>                                <br>                Return<br><br>DSP_ConvTemp:   ;will convert Celsius to fahrenheit and return it in W. <br><br>                floadQ          1.8<br>                fmul<br>                floadQ          32<br>                fadd                                            ;temp in C x 1.8 + 32  = fahrenheit. A -&gt; W<br>                                <br>                Return<br><br><br>;*****************  XWire Handler ***********************               <br>;*****************  Description  ************************       <br><br>;Short name:    XW_ <br>;<br>;Purpose        Maintains and handles communications over XWire.<br>;<br>;Behavior       <br>;<br>;               * The following task increments 'DistMastSeqNum' to request <br>;                 the current distance measurement from the slave. <br>;               * The slave responds when the measurement is ready to take <br>;                 by setting 'DistReadyFlag' to the same value in 'DistMastSeqNum'.<br>;<br>;               * The Ambient and Target temperature values are constantly updated. <br><br>********************* Defines ***************************<br><br>;Define Memory<br><br>sXWireChange:   defsem                                          ;XWire index change semaphore <br>XWireIdx:       defbyte                                         ;index number of data to obtain<br>XW_Distance:    defbyte         4                               ;where distance data is stored in floating point<br><br>;Define Outputs<br><br>oXW_XWireError: oequ            9                               ;LED turns on when there is an Xwire communication error.<br><br>******************* Entry points ************************<br><br>********************* Methods ***************************<br><br>* Entry point to initialise this task *<br><br>XW_DO_Init:     launchtask      XW_Task                         ;put the XWire handler task in the task queue<br>                return<br><br>****************** Property Gets ************************<br><br>* Entry point to check Distance Ready *<br><br>XW_ChkDistRdy:<br>                Recalls         sXWireChange                    ;returns with data in X, if 0 then data ready for use           <br>                return          <br><br>* Entry point to retrieve Distance data *<br><br>XW_GetDistance:<br>                fRecallW        XW_Distance                     ;returns with data in W         <br>                return          <br><br>* Entry point to retrieve Target Temperature data *<br><br>XW_GetTargetT:<br>                fRecallW        TempData                        ;returns with data in W         <br>                return  <br><br>* Entry point to retrieve Ambient Temperature data *<br><br>XW_GetAmbientT:<br>                loadi           1<br>                ifRecallW       TempData                        ;returns with data in W <br>                return  <br><br>*********************************************************<br>******************  XWire Task  *************************<br>*********************************************************<br><br>XW_Task:<br><br>* XWire Distance data recovery *<br><br>XW_0:<br>                pause           20                              ;only update distance 5 times a second<br>                incm            DistMastSeqNum                  ;incrementing this memory makes slave measure distance and send it back<br>                                <br>XW_1:           yieldtask                                       ;wait looking at that status byte<br>                xwiregeterrcount                                ;get the xwire error count<br>                goiff           XW_2<br>                on              oXW_XWireError                  ;turn on error LED if there are XWire errors<br>                pause           1<br>                goto            XW_3<br>XW_2:           off             oXW_XWireError                  <br><br>XW_3:           recall          DistMastSeqNum                  ;recall counter number currently in transmit mem <br>                recall          DistReadyFlag                   ;recall status byte, if same as counter then data ready to take<br>                compare<br>                goifnz          XW_1<br>                fRecallw        DistData                        ;recall the distance data returned via xwire<br>                fstore          XW_Distance                     ;move to storage memory location<br>                clrs            sXWireChange                    ;clear message changed semaphore so main knows to come get data<br>                goto            XW_0<br><br>*********************************************************<br><br>                NVEM0<br>XwireTab:<br><br>                NV0Byte         DistAddress,DistMastSeqNum,DistMastSeqNumLen,DistData,DistDataLen<br>                <br>                NV0Byte         255             ;end of table<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>The following tables show how the&nbsp;Xwire&nbsp;data block needs to appear in memory. Because the SX10501 can be used with or without an optional TN9301 peripheral&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1870,"menu_order":6,"template":"","class_list":["post-1888","spl_knowledgebase","type-spl_knowledgebase","status-publish","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>SX10501: Programming - SPLat Controls<\/title>\n<meta name=\"robots\" content=\"noindex, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SX10501: Programming - SPLat Controls\" \/>\n<meta property=\"og:description\" content=\"The following tables show how the&nbsp;Xwire&nbsp;data block needs to appear in memory. Because the SX10501 can be used with or without an optional TN9301 peripheral...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/product-documentation-xwire-peripherals\/sx10501-ultrasonic-distance-measurement-non-contact-temperature-measurement-optional\/sx10501-programming\/\" \/>\n<meta property=\"og:site_name\" content=\"SPLat Controls\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-10T08:45:10+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/product-documentation-xwire-peripherals\/sx10501-ultrasonic-distance-measurement-non-contact-temperature-measurement-optional\/sx10501-programming\/\",\"url\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/product-documentation-xwire-peripherals\/sx10501-ultrasonic-distance-measurement-non-contact-temperature-measurement-optional\/sx10501-programming\/\",\"name\":\"SX10501: Programming - SPLat Controls\",\"isPartOf\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website\"},\"datePublished\":\"2025-04-14T09:36:40+00:00\",\"dateModified\":\"2025-06-10T08:45:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/product-documentation-xwire-peripherals\/sx10501-ultrasonic-distance-measurement-non-contact-temperature-measurement-optional\/sx10501-programming\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/product-documentation-xwire-peripherals\/sx10501-ultrasonic-distance-measurement-non-contact-temperature-measurement-optional\/sx10501-programming\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/product-documentation-xwire-peripherals\/sx10501-ultrasonic-distance-measurement-non-contact-temperature-measurement-optional\/sx10501-programming\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Product documentation\",\"item\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Product documentation: Xwire peripherals\",\"item\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/product-documentation-xwire-peripherals\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"SX10501: Ultrasonic distance measurement + Non-Contact Temperature Measurement (Optional)\",\"item\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/product-documentation-xwire-peripherals\/sx10501-ultrasonic-distance-measurement-non-contact-temperature-measurement-optional\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"SX10501: Programming\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website\",\"url\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/\",\"name\":\"SPLat Controls\",\"description\":\"OEM Embedded Machine Controllers\",\"publisher\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#organization\",\"name\":\"SPLat Controls\",\"url\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-content\/uploads\/2024\/10\/logo.svg\",\"contentUrl\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-content\/uploads\/2024\/10\/logo.svg\",\"caption\":\"SPLat Controls\"},\"image\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"SX10501: Programming - SPLat Controls","robots":{"index":"noindex","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"og_locale":"en_US","og_type":"article","og_title":"SX10501: Programming - SPLat Controls","og_description":"The following tables show how the&nbsp;Xwire&nbsp;data block needs to appear in memory. Because the SX10501 can be used with or without an optional TN9301 peripheral...","og_url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/product-documentation-xwire-peripherals\/sx10501-ultrasonic-distance-measurement-non-contact-temperature-measurement-optional\/sx10501-programming\/","og_site_name":"SPLat Controls","article_modified_time":"2025-06-10T08:45:10+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/product-documentation-xwire-peripherals\/sx10501-ultrasonic-distance-measurement-non-contact-temperature-measurement-optional\/sx10501-programming\/","url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/product-documentation-xwire-peripherals\/sx10501-ultrasonic-distance-measurement-non-contact-temperature-measurement-optional\/sx10501-programming\/","name":"SX10501: Programming - SPLat Controls","isPartOf":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website"},"datePublished":"2025-04-14T09:36:40+00:00","dateModified":"2025-06-10T08:45:10+00:00","breadcrumb":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/product-documentation-xwire-peripherals\/sx10501-ultrasonic-distance-measurement-non-contact-temperature-measurement-optional\/sx10501-programming\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/product-documentation-xwire-peripherals\/sx10501-ultrasonic-distance-measurement-non-contact-temperature-measurement-optional\/sx10501-programming\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/product-documentation-xwire-peripherals\/sx10501-ultrasonic-distance-measurement-non-contact-temperature-measurement-optional\/sx10501-programming\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webprojects.cloud\/wordpress\/splatco\/"},{"@type":"ListItem","position":2,"name":"Product documentation","item":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/"},{"@type":"ListItem","position":3,"name":"Product documentation: Xwire peripherals","item":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/product-documentation-xwire-peripherals\/"},{"@type":"ListItem","position":4,"name":"SX10501: Ultrasonic distance measurement + Non-Contact Temperature Measurement (Optional)","item":"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/product-documentation\/product-documentation-xwire-peripherals\/sx10501-ultrasonic-distance-measurement-non-contact-temperature-measurement-optional\/"},{"@type":"ListItem","position":5,"name":"SX10501: Programming"}]},{"@type":"WebSite","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website","url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/","name":"SPLat Controls","description":"OEM Embedded Machine Controllers","publisher":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webprojects.cloud\/wordpress\/splatco\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#organization","name":"SPLat Controls","url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#\/schema\/logo\/image\/","url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-content\/uploads\/2024\/10\/logo.svg","contentUrl":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-content\/uploads\/2024\/10\/logo.svg","caption":"SPLat Controls"},"image":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/spl_knowledgebase\/1888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/spl_knowledgebase"}],"about":[{"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/types\/spl_knowledgebase"}],"author":[{"embeddable":true,"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/users\/1"}],"up":[{"embeddable":true,"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/spl_knowledgebase\/1870"}],"wp:attachment":[{"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/media?parent=1888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}