{"id":4954,"date":"2025-05-13T11:49:52","date_gmt":"2025-05-13T11:49:52","guid":{"rendered":"https:\/\/webprojects.cloud\/wordpress\/splatco\/?post_type=spl_download&#038;p=4954"},"modified":"2025-05-22T08:21:01","modified_gmt":"2025-05-22T08:21:01","slug":"mmi202","status":"publish","type":"spl_download","link":"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/mmi202\/","title":{"rendered":"mmi202"},"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\/mmi202v3-38.rfl\">mmi202 V3.38<\/a><\/div>\n<\/div>\n\n\n\n<pre class=\"wp-block-preformatted\"><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>************************ MMi202 Revision History ***********************************\n*\n* V3-00         8\/12\/2006 Initial release\n*\n* V3-10         16\/1\/2007 Bug fixed in PERMSTORE module.\n*\n* V3-11         22\/1\/2007 OBCB multi channel software counter module added, 8 channels\n*               implemented on inputs 0 - 7.\n*\n* V3-12         31\/1\/2007 Bug fixed in the STSCALE mechanism which would prevent the\n*               correct functioning of this instruction with certain numbers. Not released.\n*\n* V3-13         1\/2\/2007 Handling of expansion I\/O altered to spread the processor interrupt\n*               loading over several timer interrupt cycles. \n*\n* V3-14\t\t20\/2\/2007 LCD port pins drive strength increased to high output drive to allow\n*\t\ta particular customer to use a long LCD cable. His product stopped working when\n*\t\the tried to use the MMi202 having successfully used MMi20x products with no problem\n*\t\tin the past.\n*\n* V3-15         17\/7\/2007 fPulse0 instruction fixed - output was not actually being updated by fPulse0.\n*               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-16         8\/10\/2007 V3-15 seems to have been released in two versions, one as dialect 19 and the other as dialect 20.\n*               To stem confusion and to make sure that the documentation matches the chip features, the firmware is being\n*               re-released as V3-16, dialect 20.\n*\n* V3-17         19\/10\/2007 A bug has been fixed in the task que timer code which would cause improper operation for time \n*               delays using the \"fStTimeSince\" instruction if the delay time exceeded 8,388,607d. New CPU commands have been\n*               added to allow the RTC clock to be trimmed. A new RTC instruction allows the user to check if the RTC has been\n*               initialised (RTCFailFlag).\n*\n* V3-18         15\/2\/2008 A bug has been fixed in the \"GetXwireJmprs\" command which would return corrupted jumper information.\n*               The memory structure has been altered so that when the DEMO assembly time switch is set, the demo program is\n*               compiled into memory previously at the top of user memory. This of course means that there is less program\n*               memory available for users in a demo board. It is reduced from 26,112 bytes to 22,016 bytes. A new CPU call\n*               SPxPoll1 (Argument=7) returns the number of tasks running in the SPLat task que. \"Reason for reset\" byte now\n*               has bit 0 implemented which is set when the SPLat interpreter encounters the new \"WarmBoot\" instruction.\n*               The OBCB peripheral now has the ability to have the number of channels specified and an offset added to allow\n*               the OBCB inputs to be positioned anywhere in the controllers memory map, including expansion I\/O. The form of the\n*               instruction is \"$F5 $2C NumberOfChannels StartingInput\". The number of channels is limited by the compilation\n*               variable \"OBCB_channels\".\n*\n* V3-19         20\/3\/2008 A bug in the RTC module which would not correctly Jindexed the RTCwriteEvent instruction. A bug has\n*               been fixed in the MemToUV and UVtoMem instructions which would not allow the last byte to be accessed. The FixtoU\n*               instruction now preserves W.\n*\n* V3-20         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 MMi202. 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-21         11\/03\/2009 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. LCD driver now loads more of the user\n*               character RAM cells to allow the displaying of large 7 segment data on 4 line LCDs (3 lines used for displaying\n*               characters. MODBUS master implemented. Bootloader bug fixed which could prevent successful reflashing of a board\n*               if NVEM alters memory to something other than $FF after the end of the SPLat program. Demo program feature removed\n*               to free up space and resources. User program space reduced by 4096 bytes to allow for future code expansion. User\n*               now has 22,016 bytes for program and NVEM storage (previously 26,112 bytes). LCD back light can now be PWM controlled \n*               allowing the LCD to be dimmed or turned off after a programmed amount of time (0-255 minutes). The LCD must be modified\n*               to have a TTL gate level MOSFET able to switch the back light with the gate connected to LCD data line 6. New CPU \n*               calls allow the operating brightness, dimmed brightness and time to dimmed setting to be set by the user.\n*\n* V3-22         28\/05\/2009 Firmware modified to detect whether the board is an MMi202 or an MMi202a (separate Xwire connector). This\n*               has been done to allow the firmware to be used with either board. MMi202a MUST use this version of software. IEEE\n*               floating point format &lt;--> SPLat floating point format conversion routines added to make the use of touch screens\n*               easier. 16 bit signed and unsigned &lt;--> SPLat floating point routines added to make working with touch screens easier.\n*               MODBUS Slave Function Type = 3, \"Read Memory\" using address 2001 --> 2040 returns the contents of the SPLat LCD buffer\n*               to allow existing \"oblcd\" instructions to display text on the touch screen under program control. MODBUS memory \n*               referencing instructions in WORD mode now have the starting address multiplied by 2 when processed. BYTE mode is\n*               unaffected. The ensures correct behaviour when using SPLat products with touch screens and other MODBUS devices.\n*               Function Types 6 (preset single register) and 16 (preset multiple registers) are affected in MASTER mode. SLAVE \n*               functions 3 (Read memory), 6 (preset single register) and 16 (preset multiple registers) are affected. This has the\n*               potential to upset user programs and this version of firmware must carry a warning about the changes to MODBUS.  \n*               Bug fixed in the RTC code which would allow the user to set the day number to invalid values. It is now forced to the \n*               maximum value for the selected year and month. Reduced the number of low speed counter channels from 8 to 7 s that \n*               inputs 0 --> 6 now have the feature. Input 7 has the high speed counter and so it makes no sense to have a low speed \n*               counter on this input as well. An SPxPoll4 0,!CPU returns the floating point temperature of the CPU chip in\n*               \ufffdC at locations U(0) --> U(3). An SPxPoll4 1,!CPU returns the floating point temperature of the CPU chip in\n*               \ufffdF at locations U(0) --> U(3).\n*\n* V3-23         21\/12\/2009 MODBUS functionality restored to that of V3-21 to maintain compatibility with existing software applications.\n*               In order to still have SPLat MODBUS work with touch screens, a new address range 3000 - 3999 has been introduced which\n*               is accessed in word mode with the acutal address multiplies by 2 to get the actual word address of the SPLat register\n*               memory. The LCD read buffer read back function is unchanged from version 3-22. \n*\n* V3-24         22\/12\/2009 Modified SPLat comms to allow much faster download speeds (up to 30 times faster). This firmware is\n*               fully backward compatible with older versions of SPLatPC in terms of downloads, but to get the benefit of the faster\n*               downloads, the user will need SPLatPC Version 10.21.1 or higher.\n*\n* V3-25         10\/5\/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*               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*               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-26         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-27         7\/7\/2010 Bug fixed in arbitary string protocol where the buffer pointers were not re-initialised if there\n*               was a program error and the program re-started. RtoX instruction added. \n*\n* V3-28         27\/7\/2010 String protocol buffer pointers were not being re-initialised. This became evident when a program error \n*               occurred and the protocol was re-started. Bug fixed in the COMTX_Space instruction which would return the number \n*               of bytes in the buffer rather that the number of free bytes. Bug fixed in Xwire slave sequencer, other minor Xwire \n*               improvements to improve robustness in the slave mode when there are inadvertantly two Xwire masters on the bus.\n*\n* V3-29         11\/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-30         1\/10\/2010 Xwire modified to include a new comms error counter which is incremented to a maximum of 255 on UART\n*               errors or parsing errors to allow communications errors, specifically collisions, to be detectable in addition\n*               to the existing \"no response\" error counter (GetXwireErrCount). A new instruction called \"GetXwireComErr\" returns\n*               the number of UART and parsing errors in X and clears the counter to zero. The OpCode for this new instruction is\n*               $F5 $38. Dialect is now reported as dialect 24. Polling for expansion I\/O has been changed to re-scan for expansion\n*               I\/O when ever the SPLat interpreter is re-started or the board is connected to by SPLatPC. This means that if a program\n*               references an I\/O which is not registered, the board will try to re-establish what, if any, expansion I\/O is connected.\n*               If external I\/O is added when the board is connected to SPLaPC, the user should disconnect and then connect (using the\n*               module button) to see the expansion I\/O as SPLatPC only dimensions the I\/O window on connection. Note that in general,\n*               plugging and unplugging expasnion I\/O when power is applied should always be avoided. This change is specifically for\n*               those cases where separate power supplies are used to power the controller and I\/O. These power supplies may not establish\n*               power at the same time and the controller may miss the presence of the expansion I\/O if it is powered up first. With\n*               this modification, the board will re-try if the program references I\/O that has not been registered yet.\n*\n** THIS FIRMWARE IS NOT TO BE RELEASED. IT DOES NOT FIX THE PROBLEM OF I\/O BOARDS BEING POWERED UP AFTER THE CONTROLLER. THIS\n** IS BECAUSE THE STROBE LINE IS HELD LOW AT POWER UP BY THE CONNECTED, BUT NOT POWERED UP, I\/O BOARD WHICH CAUSES THE CONTROLLER\n** TO ENTER AND STAY IN BOOTLOADER MODE. USERS MUST MAKE SURE THAT IF USING SEPARATE POWER SUPPLIES, THE POWER TO THE CONTROLLER\n** AND THE I\/O BOARD ARE ESTABLISHED AT THE SAME TIME, OR THAT THE I\/O BOARD POWER IS ESTABLISHED FIRST.\n*\n* V3-31         4\/10\/2010 Xwire modified to include a new comms error counter which is incremented to a maximum of 255 on UART\n*               errors or parsing errors to allow communications errors, specifically collisions, to be detectable in addition\n*               to the existing \"no response\" error counter (GetXwireErrCount). A new instruction called \"GetXwireComErr\" returns\n*               the number of UART and parsing errors in X and clears the counter to zero. The OpCode for this new instruction is\n*               $F5 $38. This is different to the existing \"XwireGetErrCount\" instruction which is incremented only on missed polls\n*               but provides no information about collisions and corruptions being the reason for the lost poll response. Dialect \n*               is now reported as dialect 24. This is version 3.30 minus the I\/O extra scanning.\n*\n* V3-32         15\/11\/2010 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. \n*\n* V3-33         12\/1\/2011 Added 4 new RTC instructions, RTCDecHH, RTCDecMM, RTCDecSS and RTCDecDN. Added 10 new floating point\n*               compare instructions which set X either true of false depending on the floating point comparison. They are non\n*               destructive to W and Q. Bug fixed in the SPICE configuration which would cause an error to be flagged if an attempt to\n*               configure Spice pin 1 to anything other than an input was made on an MMi202A. This error should only have occurred on\n*               MMi202 (not MMi202A) boards as the Xwire port is shared with one of the SPICE pins. The MMi202A has the SPICE pin and\n*               Xwire separated. Reports dialect 25.\n*\n* V3-34         3\/3\/2011 Added \"COMRX_fGetNum\" instruction to string comms protocol to allow the extraction of numbers from the ASCII \n*               string contained in the receive buffer. The routine will parse both signed integer and signed decimal numbers and return \n*               with the result in W. The SPLat result register R will be zero if a number was successfully parsed or 1 if a valid number\n*               could not be parsed. Reports dialect 26.\n*\n* V3-35         11\/5\/2011 Added COMRX_StrFind and iiPrintNVText instructions. Bugs fixed in iiPrintFill and COMRX_peek instructions.\n*\n* V3-36         19\/5\/2011 Changed buffer arrangements for the LCD driver and string comms protocol so that the string comms protocol\n*               can send strings of up to 255 characters from a single string comms instruction. Previously, a limit of 40 characters\n*               applied to the iiPrintText, iiPrintFill and iiPrintNVText instructions. Also, if the TX buffer was full when any String \n*               protocol instruction which resulted in characters being appended to the TX buffer, an error would be generated and the \n*               SPLat program reset. The user was expected to use the COMTX_Space instruction to ensure this did not happen. Now, the \n*               TX buffer can be written at any time with the caveat that if the buffer becomes full during the execution of the string \n*               comms instruction, the entire SPLat program will be stalled until the currently executing instruction can deposit all of \n*               its characters into the TX buffer. The TX buffer is 128 characters in length. When the destination is the user RAM, the\n*               instructions still execute atomically providing the string fits within the user RAM. If not, an error is generated and\n*               the SPLat program is reset. Reports dialect 27.\n*\n* V3-37         30\/5\/2011 Added iifGetNum, iiFindXinBuf, iiGetHex and iiStrFind instructions to allow string processing from user\n*               RAM. This allows string processing of data which may come from an Xwire peripheral, particularly the SX10509 internet \n*               interface, where the server may provide data in ASCII format. iiPrintNVtext instruction now uses record length and\n*               record number as well as the NVEM pointer to index the string to be sent. New TestXY instructions added.\n*               \n* V3-38\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*      <\/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-4954","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>mmi202 - 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=\"mmi202 - 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\/mmi202\/\" \/>\n<meta property=\"og:site_name\" content=\"SPLat Controls\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-22T08:21:01+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\/mmi202\/\",\"url\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/mmi202\/\",\"name\":\"mmi202 - SPLat Controls\",\"isPartOf\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website\"},\"datePublished\":\"2025-05-13T11:49:52+00:00\",\"dateModified\":\"2025-05-22T08:21:01+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/mmi202\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/mmi202\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/mmi202\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"mmi202\"}]},{\"@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":"mmi202 - 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":"mmi202 - 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\/mmi202\/","og_site_name":"SPLat Controls","article_modified_time":"2025-05-22T08:21:01+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\/mmi202\/","url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/mmi202\/","name":"mmi202 - SPLat Controls","isPartOf":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website"},"datePublished":"2025-05-13T11:49:52+00:00","dateModified":"2025-05-22T08:21:01+00:00","breadcrumb":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/mmi202\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/mmi202\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/mmi202\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webprojects.cloud\/wordpress\/splatco\/"},{"@type":"ListItem","position":2,"name":"mmi202"}]},{"@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\/4954","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=4954"}],"wp:term":[{"taxonomy":"spl_category","embeddable":true,"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/spl_category?post=4954"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}