CINXE.COM

Python Archives - Engineers Garage

<!DOCTYPE html> <html lang="en-US"> <head > <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <meta property="fb:admins" content="1140409510" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta property="fb:admins" content="107031532675062" /> <meta name="msvalidate.01" content="40BA1B879066C83CDFCA374CA4B490C3" /> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <!-- This site is optimized with the Yoast SEO Premium plugin v18.5 (Yoast SEO v23.9) - https://yoast.com/wordpress/plugins/seo/ --> <title>Python Archives - Engineers Garage</title> <link rel="canonical" href="https://www.engineersgarage.com/tutorials/python/" /> <link rel="next" href="https://www.engineersgarage.com/tutorials/python/page/2/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Python Archives" /> <meta property="og:url" content="https://www.engineersgarage.com/tutorials/python/" /> <meta property="og:site_name" content="Engineers Garage" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@EngineersGarage" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"CollectionPage","@id":"https://www.engineersgarage.com/tutorials/python/","url":"https://www.engineersgarage.com/tutorials/python/","name":"Python Archives - Engineers Garage","isPartOf":{"@id":"https://www.engineersgarage.com/#website"},"primaryImageOfPage":{"@id":"https://www.engineersgarage.com/tutorials/python/#primaryimage"},"image":{"@id":"https://www.engineersgarage.com/tutorials/python/#primaryimage"},"thumbnailUrl":"https://www.engineersgarage.com/wp-content/uploads/2019/12/code-1084923_1280-e1576690645405.png","breadcrumb":{"@id":"https://www.engineersgarage.com/tutorials/python/#breadcrumb"},"inLanguage":"en-US"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.engineersgarage.com/tutorials/python/#primaryimage","url":"https://www.engineersgarage.com/wp-content/uploads/2019/12/code-1084923_1280-e1576690645405.png","contentUrl":"https://www.engineersgarage.com/wp-content/uploads/2019/12/code-1084923_1280-e1576690645405.png","width":770,"height":433,"caption":"Python Basics"},{"@type":"BreadcrumbList","@id":"https://www.engineersgarage.com/tutorials/python/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.engineersgarage.com/"},{"@type":"ListItem","position":2,"name":"Tutorials","item":"https://www.engineersgarage.com/tutorials/"},{"@type":"ListItem","position":3,"name":"Python"}]},{"@type":"WebSite","@id":"https://www.engineersgarage.com/#website","url":"https://www.engineersgarage.com/","name":"Engineers Garage","description":"Electronic Projects, Electrical Engineering Resources, Makers Articles and Product News","publisher":{"@id":"https://www.engineersgarage.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://www.engineersgarage.com/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://www.engineersgarage.com/#organization","name":"Engineer's Garage - WTWH Media","url":"https://www.engineersgarage.com/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://www.engineersgarage.com/#/schema/logo/image/","url":"https://www.engineersgarage.com/wp-content/uploads/2019/08/EGlogo.png","contentUrl":"https://www.engineersgarage.com/wp-content/uploads/2019/08/EGlogo.png","width":372,"height":52,"caption":"Engineer's Garage - WTWH Media"},"image":{"@id":"https://www.engineersgarage.com/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/engineersgarage","https://x.com/EngineersGarage","https://www.youtube.com/channel/UC0VITh11JSYk-UW7toLebUw"]}]}</script> <!-- / Yoast SEO Premium plugin. --> <link rel='dns-prefetch' href='//static.addtoany.com' /> <link rel='dns-prefetch' href='//kit.fontawesome.com' /> <link rel="alternate" type="application/rss+xml" title="Engineers Garage &raquo; Feed" href="https://www.engineersgarage.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="Engineers Garage &raquo; Comments Feed" href="https://www.engineersgarage.com/comments/feed/" /> <link rel="alternate" type="application/rss+xml" title="Engineers Garage &raquo; Python Category Feed" href="https://www.engineersgarage.com/tutorials/python/feed/" /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/www.engineersgarage.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.7"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); /* ]]> */ </script> <link rel='stylesheet' id='genesis-blocks-style-css-css' href='https://www.engineersgarage.com/wp-content/plugins/genesis-blocks/dist/style-blocks.build.css?ver=1720775798' type='text/css' media='all' /> <link rel='stylesheet' id='theme-wtwh-amplifying-css' href='https://www.engineersgarage.com/wp-content/themes/ThemeWTWHv2/style.css?ver=1705628983' type='text/css' media='all' /> <style id='wp-emoji-styles-inline-css' type='text/css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://www.engineersgarage.com/wp-includes/css/dist/block-library/style.min.css?ver=6.7' type='text/css' media='all' /> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='wtwh_prestitial_main_style-css' href='https://www.engineersgarage.com/wp-content/plugins/prestitial/assets/css/main.css?ver=1.1.0' type='text/css' media='all' /> <link rel='stylesheet' id='wtwh_prestitial_style-css' href='https://www.engineersgarage.com/wp-content/plugins/prestitial/assets/css/prestitial.css?ver=1.1.0' type='text/css' media='all' /> <link rel='stylesheet' id='megamenu-css' href='https://www.engineersgarage.com/wp-content/uploads/maxmegamenu/style.css?ver=44ec18' type='text/css' media='all' /> <link rel='stylesheet' id='dashicons-css' href='https://www.engineersgarage.com/wp-includes/css/dashicons.min.css?ver=6.7' type='text/css' media='all' /> <link rel='stylesheet' id='ea-style-css' href='https://www.engineersgarage.com/wp-content/themes/ThemeWTWHv2/assets/css/main.css?ver=1705628983' type='text/css' media='all' /> <link rel='stylesheet' id='simple-social-icons-font-css' href='https://www.engineersgarage.com/wp-content/plugins/simple-social-icons/css/style.css?ver=3.0.2' type='text/css' media='all' /> <link rel='stylesheet' id='tablepress-default-css' href='https://www.engineersgarage.com/wp-content/plugins/tablepress/css/build/default.css?ver=2.4.4' type='text/css' media='all' /> <link rel='stylesheet' id='addtoany-css' href='https://www.engineersgarage.com/wp-content/plugins/add-to-any/addtoany.min.css?ver=1.16' type='text/css' media='all' /> <link rel='stylesheet' id='genesis-tabs-stylesheet-css' href='https://www.engineersgarage.com/wp-content/plugins/genesis-tabs/assets/css/style.css?ver=0.9.5' type='text/css' media='all' /> <script type="text/javascript" id="addtoany-core-js-before"> /* <![CDATA[ */ window.a2a_config=window.a2a_config||{};a2a_config.callbacks=[];a2a_config.overlays=[];a2a_config.templates={}; a2a_config.track_links = 'bitly'; a2a_config.track_links_key = 'addtoany|R_cc6a4017b0274d1d86f2397771b70136'; // username|API key delimited by | a2a_config.templates = { twitter: "${title} ${link} via @EngineersGarage" }; /* ]]> */ </script> <script type="text/javascript" defer src="https://static.addtoany.com/menu/page.js" id="addtoany-core-js"></script> <script type="text/javascript" src="https://www.engineersgarage.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" defer src="https://www.engineersgarage.com/wp-content/plugins/add-to-any/addtoany.min.js?ver=1.1" id="addtoany-jquery-js"></script> <script type="text/javascript" src="https://kit.fontawesome.com/0db18eb627.js?ver=6.7" id="wtwh_prestitial_fontAwesome_js-js"></script> <link rel="https://api.w.org/" href="https://www.engineersgarage.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.engineersgarage.com/wp-json/wp/v2/categories/4054" /><!-- www.engineersgarage.com=60504 --> <script> var contentHash = 'c8f2fe881391918583339373bb544e18'; var cat_target='c8f2fe881391918583339373bb544e18, python, ros'; </script> <style> #category-posts-2-internal ul {padding: 0;} #category-posts-2-internal .cat-post-item img {max-width: initial; max-height: initial; margin: initial;} #category-posts-2-internal .cat-post-author {margin-bottom: 0;} #category-posts-2-internal .cat-post-thumbnail {margin: 5px 10px 5px 0;} #category-posts-2-internal .cat-post-item:before {content: ""; clear: both;} #category-posts-2-internal .cat-post-excerpt-more {display: inline-block;} #category-posts-2-internal .cat-post-item {list-style: none; margin: 3px 0 10px; padding: 3px 0;} #category-posts-2-internal .cat-post-current .cat-post-title {font-weight: bold; text-transform: uppercase;} #category-posts-2-internal [class*=cat-post-tax] {font-size: 0.85em;} #category-posts-2-internal [class*=cat-post-tax] * {display:inline-block;} #category-posts-2-internal .cat-post-item:after {content: ""; display: table; clear: both;} #category-posts-2-internal .cat-post-item .cat-post-title {overflow: hidden;text-overflow: ellipsis;white-space: initial;display: -webkit-box;-webkit-line-clamp: 4;-webkit-box-orient: vertical;padding-bottom: 0 !important;} #category-posts-2-internal .cat-post-item:after {content: ""; display: table; clear: both;} #category-posts-2-internal .cat-post-thumbnail {display:block; float:left; margin:5px 10px 5px 0;} #category-posts-2-internal .cat-post-crop {overflow:hidden;display:block;} #category-posts-2-internal p {margin:5px 0 0 0} #category-posts-2-internal li > div {margin:5px 0 0 0; clear:both;} #category-posts-2-internal .dashicons {vertical-align:middle;} #category-posts-2-internal .cat-post-thumbnail .cat-post-crop img {height: 95px;} #category-posts-2-internal .cat-post-thumbnail .cat-post-crop img {width: 150px;} #category-posts-2-internal .cat-post-thumbnail .cat-post-crop img {object-fit: cover; max-width: 100%; display: block;} #category-posts-2-internal .cat-post-thumbnail .cat-post-crop-not-supported img {width: 100%;} #category-posts-2-internal .cat-post-thumbnail {max-width:100%;} #category-posts-2-internal .cat-post-item img {margin: initial;} #category-posts-2-internal .cat-post-dark img {padding-bottom: 0 !important; -webkit-transition: all 0.3s ease; -moz-transition: all 0.3s ease; -ms-transition: all 0.3s ease; -o-transition: all 0.3s ease; transition: all 0.3s ease;} #category-posts-2-internal .cat-post-dark:hover img {-webkit-filter: brightness(75%); -moz-filter: brightness(75%); -ms-filter: brightness(75%); -o-filter: brightness(75%); filter: brightness(75%);} </style> <!-- Google Tag Manager for Global Container--> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MMC9PJ9');</script> <!-- End Google Tag Manager --> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-NJMRR6Z');</script> <!-- End Google Tag Manager --> <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script> <script> window.googletag = window.googletag || {cmd: []}; googletag.cmd.push(function() { var pathParts = window.location.pathname.substr(1).split('/'); var mapHeader = googletag.sizeMapping() .addSize([768, 200], [728, 90]) .addSize([0, 0], [300, 250]) .build(); var mapLargeHeader = googletag.sizeMapping() .addSize([1024, 200], [[970, 90], [970, 250]]) .addSize([0, 0], [300, 250]) .build(); var mapWallpaper = googletag.sizeMapping() .addSize([1024, 500], [[1, 1]]) .addSize([0, 0], [[1, 1]]) .build(); var gptSlots = []; gptSlots[0] = googletag.defineSlot('/5272491/ee_network/eg_header', [[300, 250], [728, 90]], 'div-gpt-eg-header') .defineSizeMapping(mapHeader) .addService(googletag.pubads()); gptSlots[1] = googletag.defineSlot('/5272491/ee_network/eg_largeleader', [[970, 90], [970, 250]], 'div-gpt-eg_largeleader') .defineSizeMapping(mapLargeHeader) .addService(googletag.pubads()); gptSlots[2] = googletag.defineSlot('/5272491/ee_network/eg_wallpaper', [[1, 1]], 'div-gpt-eg_wallpaper') .defineSizeMapping(mapWallpaper) .addService(googletag.pubads()); googletag.defineSlot('/5272491/ee_network/eg_sidebar1', [[300, 250], [300, 600]], 'div-gpt-eg_sidebar1').addService(googletag.pubads()); googletag.defineSlot('/5272491/ee_network/eg_sidebarbottom', [[300, 250], [300, 600]], 'div-gpt-eg_sidebarbottom').addService(googletag.pubads()); googletag.defineSlot('/5272491/ee_network/eg_storeribbon',[[970, 250]], 'div-gpt-eg_storeribbon').addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.pubads().collapseEmptyDivs(); googletag.pubads().setTargeting('articletitle', pathParts[0] ? pathParts[0]: 'home-page').setTargeting('cat_target', [cat_target]); googletag.enableServices(); }); </script> <!-- Google Tag Manager for Global Container--> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MMC9PJ9');</script> <!-- End Google Tag Manager --> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-NJMRR6Z');</script> <!-- End Google Tag Manager --> <script async src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script> <script> window.googletag = window.googletag || {cmd: []}; googletag.cmd.push(function() { var pathParts = window.location.pathname.substr(1).split('/'); var mapHeader = googletag.sizeMapping() .addSize([768, 200], [728, 90]) .addSize([0, 0], [300, 250]) .build(); var mapLargeHeader = googletag.sizeMapping() .addSize([1024, 200], [[970, 90], [970, 250]]) .addSize([0, 0], [300, 250]) .build(); var mapWallpaper = googletag.sizeMapping() .addSize([1024, 500], [[1, 1]]) .addSize([0, 0], [[1, 1]]) .build(); var gptSlots = []; gptSlots[0] = googletag.defineSlot('/5272491/ee_network/eg_header', [[300, 250], [728, 90]], 'div-gpt-eg-header') .defineSizeMapping(mapHeader) .addService(googletag.pubads()); gptSlots[1] = googletag.defineSlot('/5272491/ee_network/eg_largeleader', [[970, 90], [970, 250]], 'div-gpt-eg_largeleader') .defineSizeMapping(mapLargeHeader) .addService(googletag.pubads()); gptSlots[2] = googletag.defineSlot('/5272491/ee_network/eg_wallpaper', [[1, 1]], 'div-gpt-eg_wallpaper') .defineSizeMapping(mapWallpaper) .addService(googletag.pubads()); googletag.defineSlot('/5272491/ee_network/eg_allstreamflex', [[1, 1]], 'div-gpt-eg_allstreamflex').addService(googletag.pubads()); googletag.defineSlot('/5272491/ee_network/eg_allstreamprelude', [[1, 1]], 'div-gpt-eg_allstreamprelude').addService(googletag.pubads()); googletag.defineSlot('/5272491/ee_network/eg_sidebar1', [[300, 250], [300, 600]], 'div-gpt-eg_sidebar1').addService(googletag.pubads()); googletag.defineSlot('/5272491/ee_network/eg_sidebarbottom', [[300, 250], [300, 600]], 'div-gpt-eg_sidebarbottom').addService(googletag.pubads()); googletag.defineSlot('/5272491/ee_network/eg_storeribbon',[[970, 250]], 'div-gpt-eg_storeribbon').addService(googletag.pubads()); googletag.pubads().enableSingleRequest(); googletag.pubads().collapseEmptyDivs(); googletag.pubads().setTargeting('articletitle', pathParts[0] ? pathParts[0]: 'home-page').setTargeting('cat_target', [cat_target]); googletag.enableServices(); }); </script><link rel="icon" href="https://www.engineersgarage.com/wp-content/uploads/2019/08/cropped-eg-favicon-32x32.png" sizes="32x32" /> <link rel="icon" href="https://www.engineersgarage.com/wp-content/uploads/2019/08/cropped-eg-favicon-192x192.png" sizes="192x192" /> <link rel="apple-touch-icon" href="https://www.engineersgarage.com/wp-content/uploads/2019/08/cropped-eg-favicon-180x180.png" /> <meta name="msapplication-TileImage" content="https://www.engineersgarage.com/wp-content/uploads/2019/08/cropped-eg-favicon-270x270.png" /> <style type="text/css" id="wp-custom-css"> /*body > div.site-container > div.site-inner > div > div > main > article > div > p > a { color: #D2232A; }*/ .entry-content a { font-weight: bold; } .site-header .title-area { width: 350px; } @media only screen and (max-width: 1152px) { .site-header .title-area { width: 230px; } } .wtwhSpecial { display: none !important; } article > div > p > a { font-weight: bold; color:#337ab7; text-decoration: underline; } /*RSS FEED FIX*/ #rss-3 > div > h4 > a { font-size: 20px; font-weight: bold; float: none !important; } #rss-3 > div > h4 > a > img { display: none; } #rss-3 > div > ul { width: 100%; padding-left: 30px; } #rss-2 > div > h4 > a { font-size: 20px; font-weight: bold; float: none !important; } #rss-2 > div > h4 > a > img { display: none; } #rss-2 > div > ul { width: 100%; padding-left: 30px; } #recent-posts-2 > .widget-wrap > ul { padding-left: 30px; } .video-carousel .video-popup:before { background: none !important; } .video-carousel .video-popup:after { color: red !important; } .entry-categories a { font-weight: normal;} .entry-tags a{font-weight: normal;} .entry-categories { font-weight: bold;} .entry-tags {font-weight: bold;} .bawmrp a { font-weight: 400; } #digital > span { font-size: 16px !important; font-weight: 400 !important; } xmp { white-space:normal; } .slick-slider .col-sm-4 .header-slide, .slick-slider .col-sm-4 .header-slide img { max-height:240px; object-fit:cover; } .slick-slider .col-sm-8 .header-slide, .slick-slider .col-sm-8 .header-slide img { object-fit:cover; max-height:500px; } /*EE Classrooms*/ .motion-design-guides { font-size: 18px; font-weight: bold; width: 270px; height: 60px; text-align: center; text-align-last: center; -moz-text-align-last: center; border-radius: 0px; background-color: #313131; color: white; border-bottom: 4px solid #1f427e; text-transform: uppercase; white-space: wrap; } .motion-design-guide-option { text-align: center; text-align-last: center; -moz-text-align-last: center; text-transform: uppercase; width: 270px; white-space: wrap; } /*Fix for Categories/home page article display*/ @media only screen and (max-width: 500px) { .content .entry .entry-header, .archive-entry .entry-header { /* width: 100% !important;*/ /*padding-left: 0px !important; float: none !important;*/ } /* .content .entry .entry-content { width: 100% !important; }*/ /* .entry-content p { float: none !important; }*/ .entry-content img { text-align: center !important; width: 100% !important; } .archive-entry { display: flex; flex-direction: column-reverse; width: 100% !important; } .archive-entry > .entry-header, .archive-entry .entry-content { width: 100% !important; } /*.archive-entry .entry-image-link img { width: 100% !important; }*/ } @media only screen and (max-width: 767px) { .archive.category .entry-content p { display: none !important } .blog .entry-content p { display: none !important; } } .slick-slider.header-slides .header-slide .overlay h4, .slick-slider.header-slides .header-slide .overlay h2 { text-shadow: 2px 2px 5px black; background: none !important; -webkit-text-stroke-width: 0px !important; -webkit-text-stroke-color: transparent !important; } .nav-previous{ float:left; margin-bottom:50px } .nav-next{ float:right; margin-bottom:50px } .dropbtn { background-color: #04AA6D; color: white; padding: 16px; font-size: 16px; border: none; } .dropdown { display: inline-block; } .dropdown-content { display: none; position: absolute; background-color: #f1f1f1; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 1; } .dropdown-content a { color: black; padding: 12px 16px; text-decoration: none; display: block; } .dropdown-content a:hover {background-color: #ddd;} .dropdown:hover .dropdown-content {display: block;} .dropdown:hover .dropbtn {background-color: #3e8e41;} /*Design Guide Drop Down Menu*/ .motion-design-guides { font-size: 14px; font-family: Raleway, sans-serif; width: 270px; height: 50px; text-align: center; text-align-last: center; -moz-text-align-last: center; border-radius: 0px; background-color: white; color: #000; border-top: 3px solid #000; border-left: none; border-right: none; border-bottom: 1px solid #e3e3e3; text-transform: uppercase; white-space: wrap; } .motion-design-guide-option { text-align: center; text-align-last: center; -moz-text-align-last: center; text-transform: uppercase; width: 270px; white-space: wrap; } .motion-design-guides:after { content: ""; border: solid #000; border-width: 0 2px 2px 0; margin-left: 20px; margin-bottom: 3px; display: inline-block; padding: 2.5px; transform: rotate(45deg); -webkit-transform: rotate(45deg); } /*Overlapping Header article Title fix*/ @media only screen and (max-width: 780px) { .site-container { margin-top: 40px !important; } } p.must-log-in a, p.logged-in-as a { color: #23527c !important; font-weight: bold; } article li a { color: #337ab7; text-decoration: underline; } /* Search Page */ body.search .site-inner { padding-left: unset; padding-right: unset; } @media only screen and (min-width: 988px) { .search .content { width: 66% !important; float: left; } .search .sidebar { width: 30%; float: right; } } </style> <style type="text/css">/** Mega Menu CSS: fs **/</style> </head> <body class="archive category category-python category-4054 mega-menu-primary header-image content-sidebar genesis-breadcrumbs-hidden"> <!-- xyzzy top --> <div id="prestitial" style="opacity: 0;"> <div id="prestitial-overlay"></div> <div id="prestitial-grid"> <div class="prestitial-logo"> <div class="title-area"> <h1 class="site-title"> <a href="#"><img src="https://www.engineersgarage.com/wp-content/uploads/2022/10/eg-logo.png"></a></h1> </div> </div> <div class="close-cta"> Continue to Site <i class="fa fa-arrow-right"></i> </div> <div id="prestitial-banner"></div> </div> </div> <!-- hides rest of content --> <div id="body-wrapper" style="opacity: 0;"> <div class="site-container"><header class="site-header"><div class="wrap"><div class="title-area"><p class="site-title"><a href="https://www.engineersgarage.com/">Engineers Garage</a></p></div><div class="widget-area header-widget-area"><section id="custom_html-2" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget"><div id='div-gpt-eg-header'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-eg-header'); }); </script> </div> </div></div></section> </div><div class="mobile-toggles"><a href="#" class="search-toggle"><i class="icon-search"></i></a><a href="#" class="mobile-menu-toggle"><i class="icon-menu"></i></a></div></div></header><nav class="nav-primary" aria-label="Main"><div class="wrap"><div id="mega-menu-wrap-primary" class="mega-menu-wrap"><div class="mega-menu-toggle"><div class="mega-toggle-blocks-left"></div><div class="mega-toggle-blocks-center"></div><div class="mega-toggle-blocks-right"><div class='mega-toggle-block mega-menu-toggle-animated-block mega-toggle-block-0' id='mega-toggle-block-0'><button aria-label="Toggle Menu" class="mega-toggle-animated mega-toggle-animated-slider" type="button" aria-expanded="false"> <span class="mega-toggle-animated-box"> <span class="mega-toggle-animated-inner"></span> </span> </button></div></div></div><ul id="mega-menu-primary" class="mega-menu max-mega-menu mega-menu-horizontal mega-no-js" data-event="hover_intent" data-effect="fade_up" data-effect-speed="200" data-effect-mobile="disabled" data-effect-speed-mobile="0" data-mobile-force-width="false" data-second-click="go" data-document-click="collapse" data-vertical-behaviour="standard" data-breakpoint="768" data-unbind="true" data-mobile-state="collapse_all" data-mobile-direction="vertical" data-hover-intent-timeout="300" data-hover-intent-interval="100"><li class='mega-menu-item mega-menu-item-type-post_type mega-menu-item-object-page mega-current-menu-ancestor mega-current_page_ancestor mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-61908' id='mega-menu-item-61908'><a class="mega-menu-link" href="https://www.engineersgarage.com/projects-and-tutorials/" aria-expanded="false" tabindex="0">Electronics Projects and Tutorials<span class="mega-indicator"></span></a> <ul class="mega-sub-menu"> <li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-has-children mega-menu-item-39808' id='mega-menu-item-39808'><a class="mega-menu-link" href="https://www.engineersgarage.com/electronic-projects/" aria-expanded="false">Electronic Projects<span class="mega-indicator"></span></a> <ul class="mega-sub-menu"> <li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-81272' id='mega-menu-item-81272'><a class="mega-menu-link" href="https://www.engineersgarage.com/arduino/">Arduino Projects</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-81273' id='mega-menu-item-81273'><a class="mega-menu-link" href="https://www.engineersgarage.com/electronic-projects/avr/">AVR</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-80793' id='mega-menu-item-80793'><a class="mega-menu-link" href="https://www.engineersgarage.com/raspberry-pi-electronic-projects/">Raspberry pi</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78430' id='mega-menu-item-78430'><a class="mega-menu-link" href="https://www.engineersgarage.com/electronic-projects/esp8266-electronic-projects/">ESP8266</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78434' id='mega-menu-item-78434'><a class="mega-menu-link" href="https://www.engineersgarage.com/electronic-projects/beaglebone-electronic-projects/">BeagleBone</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-80794' id='mega-menu-item-80794'><a class="mega-menu-link" href="https://www.engineersgarage.com/electronic-projects/8051-microcontroller/">8051 Microcontroller</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-55864' id='mega-menu-item-55864'><a class="mega-menu-link" href="https://www.engineersgarage.com/electronic-projects/arm-electronic-projects-electronic-projects/">ARM</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-80795' id='mega-menu-item-80795'><a class="mega-menu-link" href="https://www.engineersgarage.com/electronic-projects/pic-microcontroller-electronic-projects/">PIC Microcontroller</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-60239' id='mega-menu-item-60239'><a class="mega-menu-link" href="https://www.engineersgarage.com/electronic-projects/stm32-electronic-projects-electronic-projects/">STM32</a></li> </ul> </li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-current-category-ancestor mega-current-menu-ancestor mega-current-menu-parent mega-current-category-parent mega-menu-item-has-children mega-menu-item-7268' id='mega-menu-item-7268'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/" aria-expanded="false">Tutorials<span class="mega-indicator"></span></a> <ul class="mega-sub-menu"> <li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78818' id='mega-menu-item-78818'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/audio-tutorials/">Audio Electronics</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78819' id='mega-menu-item-78819'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/battery-management-systems/">Battery Management</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78820' id='mega-menu-item-78820'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/brainwave/">Brainwave</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78833' id='mega-menu-item-78833'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/evs/">Electric Vehicles</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78822' id='mega-menu-item-78822'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/emc-emi/">EMI/EMC/RFI</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78823' id='mega-menu-item-78823'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/filters/">Hardware Filters</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78826' id='mega-menu-item-78826'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/iot-tutorials/">IoT tutorials</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-80151' id='mega-menu-item-80151'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/power/">Power Tutorials</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-current-menu-item mega-menu-item-78835' id='mega-menu-item-78835'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/python/" aria-current="page">Python</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78829' id='mega-menu-item-78829'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/sensors-tutorials/">Sensors</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78830' id='mega-menu-item-78830'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/usb/">USB</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-78832' id='mega-menu-item-78832'><a class="mega-menu-link" href="https://www.engineersgarage.com/tutorials/vhdl-tutorials/">VHDL</a></li> </ul> </li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-56096' id='mega-menu-item-56096'><a class="mega-menu-link" href="https://www.engineersgarage.com/circuit_design/">Circuit Design</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-62725' id='mega-menu-item-62725'><a target="_blank" class="mega-menu-link" href="https://www.youtube.com/user/engineersgarage">Project Videos</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-7269' id='mega-menu-item-7269'><a class="mega-menu-link" href="https://www.engineersgarage.com/components/">Components</a></li></ul> </li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-39810' id='mega-menu-item-39810'><a class="mega-menu-link" href="https://www.engineersgarage.com/article_page/" aria-expanded="false" tabindex="0">Articles<span class="mega-indicator"></span></a> <ul class="mega-sub-menu"> <li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-63122' id='mega-menu-item-63122'><a class="mega-menu-link" href="https://www.engineersgarage.com/tech-articles/">Tech Articles</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-13371' id='mega-menu-item-13371'><a class="mega-menu-link" href="https://www.engineersgarage.com/insight/">Insight</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-13399' id='mega-menu-item-13399'><a class="mega-menu-link" href="https://www.engineersgarage.com/invention-stories/">Invention Stories</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-13326' id='mega-menu-item-13326'><a class="mega-menu-link" href="https://www.engineersgarage.com/how_to/">How to</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-59366' id='mega-menu-item-59366'><a class="mega-menu-link" href="https://www.engineersgarage.com/what_is/">What Is</a></li></ul> </li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-1863' id='mega-menu-item-1863'><a class="mega-menu-link" href="#" aria-expanded="false" tabindex="0">News<span class="mega-indicator"></span></a> <ul class="mega-sub-menu"> <li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-39809' id='mega-menu-item-39809'><a class="mega-menu-link" href="https://www.engineersgarage.com/news/">Electronic Product News</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-77696' id='mega-menu-item-77696'><a class="mega-menu-link" href="https://www.engineersgarage.com/news/business-news/">Business News</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-77697' id='mega-menu-item-77697'><a class="mega-menu-link" href="https://www.engineersgarage.com/news/company-start-up-news/">Company/Start-up News</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-14489' id='mega-menu-item-14489'><a class="mega-menu-link" href="https://www.engineersgarage.com/reviews/">DIY Reviews</a></li><li class='mega-menu-item mega-menu-item-type-taxonomy mega-menu-item-object-category mega-menu-item-14287' id='mega-menu-item-14287'><a class="mega-menu-link" href="https://www.engineersgarage.com/guest_post/">Guest Post</a></li></ul> </li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-55871' id='mega-menu-item-55871'><a class="mega-menu-link" aria-expanded="false" tabindex="0">Forums<span class="mega-indicator"></span></a> <ul class="mega-sub-menu"> <li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-55870' id='mega-menu-item-55870'><a class="mega-menu-link" href="https://www.edaboard.com/">EDABoard.com</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-55869' id='mega-menu-item-55869'><a class="mega-menu-link" href="https://www.electro-tech-online.com/">Electro-Tech-Online</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-1851' id='mega-menu-item-1851'><a class="mega-menu-link" href="https://forums.engineersgarage.com/">EG Forum Archive</a></li></ul> </li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-menu-megamenu mega-align-bottom-left mega-menu-megamenu mega-menu-item-1868' id='mega-menu-item-1868'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mk" aria-expanded="false" tabindex="0">DigiKey Store<span class="mega-indicator"></span></a> <ul class="mega-sub-menu"> <li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1869' id='mega-menu-item-1869'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9ml">Cables, Wires</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1870' id='mega-menu-item-1870'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mm">Connectors, Interconnect</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1871' id='mega-menu-item-1871'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mn">Discrete</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-clear mega-menu-item-1872' id='mega-menu-item-1872'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mo">Electromechanical</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1873' id='mega-menu-item-1873'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mp">Embedded Computers</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1874' id='mega-menu-item-1874'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mq">Enclosures, Hardware, Office</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-clear mega-menu-item-1875' id='mega-menu-item-1875'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mr">Integrated Circuits (ICs)</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1876' id='mega-menu-item-1876'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9ms">Isolators</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1877' id='mega-menu-item-1877'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mt">LED/Optoelectronics</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-clear mega-menu-item-1878' id='mega-menu-item-1878'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mu">Passive</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1879' id='mega-menu-item-1879'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mv">Power, Circuit Protection</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1880' id='mega-menu-item-1880'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mw">Programmers</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-clear mega-menu-item-1881' id='mega-menu-item-1881'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mx">RF, Wireless</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1882' id='mega-menu-item-1882'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mk">Semiconductors</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1883' id='mega-menu-item-1883'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9my">Sensors, Transducers</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-clear mega-menu-item-1884' id='mega-menu-item-1884'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mz">Test Products</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-columns-1-of-3 mega-menu-item-1885' id='mega-menu-item-1885'><a target="_blank" class="mega-menu-link" href="https://wtwh.me/9mA">Tools</a></li></ul> </li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-56062' id='mega-menu-item-56062'><a class="mega-menu-link" href="https://www.eeworldonline.com/learning-center" aria-expanded="false" tabindex="0">Learn<span class="mega-indicator"></span></a> <ul class="mega-sub-menu"> <li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-80114' id='mega-menu-item-80114'><a class="mega-menu-link" href="https://www.eeworldonline.com/category/tech-tips/">eBooks/Tech Tips</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-76567' id='mega-menu-item-76567'><a target="_blank" class="mega-menu-link" href="https://www.eeworldonline.com/design-guide-library">Design Guides</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-77221' id='mega-menu-item-77221'><a target="_blank" class="mega-menu-link" href="https://www.eeworldonline.com/learning-center">Learning Center</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-81739' id='mega-menu-item-81739'><a target="_blank" class="mega-menu-link" href="https://www.eeworldonline.com/category/tech-toolboxes/">Tech Toolboxes</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-80113' id='mega-menu-item-80113'><a class="mega-menu-link" href="https://gateway.on24.com/wcc/experience/elitewtwhmedia/2927718/4415581/eeworld">Webinars & Digital Events</a></li></ul> </li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-has-children mega-align-bottom-left mega-menu-flyout mega-menu-item-55895' id='mega-menu-item-55895'><a class="mega-menu-link" aria-expanded="false" tabindex="0">Resources<span class="mega-indicator"></span></a> <ul class="mega-sub-menu"> <li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-77693' id='mega-menu-item-77693'><a class="mega-menu-link" href="https://www.eeworldonline.com/category/digital-issues/">Digital Issues</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-77694' id='mega-menu-item-77694'><a class="mega-menu-link" href="https://eetrainingdays.com/">EE Training Days</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-55899' id='mega-menu-item-55899'><a target="_blank" class="mega-menu-link" href="https://www.eeworldonline.com/2023-leap-awards-winners-are-announced/">LEAP Awards</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-77695' id='mega-menu-item-77695'><a class="mega-menu-link" href="https://www.eeworldonline.com/category/podcasts/">Podcasts</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-77375' id='mega-menu-item-77375'><a target="_blank" class="mega-menu-link" href="https://www.eeworldonline.com/ee-world-webinars-and-digital-events/">Webinars / Digital Events</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-55898' id='mega-menu-item-55898'><a class="mega-menu-link" href="http://www.engineeringwhitepapers.com/category/electricalelectronic/">White Papers</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-62203' id='mega-menu-item-62203'><a class="mega-menu-link" href="https://www.designworldonline.com/category/news/engineering-diversity/">Engineering Diversity & Inclusion</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-menu-item-55896' id='mega-menu-item-55896'><a class="mega-menu-link" href="https://www.DesignFast.com">DesignFast</a></li></ul> </li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-align-bottom-left mega-menu-flyout mega-menu-item-80115' id='mega-menu-item-80115'><a class="mega-menu-link" href="https://www.engineersgarage.com/subscribe-engineers-garage-newsletter/" tabindex="0">Subscribe</a></li><li class='mega-menu-item mega-menu-item-type-custom mega-menu-item-object-custom mega-align-bottom-left mega-menu-flyout mega-menu-item-80423' id='mega-menu-item-80423'><a class="mega-menu-link" href="https://www.engineersgarage.com/join-us-as-a-guest-post-writer/" tabindex="0">Guest Post Guidelines</a></li><li class="menu-item search"><a href="#" class="search-toggle"><i class="icon-search"></i></a></li></ul></div></div></nav><div style="padding-top:10px;text-align:center;"><div id='div-gpt-eg_storeribbon'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-eg_storeribbon'); }); </script> </div> </div><div class="archive-intro"><div class="wrap"><h1 class="archive-title"><span>Python</span></h1></div></div><div class="site-inner"><div class="wrap"><div class="content-sidebar-wrap"><main class="content"><article class="type-post entry has-post-thumbnail" aria-label="RPi Python Programming 06: Python basics"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">October 21, 2024</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/rpi-python-programming-06-python-basics/">RPi Python Programming 06: Python basics</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/rpi-python-programming-06-python-basics/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2019/12/code-1084923_1280-268x170.png" class="alignleft post-image entry-image wp-image-60508" alt="Python Basics" decoding="async" /></a><p>In the previous tutorial, we discussed the Python language, its applications, implementations (including CPython, Jython, IronPython, and PyPy), and IDEs. We also learned how to write Python scripts and modules, and how to run Python scripts through an integrated development environment (or IDLE) and a Bash shell. Before we jump to controlling hardware via Python&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="RPi Python Programming 05: Introduction to Python"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">October 21, 2024</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/rpi-python-programming-05-introduction-to-python/">RPi Python Programming 05: Introduction to Python</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/rpi-python-programming-05-introduction-to-python/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2021/01/Raspberry-Pi-05-featured-268x170.jpeg" class="alignleft post-image entry-image wp-image-64124" alt="" decoding="async" loading="lazy" /></a><p>In the previous tutorial, we successfully set up a Raspberry Pi (RPi) Linux desktop. Now let’s learn Python.  We could start with how to control the hardware by using Python scripts, but that would defeat the purpose of using Raspberry Pi and a Very-High-Level-Language (VHLL) — such as Python — to control electronics. Certainly, you can&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="How to use Raspberry Pi camera module with Python"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">June 21, 2023</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/raspberry-pi-camera-python/">How to use Raspberry Pi camera module with Python</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/raspberry-pi-camera-python/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2021/09/TCH32-04-268x170.png" class="alignleft post-image entry-image wp-image-64864" alt="" decoding="async" loading="lazy" /></a><p>One of the main attractions of the Raspberry Pi platform is its camera module. At present, Raspberry Pi Foundation offers three camera modules: • Camera Module 2 • Camera Module 2 NoIR • Raspberry Pi High-Quality Camera The camera module 2 is a replacement for the original camera module in April 2016. The V2 module&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="RPi Python Programming 10: Object-oriented Python"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">June 21, 2023</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/rpi-python-programming-10-object-oriented-python/">RPi Python Programming 10: Object-oriented Python</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/rpi-python-programming-10-object-oriented-python/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2020/01/Python_Object_Oriented_Programming-268x170.jpg" class="alignleft post-image entry-image wp-image-60636" alt="Object-Oriented Python" decoding="async" loading="lazy" /></a><p>In the previous tutorial, we learned about the sequences and unordered collections in Python, including the operations, functions, and methods applicable to them. However, there can be more complex data structures in an application, which are known as user-defined classes and objects. Any application uses data (values/objects/user-defined classes/objects) and code behavior (how the data is&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="RPi Python Programming 11: Python GUI with Tkinter"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">June 21, 2023</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/rpi-python-programming-11-python-gui-with-tkinter/">RPi Python Programming 11: Python GUI with Tkinter</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/rpi-python-programming-11-python-gui-with-tkinter/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2020/01/pyhton-logo-268x170.jpg" class="alignleft post-image entry-image wp-image-60749" alt="" decoding="async" loading="lazy" /></a><p>In the previous tutorial, we learned about the object-oriented features of Python, which are important for organizing code and structuring our applications. Now, let&#8217;s discuss how to design graphic interfaces in Python. Embedded applications developed on microcontrollers typically have LEDs, character LCDs, or small graphic LCDs as display devices. However, these displays do not have&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="RPi Python Programming 12: Tkinter and TTK widgets"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">June 21, 2023</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/rpi-python-programming-12-tkinter-and-ttk-widgets/">RPi Python Programming 12: Tkinter and TTK widgets</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/rpi-python-programming-12-tkinter-and-ttk-widgets/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2020/04/07-featured-268x170.jpg" class="alignleft post-image entry-image wp-image-61049" alt="Python GUI with TTK and Tkinter" decoding="async" loading="lazy" /></a><p>In the previous tutorial, we learned about the window widget in Tkinter and designed a blank GUI main window (which is not a child to any other window in the GUI application). Child windows serve as a container for other widgets There is no point of blank windows so there must be other widgets included&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="RPi Python Programming 08: Python lists and byte arrays"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">June 21, 2023</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/articles-raspberry-pi-python-lists-byte-arrays-methods-operations/">RPi Python Programming 08: Python lists and byte arrays</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/articles-raspberry-pi-python-lists-byte-arrays-methods-operations/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2019/12/python-o8-fetured-268x170.jpg" class="alignleft post-image entry-image wp-image-60563" alt="" decoding="async" loading="lazy" /></a><p>In the previous tutorial, we learned about basic syntax and several elements of Python&#8217;s language. Python offers six types of sequences: strings, bytes, byte arrays, range, tuples, and lists. Importantly, the strings, bytes, range, and tuples are immutable sequences that cannot be modified once defined. It&#8217;s only possible to create or destroy these sequences. This&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="RPi Python Programming 09: Python sets and dictionaries"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">March 21, 2023</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/rpi-python-programming-09-python-sets-and-dictionaries/">RPi Python Programming 09: Python sets and dictionaries</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/rpi-python-programming-09-python-sets-and-dictionaries/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2020/01/python-09-featured-268x170.jpg" class="alignleft post-image entry-image wp-image-60620" alt="RPi Python Programming" decoding="async" loading="lazy" /></a><p>In the previous tutorial, we learned about manipulating data values in lists and byte arrays. Python also has mutable unordered collections, including sets and dictionaries. Let&#8217;s review these two and learn how to manipulate the data values/objects in sets and dictionaries. Sets Sets are unordered mutable collections of items. The items in a set can&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="How to build a MicroPython-based sensorless, weather station"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">March 12, 2023</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/how-to-build-a-micropython-based-sensorless-weather-station/">How to build a MicroPython-based sensorless, weather station</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/how-to-build-a-micropython-based-sensorless-weather-station/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2023/03/MPyP04-08-Weather-Update-268x170.png" class="alignleft post-image entry-image wp-image-78281" alt="" decoding="async" loading="lazy" /></a><p>Is it possible to update the weather on an embedded device or a wearable without interfacing with any temperature or humidity sensor? With Internet of Things (IoT) access, devices can connect to a variety of web services with the help of APIs and extract several useful insights and information through simple HTTP requests. In response,&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="How to use MicroPython&#8217;s watchdog timer in ESP8266 and ESP32"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">January 19, 2023</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/micropython-esp8266-esp32-watchdog-timer-wdt/">How to use MicroPython&#8217;s watchdog timer in ESP8266 and ESP32</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/micropython-esp8266-esp32-watchdog-timer-wdt/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2022/08/MicroPythonWatchDog-268x170.png" class="alignleft post-image entry-image wp-image-76969" alt="" decoding="async" loading="lazy" /></a><p>A watchdog timer is an internal or external timer that monitors a microcontroller’s program to ensure the application remains operative without failure. It serves as a safety feature in critical applications by monitoring the microcontroller’s output signal. The watchdog can operate in two modes:  Timeout mode – the timer establishes the microcontroller is not working properly if it&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="MicroPython: How to program a real-time clock (RTC) in ESP8266 and ESP32"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">January 19, 2023</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/micropython-esp8266-esp32-rtc-utc-local-time/">MicroPython: How to program a real-time clock (RTC) in ESP8266 and ESP32</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/micropython-esp8266-esp32-rtc-utc-local-time/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2022/08/RTC-time-rotator-268x170.png" class="alignleft post-image entry-image wp-image-76974" alt="" decoding="async" loading="lazy" /></a><p>A real-time clock (RTC) is a computer clock to keep time and is one of the more popular microcontroller features. Microcontrollers without a built-in RTC require an external RTC chip for keeping time. Typically, mid-segment to high-end microcontrollers have a built-in RTC because time-keeping is necessary for several embedded applications.  RTCs count seconds, minutes, hours,&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="MicroPython based online weather station on ESP8266 and ESP32"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">January 19, 2023</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/micropython-esp8266-esp32-online-weather-station/">MicroPython based online weather station on ESP8266 and ESP32</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/micropython-esp8266-esp32-online-weather-station/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2022/08/MPyP02-04-268x170.jpg" class="alignleft post-image entry-image wp-image-77027" alt="" decoding="async" loading="lazy" /></a><p>MicroPython is one of the best microcontroller firmware that supports a variety of embedded platforms. The WiFi development boards like ESP8266 and ESP32 are among the MicroPython-supported ports. With MicroPython, it is extremely simple to implement top-notch IoT applications.  MicroPython has wide support for network programming along with implementing all basic hardware functions. It combines&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="How to animate text on SSD1306 using MicroPython and ESP8266"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">October 25, 2022</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/micropython-esp8266-ssd1306-text-animations/">How to animate text on SSD1306 using MicroPython and ESP8266</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/micropython-esp8266-ssd1306-text-animations/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2022/10/MPyP03-RotatorImage-268x170.png" class="alignleft post-image entry-image wp-image-77456" alt="" decoding="async" loading="lazy" /></a><p>Organic light-emitting diode or OLED displays have become essential for many embedded devices. OLEDs are considered one of the highest-quality displays to showcase device information.  Typically, embedded devices use single-screen graphics, but complex interfaces are required when there are several user interactions. For example, such interfaces might use menus or other graphical navigation. Adding a&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="MicroPython: How to write and read text files on a MicroSD card using ESP32"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">September 28, 2022</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/micropython-esp32-microsd-card/">MicroPython: How to write and read text files on a MicroSD card using ESP32</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/micropython-esp32-microsd-card/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2022/09/The-circuit-connections-for-interfacing-268x170.png" class="alignleft post-image entry-image wp-image-77295" alt="" decoding="async" loading="lazy" /></a><p>Data logging is an integral part of many embedded projects. Typically, data logging is used to record sensor readings, with or without a timestamp. For example, many IoT applications use data logging to store network changes or data for troubleshooting or verification.  The ideal way to log data locally is using an SD or MicroSD&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="ESP8266/ESP32-based WiFi access point using MicroPython"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">July 29, 2022</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/esp8266-esp32-based-wifi-access-point-using-micropython/">ESP8266/ESP32-based WiFi access point using MicroPython</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/esp8266-esp32-based-wifi-access-point-using-micropython/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2022/07/MPyP01-01-268x170.png" class="alignleft post-image entry-image wp-image-76943" alt="" decoding="async" loading="lazy" /></a><p>Many IoT applications are controlled with the help of a webpage or an HTML website running within a Local Area Network (LAN) or Wireless Local Area Network (WLAN). Some examples of such IoT applications include home automation, office automation, and smart farming. The HTML webpage or website controlling the things is hosted on a microcomputer&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="Getting started with MicroPython on ESP8266"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">July 20, 2022</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/micropython-esp8266-esp32-upycraft-ide-getting-started/">Getting started with MicroPython on ESP8266</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/micropython-esp8266-esp32-upycraft-ide-getting-started/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2022/04/ESP03-Featured-268x170.png" class="alignleft post-image entry-image wp-image-71324" alt="" decoding="async" loading="lazy" /></a><p>MicroPython is an implementation of Python 3 for microcontrollers. It&#8217;s an awesome firmware that combines the powerful features of Python programming language with the low-level access of microcontrollers. Following is a list of microcontrollers supported by the MicroPython framework. Arch Mix, Actinius icarus, Arduino Nano RP2040 Connect, Arduino Primo, B_L072Z_LRWAN1, B_L475E_IOT01A, blueio_tag_evim, C3 mini, CERB40,&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="Using MicroPython SSD1306 driver to interface an OLED display with ESP8266 &#038; ESP32"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">July 20, 2022</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/micropython-esp8266-esp32-ssd1306/">Using MicroPython SSD1306 driver to interface an OLED display with ESP8266 &#038; ESP32</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/micropython-esp8266-esp32-ssd1306/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2022/06/MicroPython-interfacing-rotator-268x170.png" class="alignleft post-image entry-image wp-image-76552" alt="" decoding="async" loading="lazy" /></a><p>You’ve likely heard about SSD1306 or SSD1315 organic light-emitting diode (OLED) displays. These monochrome screens are typically in a similar price range as character displays, providing a more aesthetic appeal. More significantly, they provide a truly graphical interface for an embedded device. The OLED displays are available in ready-to-use breakout boards that can easily push&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="How to use ESP8266&#8217;s sleep modes in MicroPython"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">July 20, 2022</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/micropython-esp8266-modem-light-deep-sleep-modes-timer-external-wake-up/">How to use ESP8266&#8217;s sleep modes in MicroPython</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/micropython-esp8266-modem-light-deep-sleep-modes-timer-external-wake-up/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2022/06/MicroPython-rotator-268x170.png" class="alignleft post-image entry-image wp-image-76502" alt="" decoding="async" loading="lazy" /></a><p>Networking applications consume a lot of power. If such applications are battery-powered, there&#8217;s a risk the battery will exhaust because of the high power demands of networking functions. Frequently, power is also wasted in non-essential microcontroller activities. For example, the power might remain on for various built-in peripherals irrespective of their use or relevance in&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="MicroPython: Time-related functions, timers &#038; interrupts in ESP8266 and ESP32"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">July 20, 2022</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/micropython-time-related-functions-timers-interrupts-in-esp8266-and-esp32/">MicroPython: Time-related functions, timers &#038; interrupts in ESP8266 and ESP32</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/micropython-time-related-functions-timers-interrupts-in-esp8266-and-esp32/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2022/06/dreamstime_s_244790661-268x170.jpg" class="alignleft post-image entry-image wp-image-76496" alt="" decoding="async" loading="lazy" /></a><p>Timers are one of the common hardware features in all microcontrollers. Timers and timer interrupts are of great use in microcontroller applications. The timer interrupts are often used when precise timing is required without a fraction of error. All MicroPython ports have one or more timers. Some of these timers may be reserved for specific&hellip;</p> </div><footer class="entry-footer"></footer></article><article class="type-post entry has-post-thumbnail" aria-label="MicroPython &#8211; Reading analog signals in ESP8266 and ESP32"><header class="entry-header"><p class="entry-meta">By <span class="entry-author"><a href="https://www.engineersgarage.com/author/nikhil-agnihotri/" class="entry-author-link" rel="author"><span class="entry-author-name">Nikhil Agnihotri</span></a></span> <time class="entry-time">July 20, 2022</time> </p><h2 class="entry-title"><a class="entry-title-link" rel="bookmark" href="https://www.engineersgarage.com/micropython-reading-analog-signals-in-esp8266-and-esp32/">MicroPython &#8211; Reading analog signals in ESP8266 and ESP32</a></h2> </header><div class="entry-content"><a class="entry-image-link" href="https://www.engineersgarage.com/micropython-reading-analog-signals-in-esp8266-and-esp32/" aria-hidden="true" tabindex="-1"><img width="268" height="170" src="https://www.engineersgarage.com/wp-content/uploads/2022/05/ESP06-01-268x170.png" class="alignleft post-image entry-image wp-image-76299" alt="" decoding="async" loading="lazy" /></a><p>The majority of sensors have an analog output.  Few sensors come with a built-in controller and can stream the output measurements over a digital protocol. That is why analog to digital conversion is one of the basic features that every microcontroller/port has. The other basic features include digital input/output, analog output, PWM generation, and serial&hellip;</p> </div><footer class="entry-footer"></footer></article><div class="archive-pagination pagination"><div class="pagination-next alignright"><a href="https://www.engineersgarage.com/tutorials/python/page/2/" class="button">Next ></a></div></div></main><aside class="sidebar sidebar-primary widget-area" role="complementary" aria-label="Primary Sidebar"><section id="search-2" class="widget widget_search"><div class="widget-wrap"><form class="search-form" method="get" action="https://www.engineersgarage.com/" role="search"><input class="search-form-input" type="search" name="s" id="searchform-1" placeholder="Search this website"><input class="search-form-submit" type="submit" value="GO"><meta content="https://www.engineersgarage.com/?s={s}"></form></div></section> <section id="custom_html-5" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget"><div align="center"> <div id='div-gpt-eg_sidebar1'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-eg_sidebar1'); }); </script> </div> </div></div></div></section> <section id="custom_html-20" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><h4 class="widget-title widgettitle">EE TECH TOOLBOX</h4> <div class="textwidget custom-html-widget"><center> <div style="display: flex; flex-direction: column; justify-content: center; width: 300px;"> <div align="center"><a href="https://www.eeworldonline.com/tech-toolbox-test-measurement/" target="_blank"><img src="https://www.eeworldonline.com/wp-content/uploads/2024/11/EE-TechToolbox-T_and_M_Page_01-scaled.jpg" alt=“ee tech toolbox”></a></div> <div align="center" style="width: 300px; line-height: 20px; padding-top: 10px;"><span style="font-weight: bold; color: #0c506d; text-align: center; font-size: 20px;">Tech Toolbox: Test & Measurement</span></div> <div align="center" style="line-height: 16px; padding-top: 5px;"><span style="text-align: center; font-size: 16px;"> Everything needs testing and testing needs measurement. This Tech Toolbox covers measurement fundamentals, accuracy, precision, and resolution. A look at the Smith chart, a handy tool for RF engineers, is also reviewed. </span></div> <div align="center" style="padding-top: 10px;"><a href="https://www.eeworldonline.com/tech-toolbox-test-measurement/" target="_blank"><button style="background-color: #57bf9b; color: white; font-weight: bold; border: none; padding: 10px; font-size: 16px; cursor: pointer;">Download PDF</button></a></div> <div align="center" style="padding-top: 10px;"><a href="https://www.eeworldonline.com/category/tech-toolboxes/" target="_blank"><button style="background-color: #57bf9b; color: white; font-weight: bold; border: none; padding: 10px; font-size: 16px; cursor: pointer;">View All Tech Toolboxes</button></a></div> </div> </center> </div></div></section> <section id="custom_html-14" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><h4 class="widget-title widgettitle">EE Learning Center</h4> <div class="textwidget custom-html-widget"><center><div style="display: flex; flex-direction: column; width: 270px;"><a href="https://www.eeworldonline.com/learning-center" target="_blank" rel="noopener"><img src="https://www.engineersgarage.com/wp-content/uploads/2024/08/300x250-2-EE-LearnCtr.png" alt="EE Learning Center" style="max-width: 270px;" /></a> <div class="dropdown" style="text-align: center; margin-top: 10px;"> <button class="motion-design-guides">BROWSE CLASSROOMS</button> <div class="dropdown-content"> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/model-based-systems-engineering-classroom" target="_blank">Model-Based System Engineering</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/transformers-ii-classroom" target="_blank">Transformers II</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/automotive-connectivity-classroom" target="_blank">Automotive Connectivity</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/capacitators-classroom" target="_blank">Capacitors</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/programmable-power-classroom" target="_blank">Programmable Power</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/inductors" target="_blank">Inductors</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/classroom-fpga" target="_blank">FPGA</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/silicon-carbide-classroom" target="_blank">Silicon Carbide</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/adas-classroom" target="_blank">ADAS</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/classroom-high-voltage" target="_blank">High Voltage Power</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/emi-rfi-classroom" target="_blank">Electromagnetic & Radio Frequency Interference</a> <a class="motion-design-guide-option" href="https://www.eeworldonline.com/testing-radio-frequency-classroom" target="_blank">Testing Basics Radio Frequency</a> </div> </div></div> </center> <center> <div class="dropdown" style="text-align: center; padding-top: 10px;"> <button class="motion-design-guides">Browse Design Guides</button> <div class="dropdown-content"> <a class="motion-design-guide-option" href="https://eeworldonline.tradepub.com/free/w_defa6026/?p=w_defa6026" target="_blank">USB-Based Oscilloscopes</a> <a class="motion-design-guide-option" href="https://eeworldonline.tradepub.com/free/w_defa3554/" target="_blank">Connectors</a> <a class="motion-design-guide-option" href="https://eeworldonline.tradepub.com/free/w_defa3475/" target="_blank">5G Connectivity</a> <a class="motion-design-guide-option" href="https://eeworldonline.tradepub.com/free/w_defa3454/" target="_blank">Capacitors</a> <a class="motion-design-guide-option" href="https://eeworldonline.tradepub.com/free/w_rene01/" target="_blank">Bluetooth & Connectivity</a> <a class="motion-design-guide-option" href="https://eeworldonline.tradepub.com/free/w_defa2728/" target="_blank">WiFi & the IOT</a> <a class="motion-design-guide-option" href="https://dw-resources.designworldonline.com/free/w_defa2978/" target="_blank">Linear Position Sensors</a> <a class="motion-design-guide-option" href="https://eeworldonline.tradepub.com/free/w_defa3337/" target="_blank">Relays</a> </div> </div> </center></div></div></section> <section id="custom_html-19" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget"><center> <div style="display: flex; flex-direction: column; justify-content: center; width: 300px;"> <div align="center"><a href="https://www.engineersgarage.com/subscribe-engineers-garage-newsletter/" target="_blank"><img src="https://www.engineersgarage.com/wp-content/uploads/2023/03/EG-300x100-1.jpg" alt=“engineers garage newsletter”></a></div> <div align="center" style="width: 300px; line-height: 20px; padding-top: 10px;"><span style="font-weight: bold; color: #0c506d; text-align: center; font-size: 20px;">EXPAND YOUR KNOWLEDGE AND STAY CONNECTED</span></div> <div align="center" style="line-height: 16px; padding-top: 5px;"><span style="text-align: center; font-size: 16px;">Get the latest info on technologies, tools and strategies for EE professionals.</span></div> <div align="center" style="padding-top: 10px;"><a href="https://www.engineersgarage.com/subscribe-engineers-garage-newsletter/" target="_blank"><button style="background-color: #57bf9b; color: white; font-weight: bold; border: none; padding: 10px; font-size: 16px; cursor: pointer;">GET THE ENEWSLETTER</button></a></div> </div> </center></div></div></section> <section id="custom_html-15" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><h4 class="widget-title widgettitle">HAVE A QUESTION?</h4> <div class="textwidget custom-html-widget"><div id="digital" style="padding: 0 15px 10px 15px;"> <span style="font-size: 12px;font-weight:bold"> Have a technical question about an article or other engineering questions? Check out our engineering forums <a href="https://www.edaboard.com" target="_blank" style="color:red">EDABoard.com</a> and <a href="https://www.electro-tech-online.com" target="_blank" style="color:red">Electro-Tech-Online.com</a> where you can get those questions asked and answered by your peers! </span> <br /> <br /> <div align="Center"> <div style="float: center;"><a href="https://www.edaboard.com/?utm_source=EG&utm_medium=widget&utm_campaign=question&utm_term=HaveQuestion" target="_blank" rel="nofollow"><button class="greenbutton">EDA Board</button></a></div> <br /> <div style="float: center;"><a href="https://www.electro-tech-online.com/?utm_source=EG&utm_medium=widget&utm_campaign=question&utm_term=HaveQuestion" target="_blank" rel="nofollow"><button class="greenbutton">Electro-Tech-Online</button></a></div> </div> </div> </div></div></section> <section id="rss-2" class="widget widget_rss"><div class="widget-wrap"><h4 class="widget-title widgettitle"><a class="rsswidget rss-widget-feed" href="http://www.edaboard.com/external.php?type=RSS"><img class="rss-widget-icon" style="border:0" width="14" height="14" src="https://www.engineersgarage.com/wp-includes/images/rss.png" alt="RSS" loading="lazy" /></a> <a class="rsswidget rss-widget-title" href="https://www.edaboard.com/">EDABOARD.com Discussions</a></h4> <ul><li><a class='rsswidget' href='https://www.edaboard.com/threads/power-current-measurment.413116/'>Power &amp; current measurment</a></li><li><a class='rsswidget' href='https://www.edaboard.com/threads/transmit-the-pwm-signals-through-rfic.413100/'>Transmit the PWM signals through RFIC?</a></li><li><a class='rsswidget' href='https://www.edaboard.com/threads/low-frequency-modulation-in-high-frequency-dds-generated-signal.413002/'>Low frequency modulation in high frequency DDS generated signal</a></li><li><a class='rsswidget' href='https://www.edaboard.com/threads/unknown-inductor-and-smps-transformer.413087/'>Unknown inductor and smps transformer</a></li><li><a class='rsswidget' href='https://www.edaboard.com/threads/electronic-load-needed.413112/'>Electronic load needed</a></li></ul></div></section> <section id="rss-3" class="widget widget_rss"><div class="widget-wrap"><h4 class="widget-title widgettitle"><a class="rsswidget rss-widget-feed" href="https://www.electro-tech-online.com/forums/-/index.rss"><img class="rss-widget-icon" style="border:0" width="14" height="14" src="https://www.engineersgarage.com/wp-includes/images/rss.png" alt="RSS" loading="lazy" /></a> <a class="rsswidget rss-widget-title" href="https://www.electro-tech-online.com/">Electro-Tech-Online.com Discussions</a></h4> <ul><li><a class='rsswidget' href='https://www.electro-tech-online.com/threads/cheap-pcbs-from-jlc-pcb-including-cheap-postage.166917/'>Cheap PCB&#039;s from JLC PCB, including cheap postage.</a></li><li><a class='rsswidget' href='https://www.electro-tech-online.com/threads/display-tft-st7789-oshonsoft-basic.166219/'>Display TFT ST7789 (OshonSoft Basic).</a></li><li><a class='rsswidget' href='https://www.electro-tech-online.com/threads/what-to-do-with-switches.166912/'>What to do with switches?</a></li><li><a class='rsswidget' href='https://www.electro-tech-online.com/threads/help-identifying-component.166932/'>Help identifying component</a></li><li><a class='rsswidget' href='https://www.electro-tech-online.com/threads/stepper-motor-help-needed.166936/'>Stepper motor help needed</a></li></ul></div></section> <section id="category-posts-2" class="widget cat-post-widget"><div class="widget-wrap"><h4 class="widget-title widgettitle">Featured Series -Iot Tutorials (48 Part series)</h4> <ul id="category-posts-2-internal" class="category-posts-internal"> <li class='cat-post-item'><div><a class="cat-post-thumbnail cat-post-dark" href="https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/" title="Secure client server communication over TLS security protocol using Mosquitto Broker: IOT Part 42"><span class="cat-post-crop cat-post-format cat-post-format-standard"><img width="150" height="95" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Secure-Client-Server-Communication-Over-TLS-Protocol-Using-Mosquitto-Broker.jpg" class="attachment- size- wp-image-52222 wp-post-image" alt="" data-cat-posts-width="150" data-cat-posts-height="95" decoding="async" loading="lazy" srcset="https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Secure-Client-Server-Communication-Over-TLS-Protocol-Using-Mosquitto-Broker.jpg 588w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Secure-Client-Server-Communication-Over-TLS-Protocol-Using-Mosquitto-Broker-300x123.jpg 300w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Secure-Client-Server-Communication-Over-TLS-Protocol-Using-Mosquitto-Broker-368x151.jpg 368w" sizes="auto, (max-width: 150px) 100vw, 150px" /></span></a> <h6 class="widget-title"><a class="cat-post-title" href="https://www.engineersgarage.com/secure-client-server-communication-over-tls-security-protocol-using-mosquitto-broker-iot-part-42/" rel="bookmark">Secure client server communication over TLS security protocol using Mosquitto Broker: IOT Part 42</a></h6></div></li><li class='cat-post-item'><div><a class="cat-post-thumbnail cat-post-dark" href="https://www.engineersgarage.com/application-of-ftp-protocol-in-internet-of-things-iot-part-43/" title="Application of FTP Protocol in Internet of Things &#8211; IOT Part 43"><span class="cat-post-crop cat-post-format cat-post-format-standard"><img width="150" height="95" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Representational-Image-FTP-Protocol.jpg" class="attachment- size- wp-image-52475 wp-post-image" alt="" data-cat-posts-width="150" data-cat-posts-height="95" decoding="async" loading="lazy" srcset="https://www.engineersgarage.com/wp-content/uploads/2019/07/Representational-Image-FTP-Protocol.jpg 633w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Representational-Image-FTP-Protocol-300x201.jpg 300w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Representational-Image-FTP-Protocol-355x238.jpg 355w" sizes="auto, (max-width: 150px) 100vw, 150px" /></span></a> <h6 class="widget-title"><a class="cat-post-title" href="https://www.engineersgarage.com/application-of-ftp-protocol-in-internet-of-things-iot-part-43/" rel="bookmark">Application of FTP Protocol in Internet of Things &#8211; IOT Part 43</a></h6></div></li><li class='cat-post-item'><div><a class="cat-post-thumbnail cat-post-dark" href="https://www.engineersgarage.com/automatic-software-update-by-iot-device-over-ftp-protocol-iot-part-44/" title="Automatic Software Update by IoT Device over FTP Protocol &#8211; IOT Part 44"><span class="cat-post-crop cat-post-format cat-post-format-standard"><img width="150" height="95" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Block-Diagram-Raspberry-Pi-3-based-IoT-FTP-Client.jpg" class="attachment- size- wp-image-52286 wp-post-image" alt="" data-cat-posts-width="150" data-cat-posts-height="95" decoding="async" loading="lazy" srcset="https://www.engineersgarage.com/wp-content/uploads/2019/07/Block-Diagram-Raspberry-Pi-3-based-IoT-FTP-Client.jpg 1200w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Block-Diagram-Raspberry-Pi-3-based-IoT-FTP-Client-300x180.jpg 300w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Block-Diagram-Raspberry-Pi-3-based-IoT-FTP-Client-768x460.jpg 768w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Block-Diagram-Raspberry-Pi-3-based-IoT-FTP-Client-1024x613.jpg 1024w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Block-Diagram-Raspberry-Pi-3-based-IoT-FTP-Client-368x220.jpg 368w" sizes="auto, (max-width: 150px) 100vw, 150px" /></span></a> <h6 class="widget-title"><a class="cat-post-title" href="https://www.engineersgarage.com/automatic-software-update-by-iot-device-over-ftp-protocol-iot-part-44/" rel="bookmark">Automatic Software Update by IoT Device over FTP Protocol &#8211; IOT Part 44</a></h6></div></li><li class='cat-post-item'><div><a class="cat-post-thumbnail cat-post-dark" href="https://www.engineersgarage.com/ssh-file-transfer-protocol-iot-part-45/" title="SSH File Transfer Protocol &#8211; IOT Part 45"><span class="cat-post-crop cat-post-format cat-post-format-standard"><img width="150" height="95" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Symbol-SSH-File-Transfer-Protocol-SFTP.jpg" class="attachment- size- wp-image-54321 wp-post-image" alt="" data-cat-posts-width="150" data-cat-posts-height="95" decoding="async" loading="lazy" srcset="https://www.engineersgarage.com/wp-content/uploads/2019/07/Symbol-SSH-File-Transfer-Protocol-SFTP.jpg 465w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Symbol-SSH-File-Transfer-Protocol-SFTP-300x234.jpg 300w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Symbol-SSH-File-Transfer-Protocol-SFTP-306x238.jpg 306w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Symbol-SSH-File-Transfer-Protocol-SFTP-216x168.jpg 216w" sizes="auto, (max-width: 150px) 100vw, 150px" /></span></a> <h6 class="widget-title"><a class="cat-post-title" href="https://www.engineersgarage.com/ssh-file-transfer-protocol-iot-part-45/" rel="bookmark">SSH File Transfer Protocol &#8211; IOT Part 45</a></h6></div></li><li class='cat-post-item'><div><a class="cat-post-thumbnail cat-post-dark" href="https://www.engineersgarage.com/raspberry-pi-server-based-hotel-restaurant-order-management-system-on-iot-iot-part-46/" title="Raspberry Pi Server based Hotel/Restaurant Order Management System on IoT &#8211; IOT Part 46"><span class="cat-post-crop cat-post-format cat-post-format-standard"><img width="150" height="95" src="https://www.engineersgarage.com/wp-content/uploads/2021/02/hotel-restaurant-order-project-featured.jpg" class="attachment- size- wp-image-63002 wp-post-image" alt="" data-cat-posts-width="150" data-cat-posts-height="95" decoding="async" loading="lazy" srcset="https://www.engineersgarage.com/wp-content/uploads/2021/02/hotel-restaurant-order-project-featured.jpg 770w, https://www.engineersgarage.com/wp-content/uploads/2021/02/hotel-restaurant-order-project-featured-300x195.jpg 300w, https://www.engineersgarage.com/wp-content/uploads/2021/02/hotel-restaurant-order-project-featured-768x499.jpg 768w, https://www.engineersgarage.com/wp-content/uploads/2021/02/hotel-restaurant-order-project-featured-368x238.jpg 368w" sizes="auto, (max-width: 150px) 100vw, 150px" /></span></a> <h6 class="widget-title"><a class="cat-post-title" href="https://www.engineersgarage.com/raspberry-pi-server-based-hotel-restaurant-order-management-system-on-iot-iot-part-46/" rel="bookmark">Raspberry Pi Server based Hotel/Restaurant Order Management System on IoT &#8211; IOT Part 46</a></h6></div></li><li class='cat-post-item'><div><a class="cat-post-thumbnail cat-post-dark" href="https://www.engineersgarage.com/imap-protocol-iot-part-47-2/" title="IMAP Protocol- IOT Part 47"><span class="cat-post-crop cat-post-format cat-post-format-standard"><img width="150" height="95" src="https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Protocol-Email-Retrieving-Algorithm.jpg" class="attachment- size- wp-image-52474 wp-post-image" alt="" data-cat-posts-width="150" data-cat-posts-height="95" decoding="async" loading="lazy" srcset="https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Protocol-Email-Retrieving-Algorithm.jpg 473w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Protocol-Email-Retrieving-Algorithm-184x300.jpg 184w, https://www.engineersgarage.com/wp-content/uploads/2019/07/Image-Showing-Protocol-Email-Retrieving-Algorithm-146x238.jpg 146w" sizes="auto, (max-width: 150px) 100vw, 150px" /></span></a> <h6 class="widget-title"><a class="cat-post-title" href="https://www.engineersgarage.com/imap-protocol-iot-part-47-2/" rel="bookmark">IMAP Protocol- IOT Part 47</a></h6></div></li></ul> </div></section> <section id="recent-posts-2" class="widget widget_recent_entries"><div class="widget-wrap"> <h4 class="widget-title widgettitle">Recent Articles</h4> <ul> <li> <a href="https://www.engineersgarage.com/infineons-space-grade-512-mbit-flash-memory-supports-data-rates-up-to-133-mhz-for-fpga-boot/">Infineon’s space-grade 512 Mbit Flash memory supports data rates up to 133 MHz for FPGA Boot</a> </li> <li> <a href="https://www.engineersgarage.com/same-sky-expands-usb-portfolio-with-5-9-mm-type-c-series/">Same Sky expands USB portfolio with 5.9 mm Type-C series</a> </li> <li> <a href="https://www.engineersgarage.com/renesas-ddr5-chipset-reaches-12800-mt-s-transfer-speed/">Renesas DDR5 chipset reaches 12,800 MT/s transfer speed</a> </li> <li> <a href="https://www.engineersgarage.com/stmicroelectronics-releases-automotive-qualified-comparators-in-sc70-5-package/">STMicroelectronics releases automotive-qualified comparators in SC70-5 package</a> </li> <li> <a href="https://www.engineersgarage.com/melexis-launches-current-sensor-with-16-bit-over-current-detection-10-bit-temperature-monitoring/">Melexis launches current sensor with 16-bit over-current detection, 10-bit temperature monitoring</a> </li> </ul> </div></section> <section id="custom_html-3" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><div class="textwidget custom-html-widget"> <div id='div-gpt-eg_sidebarbottom'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-eg_sidebarbottom'); }); </script> </div> </div></div></section> <section id="custom_html-18" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><h4 class="widget-title widgettitle">EE ENGINEERING TRAINING DAYS</h4> <div class="textwidget custom-html-widget"><center><div style="display: flex; flex-direction: column; width: 270px;"><a href="https://eetrainingdays.com/" target="_blank" rel="noopener"><img src="https://www.eeworldonline.com/wp-content/uploads/2024/01/300x250-side-bar-graphic.png" alt="engineering" /></a> </div> </center></div></div></section> <section id="custom_html-17" class="widget_text widget widget_custom_html"><div class="widget_text widget-wrap"><h4 class="widget-title widgettitle">Submit a Guest Post</h4> <div class="textwidget custom-html-widget"><center> <a href="/join-us-as-a-guest-post-writer/"> <img src="/wp-content/uploads/2022/10/guest-post-banner.jpg" alt="submit a guest post"> </a> </center></div></div></section> </aside></div></div></div><div class="footer-socials"><div class="wrap"><label style="color:#ffffff">Connect with Engineers Garage</label> <a href="https://www.facebook.com/engineersgarage" target="_blank" rel="noopener noreferrer"><i class="icon-facebook"></i></a><a href="https://twitter.com/EngineersGarage" target="_blank" rel="noopener noreferrer"><i class="icon-twitter"></i></a><a href="https://www.youtube.com/@engineersgarage" target="_blank" rel="noopener noreferrer"><i class="icon-youtube"></i></a></div></div><footer class="site-footer"><div class="wrap"><div class="row"><div class="footer-logo"><a href="https://www.engineersgarage.com">Engineers Garage</a></div><div class="footer-menu"><div class="menu-footer-nav-container"><ul id="menu-footer-nav" class="menu"><li id="menu-item-55876" class="menu-item"><a target="_blank" href="http://www.analogictips.com/">Analog IC TIps</a></li> <li id="menu-item-55877" class="menu-item"><a target="_blank" href="https://www.connectortips.com/">Connector Tips</a></li> <li id="menu-item-80507" class="menu-item"><a href="https://www.batterypowertips.com/">Battery Power Tips</a></li> <li id="menu-item-55872" class="menu-item"><a target="_blank" href="https://www.DesignFast.com/">DesignFast</a></li> <li id="menu-item-55873" class="menu-item"><a target="_blank" href="http://www.edaboard.com/">EDABoard Forums</a></li> <li id="menu-item-55881" class="menu-item"><a target="_blank" href="https://www.eeworldonline.com">EE World Online</a></li> <li id="menu-item-55874" class="menu-item"><a target="_blank" href="http://www.electro-tech-online.com/">Electro-Tech-Online Forums</a></li> <li id="menu-item-79699" class="menu-item"><a target="_blank" href="https://www.evengineeringonline.com/">EV Engineering</a></li> <li id="menu-item-55875" class="menu-item"><a target="_blank" href="http://www.microcontrollertips.com/">Microcontroller Tips</a></li> <li id="menu-item-55878" class="menu-item"><a target="_blank" href="http://www.powerelectronictips.com/">Power Electronic Tips</a></li> <li id="menu-item-55879" class="menu-item"><a target="_blank" href="http://www.sensortips.com/">Sensor Tips</a></li> <li id="menu-item-55880" class="menu-item"><a target="_blank" href="http://www.testandmeasurementtips.com/">Test and Measurement Tips</a></li> <li id="menu-item-60429" class="menu-item"><a target="_blank" href="https://www.5gtechnologyworld.com/">5G Technology World</a></li> <li id="menu-item-79962" class="menu-item"><a href="https://www.engineersgarage.com/subscribe-engineers-garage-newsletter/">Subscribe to our newsletter</a></li> <li id="menu-item-55885" class="menu-item"><a href="https://www.engineersgarage.com/about-us/">About Us</a></li> <li id="menu-item-55886" class="menu-item"><a href="https://www.engineersgarage.com/contact-us/">Contact Us</a></li> <li id="menu-item-55887" class="menu-item"><a target="_blank" href="https://marketing.wtwhmedia.com/2024-ee-world-online-media-guide/">Advertise</a></li> </ul></div></div><div class="footer-copyright"><p>Copyright &copy; 2024 WTWH Media LLC. All Rights Reserved. The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of WTWH Media<br /> <a href="http://www.wtwhmedia.com/privacy-policy/" target="_blank">Privacy Policy</a> </p></div></div></div></footer></div><div class="site-search"><div class="wrap"><div class="search-inner"><h2>Search Engineers Garage</h2><form class="search-form" method="get" action="https://www.engineersgarage.com/" role="search"><input class="search-form-input" type="search" name="s" id="searchform-2" placeholder="Search this website"><input class="search-form-submit" type="submit" value="GO"><meta content="https://www.engineersgarage.com/?s={s}"></form></div></div></div> <!-- xyzzy bottom --> </div> <script> var GAMaccountID = 5272491; var GAMnetworkName = 'ee_network'; var GAMadUnitName = 'eg_prestitial'; googletag.slots = googletag.slots || {}; </script> <script type="text/javascript"> function genesisBlocksShare( url, title, w, h ){ var left = ( window.innerWidth / 2 )-( w / 2 ); var top = ( window.innerHeight / 2 )-( h / 2 ); return window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=600, height=600, top='+top+', left='+left); } </script> <!-- Google Tag Manager (noscript) Global --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MMC9PJ9" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NJMRR6Z" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div id='div-gpt-eg_wallpaper'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-eg_wallpaper'); }); </script> </div> <div id='div-gpt-eg_allstreamflex'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-eg_allstreamflex'); }); </script> </div> <div id='div-gpt-eg_allstreamprelude'> <script> googletag.cmd.push(function() { googletag.display('div-gpt-eg_allstreamprelude'); }); </script> </div> <div id="sidr-mobile-menu" class="sidr right"><a class="sidr-menu-close" href="#"><i class="icon-close"></i></a><div class="menu-main-nav-container"><ul id="menu-main-nav" class="menu"><li id="menu-item-61908" class="menu-item current-menu-ancestor menu-item-has-children"><a href="https://www.engineersgarage.com/projects-and-tutorials/">Electronics Projects and Tutorials</a> <ul class="sub-menu"> <li id="menu-item-39808" class="menu-item menu-item-has-children"><a href="https://www.engineersgarage.com/electronic-projects/">Electronic Projects</a> <ul class="sub-menu"> <li id="menu-item-81272" class="menu-item"><a href="https://www.engineersgarage.com/arduino/">Arduino Projects</a></li> <li id="menu-item-81273" class="menu-item"><a href="https://www.engineersgarage.com/electronic-projects/avr/">AVR</a></li> <li id="menu-item-80793" class="menu-item"><a href="https://www.engineersgarage.com/raspberry-pi-electronic-projects/">Raspberry pi</a></li> <li id="menu-item-78430" class="menu-item"><a href="https://www.engineersgarage.com/electronic-projects/esp8266-electronic-projects/">ESP8266</a></li> <li id="menu-item-78434" class="menu-item"><a href="https://www.engineersgarage.com/electronic-projects/beaglebone-electronic-projects/">BeagleBone</a></li> <li id="menu-item-80794" class="menu-item"><a href="https://www.engineersgarage.com/electronic-projects/8051-microcontroller/">8051 Microcontroller</a></li> <li id="menu-item-55864" class="menu-item"><a href="https://www.engineersgarage.com/electronic-projects/arm-electronic-projects-electronic-projects/">ARM</a></li> <li id="menu-item-80795" class="menu-item"><a href="https://www.engineersgarage.com/electronic-projects/pic-microcontroller-electronic-projects/">PIC Microcontroller</a></li> <li id="menu-item-60239" class="menu-item"><a href="https://www.engineersgarage.com/electronic-projects/stm32-electronic-projects-electronic-projects/">STM32</a></li> </ul> </li> <li id="menu-item-7268" class="menu-item current-menu-ancestor menu-item-has-children"><a href="https://www.engineersgarage.com/tutorials/">Tutorials</a> <ul class="sub-menu"> <li id="menu-item-78818" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/audio-tutorials/">Audio Electronics</a></li> <li id="menu-item-78819" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/battery-management-systems/">Battery Management</a></li> <li id="menu-item-78820" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/brainwave/">Brainwave</a></li> <li id="menu-item-78833" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/evs/">Electric Vehicles</a></li> <li id="menu-item-78822" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/emc-emi/">EMI/EMC/RFI</a></li> <li id="menu-item-78823" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/filters/">Hardware Filters</a></li> <li id="menu-item-78826" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/iot-tutorials/">IoT tutorials</a></li> <li id="menu-item-80151" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/power/">Power Tutorials</a></li> <li id="menu-item-78835" class="menu-item current-menu-item"><a href="https://www.engineersgarage.com/tutorials/python/" aria-current="page">Python</a></li> <li id="menu-item-78829" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/sensors-tutorials/">Sensors</a></li> <li id="menu-item-78830" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/usb/">USB</a></li> <li id="menu-item-78832" class="menu-item"><a href="https://www.engineersgarage.com/tutorials/vhdl-tutorials/">VHDL</a></li> </ul> </li> <li id="menu-item-56096" class="menu-item"><a href="https://www.engineersgarage.com/circuit_design/">Circuit Design</a></li> <li id="menu-item-62725" class="menu-item"><a target="_blank" href="https://www.youtube.com/user/engineersgarage">Project Videos</a></li> <li id="menu-item-7269" class="menu-item"><a href="https://www.engineersgarage.com/components/">Components</a></li> </ul> </li> <li id="menu-item-39810" class="menu-item menu-item-has-children"><a href="https://www.engineersgarage.com/article_page/">Articles</a> <ul class="sub-menu"> <li id="menu-item-63122" class="menu-item"><a href="https://www.engineersgarage.com/tech-articles/">Tech Articles</a></li> <li id="menu-item-13371" class="menu-item"><a href="https://www.engineersgarage.com/insight/">Insight</a></li> <li id="menu-item-13399" class="menu-item"><a href="https://www.engineersgarage.com/invention-stories/">Invention Stories</a></li> <li id="menu-item-13326" class="menu-item"><a href="https://www.engineersgarage.com/how_to/">How to</a></li> <li id="menu-item-59366" class="menu-item"><a href="https://www.engineersgarage.com/what_is/">What Is</a></li> </ul> </li> <li id="menu-item-1863" class="menu-item menu-item-has-children"><a href="#">News</a> <ul class="sub-menu"> <li id="menu-item-39809" class="menu-item"><a href="https://www.engineersgarage.com/news/">Electronic Product News</a></li> <li id="menu-item-77696" class="menu-item"><a href="https://www.engineersgarage.com/news/business-news/">Business News</a></li> <li id="menu-item-77697" class="menu-item"><a href="https://www.engineersgarage.com/news/company-start-up-news/">Company/Start-up News</a></li> <li id="menu-item-14489" class="menu-item"><a href="https://www.engineersgarage.com/reviews/">DIY Reviews</a></li> <li id="menu-item-14287" class="menu-item"><a href="https://www.engineersgarage.com/guest_post/">Guest Post</a></li> </ul> </li> <li id="menu-item-55871" class="menu-item menu-item-has-children"><a>Forums</a> <ul class="sub-menu"> <li id="menu-item-55870" class="menu-item"><a href="https://www.edaboard.com/">EDABoard.com</a></li> <li id="menu-item-55869" class="menu-item"><a href="https://www.electro-tech-online.com/">Electro-Tech-Online</a></li> <li id="menu-item-1851" class="menu-item"><a href="https://forums.engineersgarage.com/">EG Forum Archive</a></li> </ul> </li> <li id="menu-item-1868" class="menu-item menu-item-has-children"><a target="_blank" href="https://wtwh.me/9mk">DigiKey Store</a> <ul class="sub-menu"> <li id="menu-item-1869" class="menu-item"><a target="_blank" href="https://wtwh.me/9ml">Cables, Wires</a></li> <li id="menu-item-1870" class="menu-item"><a target="_blank" href="https://wtwh.me/9mm">Connectors, Interconnect</a></li> <li id="menu-item-1871" class="menu-item"><a target="_blank" href="https://wtwh.me/9mn">Discrete</a></li> <li id="menu-item-1872" class="menu-item"><a target="_blank" href="https://wtwh.me/9mo">Electromechanical</a></li> <li id="menu-item-1873" class="menu-item"><a target="_blank" href="https://wtwh.me/9mp">Embedded Computers</a></li> <li id="menu-item-1874" class="menu-item"><a target="_blank" href="https://wtwh.me/9mq">Enclosures, Hardware, Office</a></li> <li id="menu-item-1875" class="menu-item"><a target="_blank" href="https://wtwh.me/9mr">Integrated Circuits (ICs)</a></li> <li id="menu-item-1876" class="menu-item"><a target="_blank" href="https://wtwh.me/9ms">Isolators</a></li> <li id="menu-item-1877" class="menu-item"><a target="_blank" href="https://wtwh.me/9mt">LED/Optoelectronics</a></li> <li id="menu-item-1878" class="menu-item"><a target="_blank" href="https://wtwh.me/9mu">Passive</a></li> <li id="menu-item-1879" class="menu-item"><a target="_blank" href="https://wtwh.me/9mv">Power, Circuit Protection</a></li> <li id="menu-item-1880" class="menu-item"><a target="_blank" href="https://wtwh.me/9mw">Programmers</a></li> <li id="menu-item-1881" class="menu-item"><a target="_blank" href="https://wtwh.me/9mx">RF, Wireless</a></li> <li id="menu-item-1882" class="menu-item"><a target="_blank" href="https://wtwh.me/9mk">Semiconductors</a></li> <li id="menu-item-1883" class="menu-item"><a target="_blank" href="https://wtwh.me/9my">Sensors, Transducers</a></li> <li id="menu-item-1884" class="menu-item"><a target="_blank" href="https://wtwh.me/9mz">Test Products</a></li> <li id="menu-item-1885" class="menu-item"><a target="_blank" href="https://wtwh.me/9mA">Tools</a></li> </ul> </li> <li id="menu-item-56062" class="menu-item menu-item-has-children"><a href="https://www.eeworldonline.com/learning-center">Learn</a> <ul class="sub-menu"> <li id="menu-item-80114" class="menu-item"><a href="https://www.eeworldonline.com/category/tech-tips/">eBooks/Tech Tips</a></li> <li id="menu-item-76567" class="menu-item"><a target="_blank" href="https://www.eeworldonline.com/design-guide-library">Design Guides</a></li> <li id="menu-item-77221" class="menu-item"><a target="_blank" href="https://www.eeworldonline.com/learning-center">Learning Center</a></li> <li id="menu-item-81739" class="menu-item"><a target="_blank" href="https://www.eeworldonline.com/category/tech-toolboxes/">Tech Toolboxes</a></li> <li id="menu-item-80113" class="menu-item"><a href="https://gateway.on24.com/wcc/experience/elitewtwhmedia/2927718/4415581/eeworld">Webinars &#038; Digital Events</a></li> </ul> </li> <li id="menu-item-55895" class="menu-item menu-item-has-children"><a>Resources</a> <ul class="sub-menu"> <li id="menu-item-77693" class="menu-item"><a href="https://www.eeworldonline.com/category/digital-issues/">Digital Issues</a></li> <li id="menu-item-77694" class="menu-item"><a href="https://eetrainingdays.com/">EE Training Days</a></li> <li id="menu-item-55899" class="menu-item"><a target="_blank" href="https://www.eeworldonline.com/2023-leap-awards-winners-are-announced/">LEAP Awards</a></li> <li id="menu-item-77695" class="menu-item"><a href="https://www.eeworldonline.com/category/podcasts/">Podcasts</a></li> <li id="menu-item-77375" class="menu-item"><a target="_blank" href="https://www.eeworldonline.com/ee-world-webinars-and-digital-events/">Webinars / Digital Events</a></li> <li id="menu-item-55898" class="menu-item"><a href="http://www.engineeringwhitepapers.com/category/electricalelectronic/">White Papers</a></li> <li id="menu-item-62203" class="menu-item"><a href="https://www.designworldonline.com/category/news/engineering-diversity/">Engineering Diversity &#038; Inclusion</a></li> <li id="menu-item-55896" class="menu-item"><a href="https://www.DesignFast.com">DesignFast</a></li> </ul> </li> <li id="menu-item-80115" class="menu-item"><a href="https://www.engineersgarage.com/subscribe-engineers-garage-newsletter/">Subscribe</a></li> <li id="menu-item-80423" class="menu-item"><a href="https://www.engineersgarage.com/join-us-as-a-guest-post-writer/">Guest Post Guidelines</a></li> </ul></div></div></div><style type="text/css" media="screen"></style><script type="text/javascript" src="https://www.engineersgarage.com/wp-content/plugins/prestitial/assets/js/adlogic.js?ver=1.1.0" id="wtwh_prestitial_core_js-js"></script> <script type="text/javascript" src="https://www.engineersgarage.com/wp-content/plugins/genesis-blocks/dist/assets/js/dismiss.js?ver=1720775797" id="genesis-blocks-dismiss-js-js"></script> <script type="text/javascript" src="https://www.engineersgarage.com/wp-content/themes/ThemeWTWHv2/assets/js/global-min.js?ver=1629218360" id="ea-global-js"></script> <script type="text/javascript" src="https://www.engineersgarage.com/wp-includes/js/jquery/ui/core.min.js?ver=1.13.3" id="jquery-ui-core-js"></script> <script type="text/javascript" src="https://www.engineersgarage.com/wp-includes/js/jquery/ui/tabs.min.js?ver=1.13.3" id="jquery-ui-tabs-js"></script> <script type="text/javascript" src="https://www.engineersgarage.com/wp-includes/js/hoverIntent.min.js?ver=1.10.2" id="hoverIntent-js"></script> <script type="text/javascript" src="https://www.engineersgarage.com/wp-content/plugins/megamenu/js/maxmegamenu.js?ver=3.4" id="megamenu-js"></script> <script type="text/javascript" async data-no-optimize="1" src="https://www.engineersgarage.com/wp-content/plugins/perfmatters/vendor/instant-page/pminstantpage.min.js?ver=2.3.4" id="perfmatters-instant-page-js"></script> <script type="text/javascript">jQuery(document).ready(function($) { $(".ui-tabs").tabs(); });</script> <script>"undefined"!=typeof jQuery&&jQuery(document).ready(function(){"objectFit"in document.documentElement.style==!1&&(jQuery(".cat-post-item figure").removeClass("cat-post-crop"),jQuery(".cat-post-item figure").addClass("cat-post-crop-not-supported")),(document.documentMode||/Edge/.test(navigator.userAgent))&&(jQuery(".cat-post-item figure img").height("+=1"),window.setTimeout(function(){jQuery(".cat-post-item figure img").height("-=1")},0))});</script> <script type="text/javascript"> if (typeof jQuery !== 'undefined') { var cat_posts_namespace = window.cat_posts_namespace || {}; cat_posts_namespace.layout_wrap_text = cat_posts_namespace.layout_wrap_text || {}; cat_posts_namespace.layout_img_size = cat_posts_namespace.layout_img_size || {}; cat_posts_namespace.layout_wrap_text = { preWrap : function (widget) { jQuery(widget).find('.cat-post-item').each(function(){ var _that = jQuery(this); _that.find('p.cpwp-excerpt-text').addClass('cpwp-wrap-text'); _that.find('p.cpwp-excerpt-text').closest('div').wrap('<div class="cpwp-wrap-text-stage"></div>'); }); return; }, add : function(_this){ var _that = jQuery(_this); if (_that.find('p.cpwp-excerpt-text').height() < _that.find('.cat-post-thumbnail').height()) { _that.find('p.cpwp-excerpt-text').closest('.cpwp-wrap-text-stage').removeClass( "cpwp-wrap-text" ); _that.find('p.cpwp-excerpt-text').addClass( "cpwp-wrap-text" ); }else{ _that.find('p.cpwp-excerpt-text').removeClass( "cpwp-wrap-text" ); _that.find('p.cpwp-excerpt-text').closest('.cpwp-wrap-text-stage').addClass( "cpwp-wrap-text" ); } return; }, handleLazyLoading : function(_this) { var width = jQuery(_this).find('img').width(); if( 0 !== width ){ cat_posts_namespace.layout_wrap_text.add(_this); } else { jQuery(_this).find('img').one("load", function(){ cat_posts_namespace.layout_wrap_text.add(_this); }); } return; }, setClass : function (widget) { // var _widget = jQuery(widget); jQuery(widget).find('.cat-post-item').each(function(){ cat_posts_namespace.layout_wrap_text.handleLazyLoading(this); }); return; } } cat_posts_namespace.layout_img_size = { replace : function(_this){ var _that = jQuery(_this), resp_w = _that.width(), resp_h = _that.height(), orig_w = _that.data('cat-posts-width'), orig_h = _that.data('cat-posts-height'); if( resp_w < orig_w ){ _that.height( resp_w * orig_h / orig_w ); } else { _that.height( '' ); } return; }, handleLazyLoading : function(_this) { var width = jQuery(_this).width(); if( 0 !== width ){ cat_posts_namespace.layout_img_size.replace(_this); } else { jQuery(_this).one("load", function(){ cat_posts_namespace.layout_img_size.replace(_this); }); } return; }, setHeight : function (widget) { jQuery(widget).find('.cat-post-item img').each(function(){ cat_posts_namespace.layout_img_size.handleLazyLoading(this); }); return; } } let widget = jQuery('#category-posts-2-internal'); jQuery( document ).ready(function () { cat_posts_namespace.layout_wrap_text.setClass(widget); cat_posts_namespace.layout_img_size.setHeight(widget); }); jQuery(window).on('load resize', function() { cat_posts_namespace.layout_wrap_text.setClass(widget); cat_posts_namespace.layout_img_size.setHeight(widget); }); // low-end mobile cat_posts_namespace.layout_wrap_text.preWrap(widget); cat_posts_namespace.layout_wrap_text.setClass(widget); cat_posts_namespace.layout_img_size.setHeight(widget); } </script> </body></html>

Pages: 1 2 3 4 5 6 7 8 9 10