 running smoothly good. I've just cursed it I'm sure. So what I'd like to do is actually let you know that you can head over to this URL right here and you can go to that QR code and you're going to get 50% off on this week's product pick of the week right now just during the live stream. So head to one of these places that you see right here in front of you and you will arrive on, let me show you the page in fact where'd it go. That's it right there yeah that's that's gonna take you to the product pick and if I if I click on that and refresh we'll see that we have a 50% off discount during the live stream only and we're broadcasting from right inside there so you can click on that link and watch the show from inside of here. So I encourage you to head over there and watch the rest of the show from inside of the product page. You get 50% off on the product pick during the live stream only. After the show we kind of shut that off so you'll want to you want to click buy I think you have a little bit of a grace period there but you want to click buy pretty quick so that you can get in on the savings. Hey Johnny Bergdahl, hey Dave Odessa nice to see you all over there in the YouTube chat. All right so before I go any further what I really like to do is have Lady Aida tell us a little bit about this week's product pick so please take it away Lady Aida. So this is a 24 C 32 EEPROM it's a 32 kilobit EEPROM which is four kilobytes of data in EEPROM format. I like EEPROM because one it's I squared C so it's really easy to connect supported by you know any microcontroller microcomputer you know four kilobytes is not a lot but it's enough to control your configuration data you know a key MAC address calibration username you know display settings what have you over I squared C and again these EEPROMs are so common they're used by like a lot we actually usually stock these because we use this part in our Raspberry Pi hats because they are used to you know configure the device to overlay but this is very handy if you ever want to add EEPROM to any of your products a lot of microcontrollers that are like simpler like the AVRs and picks have built-in EEPROM but a lot of the cortexes I've noticing don't but if you still need a little bit of EEPROM data to sort of configuration you just plug this in you know and and there you go so it's it's a standard 24 C or 24 LC it's a totally standard way of using EEPROM you can connect it to eight on the single bus because you can configure the address using jumpers on the bottom and we've got Arduino library and a circuit path on library coming out shortly that'll let you easily address them another nice thing about the EEPROM you can write one byte at a time you don't do page erase or page writes or caching or buffering each byte you know takes a millisecond to write but you can write them one at a time yeah all right so that's the product pick what I'm gonna do is actually go and grab one out of my Wonder cabinet back there and then let's talk about it hang on one second there it is this is our product pick of the week this is the 24 LC 32 EEPROM breakout now this is a STEM a QT accessible board you can also just use breakout pins on their side are some pins onto there but I really like using the little STEM a QT slash quick cable to plug it in and if you didn't know if you're not familiar with this so EEPROM it stands for electronically erasable programmable read-only memory and what does all that mean that means that this is some memory that you can write information to and it's not gonna go away when you pull the power on it so it's a little piece of storage that you can use it's four kilobytes of data which means that you can't get too fancy with it but as one of my consultants was telling me before the show okay it was Todd bot the original Atari cartridges were 4k so you could fit a decent amount of code on there if you if you really had to but more likely you'll use it for things like configuration data for maybe a MAC address or some sort of secrets file with some login information what I wanted to do is actually show you first of all actually let's let's take a look back at the page there that's where you can go to get yours and check it out these are refresh there these are on deep discount during the show so you can get one right now for $1.98 it's pretty great and it'll work with pretty much any of our microcontrollers or any micro controller out there that supports I squared C and let's let's take a look also at the Arduino library so right now we don't have a circuit Python library yet but if you head down here into the product description there's a little link that says we recommend our fram EE prom library that is it right there and you can of course access this from within the Arduino IDE and I'll show you how to do that in a moment and once you have that installed then you can go ahead and write information to it it's not something you'll do all the time but more likely you'll then read the information off of it now you can do I believe about a million rights on it so probably you won't run out of space depending on how you're using it but let's let's get to a demo shall we so let me jump to the yeah let's actually you know I'm gonna do just the overhead first for a moment let me take that off of there yeah that'll work okay so here what you can see a little demo I've set up I have a feather this is a feather M0 which does not have a prom on it and I've got a little OLED feather wing plugged into it and then I have a little strip of Neopixels I have this stem a QT cable plugged into the feather wing and you can see my program there says EEPROM reader and then I have a little columns there for address a hex and a value or decimal value so what I'm gonna do is I'll go ahead and plug in one of my EEPROM breakouts and nothing fancy I'll just reset the board and now when it restarts you'll see it loaded in the first four bytes of information on the EEPROM so it looked at address 0, 1, 2, and 3 and from that it grabbed these hex values C, C8, 32, and 4 or you can see those in decimal as 12, 250, and 4 so what others those are the RGB values of a number of Neopixels so I said in this case give me a green sort of aqua color and we'll light up the first four of those Neopixels now what I can do is go ahead and unplug that just like a game cartridge plug in a different one and again I'll just go ahead and reset nothing fancy and now we've loaded in some different EEPROM values right off of the card or right off of the chip there and so now we've got these more of a magenta I'm loading in R, red is 100, green is 0, blue is 50 and I'm saying only light up two of those Neopixels so this is just a kind of quick easy demo of a way that you can use EEPROM that data is non-volatile it's not going to go away when I unplug this I've taken power off it I can go ahead and plug the first one back on there reset you'll see we go back to our sort of cyan color with four Neopixels and we can rewrite that with different info if you want let's take a look at the code for this so here you can see I'm doing this in Arduino and let me go ahead and pull up my Arduino IDE where'd you go there you are okay so what's going on here in this code first of all I'm going to import some libraries here including this EEPROM I squared C library then I've got set up for it where I'm creating this object and calling it the I squared C EEPROM which we can then talk to and we're defining which address it's on so like most of these little stem of QT boards we have some jumpers on the back that you can solder to pick a different I squared C address you can have up to eight of these on one I squared C bus because you can configure the address that way and depending on the microcontroller on you maybe have multiple buses of I squared C could you have a lot of these on there next thing I'm doing is setting up my display setting up my neopixels doing a setup here of the EEPROM so you can see here we're checking to see if it's actually connected on that address and if it is we we go ahead and start so here is you can see I've commented out this code right now because I don't want to rewrite to it every time that I load this code on but this is where I can write different info on there so let's say we're going to rewrite this to be pretty much pure blue so I'm going to set these to zero zero two fifty five and how about we'll light up six of them so when we send this to the board it will now rewrite those first four bytes on the EEPROM and then later when we reload the program and we're just in the read mode it's going to pull that data off and use that for our neopixels so I'll go ahead and uncomment this for when we try to load that on in a moment but before I do that let's look at the rest of the code so you can use this to dump the entire contents of the EEPROM that takes a little while especially if we're kind of put it on this screen so I'm just reading the first four of them and then I am displaying those on the screen so you can see rather than serial print I'm using display print and then I've set up a little bit of text formatting there to display those values that we read for each of those four entries here you can see the I'm creating an integer this could also be a Uint 8 but I'm reading in the zero one two and three addresses and then I'm setting the pixel colors to be those three the zero one and two address and the number of pixels right here is this this one that I called n which later I'm iterating through with I just to confuse myself and that is all that it does so let's go ahead and we'll see if we can it's not always a given but we'll see if we can upload to the board so hopefully I've got everything set up right and it'll it'll accept new code so I've just compiled the code and it didn't break that's good so now I'll hit upload and that's gonna recompile it and push that up to the board and now it is rewritten those first four bytes with this blue colors pure blue color and or it's in the process of writing that right now to the Arduino and to the EEP prom so we'll hang out a minute oh I've run into run into an error it was not a guarantee this is going to work because I actually wasn't coding on this board earlier let's see I'm gonna first thing I'm going to do is actually just bear with me I'm gonna check that I'm writing to the right board heard heard heard if we use the usb usb usb us back for Arduino Arduino Arduino Arduino so let me that I saw my saw my saw my saw chat because sometimes the Chams the Chams the Chams the trouble let's see no good okay no one's noticing anything terrible with that so compiling sketch uploading crossing fingers if it doesn't find the port right away you can double click the boot button on the on the board there hey it worked that time okay I was using the wrong usb stack okay so what I'll do now is I'm gonna comment out this section so I don't keep rewriting that otherwise we'll we'll never see a change and now I'll upload this again to the board of course there are other ways you could do this you could even create a little interface on on the display itself with little buttons to write data there's a lot of ways that you could do that but right now I've just got sort of a bare bones demo going okay so now you can see on my display let me go back to a full display of this is where we go there you are okay let me go back okay so you can see here on the board now on my address zero it's a value of zero so that's red one is zero that's green address two is full on 255 blue and then address three here says we'll light up six neopixels so again just to kind of test this out let's let's go ahead and reset that when this launches it'll light up those six as blue if I swap out my other cartridge here and reset that that's gonna read the magenta two pixels and then we'll go back to that blue one now of course since you can load multiple of these onto a single I squared C bus using different addresses you could read from them with a whole bunch of them plugged in you could go and read data off of a few of them swap them around so you can imagine this is sort of a neat like cartridge idea where you can carry around some important data with you you could also use this as a way to quickly update let's say neopixel animations on a cosplay prop put it maybe in like a big phaser gun with sound effects and things and drop in a different ee prom in order to upgrade the the device so there are a lot of possibilities with a simple little inexpensive piece of ee prom ram or rom like this I find it a whole lot of fun to work with so let's see if if there are any questions let me know over in the chat let's see can you tell how much memory is free or used yeah David as you can I think the if I if I jump back over to Arduino for a second here let me open up our example code so I took the when you load the library you'll get this example code here one second while I load that up and this is in the fram okay so let me swap over to this other window for you one second you know what I'm gonna do I'm just gonna copy that text and put it into Adam so that you can see that'll make it easier actually second these oops one moment so close here we go all right yes you can see this is the example code that you'll get with the library when you load that into the library manager in Arduino and in here it actually checks the amount of RAM that you've used it will let you know that it will write out the whole it's better for a serial console so that you don't flood a little display like this it'll write out the whole content of it and yeah I think that's about it so this is a nice one to go and check the the full contents and then of course you could write parsers to do other things with it if you needed to let's see other questions see Grover asks any projection for when a circuit Python library may become available I do not know that's a good question for probably the circuit Python channel in in here in discord lady Ada mentioned it but I don't remember she said when it's coming unless you want to get working on that yourself that would be great we wouldn't mind at all we'd appreciate it so once that we had a max-headroom effect going on before huh that's funny it was probably when I was loading things and it confused the software all right yeah so that is the very cool little eeprom break out there a lot of fun to work with very simple and easy and pretty quick as you can see you can just write to individual bytes which is great you don't have to gang up a big buffer and then write that so it allows you to go in there and just pinpoint the the addresses in memory where you want to write some information to so it's really easy to work with which I appreciate and I think that's gonna do it so let's see if you have other questions over in the chat on YouTube or in the discord let me know I'll take a look at those and I'll hang out a little bit after the show but don't forget if you head over to the products page here this is 50% off so it's $1.98 right now we have 93 in stock and there are a maximum of 10 per customer so you do the math if you want to grab a bunch of them grab them quick because they might be gone and of course we'll always make more but the discounted price is good just during the show also you can see here if you take a look at the pictures these nice product photos that we have there there's the nice little EEProm chip and there are the address jumpers on the back that you can just get a solder blob across those or a little wire and pick a different address for these and whoa that's gonna do it all right so why don't we wrap this up I'm gonna take this one right here and say that's the product pick of the week it is the 24 LC 32 EEProm break out on I squared C STEM a QT form factor and I'm gonna go ahead and put that on my new product board of awesomeness the names change a lot and that'll do it for today so thank you all so much and for it for dentistries I'm John Park this has been JP's product pick of the week and I will see you next time bye bye everyone