CINXE.COM
Adafruit Learning System
<!doctype html> <html lang="en-US" prefix="og: http://ogp.me/ns#"> <head> <meta charset="utf-8"> <link rel="mask-icon" href="/assets/adafruit_favicon-fa25640e.svg" color="#000000"> <link rel="icon" type="image/x-icon" href="/assets/favicon-5362a6c7.ico" /> <title>Adafruit Learning System</title> <meta name="csrf-param" content="authenticity_token" /> <meta name="csrf-token" content="9mhNsf2kFjkv-wLfe5GMxbfIDwRYWLEsOd_wc7dy2y9cpLj_-gMHp4bWTjDzPlssLOwZ9yRtbz_Yxnyv5cL2GA" /> <link rel="alternate" type="application/atom+xml" title="ATOM" href="/feed" /> <link rel="alternate" type="application/rss+xml" title="RSS" href="/feed.rss" /> <link rel="stylesheet" href="/assets/application-ec0f18c6.css" data-turbo-track="reload" media="screen" /> <link rel="preload" href="https://cdn-shop.adafruit.com/fonts/proximanova/proximanova-light-webfont.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="https://cdn-shop.adafruit.com/fonts/proximanova/proximanova-regular-webfont.woff2" as="font" type="font/woff2" crossorigin> <link rel="preload" href="https://cdn-shop.adafruit.com/fonts/proximanova/proximanova-semibold-webfont.woff2" as="font" type="font/woff2" crossorigin> <script> var dataLayer = []; function gtag(){dataLayer.push(arguments);} </script> <!-- 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-PRPXBQ6');</script> <!-- End Google Tag Manager --> <script> gtag('js', new Date()); </script> <meta name='viewport' content='initial-scale=1, viewport-fit=cover'> <!-- <meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1"> --> <meta http-equiv="X-UA-Compatible" content="IE=Edge"> <script> window.rails_env = 'production'; </script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "WebSite", "url": "https://learn.adafruit.com/", "potentialAction": { "@type": "SearchAction", "target": "https://learn.adafruit.com/search?q={search_term}", "query-input": "required name=search_term" } } </script> <script src="/assets/application-3792cf70.js" data-turbo-track="reload" type="module"></script> </head> <body class="application user users show production"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-PRPXBQ6" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <div id="outer-wrapper"> <div id="inner-wrapper"> <div id="messaging-wrapper" class="messages-container" data-load="https://www.adafruit.com/api/multi_message.php"></div> <a data-turbo="false" class="skip-to-main" href="#main-content-container">Skip to main content</a> <header id="adafruit-header" aria-label="Adafruit header"> <div id="small-header"> <div class="first-row"> <nav aria-label="Adafruit applications menu"> <ul class="application-links"> <li><a aria-label="Adafruit Shop" href="https://www.adafruit.com">Shop</a></li> <li class="selected"><a aria-label="Adafruit Learning System" href="https://learn.adafruit.com">Learn</a></li> <li><a aria-label="Adafruit Blog" href="https://blog.adafruit.com">Blog</a></li> <li><a aria-label="Adafruit Forums and Support" href="https://forums.adafruit.com">Forums</a></li> <li><a aria-label="Adafruit IO, the internet of things" href="https://io.adafruit.com">IO</a></li> <li><a aria-label="Adafruit Youtube Videos" href="https://www.youtube.com/adafruit/live">LIVE!</a></li> <li><a aria-label="Adafruit product box subscription" href="https://www.adabox.com">AdaBox</a></li> </ul> </nav> </div> <div class="second-row"> <div class="row-content"> <div id="mobile-header-logo"> <a href="https://learn.adafruit.com"> <img id="small-logo" height="50" width="50" alt="Adafruit Logo" src="/logos/adafruit_logo_small.png?1745037072367417153" /> </a> </div> <button id="mobile-menu-button" class="c-hamburger c-hamburger--htx"> <span>toggle menu</span> </button> <div id="mobile-search-wrapper"> <form action="https://learn.adafruit.com/search" method="get"> <label for="mobile-search" style="display:none;">Search</label> <input id="mobile-search" type="text" name="q" autocomplete="off" data-app-id="W9DMM4OTH0" data-app-key="28a76a2b87be38db12283ebda329425a" data-app-index="learn_guides_production" data-app-uri="https://learn.adafruit.com" /> <button type="submit" aria-label="Submit search"><i class="fa fa-search"></i></button> </form> </div> <a id="mobile-header-cart" href="https://www.adafruit.com/shopping_cart"> <span class="small-cart-count" aria-live="polite">0</span> <i class="fa fa-shopping-cart"></i> </a> </div> </div> <nav id="small-header-nav"> <div id="small-menu"> <ul> <li class="account-info"> <a href="/users/sign_in">Sign In</a> | <a href="https://accounts.adafruit.com/">Create Account</a> </li> <li><a href="https://adafruit-playground.com">Playground</a></li> <li><a href="/guides/latest">New Guides</a></li> <li><a href="/groups">Series</a></li> <li><a href="https://www.adafruit.com/wishlists">Wishlists</a></li> <li> <a class="random-guide-link" aria-label="View a Random Guide" href="https://learn.adafruit.com/guides/random"> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <g> <g> <path fill="currentColor" d="M478.578,244.475H278.047c-3.81,0-7.42,0.78-10.829,1.961l56.305-56.305c6.306-6.306,9.759-14.706,9.759-23.64 c0-8.935-3.454-17.335-9.759-23.64L190.282,9.609c-12.589-12.611-34.692-12.611-47.281,0L9.759,142.85 C3.454,149.156,0,157.556,0,166.491s3.454,17.335,9.759,23.64l133.242,133.242c6.306,6.306,14.683,9.759,23.64,9.759 c8.957,0,17.335-3.454,23.64-9.759l56.305-56.305c-1.181,3.409-1.961,7.019-1.961,10.829v200.531 c0,18.427,14.995,33.422,33.422,33.422h200.531c18.427,0,33.422-14.995,33.422-33.422V277.897 C512,259.47,497.005,244.475,478.578,244.475z M182.394,271.368c-4.345,4.345-10.049,6.506-15.753,6.506 s-11.408-2.161-15.753-6.506c-8.712-8.69-8.712-22.816,0-31.506c8.69-8.712,22.816-8.712,31.506,0 C191.106,248.552,191.106,262.679,182.394,271.368z M182.394,182.244c-4.345,4.345-10.049,6.506-15.753,6.506 c-5.704,0-11.408-2.161-15.753-6.506c-8.712-8.69-8.712-22.816,0-31.506c8.69-8.712,22.816-8.712,31.506,0 C191.106,159.428,191.106,173.554,182.394,182.244z M182.394,93.119c-4.345,4.345-10.049,6.506-15.753,6.506 c-5.704,0-11.408-2.161-15.753-6.506c-8.712-8.69-8.712-22.816,0-31.506c8.69-8.712,22.816-8.712,31.506,0 C191.106,70.303,191.106,84.429,182.394,93.119z M311.469,467.287c-12.277,0-22.281-9.982-22.281-22.281 c0-12.299,10.004-22.281,22.281-22.281c12.277,0,22.281,9.982,22.281,22.281C333.75,457.305,323.746,467.287,311.469,467.287z M311.469,333.6c-12.277,0-22.281-9.982-22.281-22.281c0-12.299,10.004-22.281,22.281-22.281c12.277,0,22.281,9.982,22.281,22.281 C333.75,323.618,323.746,333.6,311.469,333.6z M378.313,400.444c-12.277,0-22.281-9.982-22.281-22.281 c0-12.299,10.004-22.281,22.281-22.281s22.281,9.982,22.281,22.281C400.594,390.462,390.59,400.444,378.313,400.444z M445.156,467.287c-12.277,0-22.281-9.982-22.281-22.281c0-12.299,10.004-22.281,22.281-22.281s22.281,9.982,22.281,22.281 C467.438,457.305,457.433,467.287,445.156,467.287z M445.156,333.6c-12.277,0-22.281-9.982-22.281-22.281 c0-12.299,10.004-22.281,22.281-22.281s22.281,9.982,22.281,22.281C467.438,323.618,457.433,333.6,445.156,333.6z"/> </g> </g> </svg> </a> </li> </ul> </div> <div id="mobile-search-results"></div> </nav> </div> <div id="large-header"> <nav class="first-row" aria-label="Adafruit main site"> <div class="row-content"> <nav aria-label="Adafruit applications menu"> <ul class="application-links"> <li><a aria-label="Adafruit Shop" href="https://www.adafruit.com">Shop</a></li> <li class="selected"><a aria-label="Adafruit Learning System" href="https://learn.adafruit.com">Learn</a></li> <li><a aria-label="Adafruit Blog" href="https://blog.adafruit.com">Blog</a></li> <li><a aria-label="Adafruit Forums and Support" href="https://forums.adafruit.com">Forums</a></li> <li><a aria-label="Adafruit IO, the internet of things" href="https://io.adafruit.com">IO</a></li> <li><a aria-label="Adafruit Youtube Videos" href="https://www.youtube.com/adafruit/live">LIVE!</a></li> <li><a aria-label="Adafruit product box subscription" href="https://www.adabox.com">AdaBox</a></li> </ul> </nav> <div id="account"> <span class="sign-out"><a href="/users/sign_in">Sign In</a></span> <div class="cart"> <a aria-label="Shopping Cart, 0 items" aria-live="polite" href="https://www.adafruit.com/shopping_cart"> <i class="fa fa-shopping-cart"></i> 0 </a> </div> </div> </div> </nav> <nav class="second-row" aria-label="Adafruit Learn application"> <div class="row-content"> <div class="left-content"> <div id="logo"> <a title="Adafruit Learning System" href="https://learn.adafruit.com"> <img alt="Adafruit Logo" src="/logos/logo_2x.png?1745037072367417153" /> </a> </div> <ul class="main-nav-links"> <li class="dropdown with-overlay nav-link"> <button class="dropdown-label" aria-haspopup="true">Explore & Learn</button> <div class="dropdown-container"> <div class="dropdown-content" tabindex="-1"> <div class="flyout"> <div class="three-panels"> <div class="first-column"> <div class="content-header"> <span class="title">Learn Categories</span> </div> <div class="categories"> <ul> <li><a href="https://learn.adafruit.com/category/3d-printing">3D Printing</a></li> <li><a href="https://learn.adafruit.com/category/adabox">AdaBox</a></li> <li><a href="https://learn.adafruit.com/category/adafruit-products">Adafruit Products</a></li> <li><a href="https://learn.adafruit.com/category/arduino">Arduino Compatibles</a></li> <li><a href="https://learn.adafruit.com/category/breakout-boards">Breakout Boards</a></li> <li><a href="https://learn.adafruit.com/category/circuit-playground">Circuit Playground</a></li> <li><a href="https://learn.adafruit.com/category/circuitpython">CircuitPython</a></li> <li><a href="https://learn.adafruit.com/category/clue">CLUE</a></li> <li><a href="https://learn.adafruit.com/category/community-support">Community Support</a></li> <li><a href="https://learn.adafruit.com/category/components">Components</a></li> <li><a href="https://learn.adafruit.com/category/crickit">Crickit</a></li> <li><a href="https://learn.adafruit.com/category/customer-projects">Customer & Partner Projects</a></li> <li><a href="https://learn.adafruit.com/category/development-boards">Development Boards</a></li> <li><a href="https://learn.adafruit.com/category/educators">Educators</a></li> <li><a href="https://learn.adafruit.com/category/el">EL Wire/Tape/Panel</a></li> <li><a href="https://learn.adafruit.com/category/feather">Feather</a></li> <li><a href="https://learn.adafruit.com/category/gaming-1">Gaming</a></li> </ul> <ul> <li><a href="https://learn.adafruit.com/category/hacks">Hacks</a></li> <li><a href="https://learn.adafruit.com/category/internet-of-things-iot">Internet of Things - IOT</a></li> <li><a href="https://learn.adafruit.com/category/lcds-and-displays">LCDs & Displays</a></li> <li><a href="https://learn.adafruit.com/category/leds">LEDs</a></li> <li><a href="https://learn.adafruit.com/category/machine-learning">Machine Learning</a></li> <li><a href="https://learn.adafruit.com/category/makecode">MakeCode</a></li> <li><a href="https://learn.adafruit.com/category/maker-business">Maker Business</a></li> <li><a href="https://learn.adafruit.com/category/micro-bit">micro:bit</a></li> <li><a href="https://learn.adafruit.com/category/microcontrollers">Microcontrollers</a></li> <li><a href="https://learn.adafruit.com/category/programming">Programming</a></li> <li><a href="https://learn.adafruit.com/category/raspberry-pi">Raspberry Pi</a></li> <li><a href="https://learn.adafruit.com/category/robotics">Robotics & CNC</a></li> <li><a href="https://learn.adafruit.com/category/sensors">Sensors</a></li> <li><a href="https://learn.adafruit.com/category/stemma">STEMMA</a></li> <li><a href="https://learn.adafruit.com/category/tools">Tools</a></li> <li><a href="https://learn.adafruit.com/category/trellis">Trellis</a></li> <li><a href="https://learn.adafruit.com/category/wearables">Wearables</a></li> </ul> </div> </div> <div class="middle-column"> </div> <div class="last-column hide-md"> <section class="image-content-card"> <img data-src="https://learn.adafruit.com/assets/headlines/stemma-690676c3.jpg" class="lazy" aria-hidden="true" alt="Explore, Groups to get your gears turning" src="data:," /> <div class="text"> <div class="main"> <span>Explore</span> </div> <div class="tagline"> <span>Groups to get your gears turning</span> </div> </div> <div class="button"> <a title="Groups to get your gears turning, Explore" href="https://learn.adafruit.com/explore">Explore Groups</a> </div> </section> </div> </div> </div> </div> </div> </li> <li class="nav-link"> <a class="new-guides-link" href="https://learn.adafruit.com/guides/latest">New Guides</a> </li> <li class="nav-link"> <a href="https://adafruit-playground.com">Playground</a> </li> <li class="nav-link"> <a class="random-guide-link" aria-label="View a Random Guide" href="https://learn.adafruit.com/guides/random"> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <g> <g> <path fill="currentColor" d="M478.578,244.475H278.047c-3.81,0-7.42,0.78-10.829,1.961l56.305-56.305c6.306-6.306,9.759-14.706,9.759-23.64 c0-8.935-3.454-17.335-9.759-23.64L190.282,9.609c-12.589-12.611-34.692-12.611-47.281,0L9.759,142.85 C3.454,149.156,0,157.556,0,166.491s3.454,17.335,9.759,23.64l133.242,133.242c6.306,6.306,14.683,9.759,23.64,9.759 c8.957,0,17.335-3.454,23.64-9.759l56.305-56.305c-1.181,3.409-1.961,7.019-1.961,10.829v200.531 c0,18.427,14.995,33.422,33.422,33.422h200.531c18.427,0,33.422-14.995,33.422-33.422V277.897 C512,259.47,497.005,244.475,478.578,244.475z M182.394,271.368c-4.345,4.345-10.049,6.506-15.753,6.506 s-11.408-2.161-15.753-6.506c-8.712-8.69-8.712-22.816,0-31.506c8.69-8.712,22.816-8.712,31.506,0 C191.106,248.552,191.106,262.679,182.394,271.368z M182.394,182.244c-4.345,4.345-10.049,6.506-15.753,6.506 c-5.704,0-11.408-2.161-15.753-6.506c-8.712-8.69-8.712-22.816,0-31.506c8.69-8.712,22.816-8.712,31.506,0 C191.106,159.428,191.106,173.554,182.394,182.244z M182.394,93.119c-4.345,4.345-10.049,6.506-15.753,6.506 c-5.704,0-11.408-2.161-15.753-6.506c-8.712-8.69-8.712-22.816,0-31.506c8.69-8.712,22.816-8.712,31.506,0 C191.106,70.303,191.106,84.429,182.394,93.119z M311.469,467.287c-12.277,0-22.281-9.982-22.281-22.281 c0-12.299,10.004-22.281,22.281-22.281c12.277,0,22.281,9.982,22.281,22.281C333.75,457.305,323.746,467.287,311.469,467.287z M311.469,333.6c-12.277,0-22.281-9.982-22.281-22.281c0-12.299,10.004-22.281,22.281-22.281c12.277,0,22.281,9.982,22.281,22.281 C333.75,323.618,323.746,333.6,311.469,333.6z M378.313,400.444c-12.277,0-22.281-9.982-22.281-22.281 c0-12.299,10.004-22.281,22.281-22.281s22.281,9.982,22.281,22.281C400.594,390.462,390.59,400.444,378.313,400.444z M445.156,467.287c-12.277,0-22.281-9.982-22.281-22.281c0-12.299,10.004-22.281,22.281-22.281s22.281,9.982,22.281,22.281 C467.438,457.305,457.433,467.287,445.156,467.287z M445.156,333.6c-12.277,0-22.281-9.982-22.281-22.281 c0-12.299,10.004-22.281,22.281-22.281s22.281,9.982,22.281,22.281C467.438,323.618,457.433,333.6,445.156,333.6z"/> </g> </g> </svg> </a> </li> </ul> </div> <div class="right-content"> <div class="search-wrapper"> <div id="search-info" data-page="" data-app-id="W9DMM4OTH0" data-app-key="28a76a2b87be38db12283ebda329425a" data-app-index="learn_guides_production" data-app-uri="https://learn.adafruit.com"></div> <div id="search"></div> <i class="fa fa-search"></i> </div> </div> </div> </nav> </div> </header> <turbo-frame id="flash"></turbo-frame> <main id="main-content"> <div id="main-content-container" tabindex="-1"> <div class="toolbar-primary "> <div class="content"> <div class="left-content"> <div class="breadcrumbs" aria-label="Breadcrumbs"> <a href="https://learn.adafruit.com/"><i class='fa fa-home' role='img' title="Learn home"></i></a> <i class="fa fa-chevron-right separator"></i> <a href="/u/caternuson">caternuson</a> </div> </div> <div class="right-content"> </div> </div> </div> <article class="right-sidebar-layout"> <header class="sidebar"> <div class="title-bar"> <div style="background-color: #0062c7" class="user-image adabot-avatar"></div> <span> <h1>caternuson</h1> <div><a href="/u/caternuson">u/caternuson</a></div> </span> </div> </header> <section class="main"> <div class="guides"> <div class="guide-detailed-preview"> <div class="image-container"> <a href="/python-virtual-environment-usage-on-raspberry-pi"> <img data-src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/894/medium640/banner.png?1698160860" aria-hidden="true" alt="a graphic showing the Python and Pi logos and text 'venv'" class="image-preview lazy" src="data:," /> </a> </div> <div class="details"> <a class="title" href="/python-virtual-environment-usage-on-raspberry-pi"> Python Virtual Environment Usage on Raspberry Pi </a> <div class="author"> By <a aria-label="Guide author" data-turbo="false" href="/u/caternuson"> <span class="name">Carter Nelson</span> </a> </div> <div class="description"> How set up Python Virtual Environments as required by Raspberry Pi OS </div> </div> </div> <div class="guide-detailed-preview"> <div class="image-container"> <a href="/pipypirate-radio"> <video class="video-preview lazy" preload="auto" muted="muted" loop="loop" playsinline poster="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/810/medium640thumb/out.gif?1684341349" data-error="/assets/missing%2Fmissing.png" 'aria-hidden'=true> <data-src src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/810/medium640mp4/out.mp4?1684341349"></data-src> <data-src src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/810/medium640webm/out.webm?1684341349" type="video/webm; codecs=vp8,vorbis"></data-src> Your browser does not support the video tag. This links to the guide PiPyPirate Radio. </video> <img data-src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/810/medium640thumb/out.gif?1684341349" aria-hidden="true" alt="A TFT display with a radio station graphic and 108.0 FM, on a raspberry pi" class="image-preview lazy" src="data:," /> </a> </div> <div class="details"> <a class="title" href="/pipypirate-radio"> PiPyPirate Radio </a> <div class="author"> By <a aria-label="Guide author" data-turbo="false" href="/u/caternuson"> <span class="name">Carter Nelson</span> </a> </div> <div class="description"> Make a low-power FM transmission radio station with a Raspberry Pi or other single-board-linux computer </div> </div> </div> <div class="guide-detailed-preview"> <div class="image-container"> <a href="/dude-where-s-my-com-port"> <img data-src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/745/medium640/thumb.jpg?1675786550" aria-hidden="true" alt="A photoshopped image from the movie Dude Where's My Car" class="image-preview lazy" src="data:," /> </a> </div> <div class="details"> <a class="title" href="/dude-where-s-my-com-port"> Dude, Where's My COM Port? </a> <div class="author"> By <a aria-label="Guide author" data-turbo="false" href="/u/caternuson"> <span class="name">Carter Nelson</span> </a> </div> <div class="description"> Dealing with lost COM ports on native USB dev boards. </div> </div> </div> <div class="guide-detailed-preview"> <div class="image-container"> <a href="/raspberry-pi-i2c-clock-stretching-fixes"> <img data-src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/687/medium640/bitmap.png?1666726117" aria-hidden="true" alt="A Raspberry Pi with a sad face emoji and an I2C waveform superimposed" class="image-preview lazy" src="data:," /> </a> </div> <div class="details"> <a class="title" href="/raspberry-pi-i2c-clock-stretching-fixes"> Raspberry Pi I2C Clock Stretching Fixes </a> <div class="author"> By <a aria-label="Guide author" data-turbo="false" href="/u/caternuson"> <span class="name">Carter Nelson</span> </a> </div> <div class="description"> Various approaches for dealing with I2C clock stretching on a Raspberry Pi. </div> </div> </div> <div class="guide-detailed-preview"> <div class="image-container"> <a href="/circuitpython-with-esp32-quick-start"> <img data-src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/646/medium640/Screenshot_from_2022-08-17_10-54-08.png?1660758938" aria-hidden="true" alt="A screenshot of the circuitpython web workflow editor" class="image-preview lazy" src="data:," /> </a> </div> <div class="details"> <a class="title" href="/circuitpython-with-esp32-quick-start"> CircuitPython on ESP32 Quick Start </a> <div class="author"> By <a aria-label="Guide author" data-turbo="false" href="/u/caternuson"> <span class="name">Carter Nelson</span> </a> </div> <div class="description"> Install and Code CircuitPython on ESP32 boards, then connect to CircuitPython from a web browser to use the REPL and file system. </div> </div> </div> <div class="guide-detailed-preview"> <div class="image-container"> <a href="/super-simple-sunrise-lamp"> <video class="video-preview lazy" preload="auto" muted="muted" loop="loop" playsinline poster="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/626/medium640thumb/out.gif?1657559164" data-error="/assets/missing%2Fmissing.png" 'aria-hidden'=true> <data-src src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/626/medium640mp4/out.mp4?1657559164"></data-src> <data-src src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/626/medium640webm/out.webm?1657559164" type="video/webm; codecs=vp8,vorbis"></data-src> Your browser does not support the video tag. This links to the guide Super Simple Sunrise Lamp. </video> <img data-src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/626/medium640thumb/out.gif?1657559164" aria-hidden="true" alt="A flat table lamp that is slowly turning on" class="image-preview lazy" src="data:," /> </a> </div> <div class="details"> <a class="title" href="/super-simple-sunrise-lamp"> Super Simple Sunrise Lamp </a> <div class="author"> By <a aria-label="Guide author" data-turbo="false" href="/u/caternuson"> <span class="name">Carter Nelson</span> </a> </div> <div class="description"> Know when wake up time is by sunrise lamp color. </div> </div> </div> <div class="guide-detailed-preview"> <div class="image-container"> <a href="/working-with-multiple-i2c-devices"> <img data-src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/581/medium640/thumb.jpg?1651595954" aria-hidden="true" alt="A breadboard microcontroller board wired up to an I2C expander that connects four identical environmental sensors" class="image-preview lazy" src="data:," /> </a> </div> <div class="details"> <a class="title" href="/working-with-multiple-i2c-devices"> Working with Multiple Same Address I2C Devices </a> <div class="author"> By <a aria-label="Guide author" data-turbo="false" href="/u/caternuson"> <span class="name">Carter Nelson</span> </a> </div> <div class="description"> A more indepth look at dealing with I2C address conflicts. </div> </div> </div> <div class="guide-detailed-preview"> <div class="image-container"> <a href="/working-with-i2c-devices"> <img data-src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/529/medium640/thumb3.png?1646688852" aria-hidden="true" alt="Working with I2C Devices" class="image-preview lazy" src="data:," /> </a> </div> <div class="details"> <a class="title" href="/working-with-i2c-devices"> Working with I2C Devices </a> <div class="author"> By <a aria-label="Guide author" data-turbo="false" href="/u/caternuson"> <span class="name">Carter Nelson</span> </a> </div> <div class="description"> A cornucopia of I2C related information. </div> </div> </div> <div class="guide-detailed-preview"> <div class="image-container"> <a href="/sketch-drawing-toy"> <video class="video-preview lazy" preload="auto" muted="muted" loop="loop" playsinline poster="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/537/medium640thumb/guide-loop.gif?1646158838" data-error="/assets/missing%2Fmissing.png" 'aria-hidden'=true> <data-src src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/537/medium640mp4/guide-loop.mp4?1646158838"></data-src> <data-src src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/537/medium640webm/guide-loop.webm?1646158838" type="video/webm; codecs=vp8,vorbis"></data-src> Your browser does not support the video tag. This links to the guide Sketch Drawing Toy with CircuitPython. </video> <img data-src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/537/medium640thumb/guide-loop.gif?1646158838" aria-hidden="true" alt="Sketch Drawing Toy with CircuitPython" class="image-preview lazy" src="data:," /> </a> </div> <div class="details"> <a class="title" href="/sketch-drawing-toy"> Sketch Drawing Toy with CircuitPython </a> <div class="author"> By <a aria-label="Guide author" data-turbo="false" href="/u/pixil3d"> <span class="name">Ruiz Brothers</span> </a> </div> <div class="description"> Build your own sketch drawing toy with DIY electronics and 3D printed parts! </div> </div> </div> <div class="guide-detailed-preview"> <div class="image-container"> <a href="/neo-trinkey-auto-screen-locker"> <video class="video-preview lazy" preload="auto" muted="muted" loop="loop" playsinline poster="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/508/medium640thumb/thumb.gif?1642447734" data-error="/assets/missing%2Fmissing.png" 'aria-hidden'=true> <data-src src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/508/medium640mp4/thumb.mp4?1642447734"></data-src> <data-src src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/508/medium640webm/thumb.webm?1642447734" type="video/webm; codecs=vp8,vorbis"></data-src> Your browser does not support the video tag. This links to the guide Neo Trinkey Auto Screen Locker. </video> <img data-src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/508/medium640thumb/thumb.gif?1642447734" aria-hidden="true" alt="Neo Trinkey Auto Screen Locker" class="image-preview lazy" src="data:," /> </a> </div> <div class="details"> <a class="title" href="/neo-trinkey-auto-screen-locker"> Neo Trinkey Auto Screen Locker </a> <div class="author"> By <a aria-label="Guide author" data-turbo="false" href="/u/caternuson"> <span class="name">Carter Nelson</span> </a> </div> <div class="description"> Auto lock your screen if your lappy gets snagged. </div> </div> </div> <div class="guide-detailed-preview"> <div class="image-container"> <a href="/diy-trinkey-no-solder-air-quality-monitor"> <img data-src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/493/medium640/thumb.jpg?1640116912" aria-hidden="true" alt="DIY Trinkey No-Soldering USB Air Quality Monitor" class="image-preview lazy" src="data:," /> </a> </div> <div class="details"> <a class="title" href="/diy-trinkey-no-solder-air-quality-monitor"> DIY Trinkey No-Soldering USB Air Quality Monitor </a> <div class="author"> By <a aria-label="Guide author" data-turbo="false" href="/u/caternuson"> <span class="name">Carter Nelson</span> </a> </div> <div class="description"> Want to measure various air quality parameters, like humidity, temperature, CO2, etc.? Want to measure these directly into your computer? Want to do all this without soldering? No problem. In this guide we'll show how this can done using the Adafruit Trinkey QT2040. </div> </div> </div> <div class="guide-detailed-preview"> <div class="image-container"> <a href="/ble-sniffer-with-nrf52840"> <img data-src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/492/medium640/sniffer-nrf52840.png?1639629114" aria-hidden="true" alt="BLE Sniffer with nRF52840" class="image-preview lazy" src="data:," /> </a> </div> <div class="details"> <a class="title" href="/ble-sniffer-with-nrf52840"> BLE Sniffer with nRF52840 </a> <div class="author"> By <a aria-label="Guide author" data-turbo="false" href="/u/hathach"> <span class="name">Thach Ha</span> </a> </div> <div class="description"> The Bluefruit LE Sniffer allows you to capture traffic between two Bluetooth Low Energy devices in a passive manner (meaning it isn't involved directly in the connection itself). This mini guide will show you how to do that with an Adafruit nRF52840 board. </div> </div> </div> <div class="guide-detailed-preview"> <div class="image-container"> <a href="/trinkey-qt2040-true-random-number-generator"> <img data-src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/486/medium640/thumb.jpg?1638917225" aria-hidden="true" alt="Trinkey True Random Number Generator" class="image-preview lazy" src="data:," /> </a> </div> <div class="details"> <a class="title" href="/trinkey-qt2040-true-random-number-generator"> Trinkey True Random Number Generator </a> <div class="author"> By <a aria-label="Guide author" data-turbo="false" href="/u/caternuson"> <span class="name">Carter Nelson</span> </a> </div> <div class="description"> Random numbers have a lot of uses in computer programming. These can be for fun things like picking a random song, drawing to a random location, etc. On the more serious side, they are useful in the realm of cryptography. </div> </div> </div> <div class="guide-detailed-preview"> <div class="image-container"> <a href="/accessing-and-using-adafruit-pcb-design-files"> <img data-src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/424/medium640/thumb.jpg?1632150692" aria-hidden="true" alt="Accessing and Using Adafruit PCB Design Files" class="image-preview lazy" src="data:," /> </a> </div> <div class="details"> <a class="title" href="/accessing-and-using-adafruit-pcb-design-files"> Accessing and Using Adafruit PCB Design Files </a> <div class="author"> By <a aria-label="Guide author" data-turbo="false" href="/u/caternuson"> <span class="name">Carter Nelson</span> </a> </div> <div class="description"> Learn how to download and use Adafruit PCB design files with Eagle CAD. </div> </div> </div> <div class="guide-detailed-preview"> <div class="image-container"> <a href="/scanning-i2c-addresses"> <img data-src="https://cdn-learn.adafruit.com/guides/cropped_images/000/003/422/medium640/Screenshot_from_2021-09-16_11-42-36.png?1631817799" aria-hidden="true" alt="How to Scan and Detect I2C Addresses" class="image-preview lazy" src="data:," /> </a> </div> <div class="details"> <a class="title" href="/scanning-i2c-addresses"> How to Scan and Detect I2C Addresses </a> <div class="author"> By <a aria-label="Guide author" data-turbo="false" href="/u/caternuson"> <span class="name">Carter Nelson</span> </a> </div> <div class="description"> I2C is a common circuit interconnection format. This guide assists in helping a microcontroller/Raspberry Pi to find a connected I2C device. </div> </div> </div> </div> <div class="pagination"> <ul> <li class="active numbered-page"> <a href="#">1</a> </li> <li class=" numbered-page"> <a rel="next" href="/u/caternuson?guides=2">2</a> </li> <li class=" numbered-page"> <a href="/u/caternuson?guides=3">3</a> </li> <li class=" numbered-page"> <a href="/u/caternuson?guides=4">4</a> </li> <li class=" numbered-page"> <a href="/u/caternuson?guides=5">5</a> </li> <li> <a rel="next" href="/u/caternuson?guides=2">Next</a> </li> <li class="last-page"> <a href="/u/caternuson?guides=5">Last</a> </li> </ul> </div> </section> </article> </div> <div id="search-container"> <div class="toolbar-primary"> <div class="content"> <div class="left-content"> <div class="breadcrumbs"> <a href="https://learn.adafruit.com" aria-label="Home page"><i class='fa fa-home'></i></a> <i class="fa fa-chevron-right separator"></i> Search <i class="fa fa-chevron-right separator"></i> </div> </div> </div> </div> <div class="sub-header"> <div class="header-intro"> <h1 class="title">Search</h1> </div> <div class="header-main-content-wrapper"> <div class="header-main-content"> <div id="search-refinements" class="breakdown"> </div> </div> </div> </div> <div class="search-content left-sidebar-layout"> <div> <div class="facets-wrapper"> <h5 class="search-refinement-header">Categories</h5> <div id="search-categories"></div> </div> </div> <div> <div id="search-results" class="search-content-card-group"></div> <div id="search-pagination" class="pagination"></div> </div> </div> </div> <div id="remote-modal-wrapper"></div> <div id='main-content-overlay'></div> </main> <footer id="adafruit-footer"> <div class="footer-container"> <div class="application-support-link"> <div> <ul> <li> <a href="https://www.adafruit.com/contact_us">Contact Us</a> </li> <li> <a href="https://forums.adafruit.com/">Tech Support Forums</a> </li> <li> <a href="https://www.adafruit.com/faq">FAQs</a> </li> <li> <a href="https://www.adafruit.com/shippinginfo">Shipping & Returns</a> </li> <li> <a href="https://www.adafruit.com/free">Freebies</a> </li> <li> <a href="https://www.adafruit.com/terms_of_service">Terms of Service</a> </li> <li> <a href="https://www.adafruit.com/privacy">Privacy & Legal</a> </li> <li> <a href="https://www.adafruit.com/accessibility">Website Accessibility</a> </li> </ul> </div> <div> <ul> <li> <a href="https://www.adafruit.com/about">About Us</a> </li> <li> <a href="https://www.adafruit.com/press">Press</a> </li> <li> <a href="https://www.adafruit.com/educators">Educators</a> </li> <li> <a href="https://www.adafruit.com/distributors">Distributors</a> </li> <li> <a href="https://jobs.adafruit.com">Jobs</a> </li> <li> <a href="https://www.adafruit.com/category/14">Gift Cards</a> </li> </ul> </div> </div> <aside> <div class="quote">"People who are really serious about software should make their own hardware"</div> <div class="quote-attribution"><a href="http://en.wikiquote.org/wiki/Alan_Kay">Alan Kay</a></div> </aside> </div> <div class="footer-container bottom"> <a title="About Adafruit" id="footer-logo" href="https://learn.adafruit.com"> <img alt="Adafruit Logo" src="/logos/adafruit_logo_small.png?1745037072367417153" /> </a> <div class="social-links"> <a href="https://www.instagram.com/adafruit/" target="_blank" rel="noopener noreferrer" aria-label="Adafruit on Instagram"><i class="fa fa-instagram" aria-hidden="true"></i></a> <a href="https://twitter.com/adafruit/" target="_blank" rel="noopener noreferrer" aria-label="Adafruit on Twitter"><i class="fa fa-twitter" aria-hidden="true"></i></a> <a class="mastodon-logo" href="https://mastodon.cloud/@adafruit" target="_blank" rel="noopener noreferrer" aria-label="Adafruit on Mastodon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 216.4144 232.00976"><path class="logo" d="M211.80734 139.0875c-3.18125 16.36625-28.4925 34.2775-57.5625 37.74875-15.15875 1.80875-30.08375 3.47125-45.99875 2.74125-26.0275-1.1925-46.565-6.2125-46.565-6.2125 0 2.53375.15625 4.94625.46875 7.2025 3.38375 25.68625 25.47 27.225 46.39125 27.9425 21.11625.7225 39.91875-5.20625 39.91875-5.20625l.8675 19.09s-14.77 7.93125-41.08125 9.39c-14.50875.7975-32.52375-.365-53.50625-5.91875C9.23234 213.82 1.40609 165.31125.20859 116.09125c-.365-14.61375-.14-28.39375-.14-39.91875 0-50.33 32.97625-65.0825 32.97625-65.0825C49.67234 3.45375 78.20359.2425 107.86484 0h.72875c29.66125.2425 58.21125 3.45375 74.8375 11.09 0 0 32.975 14.7525 32.975 65.0825 0 0 .41375 37.13375-4.59875 62.915" fill="currentColor"/><path d="M177.50984 80.077v60.94125h-24.14375v-59.15c0-12.46875-5.24625-18.7975-15.74-18.7975-11.6025 0-17.4175 7.5075-17.4175 22.3525v32.37625H96.20734V85.42325c0-14.845-5.81625-22.3525-17.41875-22.3525-10.49375 0-15.74 6.32875-15.74 18.7975v59.15H38.90484V80.077c0-12.455 3.17125-22.3525 9.54125-29.675 6.56875-7.3225 15.17125-11.07625 25.85-11.07625 12.355 0 21.71125 4.74875 27.8975 14.2475l6.01375 10.08125 6.015-10.08125c6.185-9.49875 15.54125-14.2475 27.8975-14.2475 10.6775 0 19.28 3.75375 25.85 11.07625 6.36875 7.3225 9.54 17.22 9.54 29.675" fill="#000"/></svg></a> <a href="https://www.facebook.com/adafruitindustries" target="_blank" rel="noopener noreferrer" aria-label="Adafruit on Facebook"><i class="fa fa-facebook" aria-hidden="true"></i></a> <a href="https://www.youtube.com/adafruit" target="_blank" rel="noopener noreferrer" aria-label="Adafruit on YouTube"><i class="fa fa-youtube" aria-hidden="true"></i></a> <a href="https://github.com/adafruit" target="_blank" rel="noopener noreferrer" aria-label="Adafruit on Github"><i class="fa fa-github" aria-hidden="true"></i></a> <a class="tiktok-logo" aria-label="Adafruit on TikTok" href="https://www.tiktok.com/@adafruit" target="_blank" rel="noopener noreferrer"><svg viewBox="3 2 20 22" xmlns="http://www.w3.org/2000/svg"><path class="logo" d="M19.8059 7.50695C18.7771 7.50695 17.8278 7.16612 17.0655 6.59113C16.1912 5.93198 15.5631 4.9651 15.3412 3.85069C15.2863 3.57534 15.2567 3.29119 15.2539 3H12.3149V11.0308L12.3114 15.4297C12.3114 16.6057 11.5455 17.6029 10.4839 17.9536C10.1758 18.0553 9.8431 18.1036 9.49663 18.0846C9.05438 18.0603 8.63995 17.9268 8.27975 17.7113C7.51322 17.2529 6.99351 16.4212 6.97942 15.4698C6.95724 13.9829 8.15933 12.7706 9.64522 12.7706C9.93852 12.7706 10.2202 12.8185 10.4839 12.9054V10.7104V9.92134C10.2058 9.88015 9.92268 9.85867 9.63641 9.85867C8.01004 9.85867 6.48894 10.5347 5.40164 11.7526C4.57982 12.6731 4.08687 13.8473 4.01082 15.0786C3.91117 16.6962 4.50306 18.2339 5.65093 19.3683C5.81959 19.5349 5.9967 19.6895 6.1819 19.8321C7.16604 20.5894 8.36919 21 9.63641 21C9.92268 21 10.2058 20.9789 10.4839 20.9377C11.6677 20.7623 12.7599 20.2204 13.6219 19.3683C14.681 18.3215 15.2662 16.9318 15.2726 15.4526L15.2574 8.88369C15.7627 9.27347 16.3152 9.596 16.9081 9.84635C17.8303 10.2354 18.8081 10.4326 19.8144 10.4322V8.29814V7.50625C19.8151 7.50695 19.8066 7.50695 19.8059 7.50695Z" fill="currentColor"/></svg></a> <a class="tumblr-logo" aria-label="Adafruit on Tumblr" href="https://adafruit.tumblr.com/" target="_blank" rel="noopener noreferrer"><i class="fa fa-tumblr" aria-hidden="true"></i></a> <a class="threads-logo" href="https://www.threads.net/@adafruit" target="_blank" rel="noopener noreferrer" aria-label="Adafruit on Threads"><span aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M331.5 235.7c2.2 .9 4.2 1.9 6.3 2.8c29.2 14.1 50.6 35.2 61.8 61.4c15.7 36.5 17.2 95.8-30.3 143.2c-36.2 36.2-80.3 52.5-142.6 53h-.3c-70.2-.5-124.1-24.1-160.4-70.2c-32.3-41-48.9-98.1-49.5-169.6V256v-.2C17 184.3 33.6 127.2 65.9 86.2C102.2 40.1 156.2 16.5 226.4 16h.3c70.3 .5 124.9 24 162.3 69.9c18.4 22.7 32 50 40.6 81.7l-40.4 10.8c-7.1-25.8-17.8-47.8-32.2-65.4c-29.2-35.8-73-54.2-130.5-54.6c-57 .5-100.1 18.8-128.2 54.4C72.1 146.1 58.5 194.3 58 256c.5 61.7 14.1 109.9 40.3 143.3c28 35.6 71.2 53.9 128.2 54.4c51.4-.4 85.4-12.6 113.7-40.9c32.3-32.2 31.7-71.8 21.4-95.9c-6.1-14.2-17.1-26-31.9-34.9c-3.7 26.9-11.8 48.3-24.7 64.8c-17.1 21.8-41.4 33.6-72.7 35.3c-23.6 1.3-46.3-4.4-63.9-16c-20.8-13.8-33-34.8-34.3-59.3c-2.5-48.3 35.7-83 95.2-86.4c21.1-1.2 40.9-.3 59.2 2.8c-2.4-14.8-7.3-26.6-14.6-35.2c-10-11.7-25.6-17.7-46.2-17.8H227c-16.6 0-39 4.6-53.3 26.3l-34.4-23.6c19.2-29.1 50.3-45.1 87.8-45.1h.8c62.6 .4 99.9 39.5 103.7 107.7l-.2 .2zm-156 68.8c1.3 25.1 28.4 36.8 54.6 35.3c25.6-1.4 54.6-11.4 59.5-73.2c-13.2-2.9-27.8-4.4-43.4-4.4c-4.8 0-9.6 .1-14.4 .4c-42.9 2.4-57.2 23.2-56.2 41.8l-.1 .1z"/></svg></span></a> <a class="discord-logo" aria-label="Adafruit on Discord" href="https://adafru.it/discord" target="_blank" rel="noopener noreferrer"><svg style="height: 1em; margin-bottom: -0.15em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 127.14 96.36"><path fill="currentColor" d="M107.7,8.07A105.15,105.15,0,0,0,81.47,0a72.06,72.06,0,0,0-3.36,6.83A97.68,97.68,0,0,0,49,6.83,72.37,72.37,0,0,0,45.64,0,105.89,105.89,0,0,0,19.39,8.09C2.79,32.65-1.71,56.6.54,80.21h0A105.73,105.73,0,0,0,32.71,96.36,77.7,77.7,0,0,0,39.6,85.25a68.42,68.42,0,0,1-10.85-5.18c.91-.66,1.8-1.34,2.66-2a75.57,75.57,0,0,0,64.32,0c.87.71,1.76,1.39,2.66,2a68.68,68.68,0,0,1-10.87,5.19,77,77,0,0,0,6.89,11.1A105.25,105.25,0,0,0,126.6,80.22h0C129.24,52.84,122.09,29.11,107.7,8.07ZM42.45,65.69C36.18,65.69,31,60,31,53s5-12.74,11.43-12.74S54,46,53.89,53,48.84,65.69,42.45,65.69Zm42.24,0C78.41,65.69,73.25,60,73.25,53s5-12.74,11.44-12.74S96.23,46,96.12,53,91.08,65.69,84.69,65.69Z"/></svg></a> <a class="bluesky-logo" aria-label="Adafruit on Bluesky" href="https://bsky.app/profile/adafruit.com" target="_blank" rel="noopener noreferrer"><svg style="height: 1em; margin-bottom: -0.15em" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M111.8 62.2C170.2 105.9 233 194.7 256 242.4c23-47.6 85.8-136.4 144.2-180.2c42.1-31.6 110.3-56 110.3 21.8c0 15.5-8.9 130.5-14.1 149.2C478.2 298 412 314.6 353.1 304.5c102.9 17.5 129.1 75.5 72.5 133.5c-107.4 110.2-154.3-27.6-166.3-62.9l0 0c-1.7-4.9-2.6-7.8-3.3-7.8s-1.6 3-3.3 7.8l0 0c-12 35.3-59 173.1-166.3 62.9c-56.5-58-30.4-116 72.5-133.5C100 314.6 33.8 298 15.7 233.1C10.4 214.4 1.5 99.4 1.5 83.9c0-77.8 68.2-53.4 110.3-21.8z"/></svg> </a> </div> <div class="footer-messaging"> <a href="https://www.adafruit.com/about">A Minority and Woman-owned Business Enterprise (M/WBE)</a> </div> </div> </footer> </div> </div> </body> </html>