{"id":4952,"date":"2025-05-13T11:48:58","date_gmt":"2025-05-13T11:48:58","guid":{"rendered":"https:\/\/webprojects.cloud\/wordpress\/splatco\/?post_type=spl_download&#038;p=4952"},"modified":"2025-05-22T08:23:59","modified_gmt":"2025-05-22T08:23:59","slug":"ms120","status":"publish","type":"spl_download","link":"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/ms120\/","title":{"rendered":"ms120"},"content":{"rendered":"\n<h6 class=\"wp-block-heading\" id=\"block-ba03c343-1340-42d3-b34f-c46e05bb4675\">1. Download SPLat Firmware<\/h6>\n\n\n\n<p id=\"block-a8ddd81d-7683-4932-b601-d9a2c395606a\">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\/ms120v3-34.rfl\">ms120 V3.34<\/a><\/div>\n<\/div>\n\n\n\n<p id=\"block-f7bdd4ea-2935-41f4-b110-cca4f451b501\"><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>************************* MS120 Revision History ***********************************\n*\n* V3-00         5\/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         10\/8\/2007 Bug fixed which caused the MS120 to do 5 shifts to update expansion\n*               I\/O instead of four shifts. This did not cause any problems but wastes CPU time.\n*               Xwire V1-1 expansion protocol added. PWM frequency can now be set by SPLat program \n*               using an SPxCmd1 command. Task que timer base can be set between 1 - 255ms by an  \n*               SPxCmd1 command (default is 10ms). TSP interface has been removed.\n*\n* V3-13         29\/8\/2007 Bug fixed in Xwire which would occasionally cause the Xwire UART to stream\n*               if the unit had been running as an Xwire master and a new program was downloaded to\n*               the board which also set the board to Xwire master operation.\n*\n* V3-14         15\/2\/2008 A new CPU call SPxPoll1 (Argument=7) returns the number of tasks running in the SPLat task que. \n*               \"Reason for reset\" byte now has bit 0 implemented which is set when the SPLat interpreter encounters the \n*               new \"WarmBoot\" instruction. The OBCB peripheral now has the ability to have the number of channels specified \n*               and an offset added to allow the OBCB inputs to be positioned anywhere in the controllers memory map, \n*               including expansion I\/O. The form of the instruction is \"$F5 $2C NumberOfChannels StaringInput\". The number \n*               of channels is limited by the compilation variable \"OBCB_channels\".\n*\n* V3-15         9\/5\/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\t\t\t\t to eliminate comms errors when the receive baud rate is slightly higher than that of the MS120. A bug has\n*\t\t\t\t\t been fixed in the MemToUV and UVtoMem instructions which would not allow the last byte to be accessed. The\n*\t\t\t\t\t FixtoU instruction now preserves W. An interaction between LCD writes and the front panel push buttons has\n*\t\t\t\t\t been fixed. Under certain circumstances, push button inputs could be falsely triggered by LCD screen updates.\n*\n* V3-16         10\/6\/2008 Timing issue fixed when using the SPxTxfrU instruction, the symptom of which was that input data\n*               would be corrupted when using this instruction.\n*\n* V3-17         16\/6\/2008 Bug fixed in Xwire protocol which would cause long corrupted messages to be sent if the data length\n*               was set to zero in either slave or master mode. The FixtoU instruction now really does preserve W as was\n*               advertised as fixed in version 3-15.\n*\n* V3-18         19\/6\/2008 High drive strength enabled on all PWM pins used in this design to improve the accuracy of the generated\n*               analogue voltages.\n*\n* V3-19         25\/6\/2008 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.\n*\n* V3-20         11\/3\/2009 High drive strength enabled on all PWM pins used in this design to improve the accuracy of the generated\n*               analogue voltages. LCD driver now loads more of the user character RAM cells to allow the displaying of large 7 \n*               segment data on 4 line LCDs (3 lines used for displaying characters. MODBUS master implemented. Bootloader bug fixed\n*               which could prevent successful reflashing of a board if NVEM alters memory to something other than $FF after the end\n*               of the SPLat program. Demo program feature removed to free up space and resources. User program space reduced by 4096\n*               bytes to allow for future code expansion. User now has 22,016 bytes for program and NVEM storage (previously 26,112\n*               bytes). LCD back light can now be PWM controlled allowing the LCD to be dimmed or turned off after a programmed amount\n*               of time (0-255 minutes). New CPU calls allow the operating brightness, dimmed brightness and time to dimmed setting to \n*               be set by the user. Pressing any of the front panel buttons will cause the timer to be re-started and the display \n*               to be brought up to the operating brightness level independant of the user program.\n*\n* V3-20         24\/3\/2009 Re-assembled with version 1.2 bootloader to enable code security.\n*\n* V3-21         2\/6\/2009 Re-instated the user program memory size of 26,112 bytes.\n*\n* V3-22         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 Slave Function Type = 3, \"Read Memory\" using address 2000 --> 2039 returns the contents of the SPLat LCD \n*               buffer 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 if the address is in\n*               the range 3000 - 3999. The ensures correct behaviour when using SPLat products with touch screens and other MODBUS \n*               devices. 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.   \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-23         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-24         10\/5\/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*               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-25         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-26         12\/8\/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. Bug fixed in the COMTX_Space instruction which \n*               would return the number of bytes in the buffer rather that the number of free bytes. Bug fixed in Xwire slave sequencer, \n*               other minor Xwire improvements to improve robustness in the slave mode when there are inadvertantly two Xwire masters \n*               on the bus. Xwire TX and RX state machines now re-initialise themselves immediately that they are disabled. This\n*               has been done to prevent unwanted behaviour 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. RtoX instruction added.\n*\n* V3-27         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-28         4\/7\/2011 Added iifGetNum, iiFindXinBuf, iiGetHex and iiStrFind instructions to allow string processing from user\n*               RAM. This allows string porcessing 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. Reports dialect 28.\n*\n* V3-29\t\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\t\t\t   in 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\t\t\t   return the byte after the one referenced by X.\n*\n* V3-30\t\t\t8\/11\/2011 Bug fixed which would cause SPLatPC not to connect to an MS120 with 32 expansion I\/O's connected and when any of the \n* \t\t\t\t   last 4 inputs were activated. This would cause the MS120 to stream input update messages.\n*\n* V3-31\t\t\t10\/9\/2013 Bug fixed in MODBUS slave function 2 which could cause eratic behaviour if more than 8 inputs state were polled for.\n*\n* V3-32\t\t\t29\/6\/2015 Increased the number of SPLat Multitrack tasks from 32 to 40.\n*\n* V3-33\t\t\t11\/9\/2017 Fixed a bug in the FixToMem16 instruction which destroyed W instead of preserving it.\n*\n* V3-34\t\t\t1\/11\/2017 Brought up to date with the latest LCD driver which fixes a display formatting bug when displaying some floating point\n* \t\t\t\t   numbers. 100 x 0.01 followed by oblcd_fdispw 5,0 would result in the wrong number being displayed. The result should be 1.\n*<\/code><\/pre>\n\n\n\n<h6 class=\"wp-block-heading\" id=\"block-b6b75c95-926a-4845-aa32-d5863121e3e8\">2. Download SPLat reFlash<\/h6>\n\n\n\n<p id=\"block-f315fad0-ebcd-4fdd-a270-5eda9941ced2\">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<p id=\"block-9f2fa9a8-59d7-48ee-b277-e29e6f8eca97\">Windows 8.x Users<\/p>\n\n\n\n<p id=\"block-9b558dc7-28b6-42be-b239-0633ac42c36a\">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-4952","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>ms120 - 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=\"ms120 - 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\/ms120\/\" \/>\n<meta property=\"og:site_name\" content=\"SPLat Controls\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-22T08:23:59+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\/ms120\/\",\"url\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/ms120\/\",\"name\":\"ms120 - SPLat Controls\",\"isPartOf\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website\"},\"datePublished\":\"2025-05-13T11:48:58+00:00\",\"dateModified\":\"2025-05-22T08:23:59+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/ms120\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/ms120\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/ms120\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webprojects.cloud\/wordpress\/splatco\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ms120\"}]},{\"@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":"ms120 - 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":"ms120 - 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\/ms120\/","og_site_name":"SPLat Controls","article_modified_time":"2025-05-22T08:23:59+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\/ms120\/","url":"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/ms120\/","name":"ms120 - SPLat Controls","isPartOf":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/#website"},"datePublished":"2025-05-13T11:48:58+00:00","dateModified":"2025-05-22T08:23:59+00:00","breadcrumb":{"@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/ms120\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/ms120\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/webprojects.cloud\/wordpress\/splatco\/download\/ms120\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webprojects.cloud\/wordpress\/splatco\/"},{"@type":"ListItem","position":2,"name":"ms120"}]},{"@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\/4952","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=4952"}],"wp:term":[{"taxonomy":"spl_category","embeddable":true,"href":"https:\/\/webprojects.cloud\/wordpress\/splatco\/wp-json\/wp\/v2\/spl_category?post=4952"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}