CircuitPython with Raspberry Pi Pico - Getting Started

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] today in the workshop we're using circuit python with the raspberry pi pico i'll show you how to build a keyboard and mouse emulator and how to work with a micro sd card we'll also create an array of colors with an addressable rgb light strip we're speaking another language today so welcome to the workshop well hello and welcome to the workshop and today we are back working with the raspberry pi pico the brand new microcontroller from the raspberry pi foundation today we're going to be programming the pico using a different programming language last time we used micro python and today we're going to be using circuit python now before i explain the differences between micro python and circuit python i think i should answer the obvious question why why are we using circuit python instead of micropython why are we not using c plus plus which as i mentioned in the last video is another language you can use to program the picot and in order to answer that question i need to put a little bit of context behind this now if you're watching this video when i first put it out i think you obviously know that i filmed this near the end of february 2021 but if you're watching in the future when we have things like flying cars and star trek transporters you probably will wonder why is he using circuit python when we can use c plus plus well the reason is that because the raspberry pi pico is in its infancy right now a lot of these things are still under development but that development is proceeding very quickly and the reason is proceeding so quickly is that raspberry pi is not going to be the only company with an rp 2040 based microcontroller board very soon already pimeroni sparkfun adafruit and arduino have announced that they are going to be creating boards based on this chip and that is going to change the landscape drastically all of these companies produce high quality devices sparkfun and adafruit produce amazing documentation and you know they'll come up with tutorials they'll come up with libraries and they'll really expand what you can do with micro python and the raspberry pi pico but the real development i think is arduino arduino has announced that the arduino nano rp2040 connect board will be available for pre-order very soon and this is a raspberry pi rp 2040 board which also has bluetooth and wi-fi capabilities and the big deal is that arduino is also going to add the rp2040 boards into its family of boards that it supports in the arduino ide meaning all of the code that we use and all the libraries in the arduino ide will soon be available to the pico and other boards based around the rp2040 and so i don't think at this junction in time i'm going to be getting into doing c plus plus programming with it because this is just on the horizon in a couple of months we'll have a lot of other resources and no doubt platform io and other ides will follow and they'll have support for these boards okay so why circuit python and not micropython well again it's because of the newness of everything micropython does indeed work on the rp2040 boards but it is limited there are a lot of functions that aren't available yet they are to be coming soon whereas circuit python has an existing library of all kinds of code almost 300 libraries we can pick on support from adafruit and documentation so it's a very good thing to be using on a microcontroller like the raspberry pi pico so let's go and take a look at circuit python and how it differs from micro python circuit python is a beginner friendly open source version of python this is an offshoot of micropython that was developed by adafruit circuit python was originally for the adafruit sam d21 or m0 boards it now supports over 175 different boards for multiple manufacturers there are over 300 circuit python libraries and drivers available you can also use other python libraries with circuit python by using the adafruit blinkel library circuit python supports native usb on all of the boards that it supports you can perform your editing with any code editor and don't require any special tools floats or decimals are supported on all builds although boards like the raspberry pi pico that use the m0 processor support this in software and not hardware a circuit python board will appear as a disk drive on the connected computer micropython was originally developed by damien george in australia in 2014 circuit python is a fork of micropython and was developed by adafruit in 2017. micro python was originally part of a kickstarter project with a product called the pi board circuit python was originally developed for adafruit boards micropython allows current files to share the same state circuit python is much simpler where files run one at a time one advantage of micropython is that it supports interrupts whereas circuit python does not support interrupts on the raspberry pi pico the build of circuit python is available on a uf2 file to install circuit python you copy the uf2 file into the pico's rpi-rp2 folder this will create a new disk drive named circuit pi inside this drive is a file called code.pi and this is the main file when you make a change to code.pi they will run immediately no uploading is required so now let's install circuit python on our raspberry pi pico now of course the first step in working with circuit python is installing circuit python so you'll need to get a copy of the installation file which you can do from the circuitpython.org webpage in their downloads section you can search for the raspberry pi pico and you will come to this page and you'll also find the link to this page of course in the article that accompanies this video on the dronebot workshop website at the top of the page we have the option to download the latest uf2 file and that's what we're going to need to do and i've actually already done that and so here it is in my download directory the adafruit circuit python raspberry pi pico now i'm going to need to open a drive on the pico and as you recall the way that we do that is that we hold down the boot cell key while we plug the pico into our computer and then we release the boot cell key and the drive appears but there's another way of doing that as well all you need to do is actually place a push button switch between the reset pin which is pin 30 on the picot and one of its grounds and there's a convenient ground here on pin 28 now our friend andreas the fellow with the swiss accent has actually taken this one step further and he's got a great video out where he places a reset switch in between pin 30 and that nearby ground and that's a pretty eloquent way of doing that myself i've just done it with an external push button switch because i'm going to need a couple of push buttons for our experiments today anyway you have to do sort of a little dance over here hold the reset key down hold down boot cell release reset and then release the boot cell key and you'll get this thing here that says a removable drive has been inserted we can open that and this is the rpi-rp2 drive that you were familiar with when we installed micropython well we're going to do the same thing for circuit python so i'm going to drag that into here and let it copy and once it does the drive will close and another one will open and that drive is called circuit pi and that's the drive that we're going to be working in now you'll notice it already comes with a folder called lib which is where we're going to install libraries there's a file called boot underscoreout.txt and one called code.py and code.pi is the file that we are going to be working with when this machine boots now it is going to run code.py in fact anytime we make a change to code.py we'll run so in order to work with this file we're going to need an editor and for that reason we're going to install another editor one called the mu editor now you can use just about any text editor that you prefer to work with circuit python however the mu editor has a lot of advantages especially for beginners so i recommend this when you're just starting now you can install a version for windows or mac os x by downloading the file from their web page you can also install it under linux generally all you'll need to do is use the command line i just did sudo apt-get mu on my ubuntu workstation and installed just fine there's a download here that's labeled for raspbian which is the old name for the raspberry pi operating system but i'm using a raspberry pi and there's another way to install mu so i'm going to close my web browser and go up here to preferences and go to recommended software and here we have a list of recommended programs for the pi i'm going to type in mu in the search box and here it is here's the mu editor a python id for beginners now all you need to do is check this box and hit apply and it will install i've already done that so let's go and open mu which you'll find under the programming group and we've opened up mu and we've got an untitled over here that says write your code now you're going to need to put it into the correct mode since i've done this already it is in the correct mode you can see it says adafruit down the corner but you can always hit the mode button here and choose your mode and i've got adafruit circuit python chosen now if i hit the serial button over here i will open up a window down here and this is where i can enter into the command line if i wish to i'll just hit enter to do that and i'm at the command line for circuit python right now and you can see that over here and so what i'm going to do with my command line is just give it a simple command and i'll hit enter to run that and there it comes back and it prints welcome to the workshop and i can hit ctrl d to get out of there if i wish now i can also install a file and i can use the load button for that and it opens up in my circuit pi directory and you see code.py and as i said earlier this is the file it is going to run when we boot up the raspberry pi pico so any change this file will also run dynamically so here's code.py right now i'm going to make a small change to it hello there world i'm going to save my change and as you can see down in the bottom over here as soon as i saved it it ran so that's a great feature of working with circuit python you don't actually do an upload you just make modifications to code.py now before we get into all of our experiments i want to load one more python script onto our raspberry pi picot just to make certain that everything is working correctly and in my documents folder i've got a number of python scripts they're the ones we're going to be working with today this one pico blink you can probably guess what it does is what we're going to be using and i could have used the load button to open that but another way of doing that is just drag it over to the editor and it opens up its own window and i think that's a pretty nice little feature now this is pico blink it is a python script that essentially does the same thing as the blink sketch does on the arduino and you'll notice we import a number of libraries into it and some of the libraries have different names than the ones that we were used to when we worked with micro python circuit python libraries are just named differently digital i o is the library that works with the i o pins and that's the one that we're going to be using to blink the led on and off and we set the led up over here as a digital in out and then we've set it specifically as an output and that's similar to what we use in micropython and then while true we set the led value to true which puts it on we sleep for half a second set it to false and then sleep for half a second and repeat so there we go the blink sketch now the easiest way that i've found in order to get that in the code pi is simply to copy it so i'm going to do a ctrl a and a ctrl c to copy and then i'm going to go into code.py do control a and a control v and there it is here and i'm going to save that right now and of course as soon as i save it it could start running and if you look at my picot you can see indeed that i am now blinking an led so this is the way that we are going to operate with the mu editor and modify the code.py file in our experiments today now in addition to its use as a microcontroller the raspberry pi pico can also be used as a usb device and in the last video i mentioned that a very good application for this would be to build a keyboard emulator and that's exactly what we are going to build for our first experiment now a keyboard emulator is a custom keyboard with custom keys designed for a specific application and the application i've chose to build an emulator for is audacity the open source audio processing application which is basically a recording studio in a box now for my simple emulator i'm going to only emulate two of the buttons the record button and the stop button but of course i could add extra push buttons and build a full-fledged emulator for audacity and i may just do that one day because i make a lot of use of audacity all the audio in these videos is processed with audacity so let me show you how we can hook a couple of push buttons up to the pico and then i'll show you the code to build your own custom keyboard emulator to construct our keyboard emulator we will of course need a raspberry pi pico and a couple of push buttons i'm showing a red one and a black one but of course you can use any color you like i'll be using the red button as my record button and the black button as my stop button we'll start by wiring one side of the red push button switch to pin 24 of the raspberry pi pico that's gpio pin 18. we'll wire one side of the black push button to pin 25 of the picot which is gpio19 finally we'll wire the 3.3 volt output on pin 36 of the pico to the other side of both push button switches and this completes the wiring of our keyboard emulator now let's take a look at the code we'll use in order to make it work now before we begin we're going to need to add an additional library to our circuit python setup and so what we do is we go to the circuit python library page and we download the latest version of the library bundle and that's this one over here and that will download as a zip file which we will then extract inside that we will see dozens and dozens of libraries but we only really want one and the one we want is the adafruit hid or human interface device library because a keyboard is a human interface device now how we install that is we go into the folder that our circuit python setup has created the drive we've set up and you'll notice there's a lib folder inside here what i want you to do is just take the whole folder of that adafruit hid library and copy it into there and that will be sufficient to install the library once you've done that we can go on with our code and so here's the code that i have for our keyboard emulator now for audacity i'm going to be emulating two keys the record and the stop and the record is the r key on the keyboard and the stop is the space bar but you can use any keys you want you can use as many as you want and you can also use combinations such as shift and control as well now we begin by importing a number of libraries a time library is the one we use for making time delays in the board library for working with our board digital i o is the library that is used for the i o ports and we'll need this for the push button and we're also importing a library called usb hid to let us know that we want to use the usb port as a human interface device then we use the adafruit hid library and we import a number of things we import keyboard because we're building a keyboard we also need to import our keyboard layout and i'm using a us keyboard layout on my computer now if you're using a different one then you will change this for example if you're using a uk layout and the article that accompanies this video has a link to the documentation for this library that will show you the value you can use for any keyboard layout we also import key code because that's what we're going to be creating is key code we create a keyboard object and a keyboard layout object over here and then we set up our two buttons now our record button is a digital io with a digital input on gpio18 we are setting that up as an input as opposed to being an output and we are invoking the internal pull down resistor because remember we wired this so that when we click the button we are pulling it up we are connecting it to 3.3 volts the stop button is wired up in exactly the same way and so the code for it is identical except it goes to gpio9 instead of 18. and then in the true loop all we are doing is we are looking to see if the button has been pressed if the record button has been pressed we do a keyboard press and then we send it out the key code now i'm using the letter r and the key code r will go out now this will actually be a lowercase r despite the fact that it's uppercase over here if i wanted to make an uppercase i could put two things within my bracket i would do a keycode dot shift and then a comma and then keycode.r and that would be a shift r which would be an uppercase r and you can use that technique to use any combination of keys after we've pressed it we're going to give it a slight delay to hold it down and then we do a keyboard release and so this is basically the pattern we do for every button and you can keep repeating this for as many buttons as you have so i've got the r button and i've got the space button done over here then we put in a slight time delay over here for debouncing purposes and do everything all over again and so that is our code let's go and take a look at it now working with audacity and so here's our setup to test our keyboard emulator for audacity and of course i've got everything set on the solderless breadboard with the pico and a couple of push buttons and i've also got this big and rather ugly microphone over here it's a usb mic that is plugged into my raspberry pi right now and i'll be using that just to demonstrate audacity now before we demonstrate audacity let's make certain that our keypad emulator is really working and the easy way to do that is just to go down into a text editor now audacity needs an r for record so my red button should produce an r and indeed it does and it needs a space for stop so here we have a space so we've got the r's and some spaces so that seems to work pretty nicely let's disclose this and no we don't wish to save it i've got audacity open over here so let's hit the r button and we're recording and as you can see it's basically picking up our sound right now that we're making and of course we're making a wonderful recording now let's hit the stop button and it stops and so i've basically made a two key keypad for audacity and of course i could add additional keys to this to emulate all of the keys up over here audacity is pretty nice because it also allows you to define custom key codes and so i could make a full-fledged keypad for audacity and i may indeed just do that because now i know i can make one just using a few push buttons and a raspberry pi pico and of course you could do this for any other application it doesn't have to be audacity anything you can work on with the keyboard you could build an emulator for now another very popular human interface device is a mouse and the adafruit hid library is also capable of mouse emulation and so for our next experiment we're going to use the raspberry pi pico and turn it into a mouse and we're going to be using a joystick to move our cursor around the screen and we're going to use the same two buttons that we used in our previous experiment as our left and our right mouse button so let's go and see how we add a joystick to the picot and then i'll show you how we can use the hid library to emulate a mouse in order to construct our mouse emulator we'll begin with the same circuit we used for the keyboard emulator with the two push button switches we will also add a joystick that has two resistive controls on it we'll begin by connecting the x-axis output of the joystick to pin 31 of the raspberry pi pico that's the input for analog to digital converter 0. the y-axis output of the joystick will be connected to pin 32 of the picot which is adc1 the 3.3 volt output from the raspberry pi pico on pin 36 is connected to the vcc connection on our joystick and finally we'll connect one of the grounds from the pico to the joysticks ground i used the one on pin 33 which is also known as the analog ground and this completes the wiring of our mouse emulator now let's take a look at the code we can use to make our joystick act like a mouse now here's the code that we're going to be using for our mouse emulator and this code is actually just sample code that came from the adafruit circuit python essentials hid mouse example i have modified the code however the original code used the push button that is integrated into the joystick as a left mouse button and it did not have a right mouse button i just simply brought it out to two independent buttons for the left and the right now you'll notice that this code uses the analog i o library this is the library that we use for working with the analog to digital converter and again we're using the usb hid and the adafruit hid library and we're importing an object called mouse we define the mouse over here as a usb hid device and we define the x-axis and y-axis inputs as being analog a0 and analog a1 the two buttons are defined exactly as we did in the last experiment and the left button and the right button for the mouse they're again using pull down resistors because when the buttons are pressed they will be pulled high because the other side is connected to 3.3 volts we define a minimum and a maximum value for a potentiometer and this is based upon the fact again that we're using 3.3 volts and then we break it down into steps because we really don't want to break it into 65 536 individual steps instead we like to break it down into 20 individual ones and then we define a couple of functions the first one is to get the voltage on the pin and this is just the generic function you can use to get voltage off of an analog pin it multiplies it by 3.3 which is the reference voltage and divides by 65536 because it is a 16 bit number we also define the steps access over here and basically we put in the axis the x or y one and we return a rounded result of that because we don't want fractional values over here now we'll get into the true loop and we define the x and y inputs as being the get voltage of the x-axis and the y-axis so basically these are the voltages that we are getting and we define our two buttons over here now if the left button has been clicked we call the left button function if the right one has been clicked we call the right button one and of course we add a slight time delay over here as a debounce now over here is where we use the steps and you'll notice we use them in both positive and negative for both the x and y axis and the reason they're doing this is that you want to make it so that as you move the mouse excuse me the joystick out toward the edge you want the mouse to move faster because otherwise it's going to take forever to get to the center of the screen but when you're nearer to the center of the joystick you want more precise control and so basically that's why they defined it into two discrete steps for both the negative and positive side because of course the mouse can move in either direction and so that's basically the code as i said it was derived from an adafruit example and i've got it loaded right now so let's go take a look i can go and move my joystick and as you can see i can move my cursor over here wonderful and i can also use the buttons let's use the right mouse button and that brings up the menu and the left mouse button let's get the cursor somewhere over here the left mouse button highlights things so this does work and it's a very simple method of using a joystick and a couple of push buttons and a raspberry pi pico to emulate a mouse now the last time we looked at the raspberry pi pico we added a display to it and that used the i2c bus but one bus that we didn't work with was the spi bus and so for our next experiment we are going to interface a micro sd card which uses the spi bus to the raspberry pi pico and so let's go and see how we hook that up and how we use circuit python to both read and write to a micro sd card for our experiment with the micro sd card we will require a raspberry pi pico and a micro sd card module we'll begin by connecting the master out slave in or mos i pin on the sd card to pin 15 on the raspberry pi pico this is gpio 11. the master in slave out or miso pin on the sd card will be connected to pin 16 on the picot which is gpio 12. the sck or clock signal on the sd card will be connected to pin 14 on the pico that's gpio 10 and the cs or select line on the sd card will be connected to pin 20 on the pico which is gpio 15. now although our module works on 3.3 volts it actually requires a 5 volt vcc as it has an on-board regulator therefore we will connect the vcc pin on the sd card to pin 40 of the pico which is the v bus output and finally we'll connect the ground on the sd card to one of the grounds on the pico i chose the ground on pin 18 but you could use any of the pico grounds and this completes the wiring now let's take a look at the code now this is just a simple test of our microsd card all we are going to do is we are going to write some data to the card and then we are going to read it back but of course you can expand upon this to do anything you want with the sd card now we begin by importing a number of libraries some that we've seen before and a few that we haven't including the bus i o the sd card i o and the storage library we then defined the connections to our spi bus so we got mosi going to gpio11 miso to gpio12 the clock signal on gpio10 and the select line on gpio15 we then define an spi object using the bus i o library in its spi property we passed it with the clock signal plus the mosi which is master out serial in and the miso master in serial out connections then we define an sd object to represent our sd card and we use the sdio we use the sd card property of that and we point to the spi connection we've made and the select line because of course we could have multiple cards on here and they could have different select lines we define the storage that we're going to be using and we're going to be using fat storage or file allocation table and that's how our micro sd card has been formatted and we're going to mount the micro sd card and we're going to go into a directory called sd over here what i'm doing is taking a reading that i'm going to print onto the card and what i'm reading over here is the temperature sensor that's built into the pico so i thought we'd see how we could use that as well so i'm defining a variable called temp and i'm just using microcontroller.cpu and that will give me the temperature reading now this will be read as an object that will have to be formatted before we can write it onto the microsd card so now let's begin writing to our microsd card we open a file called pico.txt and in this particular case we're opening it for writing what that means is we're going to create the file right now and we're going to mount it into this location we've already defined and then we're going to write to the file and i'm just going to write a sentence to the file and at the end of the sentence put a carriage return and a line feed so i write we have opened the file now i'm going to add a second entry to the file and you'll notice instead of a w over here i've put an a because it's an addition to an already existing file so after the first operation everything after that becomes an a or an addition so we're going to add a second entry to the file and then we'll add a third entry and this is where we're going to use our temperature and this is the formatting line over here that we use so it is currently formatted value c because we're taking the value in celsius and over here i show the format so i'm going to format the temperature variable and that's going to appear over here in our text string now that we've written to the file we're going to read it back and so over here we use an r operation to read our file we're going to print reading from the microsd card remember that's just going to print on the command line and then for every line in the file we're just going to print the line and then end it so it's a pretty simple demonstration let's open our serial monitor and let's do a ctrl d to reload this and there we have it let's scroll for that so we have opened the file now we've added a second entry to our file it's currently 19.18 quite a lot of decimal places in their degrees celsius rather cool here in the workshop and the code has been done running because we've read back the contents of our file and so that's a simple test but it shows how we can read and write a micro sd card using circuit python on the raspberry pi pico now for our final experiment i'm going to hook up a string of addressable rgb leds to the picot and i'm going to use a library from adafruit in order to control them now if you're not familiar with what an addressable rgb led is or how it differs from a regular one you can check out a video i did a couple of years ago about the subject it may be a few years old but it is still as valid today as it was back then so let's go and take a look at the hookup and then i'll show you the code that we can use to bring a little bit of color into the workshop for the experiment with the addressable rgb leds you'll require a raspberry pi pico and a strip of addressable rgb leds you could use adafruit neopixels or the equivalent you'll also require a power supply for the rgb leds this will be a 5 volt supply with sufficient current for the number of leds that you have we'll begin by connecting the input line of the addressable rgb strip to pin one of the raspberry pi pico this is gpio zero we'll connect the positive side of our five volt power supply to the positive 5 volt in on the addressable rgb strip we'll connect the negative side of our power supply to the negative or ground input on our addressable rgb led strip and we'll also connect this ground to one of the pico's grounds i'm showing the ground on pin 18 but you can use any of them and this completes our wiring now let's go and take a look at a couple of code examples now in order to work with our addressable rdb leds we're going to need to install another library and this is the adafruit neopixel library neopixel is their trade name for their addressable rgb leds you'll find a link to that library on the article that accompanies this video on dronebotworkshop.com website and again it's installed in the lib folder only this time instead of a folder it is just simply one file neopixel.py that we're installing once we've done that we can run some of the sample code that adafruit has provided for this and here's one that is just going to turn all the neopixels red and so basically it imports the board and that neopixel library now one thing we need to do to this is we need to change this to the number of neopixels that we have and i have 28 on mine oops not 8 28. otherwise that's the only modification i need to make they basically set up an object called pixels they set the brightness of the pixels and then while true they do pixels fill and then the rdb value and this is going to be red because it got red at 255 and green and blue at zero and so if we take a look we can see that we indeed have a number of red neopixels glowing right now now let's go back into our code and modify it a bit let's make this 255 over here and we'll save that and as you can see we have now got both a combination of red and green over here i can change that first one now back to a zero save it again and we've just got green over here and of course if we'll go to the last one over here and make that 255 and make this into a zero and save it and we have blue and so we can regulate the color of our neopixels very simply and so one final bit of code from adafruit that's a lot of fun to use with the neopixels is this one called rainbow and it imports both the neopixel library and it also imports something called color wheel now i've adjusted mine to match the number of rgb leds that i have but otherwise i haven't made any changes to this and the real function behind this is this function over here called rainbow in which it changes both speed and color as it cycles through all of the different colors using this color wheel function and so in the true we just do well true rainbow and if you take a look at the results over here you can indeed see that we have a rainbow of lights using a number of addressable rgb leds and our raspberry pi pico and circuit python okay that brings us to the end of the video for today i hope that you enjoyed it and i hope that it's also opened your eyes to the fact that you can use multiple programming languages with a microcontroller like the raspberry pi pico now what is the best language to use with the pico well there is no real answer to that it's similar to the tools that you see behind me for example i have a number of different needle nose pliers over here now i could probably get by with just one set of needle nose pliers but there are times where i want a set that's a bit longer or a set that has a bent tip as opposed to a straight one and so i have different ones that are better for different jobs and it's the same thing with programming languages you use the language that is best suited to the application that you're trying to build and in many cases it might indeed be circuit python now if you want some more information about circuit python or if you'd like to get the code for all the examples that i used today or the hookup diagrams you will find those in the article on the dronebotworkshop.com website there is a link to that article right below this video and while you are on the website please consider signing up for my newsletter it's not a sales letter it's just my way of keeping in touch with you to let you know what's going on with the workshop and i'd also like to mention that in the next newsletter i send out i'm going to be sending you a number of different resources for learning python because learning python is important whether you're going to be learning micropython or circuit python you really need a good basis in python and so i'm going to give you a link to a number of resources both articles and videos that you can use in order to increase your knowledge of that language if you'd like to discuss this video well you know where to go the best place to do that is on the dronebot workshop forums where we have a bunch of amazing people who love to discuss electronics microcontrollers programming and all sorts of things and so if that sounds like you and if you haven't joined yet please see the link below this video to get information on how you can become a form member and of course finally if you haven't subscribed to the youtube channel well what are you waiting for i do videos about microcontrollers and electronics and robotics and all sorts of things and i'm sure you'll find those just absolutely fascinating so in order to subscribe just hit that subscribe button and when you do that also hit the bell notification and as long as you've got notifications enabled on your youtube you will get notified every time that i make a new video so until i make another video please take care of yourselves please stay safe and we will see you again very soon here in the dronebot workshop goodbye for now [Music] you
Info
Channel: DroneBot Workshop
Views: 83,466
Rating: undefined out of 5
Keywords: raspberry pi pico, raspberry pi pico projects, keyboard emulator, pico keyboard emulator, mouse emulator, circuitpython, circuitpython pico, rp2040
Id: 07vG-_CcDG0
Channel Id: undefined
Length: 42min 47sec (2567 seconds)
Published: Fri Mar 05 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.