{"id":34290,"date":"2026-06-24T11:53:03","date_gmt":"2026-06-24T09:53:03","guid":{"rendered":"https:\/\/sii.pl\/blog\/?p=34290"},"modified":"2026-06-24T11:53:05","modified_gmt":"2026-06-24T09:53:05","slug":"can-ai-support-electronics-design-testing-github-copilot-and-kicad","status":"publish","type":"post","link":"https:\/\/sii.pl\/blog\/en\/can-ai-support-electronics-design-testing-github-copilot-and-kicad\/","title":{"rendered":"Can AI Support Electronics Design? Testing GitHub Copilot and KiCad"},"content":{"rendered":"\n<p>This short series of articles is not a step-by-step guide on utilizing AI for schematic capture and <a href=\"https:\/\/sii.pl\/wyszukiwarka\/blog\/pcb\" target=\"_blank\" rel=\"noopener\" title=\"\">PCB<\/a> design. Instead, it serves as a record of experiments aimed at determining whether a generic LLM can meet the complex challenges inherent in hardware development.<\/p>\n\n\n\n<p>You will not find a tutorial here to help you configure or deploy AI for electronics design workflow.<\/p>\n\n\n\n<p>What you will find, however, is a case-by-case analysis of practical attempts to utilize these models for specific tasks.<\/p>\n\n\n\n<p><strong>The EDA software chosen for these trials is KiCAD.<\/strong> This choice was dictated not by any native AI integration within the software, but rather by the underlying file formats used to store schematics, PCB layouts, and other essential hardware development data.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong><strong>Why KiCAD?<\/strong><\/strong><\/h2>\n\n\n\n<p>A major advantage of KiCAD is its data storage philosophy: it saves design data in plain, structured text files. Naturally, each project element (schematic, PCB, netlist, etc.) utilizes its own dedicated schema optimized for its specific data type.<\/p>\n\n\n\n<p>This text-based approach is highly beneficial when considering automated design file generation. Furthermore, these file formats are backed by comprehensive, publicly available documentation.<\/p>\n\n\n\n<p>Consequently, KiCAD emerges as an appealing platform for experimenting with AI-driven generation of individual project files.<\/p>\n\n\n\n<p>Engineering a hardware device is a time-consuming, multi-stage process. In this article, I will attempt to apply AI to specific, isolated engineering tasks and evaluate whether such an approach is genuinely viable.<\/p>\n\n\n\n<p>All experiments were conducted utilizing the VScode IDE alongside GitHub Copilot.<\/p>\n\n\n\n<p>Given the complexity of the topic, this article will be presented in several parts.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Requirements<\/h2>\n\n\n\n<p>To test the Copilot model, the design of a simple device for interfacing a computer with an external EEPROM was selected as the evaluation task. The computer will utilize a USB port for both communication and powering the device. The device itself will convert commands sent from the computer into EEPROM read, write, and erase operations.<\/p>\n\n\n\n<p>Device requirements:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>USB (CDC) to I2C converter functionality,<\/li>\n\n\n\n<li>Powered directly via the USB connector,<\/li>\n\n\n\n<li>In-system programming of an external EEPROM (located within the power supply module),<\/li>\n\n\n\n<li>Two additional push-pull pins operating at 12 V (max. 20 mA) dedicated to configuring the operating mode of the power supply module,<\/li>\n\n\n\n<li>Galvanic isolation for all control pins.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Components selection<\/h2>\n\n\n\n<p>The Copilot tool was tasked with selecting the electronic components required to realize the device. The following prompt was issued:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Please select electronics components for the device described by the following requirements:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>USB (CDC) to I2C Converter.<\/li>\n\n\n\n<li>USB-powered device operation.<\/li>\n\n\n\n<li>In-system programming of an external EEPROM (located within the power supply module).<\/li>\n\n\n\n<li>Two additional 12V push-pull pins (max. 20 mA current output) dedicated to configuring the operating mode of the power supply module.<\/li>\n\n\n\n<li>Galvanic isolation required for all control pins.<\/li>\n<\/ul>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\"><strong><strong>Result<\/strong><\/strong><\/h2>\n\n\n\n<p>As a result, Copilot generated a file containing descriptions of the proposed components along with the rationale for their selection.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>J1 &#8212; USB-C connector: GCT USB4085-GF-A<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Modern USB-C device connector. Fixed 5.1 k\\textohm UFP CC resistors must be added externally since no VCONN or PD negotiation is needed.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>R1, R2 &#8212; 5.1 k<\/strong><strong>\u03a9<\/strong><strong>, 1%, 0603 (USB-C CC1\/CC2 pull-downs)<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Required for USB 2.0 sink-only operation. Without these resistors the host will not recognise a valid device on the bus.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>F1 &#8212; Bourns MF-MSMF050-2 (USB input resettable fuse)<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Polyfuse on the VBUS line that limits fault current and resets automatically after a short-circuit event clears.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>D1 &#8212; TI TPD2EUSB30DRTR (USB D+\/D- ESD protection)<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Rail-clamp TVS array chosen for its ultra-low capacitance so it does not degrade USB signal quality.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>U1 &#8212; STM32F072C8T6 (main MCU)<\/strong><\/li>\n<\/ul>\n\n\n\n<p>ARM Cortex-M0 with native USB full-speed device peripheral, hardware I2C, and sufficient GPIO for all functions. The internal 48 MHz oscillator with clock recovery (CRS) means no external crystal is required, simplifying layout and reducing cost.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>U2 \u2014 Diodes Inc. AP2112K-3.3TRG1 (3.3 V regulator, MCU side)<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Low-dropout regulator with 600 mA output capacity and very low quiescent current. Significantly more efficient and better specified than the AMS1117 that was previously in the BOM.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Y1 \u2014 None required (MCU clock)<\/strong><\/li>\n<\/ul>\n\n\n\n<p>The STM32F072 can drive USB from its internal 48 MHz RC oscillator trimmed by the USB start-of-frame packets via the CRS peripheral. An external crystal is only needed if precise baud-rate generation is required for other peripherals.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>U3 &#8212; Texas Instruments ISO1640BDWR (isolated I2C transceiver)<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Purpose-built bidirectional I2C isolator with separate SCL and SDA channels and transparent open-drain behaviour. Avoids the complexity and timing problems of implementing I2C isolation with generic optocouplers.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>U4 &#8212; Analog Devices ADuM1201ARZ (2-channel digital isolator)<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Carries the two mode-control logic signals from the MCU side to the isolated 12 V domain. CMOS-level on the input side and compatible with the TC4427 input threshold on the output side.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>U5 &#8212; Murata MEJ1S0512SC (5 V to isolated 12 V DC\/DC converter)<\/strong><\/li>\n<\/ul>\n\n\n\n<p>1 W isolated converter that derives the field-side 12 V rail entirely from USB power. Provides the supply for the push-pull output stage and, after down-regulation, for the isolated logic.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>U6 &#8212; Microchip MCP1703A-3302E\/CB (isolated-side 3.3 V LDO)<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Post-regulates the isolated 12 V rail down to 3.3 V for the ISO1640 field-side supply and for the I2C pull-up resistors.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>U7 &#8212; Microchip TC4427AEOA (dual push-pull output driver)<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Two-channel MOSFET gate driver repurposed as high-current logic output. Powered directly from the isolated 12 V rail, it delivers true rail-to-rail push-pull outputs capable of sourcing and sinking up to 1.5 A, with the actual working current limited by the series resistors.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>R3, R4 &#8212; 560<\/strong><strong>\u03a9<\/strong><strong>, 1%, 0805 (series resistors on CTRL0 and CTRL1 outputs)<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Placed between the TC4427 outputs and the connector to enforce the 20 mA maximum. At 12 V \u00b1 560\u03a9 ~21 mA, the current is held within specification even if the target input is accidentally shorted to ground.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>R5, R6 &#8212; 4.7 k<\/strong><strong>\u03a9<\/strong><strong>, 1%, 0603 (isolated-side I2C pull-ups)<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Pull SCL_ISO and SDA_ISO to the isolated 3.3 V rail. Value chosen for standard-mode and fast-mode I2C compatibility up to 400 kHz.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>J2 &#8212; 6-pin JST-GH or 2.54 mm header (isolated target connector)<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Carries all signals to the power-supply module: GND_ISO, SDA_ISO, SCL_ISO, CTRL0_12V, CTRL1_12V, and an optional VISO test pin for bench diagnostics.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>J3 \u2014 4-pin Tag-Connect or 2.54 mm header (SWD programming header)<\/strong><\/li>\n<\/ul>\n\n\n\n<p>Exposes SWDIO, SWCLK, 3V3, and GND for in-circuit firmware loading and debugging with an ST-Link or compatible probe.<\/p>\n\n\n\n<p>As can be seen, the output generated by the Copilot model is quite reasonable in this case, considering that the provided requirements were not particularly detailed. It is possible that for a relatively simple device, the model can deliver results comparable to what one would expect from a human engineer.<\/p>\n\n\n<div class=\"nsw-o-blogersii-banner\">\n            <picture>\n            <source srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/04\/Blog-Embedded-Lab-Desktop_.jpg\" media=\"(min-width: 992px)\" >\n            <source srcset=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/04\/Blog-Embedded-Lab-Mob_.jpg\" media=\"(min-width: 300px)\" >            <img decoding=\"async\" src=\"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/04\/Blog-Embedded-Lab-Desktop_.jpg\" alt=\"\"  class=\"\"  >\n        <\/picture>\n        <div class=\"cnt\">\n                    <div class=\"nsw-m-title-block -h3 -invert  -has-title-margin-bottom-0 -has-title-font-weight-bold\">\n                                <h2 class=\"nsw-m-title-block__title\">Embedded Systems<\/h2>\n                <\/div>\n                            <p class=\"has-nsw-p-4-font-size has-invert-color\">\n                We offer R&amp;D, design, development, and testing services for embedded systems, ensuring the security and reliability of your technologies.\n            <\/p>\n                            <a  href=\"https:\/\/sii.pl\/en\/what-we-offer\/embedded-systems\/\" class=\"nsw-a-button -ghost -banner-button\"   >\n        <span>Embedded systems offering<\/span>\n    <\/a>\n            <\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusions<\/h2>\n\n\n\n<p>The Copilot model demonstrates utility in the following areas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Component Selection: <\/strong>In simple projects based on popular and readily available components, Copilot can suggest suitable parts and technical solutions.<\/li>\n\n\n\n<li><strong>Technical Information Retrieval: <\/strong>Copilot is effective at aggregating component data and locating application examples.<\/li>\n<\/ul>\n\n\n\n<p>In the upcoming part, we will dive into schematic file manipulation.<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-left kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;left&quot;,&quot;id&quot;:&quot;34290&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;1&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;5&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;2&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;5\\\/5&quot;,&quot;size&quot;:&quot;30&quot;,&quot;title&quot;:&quot;Can AI Support Electronics Design? Testing GitHub Copilot and KiCad&quot;,&quot;width&quot;:&quot;159&quot;,&quot;_legend&quot;:&quot;{score}\\\/5&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 159px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 2px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 30px; height: 30px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 24px;\">\n            5\/5    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>This short series of articles is not a step-by-step guide on utilizing AI for schematic capture and PCB design. Instead, &hellip; <a class=\"continued-btn\" href=\"https:\/\/sii.pl\/blog\/en\/can-ai-support-electronics-design-testing-github-copilot-and-kicad\/\">Continued<\/a><\/p>\n","protected":false},"author":248,"featured_media":34296,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","inline_featured_image":false,"footnotes":""},"categories":[1320],"tags":[15103,15077,15044,1801,1547,1342],"class_list":["post-34290","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-hard-development","tag-kicad-en","tag-artificial-intelligence-en-2","tag-copilot-en","tag-pcb-en","tag-github","tag-embedded-en"],"acf":[],"aioseo_notices":[],"republish_history":[],"featured_media_url":"https:\/\/sii.pl\/blog\/wp-content\/uploads\/2026\/06\/AI_1-2026.jpg","category_names":["Hard development"],"_links":{"self":[{"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/posts\/34290"}],"collection":[{"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/users\/248"}],"replies":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/comments?post=34290"}],"version-history":[{"count":1,"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/posts\/34290\/revisions"}],"predecessor-version":[{"id":34292,"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/posts\/34290\/revisions\/34292"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/media\/34296"}],"wp:attachment":[{"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/media?parent=34290"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/categories?post=34290"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sii.pl\/blog\/en\/wp-json\/wp\/v2\/tags?post=34290"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}