 It was a good story. I still have the TRS-80, I think, back in my parents' place. I'm going to go see if I can dig that out. Oh. Okay, it's Python on hardware time. So this week, in the newsletter, we've got a bunch of stuff going on, CircuitPython71. Oh, final is out. I'm going to skip this part, which is, I'm going to play a video, the nine-part video of us getting ready to get floppy support, being able to control all this cool retro hardware with CircuitPython. But the most important thing this week, please everyone, everyone, everyone, everyone, everyone, as 2022 starts for the last three years, we've put together a post, 2019, 2020, 2021, even though some of those years probably should be removed from the calendar. What we want is you to tell us what you want in CircuitPython. Just put your thoughts in one place. Tell us what you like about it. Tell us the things that you want to add to it. You can do a video on YouTube, a post in CircuitPython. Stuff you want to do. A blog post, a series of tweets, a guest on GitHub. Or you can just email to CircuitPython2020 at Adafruit.com and just let us know if it's okay for us to post your thing that you send us on our blog and more. You can also use the short URL. Well, it's short-ish. Adafruit.com forward slash CircuitPython 2020, and that'll take you to the blog post and more. What's cool is you can see CircuitPython evolve all this time because we built a good community together, a good community of people that is very inclusive, that would always give you a ride in their cool car. And give each other a ride. And what I like is every year you see stuff that we say we're going to do, and most of that list actually gets done. We are making constant, consistent progress both on the community side, documentation side, the hardware side. So many little things that when we work fast and work hard, there's a lot that we've added. We have over 250 boards supported. We have hundreds and hundreds of libraries supported. With Blinka, we support another 50 Linux boards. And believe me, if it didn't work, we would get a lot more emails. So it's really working out. Our hardware, other people's hardware, people are depending and using on Adafruit libraries, Adafruit software, Adafruit firmware, Adafruit hardware, the whole shebang. And the cool thing is everything is totally open source. So people are mixing and matching it with other hardware, getting stuff working, and having a really good time. So join and circuit Python and Python for hardware is something that I think is has really been an important change and update to the way people code in the maker community and engineering community. I still like code in Arduino, C, C++ assembler, and other people do too. And that's fine. But I think this is a really welcome new family member. Yeah. I like the post holiday tweets and emails that we get because folks say, oh, I was able to get a project up and running in less than an hour. Because that's all I wanted to spend on it anyways. Yeah. And they didn't have to do a tool chain. They didn't have to do anything. They just plugged in a board. They modified a little bit of code, and now they had this like beautiful, blinky thing for their granddaughter or something like that. So I thought that was really nice to hear. And by the way, that's the other side of the coin sometimes. One out of a thousand things ain't great, but you have to focus on the 999. I got to tell myself that a bunch too. So check out this week's newsletter. There's a bunch going on. Professor John Gallagher has a bunch of stuff going on. There's a video on programming the Fibonacci Micro 64 LED board using Circuit Python, codes on GitHub, and more. You can make a RISC-5 chip run Circuit Python. This store was really cool, by the way. There's a Circuit Python online ID update. And then, don't forget, Scott's Deep Dive this week. And then we have some other news that, you know, usually folks who are tuned into this stuff, or even if you're not, maybe you want to know about it. Kikead 6. Sorry, Kikead. Kikead 6 is up. You say Kikead, I'll say Kikead, and together we've covered it. No, we should hate each other forever and... Kill the Kikeadders! And, you know, just dunk on each other forever and completely be jerks about it. And so, anyhow, what I wanted to do is make sure we built in enough time this week. I didn't really expect to do a ramp, but I did. Sorry. And play the video. First rant of 2022. So proud of you. I was not at the first rant of 2020. This is the first one that's been broadcast. So this video that we're going to show now is beginning to almost present. So it's nine videos in one, nine one-minute videos, all together about eight minutes. And it has zero to getting a Raspberry Pi Pico RP2040 to completely control, read write archive, a floppy drive with a floppy disk in it. So it's super cool. All right, here we go. Ladies and gentlemen, what's this? Okay, those are index pulses coming from this floppy drive that I am interfacing with. I just got, you know, the first kind of parts going where I enable the motor and I'm setting the direction. I'm going to, you know, get the index pulses, and then I'm going to find out when it's at track zero. So basically kind of trying to read data off of this floppy drive so I can add native floppy disk support to Circuit Python. Soon I'll update this to maybe use the RP2040 as well. Right now I'm just writing the code in our Duino because that's what I'm familiar with. So I finally get all the IDC pins set up the way I needed to. What was really helpful was this really, really nice modern data sheet from Samsung for the SFD 321B. So it actually goes through everything you need. And so far so good. So I've just started basically getting the motor running. The floppy disk is responding so far, so good. I want to copy that floppy. That's right. Here I've got some more stuff going on with my floppy disk controller that we're going to add to Circuit Python. So yellow traces you can see is the index pulse that goes low. And then you see this like moving blue line. That's actually data coming out of the floppy drive. If I click the single button, you can see the data comes out and it comes out as these pulses that are supposed to be like a PWM, but they're actually just very low pulses. And then there's a pull up to pull it up high. And you can see that the data comes in in various widths. And so that's actually the tough part of reading a floppy, is this is about 500 kilohertz. And the pulse width varies in coding the data. So over here, I'm actually doing something a little naughty. I'm not using a PLL. I'm actually just very, very quickly in a no interrupt loop reading those pulses and printing out the pulse widths. And I'm going to see if that's good enough to read data from a floppy drive. Okay. Nice Nordic shirt. Lady, how are we doing? Okay. So part three of my floppy project is I've got the data coming out of the read pen. And this is a GPIO pen. I'm toggling up and down to show that I'm properly reading the pulse widths for the data that's coming out in MFM format. And then what I've done over here is you can see I'm capturing flux transition. And I've got Cortex M4 here with like 256 K of RAM. And it's actually totally fine for me to just buffer the entire track of flux transitions because there's only 100,000 transitions maximum per track. And you can see that there's a little bit of bending here. So there's a couple pulses, a lot of pulses around 40. And then down here, we've got pulses around 60. And then finally, we've got pulses around 80. You've got a couple extra long ones, which is a little bit weird. Like why is it 228? So a little bit more to analyze here, but I'm starting to get data coming in and data looks right. Lady, what is this? Okay. So we're doing some floppy drive hacking. And I've got this like original three and a half inch floppy drive, but these are actually hard to get because they're not made anymore. So I was wondering, you know, there's these off the shelf USB floppy disks. And, you know, can I somehow use those? So I opened one up and cracked it open. And actually has a SFD321S sim, some three and a half inch floppy drive with a little adapter here. And the adapter's got a little chip on the back. And there's all these points here. And I'm hoping, can I get flux transitions out of here? Because I don't want it to do the translation for me. I want to get that raw data. Well, good news. I found a really nice person online who actually did the pinouts. And then when I access the disk, you can see on the scope, I get my index and flux transitions. So, you know, normally if you use these USB floppy drive converters, you don't, you know, they give you like a USB mass storage, but this way can get that archival quality flux transition data out. Ellie, what is this? Okay, I still got my Panasonic floppy disk drive and my feather that I'm interfacing with. And I've gotten flux data out. And now I want to get that flux data from the disk drive and the feather into the computer. So I'm using this open source tool called grease weasel. And I'm updating it to support this setup that I've got here. So basically I'm reporting the grease weasel firmware into Arduino. So far so good. There's some like flux opcode thing that I got to figure out. Like I've got the flux data leaving here. You can see it's got the flux data sent. And then over here, it says, okay, I got the flux data. But then they're after like somehow encode the index. So I'm getting there. I'm close to getting raw data dumps. Onto my computer using totally open source hardware and software. Okay, happy new year. Happy new year. What is this? This is the first floppy disk I'm going to try reading with my grease weasel compatible firmware on this feather and four hooked up to this floppy disk. So I've got flux data and track seeking working. And I'm able to get some tracks working, like some tracks are reading just fine. I'm also getting some tracks where it's like it doesn't see any sector data. And I think that's probably because like the flux data format I'm sending or the index, whatever opcode I'm sending isn't quite right. But for those first few sectors that I do get working, the data is good. So I'm just going to have to figure out what it is that I'm doing that's slightly wrong. But I feel like I'm getting closer. At least I'm seeking and I'm getting some data working from the beginning of the disk track. What is this? Okay. I think I figured out all my power supply issues and my flux timing issues and I'm really ready to read the secret disk that I got that they hidden that place that one time. Right. Thank you, Esenburn. So I'm going to put this in my floppy drive. And then over here on grease weasel, I'm going to start capturing track data. So I'm going to capture all the MFM IBM PC sector tracks all 80 times two heads. So 160 total tracks. Okay. So we have read all of the sectors 100%. So it's ready to open up. Win image. We're going to open up that secret image. Oh my God. So it's going to open, but I'm going to open it anyways. Yeah. Let's just open it. Oh no. Not again. I've got Rick old mine. I own floppy disk. It's got dirty whizzes. Okay. So we still got our floppy setup going on here where we're capturing flux traces from a three and a half inch floppy drive. But I've replaced the feather M4, 7051 with this pink feather, not just because pink is a cool color, but because this feather has an RP2040 on it, which is a low cost chip from the Raspberry Pi Foundation. And this chip can run really fast. Also has a cool PIO peripheral. So we're overclocking it to 200 megahertz. Why not? We're getting good flux captures over here. And when we recompiled it and we're running a grease weasel, it's just working. So this is cool because now I've got two different platforms that work with this Arduino library, which is the goal to make it hardware agnostic. So more people can wire up hardware and build hardware to work with floppy disk drives. And then next up, maybe we'll try this little fellow, the Raspberry Pi Pico $4 microcontroller board. What is this? Okay. I'm wrapping up for the night. It's going to be a little late. Time to maybe do some yoga and chill out. So I've got the final board I'm going to interface with. This is the Raspberry Pi Pico. So this is a $4 microcontroller. And the reason I'm targeting this is it's available, like Digi has 17,000 of them in stock. And some of the hardware that people are using for open source floppy interfacing isn't available because we're in a silicon shortage, but this chip is available. So it's nice is that the pinouts like kind of line up very nicely. You can connect them straight through to your floppy disk drive. And then load the Arduino code onto it and I set up the pinouts all nicely. And tested it. Went a whole floppy just fine. And then I've submitted this to the Arduino library registry. So you'll be able to get releases. And maybe I'll even have it auto generate UF2 files. So I think I'm done for tonight. Maybe time to celebrate. Good work. Glass of water. Okay. And let's stir up Python news for this week. So this is beginning middle and present to get us where we wanted to be. So we would be able to start to add support for all sorts of removable drives and more. You know, we got some dunks and starks. So why would you do this? Well, there's a lot of media that is about to go away forever unless we preserve it. Put online and more. And also you can't get hardware. So you may as well. Can get new chips, get old chips. Revitalize this hardware that a lot of people have instead of throwing it in the landfill. Yeah. You like the planet, don't you? Yeah, this is a good way to reuse it. So we're adding circuit Python support. The JEPLA is working on that. I'm going to get back to adding more Arduino support shortly. Took a little bit of break just to get back to business stuff, to get all the new products in the store. I'm going to talk about shortly. But more to come. Cool. Never ending. Let's jump to main New York City factory footage. We're going to do 3D printing. Then we're going to go right into IonMPI and then new products and some top secret. And we should just be able to get it all in tonight. Okay. Take it away. I think I can get us out of here. And it's time for main New York City factory footage.