{"id":4950,"date":"2025-05-13T11:47:59","date_gmt":"2025-05-13T11:47:59","guid":{"rendered":"https:\/\/webprojects.cloud\/wordpress\/splatco\/?post_type=spl_download&#038;p=4950"},"modified":"2025-07-11T06:37:39","modified_gmt":"2025-07-11T06:37:39","slug":"sl100","status":"publish","type":"spl_download","link":"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/sl100\/","title":{"rendered":"sl100"},"content":{"rendered":"\n<h6 class=\"wp-block-heading\">1. Download SPLat Firmware<\/h6>\n\n\n\n<p>Download this firmware file for your controller. More information about the upgrade process can be found&nbsp;<a href=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/knowledgebase\/support-resources\/reflash-updating-the-firmware-in-your-controllers\/\">in the Knowledge Base<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-499968f5 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-text-align-center wp-element-button\" href=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-content\/uploads\/2025\/05\/sl100v3-30.rfl\">sl100 V3.30<\/a><\/div>\n<\/div>\n\n\n\n<pre class=\"wp-block-code\"><code>************************* SL100 Revision History ***********************************\n*\n* V3-00         11\/12\/2006 Initial release\n*\n* V3-10         12\/1\/2007 Bug fixed in PERMSTORE module.\n*\n* V3-11         1\/2\/2007 Bug fixed in the STSCALE mechanism which would prevent the\n*               correct functioning of this instruction with certain numbers. OBCB multi \n*               channel software counter module added, 8 channels implemented on inputs \n*               0 - 7. Handling of expansion I\/O altered to spread the processor interrupt \n*               loading over several timer interrupt cycles.\n*\n* V3-12         17\/8\/2007 CPU peripheral instruction added to change PWM frequency:\n*               SPxCmd1, Cmd=0  U(0)  Set PWM frequency:\n*                                     0\t  16000\tHz\n*                                     1\t  8000\tHz\n*                                     2\t  4000\tHz\n*                                     3\t  2000\tHz\n*                                     4\t  1000\tHz\n*                                     5\t  500\tHz\n*                                     6\t  250\tHz\n*                                     7\t  125\tHz\n*\n*               Xwire V1-1 expansion protocol added. Task que timer base can be set between 1 - 255ms by an \n*               SPxCmd1, Cmd=1 U(0) command (default is 10ms). TSP interface has been removed.\n*\n* V3-13         15\/2\/2008 CPU peripheral instruction to change PWM frequency was not implemented in V3-12\n*               as advertised, but is now implemented in V3-13. A bug has been fixed in the task que timer \n*               code which would cause improper operation for time delays using the \"fStTimeSince\" instruction \n*               if the delay time exceeded 8,388,607d. A new CPU call SPxPoll1 (Argument=7) returns the number \n*               of tasks running in the SPLat task que. \"Reason for reset\" byte now has bit 0 implemented which \n*               is set when the SPLat interpreter encounters the new \"WarmBoot\" instruction. The OBCB peripheral\n*               now has the ability to have the number of channels specified and an offset added to allow the OBCB\n*               inputs to be positioned anywhere in the controllers memory map, including expansion I\/O. The form \n*               of the instruction is \"$F5 $2C NumberOfChannels StaringInput\". The number of channels is limited\n*               by the compilation variable \"OBCB_channels\".\n*\n* V3-14         16\/6\/2008 A vulnerability has been fixed in the Xwire protocol sequencer that could cause the Xwire module\n*               to stream TX characters if a timing error occured in the received message (ie: message not arriving within\n*               Xwire time parameters). The Xwire comms receive structure now uses an interrupt and small circular buffer\n*\t\tto eliminate comms errors when the receive baud rate is slightly higher than that of the SL100. A bug has\n*\t\tbeen fixed in the MemToUV and UVtoMem instructions which would not allow the last byte to be accessed. The\n*\t\tFixtoU instruction now preserves W. Timing issue fixed when using the SPxTxfrU instruction, the symptom of \n*               which was that input data would be corrupted when using this instruction. Bug fixed in Xwire protocol which \n*               would cause long corrupted messages to be sent if the data length was set to zero in either slave or master mode.\n*\n* V3-15         25\/6\/2008 High drive strength enabled on all PWM pins used in this design to improve the accuracy of the generated\n*               analogue voltages. Xwire protocol modified so that transmit messages and received data is only tranfered to and from\n*               SPLat memory between the execution of SPLat instructions. This has been done to make it easier for the user\n*               to transfer multibyte variables (ie: floating point) without corruption. First cut of MODBUS master.\n*\n* V3-16         24\/3\/2009 MODBUS master bug in function 1 and 2 fixed. Bootloader bug fixed which could prevent successful reflashing\n*               of a board if NVEM alters memory to something other than $FF after the end of the SPLat program. Demo program feature \n*               removed to free up space and resources. User program space reduced by 4096 bytes to allow for future code expansion. \n*               User now has 22,016 bytes for program and NVEM storage (previously 26,112 bytes). The FixtoU instruction now preserves W.\n*\n* V3-17         8\/1\/2010 IEEE floating point format &lt;--> SPLat floating point format conversion routines added to make the use of touch\n*               screens easier. 16 bit signed and unsigned &lt;--> SPLat floating point routines added to make working with touch screens \n*               easier. MODBUS memory referencing instructions in WORD mode now have the starting address multiplied by 2 when processed \n*               if the address is in the range 3000 - 3999. The ensures correct behaviour when using SPLat products with touch screens \n*               and other MODBUS devices. Function Types 6 (preset single register) and 16 (preset multiple registers) are affected in \n*               MASTER mode. SLAVE functions 3 (Read memory), 6 (preset single register) and 16 (preset multiple registers) are affected.   \n*               An SPxPoll4 0,!CPU returns the floating point temperature of the CPU chip in \ufffdC at locations U(0) --> U(3). \n*               An SPxPoll4 1,!CPU returns the floating point temperature of the CPU chip in \ufffdF at locations U(0) --> U(3).\n*               Modified SPLat comms to allow much faster download speeds (up to 30 times faster). This firmware is fully backward\n*               compatible with older versions of SPLatPC in terms of downloads, but to get the benefit of the faster downloads,\n*               the user will need SPLatPC Version 10.21.1 or higher.\n*\n* V3-18         19\/1\/2010 LCD buffer driver added to the SL100 to allow the LCD buffer to be fully manipulated by SPLat LCD program \n*               commands. Using the SL100 as a MODBUS slave, the LCD buffer can be displayed on a touch screen, by reading memory in \n*               the range 2000 - 2039.\n*\n* V3-19         25\/3\/2010 Fixed a bug in the comms RX interrupt handler which would cause the board to reset if being used in any UART\n*               profile with parity enabled. MODBUS RX handler modified to be active all the time rather than only after the UART\n*               transmitter has finished sending. This has been done because several MODBUS devices we have used ignore the MODBUS\n*               specification and reply immediately rather than waiting 3.5 character times before replying. MODBUS master mode is now\n*               capable of sending the LCD buffer using function 16 (preset muliple registers) if the address range is set to 2000 - 2079.\n*               The CommRunScript and CommHaltScr commands will now wait for the MODBUS master script parser to be actually stopped\n*               before HALTing or changing the script to be executed, respectively.\n*\n* V3-20         19\/4\/2010 Jindexing has been applied to the instructions \"FixToMem16S\", \"FixToMem16U\", \"FloatMem16U\" and \"FloatMem16S\". \n*               A Bug has been fixed in the signed versions of these instructions. New instruction added \"fSTSinceMark\" which loads W \n*               with the time since the tasks private timer was set using a \"marktime\" instruction. This instruction only works in the \n*               task que. Board reports SPLat dialect 22.\n*\n* V3-21         6\/5\/2010 Added counter which is incremented whenever a successful transaction is completed (Xwire slave mode)\n*               or whenever the end of script table is encountered (Xwire master mode). A new instruction is able to \n*               read the value of this counter and clears the counter to zero. Two new instructions have been added \n*               which facillitate the changing of Xwire modes and scripts while a program is running. XwireStop will\n*               command the Xwire communication module to stop after the current transaction and return to an idle\n*               state. XwirePollIdle will return X=true if the Xwire comms module is idle. The current Xwire slave\n*               and Xwire master configuration instructions work as previous but will stop the Xwire comms module and\n*               stall the SPLat interpreter until the Xwire comms module is actually idle (has completed current\n*               transaction). For applications where the SPLat interpreter must not be stalled, the user should stop\n*               Xwire comms, poll until it is idle then run the configuration instruction. If stalling the program\n*               is not important, the configuration instruction can be used by itself. If Xwire is not currently\n*               running when an Xwire configuration instruction is executed, there is no stalling of the users program.\n*\n* V3-22         18\/6\/2010 Abitrary string communications protocol added. This protocol allows the user to create and send ASCII\n*               and binary strings and receive and parse same. Simple 8 bit addition and subtraction, both with and without carry\n*               instructions have been added. The carry\/borrow bit for these instruction is held in the R register. Non destructive \n*               floating bit compare and go instructions have been added. Bug fixed which prevented the BranchM instruction from\n*               being jindexed.\n*\n* V3-23         1\/7\/2010 Added the RtoX instruction.\n* \n* V3-24         6\/7\/2010 String protocol buffer pointers were not being re-initialised. This became evident when a program\n*               error occurred and the protocol was re-started.\n*\n* V3-25         13\/7\/2010 Bug fixed in the COMTX_Space instruction which would return the number of bytes in the buffer rather \n*               that the number of free bytes.\n*\n* V3-26         20\/7\/2010 Bug fixed in Xwire slave sequencer, other minor Xwire improvements to improve robustness in the slave\n*               mode when there are inadvertantly two Xwire masters on the bus.\n*\n* V3-27         12\/8\/2010 Xwire TX and RX state machines now re-initialise themselves immediately that they are disabled. This\n*               has been done to prevent unwanted beaviour when there are multiple slaves with the same address on the Xwire bus (PKS).\n*               A bug has been fixed in the SPI module which may cause expansion I\/O to be ignored depending on the power up data contents\n*               of the shift registers.\n*\n* V3-28         19\/5\/2011 MODBUS\/SPLat\/String protocol UART RX interrupt routine and UART interrupt vectors modified to recover \n*               correctly from UART overrun errors. Bug fixed in MODBUS which would cause the 3.5 character delay timer not to be \n*               initialised if the selected baud rate was the same as the current baud rate. Xwire RX interrupt routine and UART\n*               interrupt vectors also modified to recover from overrun errors. MODBUS code modified to always return idle status\n*               when re-initialised.Added 10 new floating point compare instructions which set X either true of false depending on the \n*               floating point comparison. They are non destructive to W and Q. Added \"COMRX_fGetNum\" instruction to string comms protocol \n*               to allow the extraction of numbers from the ASCII string contained in the receive buffer. The routine will parse both signed \n*               integer and signed decimal numbers and return with the result in W. The SPLat result register R will be zero if a number was \n*               successfully parsed or 1 if a valid number could not be parsed. Added COMRX_StrFind and iiPrintNVText instructions. Bugs \n*               fixed in iiPrintFill and COMRX_peek instructions. Changed buffer arrangements for the LCD driver and string comms protocol \n*               so that the string comms protocol can send strings of up to 255 characters from a single string comms instruction. Previously, \n*               a limit of 40 characters applied to the iiPrintText, iiPrintFill and iiPrintNVText instructions. Also, if the TX buffer was \n*               full when any String protocol instruction which resulted in characters being appended to the TX buffer, an error would be \n*               generated and the SPLat program reset. The user was expected to use the COMTX_Space instruction to ensure this did not \n*               happen. Now, the TX buffer can be written at any time with the caveat that if the buffer becomes full during the execution \n*               of the string comms instruction, the entire SPLat program will be stalled until the currently executing instruction can \n*               deposit all of its characters into the TX buffer. The TX buffer is 128 characters in length. When the destination is the \n*               user RAM, the instructions still execute atomically providing the string fits within the user RAM. If not, an error is \n*               generated and the SPLat program is reset. Reports dialect 27.\n*\n* V3-29\t\t14\/10\/2011 Bug fixed in COMRX_Peek instruction which would cause it to return a result when peeking at the first character\n* \t\tin the buffer when no characters where in the RX buffer. Also fixed in the same instruction, was a bug which caused it to\n*\t\treturn the byte after the one referenced by X.\n*\n* V3-30         Bug fixed in MODBUS slave function 2 which could cause eratic behaviour if more than 8 inputs state were polled for.<\/code><\/pre>\n\n\n\n<h6 class=\"wp-block-heading\">2. Download SPLat reFlash<\/h6>\n\n\n\n<p>Download then run SPLat reFlash on your PC. This tool will upload the firmware to your SPLat controller. You will need a serial port or&nbsp;<a href=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/product-category\/accessories\/\">USB to serial adaptor<\/a>&nbsp;and may also need a&nbsp;<a href=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/product-category\/accessories\/\">PC232 programming cable<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-499968f5 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-text-align-center wp-element-button\" href=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-content\/uploads\/2025\/05\/reFlash_Setup31.exe\">Download SPLat reFlash V3.1<\/a><\/div>\n<\/div>\n\n\n\n<h6 class=\"wp-block-heading\">Windows 8.x Users<\/h6>\n\n\n\n<p>The first time you run reFlash, you will need to do so as the Administrator, otherwise you will see an error about&nbsp;<strong>HIRESTIMER.OCX<\/strong>&nbsp;not being registered. After you&#8217;ve done this once, you can run it normally in future.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Download SPLat Firmware Download this firmware file for your controller. More information about the upgrade process can be found&nbsp;in the Knowledge Base. 2. Download&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"template":"","spl_category":[],"class_list":["post-4950","spl_download","type-spl_download","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>sl100 - 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=\"sl100 - SPLat Controls\" \/>\n<meta property=\"og:description\" content=\"1. Download SPLat Firmware Download this firmware file for your controller. More information about the upgrade process can be found&nbsp;in the Knowledge Base. 2. Download...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/sl100\/\" \/>\n<meta property=\"og:site_name\" content=\"SPLat Controls\" \/>\n<meta property=\"article:modified_time\" content=\"2025-07-11T06:37:39+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=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/sl100\/\",\"url\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/sl100\/\",\"name\":\"sl100 - SPLat Controls\",\"isPartOf\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website\"},\"datePublished\":\"2025-05-13T11:47:59+00:00\",\"dateModified\":\"2025-07-11T06:37:39+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/sl100\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/sl100\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/sl100\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"sl100\"}]},{\"@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":"sl100 - 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":"sl100 - SPLat Controls","og_description":"1. Download SPLat Firmware Download this firmware file for your controller. More information about the upgrade process can be found&nbsp;in the Knowledge Base. 2. Download...","og_url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/sl100\/","og_site_name":"SPLat Controls","article_modified_time":"2025-07-11T06:37:39+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/sl100\/","url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/sl100\/","name":"sl100 - SPLat Controls","isPartOf":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website"},"datePublished":"2025-05-13T11:47:59+00:00","dateModified":"2025-07-11T06:37:39+00:00","breadcrumb":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/sl100\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/sl100\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/sl100\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webprojects.cloud\/wordpress\/splatco\/"},{"@type":"ListItem","position":2,"name":"sl100"}]},{"@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_download\/4950","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/spl_download"}],"about":[{"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/types\/spl_download"}],"author":[{"embeddable":true,"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/media?parent=4950"}],"wp:term":[{"taxonomy":"spl_category","embeddable":true,"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/spl_category?post=4950"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}