{"id":14013,"date":"2023-08-02T17:53:16","date_gmt":"2023-08-02T17:53:16","guid":{"rendered":"https:\/\/liquidinstruments.com\/?p=14013"},"modified":"2025-12-18T00:22:53","modified_gmt":"2025-12-18T00:22:53","slug":"using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection","status":"publish","type":"post","link":"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/","title":{"rendered":"Using ChatGPT and Moku Cloud Compile to perform custom transient fault detection","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p style=\"font-weight: 400;\">When performing real-time fault detection, you typically run into a trade-off: you can either sample at a high rate but face long swaths of dead time, or you can sample at a very low rate with nearly continuous data. Obviously, neither method is ideal. However, there is a way to better optimize your test rig \u00ad\u2014 program the transient fault detection yourself with VHDL and customizable test equipment. Doing this allows you to detect faults in real time, in an FPGA, and even do it inside the test and validation equipment you\u2019re already using. We know that writing FPGA code has a deserved reputation for being more challenging than more traditional procedural programming. However, the new generation of large language models, like ChatGPT, make it easy to be productive in a language without knowing it in detail.<\/p>\n<h1>The traditional way<\/h1>\n<p style=\"font-weight: 400;\">Test rigs aren\u2019t very good at transient fault detection. There are typically two approaches to monitoring and detection:<\/p>\n<ol>\n<li>High rate but intermittent<\/li>\n<li>Low rate but continuous<\/li>\n<\/ol>\n<p style=\"font-weight: 400;\">Option 1 uses an Oscilloscope. An Oscilloscope typically has a dead time between 20% and &gt;99.9%, so relying on \u201cseeing\u201d a transient fault on the screen is very unlikely. One way around this is to set up a trigger to enable the Oscilloscope to do the fault detection for you and just show you the results. This method has a few drawbacks: firstly, the fault must be something that\u2019s able to be triggered on, and secondly, it can only reliably tell you whether the fault occurred once. It can\u2019t determine things like fault count, fault rate, total time in the fault condition, and so on.<\/p>\n<p style=\"font-weight: 400;\">Option 2 uses a data logger or data acquisition device. In this case, a computer monitors all the relevant signals in real time and can compute intermediate values. The system detects faults and associated parameters. However, this method also has its own set of drawbacks. This method requires a computer with an appropriate programming environment, but more importantly it can only monitor signals up to some maximum rate, limited by the power of the computer, the complexity of any calculations, and the throughput of the connection between the data acquisition device and the computer.<\/p>\n<p style=\"font-weight: 400;\">It would be desirable to combine the best of both approaches: to detect complex transient fault conditions and measure their parameters in real time without being limited to low sampling rates. Conveniently, Moku devices utilize an Instrument-on-Chip architecture and user-programmable FPGA. Along with up to 15 other instruments on a Moku device (Figure 1), Moku Cloud Compile (MCC) provides a programming environment for custom instrumentation. MCC provides all the infrastructure you need to write your own FPGA code and deploy it to your Moku.<\/p>\n<p style=\"font-weight: 400; text-align: center;\"><img decoding=\"async\" class=\"alignnone wp-image-14029 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig1.jpeg\" alt=\"Moku:Pro, Moku:Lab, Moku:Go, Moku:Ipad iOS\" width=\"512\" height=\"341\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig1.jpeg 512w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig1-300x200.jpeg 300w\" sizes=\"(max-width: 512px) 100vw, 512px\" \/><\/p>\n<p style=\"font-weight: 400; text-align: center;\">Figure 1: Moku product lineup with iPad and desktop interfaces<\/p>\n<h2>Example: Transient power event detection<\/h2>\n<p style=\"font-weight: 400;\">Let\u2019s say your tester needs to monitor a power system for transient power events. The system is rated up to a total power, however in reality it can survive transient over-power so long as the event rate, event time, and total time in the fault condition are below a threshold. To put it another way, we want to design a test rig that\u2019s capable of:<\/p>\n<ol>\n<li>Monitoring the power through a point in the system, i.e., monitor the voltage and current then compute the power.<\/li>\n<li>Count the number of times that power exceeds a threshold, if at all.<\/li>\n<li>Record the total amount of time that the power has exceeded the threshold.<\/li>\n<\/ol>\n<p style=\"font-weight: 400;\">We could also record the maximum duration of any one fault, the total energy in the fault conditions, and more, but we\u2019ll limit ourselves to those three steps.<\/p>\n<p style=\"font-weight: 400;\">This is not a good fit for intermittent monitoring like one would perform with an Oscilloscope. It would require that the Oscilloscope trigger on power levels when the inputs to the Oscilloscope are voltage and current. Very few systems can use real time computation as input to a trigger circuit.<\/p>\n<p style=\"font-weight: 400;\">Depending on the system parameters, it\u2019s also a poor fit for data acquisition approaches. Modern power systems can be damaged by high-speed transients, requiring a high acquisition rate; but a power system like this is typically designed for long-time, continuous use, so the amount of time the system needs monitoring to give confidence in its behavior may also be very long. Together, this leads to very high data volumes, increasing cost and complexity.<\/p>\n<p style=\"font-weight: 400;\">A custom Instrument-on-Chip deployment is a perfect fit, let\u2019s see how we can use ChatGPT to help us build one.<\/p>\n<h2>ChatGPT for custom fault detection<\/h2>\n<p style=\"font-weight: 400;\">First, ChatGPT performs best when it\u2019s given very specific instructions. Break down large problem statements into more manageable iterations. In this way, it\u2019s quite human!<\/p>\n<p style=\"font-weight: 400;\">Next, we ask for a VHDL entity that counts the number of fault events in Figure 2.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"alignnone wp-image-14023 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig2.png\" alt=\"Figure 2: Prompting ChatGPT for a VHDL-based fault counter.\" width=\"941\" height=\"474\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig2.png 941w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig2-300x151.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig2-768x387.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig2-600x302.png 600w\" sizes=\"(max-width: 941px) 100vw, 941px\" \/><\/p>\n<p style=\"font-weight: 400; text-align: center;\">Figure 2: Prompting ChatGPT for a VHDL-based fault counter.<\/p>\n<p style=\"font-weight: 400;\">Next, we add the counter for the total amount of time in the fault state (Figure 3).<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"alignnone wp-image-14024 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig3.png\" alt=\"Figure 3: Prompting ChatGPT to add a counter to our program.\" width=\"941\" height=\"218\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig3.png 941w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig3-300x70.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig3-768x178.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig3-600x139.png 600w\" sizes=\"(max-width: 941px) 100vw, 941px\" \/><\/p>\n<p style=\"font-weight: 400; text-align: center;\">Figure 3: Prompting ChatGPT to add a counter to our program.<\/p>\n<p style=\"font-weight: 400;\">Finally, we make the fault condition threshold configurable at run-time, by adding it as a port to the VHDL entity (Figure 4). In the final MCC implementation, this threshold will be connected to a control register so it can be set without requiring the whole instrument to be rebuilt.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"alignnone wp-image-14025 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig4.png\" alt=\"Figure 4: Prompting ChatGPT to modify our entity.\" width=\"941\" height=\"222\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig4.png 941w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig4-300x71.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig4-768x181.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig4-600x142.png 600w\" sizes=\"(max-width: 941px) 100vw, 941px\" \/><\/p>\n<p style=\"font-weight: 400; text-align: center;\">Figure 4: Prompting ChatGPT to modify our entity.<\/p>\n<p style=\"font-weight: 400;\">Find the full listing of the final VHDL at the end of this post.<\/p>\n<p style=\"font-weight: 400;\">Note that we have not yet tackled computing the power of the input. We can accomplish this by simply multiplying the voltage and current inputs before they go in to the VHDL entity. Figure 5 shows an example of how you might instantiate this entity in MCC, taking power as an input.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"alignnone wp-image-14026 size-large\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig5.png\" alt=\"Figure 5: Computing the power of the input signal in VHDL\" width=\"700\" height=\"550\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig5.png 941w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig5-300x236.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig5-768x603.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/GPTFig5-600x471.png 600w\" sizes=\"(max-width: 700px) 100vw, 700px\" \/><\/p>\n<p style=\"font-weight: 400; text-align: center;\">Figure 5: Computing the power of the input signal in VHDL<\/p>\n<p style=\"font-weight: 400;\">Note that this does increase the width of the input port from 16 to 32 bits. Either the instantiation here can throw away the low 16-bits (if the loss of precision is acceptable), or the entity updated to take a 32-bit input directly. Either way, all you need to do is ask! See the prompts at the end of this post.<\/p>\n<h2>Recap: Using ChatGPT and Moku Cloud Compile to perform custom transient fault detection<\/h2>\n<p style=\"font-weight: 400;\">We had a problem requiring real-time, high-rate, deadtime-free fault detection of a computed quantity (as opposed to one that could be directly measured). After only three prompts, ChatGPT gave us all the code we needed to implement this in VHDL, a language specifically designed for high-speed data processing on FPGAs. A simple cut-and-paste operation and a little bit of glue code, and Moku Cloud Compile from Liquid Instruments turned this into a custom instrument, capable of being deployed to Moku Instrument-on-Chip. Not bad for 10 minutes\u2019 work!<\/p>\n<p style=\"font-weight: 400;\">For more examples of using ChatGPT with MCC, watch our webinar here: <a href=\"https:\/\/liquidinstruments.com\/webinar-registration-moku-cloud-compile-and-chatgpt-essential-strategies-for-testing-smarter-with-ai\/\" target=\"_blank\" rel=\"noopener\">https:\/\/liquidinstruments.com\/webinar-registration-moku-cloud-compile-and-chatgpt-essential-strategies-for-testing-smarter-with-ai\/<\/a><\/p>\n<p style=\"font-weight: 400;\">Have questions about a custom instrument you want to develop with MCC? Contact us at <a href=\"mailto:support@liquidinstruments.com\" target=\"_blank\" rel=\"noopener\">support@liquidinstruments.com <\/a>and we\u2019ll connect you with an engineer.<\/p>\n<h2 style=\"font-weight: 400; text-align: center;\"><strong>Appendix 1: Code listing<\/strong><\/h2>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"alignnone wp-image-14021 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/Appen1.png\" alt=\"Appendix 1: Code listing\" width=\"895\" height=\"1454\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/Appen1.png 895w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/Appen1-185x300.png 185w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/Appen1-630x1024.png 630w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/Appen1-768x1248.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/Appen1-300x487.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/Appen1-600x975.png 600w\" sizes=\"(max-width: 895px) 100vw, 895px\" \/><\/p>\n<h3>VHDL Code Snippet:<\/h3>\n<div class=\"codeBloc\">\n<pre><code>library ieee;\r\nuse ieee.std_logic_1164.all;\r\nuse ieee.numeric_std.all;\r\n\r\nentity RisingAboveZero is\r\n    Port (\r\n        clk: in std_logic;\r\n        reset: in std_logic;\r\n        in_value: in signed(15 downto 0);\r\n        threshold: in unsigned(15 downto 0);\r\n        out_value: out signed(15 downto 0);\r\n        out_cycle_count: out signed(15 downto 0)\r\n    );\r\nend RisingAboveZero;\r\n\r\narchitecture Behavioral of RisingAboveZero is\r\n    signal counter: signed(15 downto 0);\r\n    signal cycle_count: signed(21 downto 0);  -- Updated to 22 bits\r\n    signal previous_value: signed(15 downto 0);\r\nbegin\r\n    process(clk, reset)\r\n    begin\r\n        if reset = '1' then\r\n            counter &lt;= to_signed(0, 16);\r\n            cycle_count &lt;= to_signed(0, 22);  -- Updated to 22 bits\r\n            previous_value &lt;= to_signed(0, 16); elsif rising_edge(clk) then if in_value &gt; signed(threshold) and previous_value &lt;= signed(threshold) then\r\n                counter &lt;= counter + 1; end if; if in_value &gt; signed(threshold) then\r\n                cycle_count &lt;= cycle_count + 1;\r\n            end if;\r\n\r\n            previous_value &lt;= in_value;\r\n        end if;\r\n    end process;\r\n\r\n    out_value &lt;= counter;\r\n    out_cycle_count &lt;= cycle_count(21 downto 6);  -- Output the 16 most significant bits\r\nend Behavioral;<\/code><\/pre>\n<\/div>\n<p><span style=\"font-weight: 400;\">\u00a0<\/span><\/p>\n<h2 style=\"font-weight: 400; text-align: center;\"><strong>Appendix 2: Port connection prompt<\/strong><\/h2>\n<p style=\"text-align: center;\"><img decoding=\"async\" class=\"aligncenter wp-image-14022 size-full\" src=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/Appen2.png\" alt=\"Appendix 2: Port connection prompt\" width=\"941\" height=\"902\" srcset=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/Appen2.png 941w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/Appen2-300x288.png 300w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/Appen2-768x736.png 768w, https:\/\/liquidinstruments.com\/wp-content\/uploads\/2023\/07\/Appen2-600x575.png 600w\" sizes=\"(max-width: 941px) 100vw, 941px\" \/><\/p>\n<p>&nbsp;<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>When performing real-time fault detection, you typically run into a trade-off: you can either sample at a high rate but face long swaths of dead time, or you can sample at a very low rate with nearly continuous data. Obviously, neither method is ideal. However, there is a way to better optimize your test rig [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":36,"featured_media":9610,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[3],"tags":[],"class_list":["post-14013","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","site-category-moku-cloud-compile","site-category-mokugo","site-category-mokulab","site-category-mokupro","site-category-software"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.0 (Yoast SEO v27.0) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Custom Transient Fault Detection with ChatGPT &amp; Moku Cloud Compile<\/title>\n<meta name=\"description\" content=\"When performing real-time fault detection, you typically run into a trade-off: you can either sample at a high rate but face long swaths of dead time, or\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Using ChatGPT and Moku Cloud Compile to perform custom transient fault detection\" \/>\n<meta property=\"og:description\" content=\"When performing real-time fault detection, you typically run into a trade-off: you can either sample at a high rate but face long swaths of dead time, or\" \/>\n<meta property=\"og:url\" content=\"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/\" \/>\n<meta property=\"og:site_name\" content=\"Liquid Instruments\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/LiquidInstruments\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-02T17:53:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-18T00:22:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/12\/Instrument-IconSolid-MokuCloudCompile.png\" \/>\n\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"mmcardle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@liquidinstrmnts\" \/>\n<meta name=\"twitter:site\" content=\"@liquidinstrmnts\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"mmcardle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/\"},\"author\":{\"name\":\"mmcardle\",\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/person\/a3d838bd1576c0f8f6fb52f263bd338a\"},\"headline\":\"Using ChatGPT and Moku Cloud Compile to perform custom transient fault detection\",\"datePublished\":\"2023-08-02T17:53:16+00:00\",\"dateModified\":\"2025-12-18T00:22:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/\"},\"wordCount\":1183,\"publisher\":{\"@id\":\"https:\/\/liquidinstruments.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/12\/Instrument-IconSolid-MokuCloudCompile.png\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/\",\"url\":\"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/\",\"name\":\"Custom Transient Fault Detection with ChatGPT & Moku Cloud Compile\",\"isPartOf\":{\"@id\":\"https:\/\/liquidinstruments.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/12\/Instrument-IconSolid-MokuCloudCompile.png\",\"datePublished\":\"2023-08-02T17:53:16+00:00\",\"dateModified\":\"2025-12-18T00:22:53+00:00\",\"description\":\"When performing real-time fault detection, you typically run into a trade-off: you can either sample at a high rate but face long swaths of dead time, or\",\"breadcrumb\":{\"@id\":\"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/#primaryimage\",\"url\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/12\/Instrument-IconSolid-MokuCloudCompile.png\",\"contentUrl\":\"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/12\/Instrument-IconSolid-MokuCloudCompile.png\",\"width\":512,\"height\":512,\"caption\":\"Instrument-IconSolid-MokuCloudCompile\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/liquidinstruments.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Using ChatGPT and Moku Cloud Compile to perform custom transient fault detection\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/liquidinstruments.com\/#website\",\"url\":\"https:\/\/liquidinstruments.com\/\",\"name\":\"Liquid Instruments\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/liquidinstruments.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/liquidinstruments.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/liquidinstruments.com\/#organization\",\"name\":\"Liquid Instruments\",\"url\":\"https:\/\/liquidinstruments.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/i0.wp.com\/liquidinstruments.com\/wp-content\/uploads\/2020\/10\/BrandMark-Preferred-RGB-Color.png?fit=1000%2C924&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/liquidinstruments.com\/wp-content\/uploads\/2020\/10\/BrandMark-Preferred-RGB-Color.png?fit=1000%2C924&ssl=1\",\"width\":1000,\"height\":924,\"caption\":\"Liquid Instruments\"},\"image\":{\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/LiquidInstruments\/\",\"https:\/\/x.com\/liquidinstrmnts\",\"https:\/\/www.instagram.com\/liquidinstruments\/\",\"https:\/\/www.linkedin.com\/company\/liquidinstruments\/\",\"https:\/\/www.youtube.com\/c\/LiquidInstruments\",\"https:\/\/vimeo.com\/liquidinstruments\"],\"hasMerchantReturnPolicy\":{\"@type\":\"MerchantReturnPolicy\",\"merchantReturnLink\":\"https:\/\/liquidinstruments.com\/support\/warranty-repairs-and-service\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/person\/a3d838bd1576c0f8f6fb52f263bd338a\",\"name\":\"mmcardle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/liquidinstruments.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c87d184ad2c207a8044a2c4f53a6a74745451f55e144a9a9f3cc8b3c04aa1671?s=96&d=wavatar&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c87d184ad2c207a8044a2c4f53a6a74745451f55e144a9a9f3cc8b3c04aa1671?s=96&d=wavatar&r=g\",\"caption\":\"mmcardle\"}}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Custom Transient Fault Detection with ChatGPT & Moku Cloud Compile","description":"When performing real-time fault detection, you typically run into a trade-off: you can either sample at a high rate but face long swaths of dead time, or","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/","og_locale":"en_US","og_type":"article","og_title":"Using ChatGPT and Moku Cloud Compile to perform custom transient fault detection","og_description":"When performing real-time fault detection, you typically run into a trade-off: you can either sample at a high rate but face long swaths of dead time, or","og_url":"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/","og_site_name":"Liquid Instruments","article_publisher":"https:\/\/www.facebook.com\/LiquidInstruments\/","article_published_time":"2023-08-02T17:53:16+00:00","article_modified_time":"2025-12-18T00:22:53+00:00","og_image":[{"width":512,"height":512,"url":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/12\/Instrument-IconSolid-MokuCloudCompile.png","type":"image\/png"}],"author":"mmcardle","twitter_card":"summary_large_image","twitter_creator":"@liquidinstrmnts","twitter_site":"@liquidinstrmnts","twitter_misc":{"Written by":"mmcardle","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/#article","isPartOf":{"@id":"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/"},"author":{"name":"mmcardle","@id":"https:\/\/liquidinstruments.com\/#\/schema\/person\/a3d838bd1576c0f8f6fb52f263bd338a"},"headline":"Using ChatGPT and Moku Cloud Compile to perform custom transient fault detection","datePublished":"2023-08-02T17:53:16+00:00","dateModified":"2025-12-18T00:22:53+00:00","mainEntityOfPage":{"@id":"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/"},"wordCount":1183,"publisher":{"@id":"https:\/\/liquidinstruments.com\/#organization"},"image":{"@id":"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/#primaryimage"},"thumbnailUrl":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/12\/Instrument-IconSolid-MokuCloudCompile.png","articleSection":["Blog"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/","url":"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/","name":"Custom Transient Fault Detection with ChatGPT & Moku Cloud Compile","isPartOf":{"@id":"https:\/\/liquidinstruments.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/#primaryimage"},"image":{"@id":"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/#primaryimage"},"thumbnailUrl":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/12\/Instrument-IconSolid-MokuCloudCompile.png","datePublished":"2023-08-02T17:53:16+00:00","dateModified":"2025-12-18T00:22:53+00:00","description":"When performing real-time fault detection, you typically run into a trade-off: you can either sample at a high rate but face long swaths of dead time, or","breadcrumb":{"@id":"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/#primaryimage","url":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/12\/Instrument-IconSolid-MokuCloudCompile.png","contentUrl":"https:\/\/liquidinstruments.com\/wp-content\/uploads\/2021\/12\/Instrument-IconSolid-MokuCloudCompile.png","width":512,"height":512,"caption":"Instrument-IconSolid-MokuCloudCompile"},{"@type":"BreadcrumbList","@id":"https:\/\/liquidinstruments.com\/blog\/using-chatgpt-and-moku-cloud-compile-to-perform-custom-transient-fault-detection\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/liquidinstruments.com\/"},{"@type":"ListItem","position":2,"name":"Using ChatGPT and Moku Cloud Compile to perform custom transient fault detection"}]},{"@type":"WebSite","@id":"https:\/\/liquidinstruments.com\/#website","url":"https:\/\/liquidinstruments.com\/","name":"Liquid Instruments","description":"","publisher":{"@id":"https:\/\/liquidinstruments.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/liquidinstruments.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/liquidinstruments.com\/#organization","name":"Liquid Instruments","url":"https:\/\/liquidinstruments.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/liquidinstruments.com\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/liquidinstruments.com\/wp-content\/uploads\/2020\/10\/BrandMark-Preferred-RGB-Color.png?fit=1000%2C924&ssl=1","contentUrl":"https:\/\/i0.wp.com\/liquidinstruments.com\/wp-content\/uploads\/2020\/10\/BrandMark-Preferred-RGB-Color.png?fit=1000%2C924&ssl=1","width":1000,"height":924,"caption":"Liquid Instruments"},"image":{"@id":"https:\/\/liquidinstruments.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/LiquidInstruments\/","https:\/\/x.com\/liquidinstrmnts","https:\/\/www.instagram.com\/liquidinstruments\/","https:\/\/www.linkedin.com\/company\/liquidinstruments\/","https:\/\/www.youtube.com\/c\/LiquidInstruments","https:\/\/vimeo.com\/liquidinstruments"],"hasMerchantReturnPolicy":{"@type":"MerchantReturnPolicy","merchantReturnLink":"https:\/\/liquidinstruments.com\/support\/warranty-repairs-and-service\/"}},{"@type":"Person","@id":"https:\/\/liquidinstruments.com\/#\/schema\/person\/a3d838bd1576c0f8f6fb52f263bd338a","name":"mmcardle","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/liquidinstruments.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c87d184ad2c207a8044a2c4f53a6a74745451f55e144a9a9f3cc8b3c04aa1671?s=96&d=wavatar&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c87d184ad2c207a8044a2c4f53a6a74745451f55e144a9a9f3cc8b3c04aa1671?s=96&d=wavatar&r=g","caption":"mmcardle"}}]}},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts\/14013","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/users\/36"}],"replies":[{"embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/comments?post=14013"}],"version-history":[{"count":2,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts\/14013\/revisions"}],"predecessor-version":[{"id":26947,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/posts\/14013\/revisions\/26947"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/media\/9610"}],"wp:attachment":[{"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/media?parent=14013"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/categories?post=14013"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/liquidinstruments.com\/wp-json\/wp\/v2\/tags?post=14013"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}