{"id":2621,"date":"2022-02-15T08:40:41","date_gmt":"2022-02-15T08:40:41","guid":{"rendered":"https:\/\/stage.wizzdev.pl\/?p=2621"},"modified":"2023-05-26T14:00:18","modified_gmt":"2023-05-26T14:00:18","slug":"esp32-optoisolated-programmer-pcb-analysis-2","status":"publish","type":"post","link":"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/","title":{"rendered":"ESP32 Optoisolated Programmer – PCB Analysis #2"},"content":{"rendered":"

Welcome to the continuation of our mini-series of blogs about the ESP32 Optoisolated Programmer – PCB Analysis #2. Enjoy!<\/p>\n

Screen printing stencil\u00a0<\/b><\/h1>\n

The first step in SMT assembly is to apply solder paste to the copper pads on the PCB using a stencil. This is a metal foil with holes cut in it, called apertures.\u00a0<\/span><\/p>\n

The board is placed under the stencil, while the solder paste is placed on the stencil. Using a squeegee, the paste is spread on the stencil, like butter on bread. The paste fills the apertures and sticks to the PCB. Then, the board is moved away from the stencil and goes to the further production stage.<\/span><\/p>\n

Aperture design is critical to eliminate solder defects such as short circuits, missing solder, and solder balls. A good practice is to reduce the apertures in the stencil by 10% relative to the dimensions of the solder fields on the board. This will compensate for small misalignments of the board position to the stencil, resulting from machine inaccuracies and stencil stretching due to wear.<\/span><\/p>\n

Proper placement of soldermask is also important. This is a protective layer to prevent the oxidation of the copper. In addition, the soldermask will prevent short circuits. The hole in the soldermask that exposes the solder pad is called the window. The window needs to be slightly larger than the pad because, during PCB production, soldermask is always applied with some offset. If the soldermask were to overlap the pad it would lift the soldermask stencil. If the stencil was not pressed against the PCB surface then the paste would escape beyond the actual printing area.<\/span><\/p>\n

In the figure below we have marked what the correct windows in the soldermask and apertures in the solder stencil look like.<\/span><\/p>\n

Pin in paste<\/b><\/h1>\n

The USB socket has a few pins soldered with SMT solder paste and four pins through it, to make it difficult to detach the socket from the board if the cable is tugged.<\/span><\/p>\n

It is possible to solder small through-hole components together with SMD components in the SMT process. This is called the pin in the paste process. It involves printing solder paste from the holes where the solder pins are to be placed. Then the component is applied by a pick&place machine and soldered at the same time as the other SMD components.\u00a0<\/span><\/p>\n

In order to properly apply the solder paste, we need to cut large enough windows in the soldermask. The solder paste is applied into the hole, on the metal border of the hole, and directly on the laminate. The soldermask forms a reservoir that prevents the liquid tin, once the paste has melted, from spreading on the board creating unwanted solder balls (which is a disadvantage according to IPC-A-610 as they can make a short circuit).<\/span><\/p>\n

PCB with applied solder paste.<\/span><\/p>\n

PC with components placed on the solder paste, ready to be soldered in a reflow oven.<\/span><\/p>\n

This is what a properly soldered pin-in-paste USB connector looks like.<\/span><\/p>\n

Graphic elements<\/b><\/h1>\n

Since this project is a demo project, we wanted our logo to be clearly visible. The WizzDev company logo is a two-color design. For this reason, part of the logo is done in white paint on the soldermask. The other part is made as a window in the soldermask, revealing gold-plated copper.\u00a0<\/span><\/p>\n

Gold plating is used for much more advanced designs, mainly with BGA chips and edge connectors. In the case of our project, there is no need for the board to be gold plated. We used gold plating for aesthetic reasons only. The same goes for the black soldermask color. We usually use green because it is the cheapest.<\/span><\/p>\n

Stay tuned for the final article about our PCB Analysis. Until the next time!<\/p>\n","protected":false},"excerpt":{"rendered":"

Welcome to the continuation of our mini-series of blogs about the ESP32 Optoisolated Programmer – PCB Analysis #2. Enjoy! Screen printing stencil\u00a0 The first step in SMT assembly is to apply \u00a0[…]<\/a><\/p>\n","protected":false},"author":3,"featured_media":2647,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":""},"categories":[17,40],"tags":[15,16,41],"acf":[],"yoast_head":"\nESP32 Optoisolated Programmer - PCB Analysis #2 - WizzDev<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"ESP32 Optoisolated Programmer - PCB Analysis #2 - WizzDev\" \/>\n<meta property=\"og:description\" content=\"Welcome to the continuation of our mini-series of blogs about the ESP32 Optoisolated Programmer – PCB Analysis #2. Enjoy! Screen printing stencil\u00a0 The first step in SMT assembly is to apply \u00a0[...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/\" \/>\n<meta property=\"og:site_name\" content=\"WizzDev\" \/>\n<meta property=\"article:published_time\" content=\"2022-02-15T08:40:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-26T14:00:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/stage2.wizzdev.pl\/wp-content\/uploads\/2022\/03\/11-logo-690x387-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"690\" \/>\n\t<meta property=\"og:image:height\" content=\"387\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Dominik Bieczy\u0144ski\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Dominik Bieczy\u0144ski\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/\"},\"author\":{\"name\":\"Dominik Bieczy\u0144ski\",\"@id\":\"https:\/\/stage2.wizzdev.pl\/#\/schema\/person\/8ffbc753811c53c6dc2a912b41e4a2e6\"},\"headline\":\"ESP32 Optoisolated Programmer – PCB Analysis #2\",\"datePublished\":\"2022-02-15T08:40:41+00:00\",\"dateModified\":\"2023-05-26T14:00:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/\"},\"wordCount\":630,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/stage2.wizzdev.pl\/#organization\"},\"keywords\":[\"Internet of Things\",\"IoT\",\"PCB\"],\"articleSection\":[\"IoT\",\"PCB\"],\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/\",\"url\":\"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/\",\"name\":\"ESP32 Optoisolated Programmer - PCB Analysis #2 - WizzDev\",\"isPartOf\":{\"@id\":\"https:\/\/stage2.wizzdev.pl\/#website\"},\"datePublished\":\"2022-02-15T08:40:41+00:00\",\"dateModified\":\"2023-05-26T14:00:18+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/#breadcrumb\"},\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/stage2.wizzdev.pl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"ESP32 Optoisolated Programmer – PCB Analysis #2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/stage2.wizzdev.pl\/#website\",\"url\":\"https:\/\/stage2.wizzdev.pl\/\",\"name\":\"WizzDev\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/stage2.wizzdev.pl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/stage2.wizzdev.pl\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/stage2.wizzdev.pl\/#organization\",\"name\":\"WizzDev\",\"url\":\"https:\/\/stage2.wizzdev.pl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\/\/stage2.wizzdev.pl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/stage2.wizzdev.pl\/wp-content\/uploads\/2022\/02\/Logo-WizzDev-wersja-1-PNG-granat-niebieski-1-1.jpg\",\"contentUrl\":\"https:\/\/stage2.wizzdev.pl\/wp-content\/uploads\/2022\/02\/Logo-WizzDev-wersja-1-PNG-granat-niebieski-1-1.jpg\",\"width\":179,\"height\":47,\"caption\":\"WizzDev\"},\"image\":{\"@id\":\"https:\/\/stage2.wizzdev.pl\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/twitter.com\/wizz_dev\",\"https:\/\/www.upwork.com\/ag\/wizzdev\/\",\"https:\/\/github.com\/wizzdev-pl\",\"https:\/\/linkedin.com\/company\/wizzdev\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/stage2.wizzdev.pl\/#\/schema\/person\/8ffbc753811c53c6dc2a912b41e4a2e6\",\"name\":\"Dominik Bieczy\u0144ski\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\/\/stage2.wizzdev.pl\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/86a3232ba5c41d7d960f6f37028bee9b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/86a3232ba5c41d7d960f6f37028bee9b?s=96&d=mm&r=g\",\"caption\":\"Dominik Bieczy\u0144ski\"},\"url\":\"https:\/\/stage2.wizzdev.pl\/blog\/author\/dbieczynski\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"ESP32 Optoisolated Programmer - PCB Analysis #2 - WizzDev","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:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/","og_locale":"en_US","og_type":"article","og_title":"ESP32 Optoisolated Programmer - PCB Analysis #2 - WizzDev","og_description":"Welcome to the continuation of our mini-series of blogs about the ESP32 Optoisolated Programmer – PCB Analysis #2. Enjoy! Screen printing stencil\u00a0 The first step in SMT assembly is to apply \u00a0[...]","og_url":"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/","og_site_name":"WizzDev","article_published_time":"2022-02-15T08:40:41+00:00","article_modified_time":"2023-05-26T14:00:18+00:00","og_image":[{"width":690,"height":387,"url":"https:\/\/stage2.wizzdev.pl\/wp-content\/uploads\/2022\/03\/11-logo-690x387-1.jpg","type":"image\/jpeg"}],"author":"Dominik Bieczy\u0144ski","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Dominik Bieczy\u0144ski","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/#article","isPartOf":{"@id":"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/"},"author":{"name":"Dominik Bieczy\u0144ski","@id":"https:\/\/stage2.wizzdev.pl\/#\/schema\/person\/8ffbc753811c53c6dc2a912b41e4a2e6"},"headline":"ESP32 Optoisolated Programmer – PCB Analysis #2","datePublished":"2022-02-15T08:40:41+00:00","dateModified":"2023-05-26T14:00:18+00:00","mainEntityOfPage":{"@id":"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/"},"wordCount":630,"commentCount":0,"publisher":{"@id":"https:\/\/stage2.wizzdev.pl\/#organization"},"keywords":["Internet of Things","IoT","PCB"],"articleSection":["IoT","PCB"],"inLanguage":"en","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/","url":"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/","name":"ESP32 Optoisolated Programmer - PCB Analysis #2 - WizzDev","isPartOf":{"@id":"https:\/\/stage2.wizzdev.pl\/#website"},"datePublished":"2022-02-15T08:40:41+00:00","dateModified":"2023-05-26T14:00:18+00:00","breadcrumb":{"@id":"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/#breadcrumb"},"inLanguage":"en","potentialAction":[{"@type":"ReadAction","target":["https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/stage2.wizzdev.pl\/blog\/esp32-optoisolated-programmer-pcb-analysis-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/stage2.wizzdev.pl\/"},{"@type":"ListItem","position":2,"name":"ESP32 Optoisolated Programmer – PCB Analysis #2"}]},{"@type":"WebSite","@id":"https:\/\/stage2.wizzdev.pl\/#website","url":"https:\/\/stage2.wizzdev.pl\/","name":"WizzDev","description":"","publisher":{"@id":"https:\/\/stage2.wizzdev.pl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/stage2.wizzdev.pl\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en"},{"@type":"Organization","@id":"https:\/\/stage2.wizzdev.pl\/#organization","name":"WizzDev","url":"https:\/\/stage2.wizzdev.pl\/","logo":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/stage2.wizzdev.pl\/#\/schema\/logo\/image\/","url":"https:\/\/stage2.wizzdev.pl\/wp-content\/uploads\/2022\/02\/Logo-WizzDev-wersja-1-PNG-granat-niebieski-1-1.jpg","contentUrl":"https:\/\/stage2.wizzdev.pl\/wp-content\/uploads\/2022\/02\/Logo-WizzDev-wersja-1-PNG-granat-niebieski-1-1.jpg","width":179,"height":47,"caption":"WizzDev"},"image":{"@id":"https:\/\/stage2.wizzdev.pl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/twitter.com\/wizz_dev","https:\/\/www.upwork.com\/ag\/wizzdev\/","https:\/\/github.com\/wizzdev-pl","https:\/\/linkedin.com\/company\/wizzdev"]},{"@type":"Person","@id":"https:\/\/stage2.wizzdev.pl\/#\/schema\/person\/8ffbc753811c53c6dc2a912b41e4a2e6","name":"Dominik Bieczy\u0144ski","image":{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/stage2.wizzdev.pl\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/86a3232ba5c41d7d960f6f37028bee9b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/86a3232ba5c41d7d960f6f37028bee9b?s=96&d=mm&r=g","caption":"Dominik Bieczy\u0144ski"},"url":"https:\/\/stage2.wizzdev.pl\/blog\/author\/dbieczynski\/"}]}},"_links":{"self":[{"href":"https:\/\/stage2.wizzdev.pl\/wp-json\/wp\/v2\/posts\/2621"}],"collection":[{"href":"https:\/\/stage2.wizzdev.pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/stage2.wizzdev.pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/stage2.wizzdev.pl\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/stage2.wizzdev.pl\/wp-json\/wp\/v2\/comments?post=2621"}],"version-history":[{"count":3,"href":"https:\/\/stage2.wizzdev.pl\/wp-json\/wp\/v2\/posts\/2621\/revisions"}],"predecessor-version":[{"id":4778,"href":"https:\/\/stage2.wizzdev.pl\/wp-json\/wp\/v2\/posts\/2621\/revisions\/4778"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/stage2.wizzdev.pl\/wp-json\/wp\/v2\/media\/2647"}],"wp:attachment":[{"href":"https:\/\/stage2.wizzdev.pl\/wp-json\/wp\/v2\/media?parent=2621"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/stage2.wizzdev.pl\/wp-json\/wp\/v2\/categories?post=2621"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/stage2.wizzdev.pl\/wp-json\/wp\/v2\/tags?post=2621"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}