Hello, everyone. This is the Circuit Python Weekly for December 13, 2021. This is the time of the week where we get together to talk about all things Circuit Python. I'm Scott, and I'm sponsored by Adafruit to work on Circuit Python. Circuit Python is a version of Python designed to run on tiny computers called microcontrollers. Circuit Python development is primarily sponsored by Adafruit, so if you want to support them in Circuit Python, consider purchasing hardware from Adafruit.com. This meeting is hosted on the Adafruit Discord server. You can join anytime by going to the URL adafru.it.discord. We hold the meeting in the Circuit Python Dev text channel and the Circuit Python voice channel. This meeting typically happens on Mondays at 2 p.m. Eastern, 11 a.m. Pacific, except when it coincides with the U.S. holiday. If the meeting time has changed, we'll notify you via Discord. If you wish to be notified about changes to the meeting, we can add you to the Circuit Python needs-to-discord role. There's also a calendar available that we try to keep updated if you'd like to subscribe to that. This meeting is recorded. We record the audio from the voice channel and the video of the text channel. If you'd rather not have your voice recorded, you are still welcome to participate. The video of this meeting will be posted to YouTube, and the audio is released as a podcast. There is a note stock to accompany the meeting and recording. If you wish to participate but can't make it to the meeting, you can leave hug reports and status updates for us in the document, and we'll read them off during the meeting. The notes document also contains timestamps to go along with the video, so you can use the doc to view only the parts of the video that interest you most. The meeting tends to run 60 to 90 minutes, so this gives you the option to skip around. A link to the notes document is posted to the Circuit Python Dev channel on the Adafruit Discord every week, usually about a week beforehand. So check the PIN messages to find the latest notes document. This meeting is held in five parts. The first part is community news. This is a look at all things Circuit Python and Python on hardware in the community. It's a preview of our Python on microcontrollers newsletter. The second part is the state of Circuit Python libraries in Blinka. This is a statistical overview of the entire project, and it's a chance to look at the project by the numbers separate from what we're all up to. The third part is hug reports. Hug reports is an opportunity to highlight the good things folks are doing, taking time to recognize the awesome folks in our community. The fourth part is status updates. Status updates is an opportunity to sync up on what we've been up to. Take a couple of minutes and talk about what we've been doing in the last week since the last meeting. Well, you'll be up to over the next week until the next meeting. The fifth part is in the weeds. In the weeds is an opportunity for more long-term discussions. These discussions can come out of status updates or be something you've identified ahead of time is too long for status updates. And that covers how the meeting will go. With that, I'll get started on Community News right after I take a time code. Community News is a preview of the Python for Microcontrollers newsletter that is put out every week, primarily thanks to Ann. The newsletter is a glimpse at what's going on in Circuit Python, MicroPython, and Python in the given week. So first up, we have PyLeap goes into official beta test. PyLeap is an app for iOS and iPad OS. It allows you to collect complete projects from the Adafruit Learn system and transfer them directly to your Circuit Playground Bluefruit without opening a code editor or connecting to a computer. Send files and libraries directly to your Bluefruit device without a desktop computer. And for me, guys, thank you for posting the link. You can also read more in the official guide on the Adafruit Learning system for the PyLeap app. And the short link is actually ADAFRU.IT slash PyLeap if anybody wants to install it for their iOS device as well. Next up, in the process, this is a bit of a preview. Circuit Python 710 beta 3 is nearly available. It's the fourth beta release of 7.1. It is relatively stable but contains issues, fixes to address issues to address for 7.1. The main addition to this beta over the last is the addition of a non-OS bare metal version of Circuit Python for some broadcom based Raspberry Pi single board computers. Further additions are the keypad events now includes timestamps. The expressive port now includes I2C peripheral, Wi-Fi monitor mode, ESP32-C3 support and parallel image capture. Bitmap tools has added dithering and alpha blend. Preliminary support for async.io is included. Just use the Circuit Python async.io library to take full advantage of it. There is now a gif.io.gif writer. HID now provides boot device and feature report support. Rotary.io now allows setting the divisor of counts per transition. The Sandy port now provides watchdog and alarm with sleep. The STM port now provides support for the STM32-L4-R5 and MicroPython 117 has been merged in. We have a new translation for Russian as well. So that's that. Next up in the news category. We have Boston College students demonstrate their final projects using Circuit Python. Professor John Gallagher teaches an excellent class on using microcontrollers to non-engineering students. For the students' final projects, they built a number of devices using Circuit Python in innovative ways. Here are some of the projects as posted on Professor Gallagher's Twitter. One is a personal assistant robot named Popcorn. Another is a 3D printed motorized Ironman helmet with a heads-up display on a Raspberry Pi 4 plus the 804 Cricut hat running Circuit Python. And lastly, an electronic fish feeder with Circuit Python. Next, in not quite Python news but related to Raspberry Pis, there's a deep dive into Raspberry Pi 02W power consumption. The Raspberry Pi 02W power consumption is measured with various peripherals on and being used and some of those turned off. This is a great baseline for comparing with the bare metal no OS Circuit Python version on the board and it's available from CNX software. Last up in news. Of course, this is just a preview. There's a lot more in the newsletter. GitHub code search technology preview. GitHub is rolling out a technology preview for substantial improvements to searching code on the platform. A survey must be filled out for access. If granted, it'll be located at cs.github.com. The search index covers more than 5 million of the most popular public repositories. In addition, you can search private repositories you have access to. All right. And I guess I should sign up for that too. I'd love to have that work. All right. That is it for news. The Circuit Python Weekly newsletter is a Circuit Python community run newsletter emailed every Tuesday. The complete archives are available at www.adafruitdaily.com. It highlights the latest Python on hardware related news for around the web including Circuit Python and Micro Python developments Contribute your own news or project. Edit next week's draft on GitHub by going to www.kithub.com. Check the drafts folder. Or submit a pull request with the changes. You may also tag a tweet with hashtag Circuit Python on Twitter or email cpnews at www.adafruit.com. And then we'll add it ourselves. All right. That's it for the first section. Next up, we have state of Circuit Python libraries in Blinka. This is a statistical overview of the health of the project and its sub projects really meant to ground us in the numbers that we find valuable. If you have other numbers you'd like here, we were totally open to adding some things here. So let me do overall first. So overall, we have 55 pull requests merged, which is very impressive. There are 26 authors of those 55 pull requests. Some new names in this list that I don't recognize. Garrett Heath 4. Mr. Dahlgard. Ramali. Purples. Raphis. Rufus. V.S. Guy Foccus. Kenan Johnson. I think Colorado, Carlos are all new names there. So thank you to all those new authors of pull requests. We really appreciate you. We also appreciate the 13 reviewers that helped make those authors possible. So that's even a higher number there too. So thank you to our reviewers for doing all that work and supporting those authors. So that's for pull requests. Issues wise, we had 22 closed issues by nine people and 20 opened by 17 people. So we're doing a good job at keeping up with our issue rate. So thank you everybody for doing that. Next up for the core. This is the C core of Circuit Python. That is what you would load via a UF2 file typically and runs on a microcontroller. For the core, we had 27 pull requests merged from nine different authors. So thank you to all of our authors there. 27 is a pretty good number for us as well. We had six reviewers. So thank you to all of our reviewers. And we have 11 open pull requests where the oldest is 100 days old. So if you are involved in any of those pull requests that are getting kind of old, please make sure that something is happening with them. And if not, go ahead and close the pull request. If there's some work that we still need to do, what you can do is you can open an issue and then link to the branch instead for a longer term, like we need to pick this up at some point stuff. So check that out. If you're involved in some pull requests. Issues wise for the core. We had eight closed issues by three people and 11 opened by 10 people for a total of 463 open issues. We have six active milestones. Milestones are the way that we kind of prioritize and triage the issues as they come in. So we have five issues not assigned to milestones. So those are the ones that we need to triage. We have zero open issues for 710, which is any issue that we think should block a stable release for 710. So that's been doing pretty good. We have a 7xx, which are minor issues that wouldn't block a stable release. We have 20 of those. And we have 10 open issues under the 80 milestone, which are the things that we want to do with when we switch to 8.0. So that's the core. Thanks, Dan, just for an overview. Thanks to Dan for facilitating the beta releases of 7.1 and fixing a bunch of bugs along with it. So expect to see 7.1 out here shortly, I think in the next few weeks. So thank you, Dan. All right. Next up, we have a status update or update about the libraries from Katni. Yeah, and my browser decided to stop trying to crash just at the right time. So we're good to go. Fingers crossed. Yes. So this section applies to all of the Adafruit Circuit Python libraries, which is everything that starts with Adafruit underscore, CircuitPython underscore, and a couple of extras. So across all of those repos, we had 25 pull requests merged from 17 authors and 10 reviewers. I do want to point out that about half of the PRs that were merged were between 22 and 280 days old. I'm really excited about this. These things will be covered in status updates and hug reports, but early hug reports a foamy guy for that. I will let him talk about it, and then I will talk about it afterwards. And then that leaves us with 56 open pull requests. We have 13 issues closed by six people and eight open by seven people, leaving us with 644 open issues. 258 of those are labeled good first issue. If you're interested in contributing to CircuitPython and the Python side of things, check out circuitpython.org slash contributing. You'll find all of this information and more. If you're interested in reviewing, check out the open PRs, take a look at them. If you have the hardware tested, if you don't let us know what you think of the code, leave a comment. And once you're more comfortable with that, we can look at upgrading you to the review team. If you're interested in writing some code, check out the issues list. If you're new to everything, good first issue is a great place to start. If you're looking for something more complicated, bug or enhancement would be more up your alley. Leave a comment on the issue, let us know you're working on it. And if you need help getting started, we are available. There's also a guide on contributing to CircuitPython using Git and GitHub. In terms of new libraries this week, we didn't have any, but we had a number of updated libraries. The list is pretty long, so I won't read it off, but it is in the notes. So take a look at that if you're interested. Overall, we're seeing activity on the older PRs now. So if you are an author of an older PR, please expect to see an update there. Either we will work through getting the PR up to date with all of the changes that have happened since the PR was submitted. And then get it merged or depending on the situation, we may close it. Remember that we can always reopen PRs or you can submit a new one if you are still interested in contributing the change that you made at a later date. And that's what I've got. Awesome. Thank you, Catni. Next up, let's get an update on Linka from Maker Melissa. Hello. Linka is our CircuitPython compatibility layer for MicroPython, Raspberry Pi, and other single board computers. And this week we had three pull requests merged by three authors and one reviewer. We have five open pull requests left and there was one closed issue by one person and one open by one person, leaving a net of 65 open issues. There were 15,630 Pi Wheels downloads in the last month and we are now up to 85 boards. And that's it. Awesome. Thank you, Melissa. Okay, that's it for Stated CircuitPython Libraries in Linka. Next up, the next section we have is Hug Reports. This is done as around Robin, so I will start and then start from the top of the list in the CircuitPython Voice Channel. And those who are listed in the Dock only. If you're not in the Dock, I will skip over you. So let me start. And I think I might be scooping some information just a little bit. But first, a hug report to Foamy Guy for being an awesome participant in our community and very excited to hear that Foamy Guy is going to start working full Mondays for us at Aida Fruit. So that's going to be awesome. And then also a hug report to Foamy Guy for taking my place and keeping the torch going when I choose not to stream on Fridays. Foamy Guy usually will jump in and stream at the same time. So providing a home for those folks that like to sit and hang out with some deep divers. So thank you, Foamy Guy, for that. And excited to work more with you. Next up, a hug report for Catney and Dan for switching days with me for running the meeting. Since I'll be kind of off and on out throughout the holidays. And a double hug to Catney for orchestrating it. Catney's a great person for getting things done. So thank you, Catney. Last up, I have a hug report for BRHOP 720 from Sparkfun for getting us a USB PID for the STM32 thing plus. And that's it for me. Next up, we have notes from Sea Grover. So I'll read these off. Sea Grover says group hug and a hug report to Foamy Guy as an official member of the Adafruit Circuit Python team. And next up we have Dan. I see you're unmuted, but I can't hear you. Can anybody else hear Dan? All right, we'll get back to you. Okay. Next up is Foamy Guy. All right, thanks Scott. This week hugs to Catney, Jeff, Scott and Dan. And as well, honestly, the whole community, everybody has been super welcoming to me to join the Circuit Python team. And so it's been a really great time. And I really appreciate everybody being so nice for a bunch of different reasons. I've had a couple of conversations. I've had plenty of folks telling me in the Discord, congratulations and stuff like that. So I appreciate all of you. To Dexter Starbird, who tested out an issue that came up on SAMD51 devices to try to reproduce it and shared the findings that they came up with. And then to Dan H, who figured out the root cause of that issue and implemented a solution real quick. So thank you to all of those folks. Awesome. Thank you, Foamy Guy. Dan, did you want to try again? No luck. All right. Next up, I have, okay, I'll read, I'll read off for Dan here. I just had a meeting with Dan and I can hear him. So it's just Discord being unhappy. Dan says a hug report to Foamy Guy for finding the 710 beta 2 regression and providing good examples for reproducing the problem. And a hug report to Jeff Epler for reviews and fixes while on vacation. All right. And next up, I have notes from G3 holiday. Who says a group hug and a hug to Tan Newt for circumvent on the pie and neopixel support work. And a hug report to Foamy Guy. Glad to see you as an official member of the Adafruit family. Next up, I have notes from Jeff. Who says a hug report to Dan H for bug hunting assistance and testing. Next up is Jerry. Hi. Yeah. Okay. You've got for the putting out the pie developer PCB on Ash Park. Thanks for that. And to Foamy Guy. Glad to see you taking on an official role that a few better for it. And a group hug from me and my cat. Thanks Jerry. Thank you both for you and your cat always attending the meeting. Next up, we have cat knee. Mine was threatening to attend the meeting, but she seems to have stopped. So first up hug report to foamy guy for joining the Adafruit team. I'm super excited about this. It was was a great thing. I checked into whether we were able to, you know, get get foamy guy some more stuff to do and everything kind of happened after that. There were already plans in the works and that was excellent to hear. So I'm very excited about that and welcome hug report to Carter for helping out sorting. Helping with sorting out a table of all available addresses on the various stem of seesaw breakouts. The neo key breakout and the. I just did it and the neo slider breakout have four address pins on them and so you can do 16 addresses and we explained. An example of five of them and Carter pointed out that folks are struggling to do the math to figure out the others and how that works and so instead. I put together a table that has exactly what what pins when set in a certain way turn into what address and so that should be super helpful and. I learned a bit making the table and Carter helped out with that. Another hug report to foamy guy for working through the library PRs. Jose David a while back went through quite a bit. But. Jose does not have. Merging access so it was kind of stalled out at the point that I had or didn't have time. To work on it and foamy guys pick that up and that's why there's so many older PRs have been merged recently. So that's great to see and I'm really excited about that hoping to get caught up. To Scott for swapping running the meeting with me today to Dan for being the third player in the game of meeting swapsies. And to the more NPT for being incredibly flexible and supportive. I will talk about this in my status updates but I'm currently in the middle of an international move. And they've just been amazing. So I really appreciate it. Awesome. Thank you. Next up is maker Melissa. Hello. See I wanted to give a hug report to foamy guy for joining the team. I want to Carter for adding all the UTIF boards to Blinka. And a group active on us. Awesome. Thanks. Last up we have notes from Mark. Mark says a quick hug report or a hug report to Catney for a quick discussion on where to put some IS 31 FL 3741 changes. Awesome. Thank you Mark. And thank you everybody for participating in hug reports. Next up we have another round robin this time is status updates. So work just the same way I will start and then we'll go alphabetically through the list. So for me this Friday I'm out so no stream or also the two Fridays after that I'm out as well. Long weekend this weekend which I'm excited about hopefully some snowshoeing or at least some hiking. Next on my list is I got spy support checked in for the Broadcom port. So check that out if you're trying a circuit python alone on the Raspberry Pi. This week I've got two things to finish in terms of Raspberry Pi land. One is neopixel support which I was working on in my stream last week. So if you want to see the details of that check that out. I guess I should hug report Todd bot. I think Todd also gave me a clue as to the next thing I can try to get the neopixel support working. And then I also was working on adding support for the old Raspberry Pi zero because I think it's a great board to run circuit python alone. And so I'm going to work on that as well. So both are started but neither are finished. So that's primarily the coding work that I'm going to be doing on the four days this week that I'm working. And of course I'll be working some next week so I can pick that up if I need to next week. All right next up I have notes from C Grover who I will take a timecode and then read off. C Grover says I had a significant breakthrough in understanding python namespaces and class inheritance. Started to see some significant performance memory management and class UI improvements as previous code was updated with the new knowledge. I released new versions of the scale magic eye and bubble display retro display I owe widgets. The newest bubble display is a multi digit stackable bubble lens LED seven segment display similar to those used on the HP 35 calculator. Each stackable 12 pin dip sized unit can contain contain from one to five digits. And there's a picture in the doc as well. Plans are to wrap up four more retro widgets over the next week bar graph neopixel strip panel meters in analog clock. Going to resist the urge to refactor every previously coded circuit by them project to improve performance given my new found coding hammer. Back in the studio to track three new songs I'm performing all the MIDI and acoustic instruments. Next up let's check in with Dan and see if his body is working. All right I'm on my phone now can you hear me. Yes I can. Okay so there was this SD card problem that a bunch of people had and a budget pool did not have. And I went through my stock of SD cards and I was able to reproduce it. So I reproduced it did a good bisect which is doing a binary search to find out where the offending code was and I found that and told Jeff about it and he fixed it immediately. So that worked out very well. I've been doing various 7.1.x fixes or 7.1.0 fixes I should say. BLE IO HCI support that's for like using an airlift that wasn't working and I fixed that. I fixed a confusing PWM out problem on RP2040 and we had problems. I fixed another thing on RP2040 which was that we had problems getting it to work with the Neo slider which uses a new implementation of seesaw zero length I2C rights were not working right and it turned out there was. It just was there was this time out we use bit bang IO when we do zero length I2C rights on RP2040 so I fixed that so I released 7.1.0 beta two with a bunch of these fixes and a bunch. Those fixes and a bunch more a huge number from other people like dozens and dozens of fixes that included enabling sleep on all Sam Sam X5 boards. And then immediately foamy guy was able to figure out that something was causing. Display only not to work properly which turned out to be because of sleep and so I'm today releasing 7.1.0 beta three which basically just fixes that regression so that we can have a beta that works better. So this is an example of like we can be quick with the betas if we need to. Okay, that's it. Thanks, Dan. We're quick with the betas because you're quick with the beta so thank you for that. All right, next up is foamy guy. All right. So last week, as has been mentioned a few times, I got finalized to join the Adafruit team and to add a little more details. I also got it worked out with my current employer so starting at the beginning of next year I'll be dedicating all Mondays to work on Sir Python so I'm super excited about that. Some of the more nitty-gritty stuff I did this week is inside of tile grid in the core I added a height and width and tile height and tile width properties so that you can access the size of the tile grid after you create it. Some of that actually ended up already existing just not being exposed to the Python layer yet so that was interesting to kind of see it and make a guess that it was actually already there and figure out how to hook it up. I had fun working on that. I will probably PR that stuff this week. And then a few other things I worked on were some fixes in the PyoA library. I think it's like Python-owned adventure or something like that. You can basically make little cards that have like a logical tree that goes through it. You can press a certain button and it leads you to a different card and so on and so forth. It's a pretty neat library that I haven't played with too much but we got some fixes in there including a new feature to be able to change the background color behind the text. We have background images but the text was just put over the top of them and so some of them were a little difficult to read and now we can use background color. And then I also created a demo this past week and showed it on show and tell which was showing how to store configuration or application state inside of NVM storage. So it can remember what it was configured to the last time you ran it and then start up next time and just pick up where it left off. So I think that will be a good example for folks that want to do similar stuff like that. Last week I am still working through OpenPRs like Catney mentioned. I'm kind of aiming broadly for the older ones first but I am sometimes get, you know, just have my interest peaked by a newer one or I happen to have the equipment already out or something like that. So I'm doing a little bit of a mix. I'm working on adding alt-click functionality to cursor control. There is a specific use case in mind for that that I'll talk about a little bit more once it's actually in there but there is an issue and there will be a PR soon if folks are interested in more details. And then Scott mentioned that he's not going to be streaming on Friday and so I will stream for sure this Friday evening. I'll plan to the next couple as well while Scott's away but I'm not 100% certain if I will make it on the others. But as long as nothing else comes up then I'll plan on streaming those Friday nights and that's what I got. Thank you. You are like Christmas Eve in New Year's Eve right? Yes I think so although I'm not a calendar. Yeah they are. So I would recommend not doing it but that's your call. Okay. Take a break. Breaks are good. Okay next up I have notes from G3 Holiday. G3 Holiday says working on a Neopixel spiral Christmas tree with a Feather RP2040. I'll change it to a Pi soon. I'm also taking your break for Christmas starting Wednesday all the way through my birthday on January 2nd. Ooh that's exciting. Next up we have notes from Jeff. I always want to say it's like too close to his name. Jeff dropped some notes in here but it's on vacation so it's not in the meeting. Jess says with Dan's help fixed an SD card problem that was vexing users. I can take the December 20th meeting if nobody else has volunteered to. Hiking in the Sedona area it's beautiful and back at work on Thursday. There's a picture in the note stock here that looks really gorgeous. So I'm glad Jess is getting out and taking a break. Thank you FOMI guy for posting that in there. So that's a reminder everybody breaks are good. Take breaks don't overwork. Alright next up we have Jerry. We hit the button once. Yeah so I don't know what I did this week. Just lots of stuff and it was all fun but I can't get track of what it was. So looking forward to this week I just got my the my new Pi developer boards in from Scott's Osh Park design and looking forward to populating those so I can do a little easier playing with the Broadcom ports. Awesome. Let me know if you have any questions about it. Okay thanks. I know I don't document my stuff well. It looks pretty clear. Cool. Alright thanks Jerry. Next up is Catney. You could document a little more yeah. I know I can. Alright so last week I finished up the Neo Slider guide that went live. I posted all of the RP2040 pretty pins diagrams where they needed to be. They were completed and actually it is a complete mystery as to who did them because none of us have the original files locally but all the files exist and have been like spread around. So we have no idea who made them but they're completed and they're also in the guides and also in the PCB repos and so on and so forth. So if you're looking for pretty pins on the RP2040 boards they are around. I wrote two Arduino starter templates for RP2040. It's getting the ID set up and loading your first sketch. I'm working on I'll be adding those eventually to the RP2040 guides. I added a create and get feed function to the CircuitPython Adafruit IO library. I thought that was the last week thing but I think it was actually on the going to do list because it didn't pop up in my as dawn in my to-do list until Tuesday so obviously hadn't finished it. But it's super keen. It will automatically create the feed if it doesn't exist and it'll get it either way and it eliminates like four lines of code that are in a bunch of examples. So check that out if you are ever doing the try and accept to create and then get the feed. And I finished the KB2040 guide as well. Today so far did a bunch of various miscellaneous on my list, tested a PR, merged a few PRs, did some guide feedback, added to the ESP32S2UF2 bootloader installer template. It turns out if you load an Arduino sketch onto an ESP32S2 it comes with the bootloader for free. So if you already have the Arduino IDE setup for ESP32S2 it might be a lot easier than using ESP tool or web serial. So it walks through quickly how to set that up and how to flash the blank sketch and then you should be able to get to your bootloader at that point. So the rest of today I'm going to try to add the KB2040 to the Philhauer Arduino core. That is the RP2040 Arduino core that we use and adding stuff to it is a little more complicated than adding stuff to say this AMD core. So I'm working through trying to figure that out and hopefully get that done today. And then finish up any other open-ended miscellaneous on my list. I kind of think I did most of it this morning. So there's really not much else to do, which is good because the rest of this week is going to be packing. And on Thursday I will be moving from Canada to the US. I actually live in the US but have spent most of a couple years in Canada. And we are now officially, hopefully fingers crossed, nothing goes wrong. We're moving back to the US. So I'm really excited and I will be gone most of this week, really just the rest of the week. And back on Monday for a short period of time before the holidays. So hold down the fort everybody. I know you can do it. And that's what I've got. Thank you, Cathy. All right. Good luck moving. It's exciting. Thank you. All right. Next up and last up, let's hear from maker Melissa. Hello. So last week I updated several web serial and web Bluetooth apps to be more responsive. I fixed a web serial ESP tool error that was occurring when reconnecting without refreshing the page. It was having trouble detecting if the stub code was running and needed a little assistance there. I added a bunch of boards to circuit python.org for Blinka and circuit Python. I fixed the fun house setup directions for adding the ESP 32 board to Arduino and or ESP 32 S to board. I continued working on display IO for Blinka to update it to circuit be circuit Python seven compatible and this week I'm going to work more on the display for Blinka. Awesome. Thank you, Melissa. And that's it for status updates. The final section we have here is in the weeds. This is a chance for us to have any more long form discussion in the weeds or like technical discussions. So we've got one topic and I'll kick it over to Jerry to kick that off. Okay. And I, you know, I accept and realize that, you know, the Broadcom support is totally free alpha and, you know, but so we don't need to discuss this if you don't want to. No, no, it's fine. I ran into an issue. Let me get the cat out here. Your cat has ideas about what the issue is. That it's working fine. It comes up to the repel just fine. 90% of the time when I unplugged the board, I go plug it back in again, the SD cards corrupted comes up at blinks four times, which I believe is saying I can't read that SD card. And if I reflash it, it works fine. And as you know, the circuit pie, the mass storage device is not working properly on the 4B still it might plug it into my Linux box. Sometimes it does a little beep boop.  And sometimes it mounts a board, a drive called 31 gigabyte 32 gig card so 31.9 gig device, which I can't access it just shows up in the device log. Other times it shows nothing. But I don't know if that's related to why it's corrupting the board. But I didn't know if again, if you have any suggestions is there's something you I can do I suppose I could build it turn off the mass storage. I don't know. I thought I had fixed that right like there was you had reported that it wasn't working and then I found and fixed something but I guess that was that was with circuit path and not even booting. Right, so it's fine. Yeah, that's fixed. But the but it's never I've never had a circuit five drive come up reliably, or at all. Because my it is on the Iowa board here it is coming up for me if I ask you. One, I would want to suggest that I would be curious about is just if it's if you're only trying one SD card, try some different SD cards, if you have some. I tried some different ones, but I'll try to try some more. I've got a 32 gig one and a one gig one. I tried both of those and okay results but I'm using a 16 gig Lexar one is what I've got in here. I'm not surprised right like like you said it's pretty early. Yeah. The other when it doesn't come up at all. Right. Does do you have an HDMI display plugged in or like is it. I'll work on that but yeah I have to see if it's actually just nothing comes up in the rebel at all when it's but the rebel does come up. What's that does that does the USB serial come up. USB serial like I have a device. You are plugged in and I see nothing at all. When it fails all that just the red light comes on and the green light comes on and blinks four times, which, again, I think is an indicator from the boot loader that it's not seeing it's not able to read one of the major startup files. Right. So there is. Yeah, there is a there is good output from the Raspberry Pi boot loader on the HDMI stuff. I'll try that again. That'll give should give more errors about like reading the SD card. It's weird to me that it's corrupting the image itself because there's only one right that it should be doing it should be writing the partition. The circuit Python will write the partition table. If the partition table only has one entry. So if you flashed a full disk image that'll be the state it's in. I have been up and looked to a Lister with a list Lister and see the files on it. You know the boot up text but although I try to read them they're all have nothing in them. That's another thing I did notice the one time I did get up and running. I just tried to read open to read those files and they were empty. The hello the code dot pi and the and the boot out dot text were both empty. At least reading them didn't work. So if you ever get to that state again, you might try the storage erase file system. Oh, that's a good point. Yeah, if I flash a new copy I can get to a nice clean up all every time. You know as long as I reflash the card. So I can get it up. What are you using to reflash the card? Pi imager. Okay, so at least for me for pi imager it it will only overwrite the first megabyte and the last megabyte of the card. So it that's good if the file system for circuit Python is correct. But it means that if it's broken you're not actually redoing that portion. So is your better or you just use DD. I just use pi imager but you can do the erase file system and erase file system should work. Okay, I think all right. But but I'm what I'm saying is that like the the imager will not fix a circuit Python file system for you probably.  And because the imager doesn't overwrite it, which was my goal right like ideally that gets preserved when you do the disk imager. Like. Yeah, but if it's not but the storage file erase should to take care of that. Right, so that that should start that should start the the circuit Python file system fresh again. If the boot if the boot loaders having trouble starting up and somehow we're corrupting the first megabyte or the first 256 megabytes is what that first boot drive is is in. Which could be a part problem with the part file partition right. But I know people in Raspberry Pi have problems with it but I was expecting that circuit Python would actually be more reliable. But then again I don't know like this is the first time we put that main file system on a SD card. So there could be and this is the first time we're using the SD card mechanics that I snagged out of the IDF as well. And yeah, but like I said, and otherwise you know it's the when it comes up and runs a repo that does all sorts of nice things. Yeah, I know. Turn it off and go turn on again at reflash. It's kind of slow. But the boot out that text should be there and should to be a hello hello world in the code.py. I don't think so. Yeah, I think the the contents of code.py is is turned on by the full build flag. And I don't think I have the on right now because there was a bunch of stuff that was uninfluented. I'm trying to read the boot out text. Just tell me I was there but telling me I couldn't read anything out of it. Yeah, I would try a racing first. Okay, thanks. But I've been using it, you know, enough for like the spy you are I squared C testing that I've been doing. Like I have a bit of a weird setup because I'm not booting off the SD card, but I've been able to get it to show up as a circuit pie drive and be able to modify it like pretty reliably at least. If I put an SD card in there off a USB drive, will it will that work? Maybe I haven't tried it, but. Okay. I would still write files to the files to the SD card, but it would. Yeah, yeah, basically the USB host stuff just wouldn't work. Because circuit Python doesn't support it, but the boot loader does so the boot loader the boot loader would recognize the USB drive copy the circuit Python image into memory, which is what it does regardless of where it is it actually ends up in Ram, regardless. And then circuit Python only knows how to read off the SD card. Right, okay, it would be able to do that but it would change the boot loader to boot off the USB first, and then maybe that would help or not. So now that I have words I can populate and I can easily switch back the worth between my to be with my 4b, which will make it easier to compare what's going on to. Yeah, I know that the 2w last I used it was having reliability problems where it would like hang when I was doing mass storage stuff. Right. Trying to get a good back trace off that was really hard and I couldn't figure out what the problem was so. Okay, I'm glad you're working on the on the other keyboards it'll be fun to build it down the chain in the. Yeah, I think it's mainly just the zero right like the the original zero is just such that it's the right form factor I assume a lot of people have them sitting around and are not using them like me. Yeah, yeah. So, I figured that was a good like I'm hopeful that if I'm hopeful there might it might give a different lens on some of these reliability issues to, you know, because the peripherals are so much the same but it's just the cores that are different. Alright, thanks. I don't mean to be pressuring anything here I realize this is not not. I've kind of set myself an internal deadline so you don't need to worry about it like, I'm going to be doing pie stuff and guide stuff kind of throughout the end of the year and then come January I'll be switching gears is my plan. I'm a little sad that the USB host stuff isn't being done, but it's a lot of work, I'm sure. So we'll get there. We'll get there at some point. Yeah, it's come a long way very fast. Yeah, it's been really it was a lot of fun to learn it's just like finding these nasty bugs is taxing. I'm sure. Well, thanks. Alright, and let me take a timecode. We'll wrap this up. Thank you all for joining us for the circuit by the weekly for December 13 2021. Oh, that just reminds me worth it end of the month. And I did want to remind folks that the circuit in January every year we do kind of an annual like bigger vision post what you think circuit Python should be more broadly. We call it circuit Python 2022 this next year. We changed the year so it's kind of hard to call it something consistent. But over the holidays I'd encourage you to think about where you think what pieces are missing from circuit Python still and what things you think that should be kind of big goals for us as a community. So think about that and then I will do a blog post that kicks us off and then what I do is I'll do blog posts throughout January to aggregate the post that folks have made. So you'll see more details come January, but be awesome to see that from everyone. Okay, so that was a detour. So thank you everyone who participated. If you want to support Adafruit and circuit Python and those of us that work on circuit Python consider purchasing from Adafruit shop at Adafruit.com. The video of this meeting will be released on YouTube at YouTube.com slash Adafruit and the podcast will be available on major podcast services. It will be also featured in the Python for microcringer alerts newsletter. Visit AdafruitDaily.com subscribe to that and thank you and for putting that together. The next meeting will be held next Monday as usual at 2pm Eastern 11am Pacific. This meeting is held on the Adafruit Discord server if you're listening to this some other way. You can join the server by going to the URL adafru.it slash discord. If you'd like to be notified about the meeting and any changes to the time or day you can ask to be added to the circuit Python and these roles on Discord. And with that we hope to see you all next week. Thank you all. Thanks everyone.


And so we will talk about the evolution of current important city sheet in a collision less plasma turbulence. Well, I'd like to acknowledge the person I've been working with for this work, which are Dario Borgogno and a colleague of mine at CNR, Beatriz Ciacchilli, his previous master students, and Massimiliano Rome from the University of Milan, and Luca Comiso from Columbia University. No, this way, right? OK. So an introduction. Current and important city sheet, I hope I convinced you yesterday that can be thought of as a fingerprint of magnetic reconnection and turbulence, respectively. So here are two plots I showed yesterday. This is the formation of a plasmoid. And this was a current sheet elongated and thin, and who gave birth to a plasmoid. And this was a Borticity sheet, which was developing turbulent structures in a simulation of magnetic reconnection. So magnetic reconnection is ubiquitous in several astrophysical environments, where due to high Reynolds number, the transition to turbulence is unavoidable. So in the presence of a strong turbulence, a magnetic field lines reconnection is continuously met along the flow, because you are forcing the magnetic field lines to get closer and closer and to reconnect. Both the processes, magnetic reconnection and turbulence, involve energy cascades towards the small scale. So in some sense, we can say that the magnetic reconnection is an intrinsic element of turbulence and of the turbulent cascade and vice versa. I'm sorry that it's not possible to see very well this plot. But let me say that many works have analyzed the turbulent cascade in resistive MHD, defining under which condition the plasmoid instability influences the energy cascade. And here is a plot, which I'm sorry, it's not very clear to see, but it's a plot taken from a Pierre Eilk paper by Dong and the co-authors in 2018. And so they made a turbulence simulation of plasma turbulence or resistive plasma turbulence. And by these following and subsequent zoom, they were able to show that the structures that emerge from the turbulence cascade are generating plasmoid. So here you see there is a smaller magnetic island, which is a plasmoid. So in such a way inspired by this work, we decided to look at the same problem, but in a collisionless plasmas. Because the collisionless plasmas are most of the time a space and astrophysical plasmas are collisionless. So we analyzed the development of plasmoid in a turbulent collisionless plasma, where the reconnection mechanism is provided by the electron inertia and not by the resistivity. As I tried to explain yesterday, these two mechanisms can give birth to magnetic islands. And we see that actually we found a much more complex situation with respect to the resistive case. Because due to the presence of the strong velocity shear, the typical plasmoid formation has to coexist and compete with the Kelvin-Henmos instability, which I introduced also yesterday. So the outline, well, I will briefly go to the collisionless model I introduced yesterday. And I will review with linear digression the shear flow effects on the reconnecting instability. Well, the numerical setup will be introduced. And then we will try to elucidate when the current sheet disruption goes through the plasmoid instability or through the Kelvin-Henmos one. We'll see how the energy cascade go in the plasmoid magnetic turbulence regime. And we compare this theoretical prediction with the energy spectra. To conclude, a comparison with a resistive case will be carried out. And basically, this is the outline taken by an astrophysical plasma journal paper we published a few months ago on this topic. OK, so the collisionless model, I will go very quickly because it's the same I introduced yesterday, the reconnection model. So this is the question which comes from the generalized where just for the comparison I will make in the end, I kept the inertia term here and here and the resistive term. This is the plasma motion equation. So the vorticity is related to the stream function, which is defined here, and which goes at the across bediff velocity. And here is the current density. And the magnetic field is assumed to have this form. The equation are integrated by a numerical solver, scope 3D, which is a solver for collisionless plasma equation. And it is a three-dimensional, even though we just run here in the two-dimensional case. It's pseudo-spectral explicitly in time and MPI parallelized code. So let's recover what I told you yesterday about the big legit stability. And we want to see the growth rate of the reconnection instability and the Kelvin-Helmholtz instability for a current sheet-like equilibrium. These things can be found in the Biscump book for the resistive case. I will show you how it goes in the collisionless case. So we have a magnetic field, which is the tangent, the blue line. And we have the big legit, which is basically invisible, but is given by the yellow line, which goes like this, this, and then it goes like this. I'm sorry. It's not showing. The linear solution of this model equation, assuming the equilibrium I have specified here, can give even function, the so-called Kelvin-Helmholtz instability, where phi is even and psi is odd. And the pinch mode, where phi is odd and the psi is even. OK? In the case of an ideal plasma, the numerical solution of the linearized equation I showed you before give a stabilizing effect of the magnetic field on both the classes of solutions. But what happens when we have also the reconnection instability, the magnetic reconnection phenomena? So in presence of non-ideal contribution in the plasma home slope, the reconnecting mode are strongly affected by the presence of the shear flow. Here we have taken the parameter for the resistivity and the electron skin depth in such a way to have the same linear growth rate, which is shown here in yellow and blue. So the yellow is the collisionless case and the blue one is the resistive case. And we linearized the system of equation before and we solved it. And we carried out the growth rate for several modes. What happens with the effect of the shear flow? OK, the combined action of the shear flow together with the shear magnetic field in both of the regimes causes a broadening of the spectrum of the unstable mode. You see the red curve is the resistive case and the green one is the collisionless case. So we have more and more unstable. There is an increase of the growth rate. And there is a shift of the peak growth rate towards higher k or higher mode numbers. But there are some differences between the two cases. And first of all, the spectrum of the unstable mode for the collisionless case, broad and less respect to the resistive case. The growth rates on the other side are much higher. So these results already suggest that in a turbulent collisionless environment, the reconnection is the busiest. We receive a booster respect to the resistive regime. So I ask you to keep in mind and back your mind this picture, because I will rely on this later in trying to interpret the results of our simulation. So the numerical setup is a freely decaying turbulence problem, as in the paper. So we are solving the question in this domain. And for the collisionless case, we took the resistivity. We take the resistivity is equal to 0. We had an artificial viscosity in the sense that it is there for numerical reasons. And then this is the value of the electron skin depth. We start the simulation with 10 times 10 uncorrelated equipartition of psi and phi fluctuations in Fourier harmonics. And this is the composition. And the energy is initialized in the range of the wave number mn, which goes from 0 to 10. So we start with 10 at this. Your box is filled with 10 at this turbulent at this. And the energy phi 0 and psi 0 are defined in such a way that the energy is equal to 1. This condition, why we choose this parameter? There is a reason. And this condition is convenient both to achieve early and adequate state of turbulence and also to have thin and elongated current sheet with a high aspect ratio of order 200. So LCS is the length of the current sheet and DE is the electron skin depth, which is basically the width of our current sheet. Because DE is the smallest scale we have in our problem. And this condition has been shown to be necessary for the onset of the plasmoid instability by Comiscio Cironi in 2008 and 2009, sorry, 18 and 19. So here is just an example of how the evolution of our system goes through time. And we have performed the numerical simulation with several resolution to make a convergent test, and so in the following, I will show you only the highest resolution run that we have. And I anticipate that the plasmoid activity starts for the collisionless case well before respect the reaching, well in advance, respect the reaching of the maximum turbulent activity measured by the maximum of the root mean square value of the current density. So I am sorry for this. Maybe I can try to close this light because it's impossible to see anything which is this. Well, not much better. I say this, I like this, but that's OK. Yes, if you can, that's a good idea. Well, you can look here. I might be a bit changing it, I don't know. But the next picture should be more visible, I hope. OK, thank you very much. Anyway, I'll try. Yeah, but not now. OK, so here, well, the initial light is merged, giving rise to the formation of thing and elongated current sheet. Here is all the integration domain. We have to divide it in four subplots because otherwise we couldn't handle such a big number, such a big data. And in, well, in principle, in each subdomain it's possible to see current sheet evolving in plasmoid chain as well in cabin animals instability. And I hope in the next slide this will be more visible. OK. So to highlight the formation of the plasmoid, we overplotted the magnetic flux surfaces. OK, so we are in 2D, so the magnetic plasmoid surfaces are well-defined and they actually can individuate the magnetic islands. And so here is a zoom for each of the four subplots I was showing before. And then you see that it's possible to see plasmoid formation here, OK, here in this other plot here. You see there is a plasmoid chain. Here there is another one and here as well. But at the same time, you see that there are a region where the magnetic field is much weaker. So there is no structure of the magnetic field. And you see that there are anyway laminar structures which are evolving through the Kelvin-Ellemann instability. So at the same time, you have both the evolution of the current sheet. So let's try to see if we can understand when the current sheet is going through to be disrupted. Yeah, I don't know. I think contrast. Contrast, because it's possible to see on the screen of the computer. OK, I don't think I have the remote hand. OK, I go on if you find it and you can try to manage. OK, so let's consider this particular current sheet. OK, you see this is evolving through plasmoid. So this is a snapshot at the time before. And the current sheet was still in its laminar formation. OK, so we have evaluated the velocity in red and the magnetic field in blue across the current sheet. OK, and you see that the magnetic field is much higher or it's higher than the velocity field. A condition which I remember is stabilizing for the Kelvin-Ellemann instability. OK, so the reconnecting instability is favored by the fact that the magnetic field is higher than the velocity field. What happens to these current sheets going on with time? Because, of course, inside the plasmoid, turbulence is anyway generating. OK, so in the case of the plasmoid chain formation, the turbulence is bounded inside the magnetic structures. Where the vorticity and the current density exhibits small-scale vortexes. OK, when the plasmoid becomes larger, the mutual interaction leads to the coalescence between the magnetic structure that belong to the same plasmoid chain. And these results in large turbulent regions where the magnetic structure eventually disappear. What I did, I don't know, it may close like this, right? No, it's not a graph. Thank you. The magnetic connection between nearby turbulent region finally drive the appearance of macroscopic turbulent domains, OK? So it is important to note that the Kelvin-Eilmonts dominated current sheets never show the plasmoid formation, OK? But just to tell you that in this case, I was showing the vorticity sheets because vorticity and the current density for this collisionless model behaves exactly in the same way, OK? So now let's go if we can understand which is the situation under which the current sheet undergoes the Kelvin-Eilmonts instability. So in the same subplot I was examining before, I am now considering this structure, OK? This current sheet. And again, this is the time before the current sheet, OK? At the time before he got disrupted. And here are, again, the velocity in red and the magnetic field in blue across the layer. And in this case, we see that the velocity field is much higher than the magnetic field, OK? So in this case, the Kelvin-Eilmonts instability dominates. And the current sheet evolve directly into turbulent regime. And as I said before, this kind of current sheet never exhibit plasmoid formation. So there are two distinct paths along which they can go, they can develop, OK? So here is, again, the vorticity at a later time. So the vorticity layers start to develop the Kelvin-Eilmonts instability leads to its complete disruption in many small vortices. So the layer I have examined, of course, are just representative of the many ones that form and disrupt according to either the plasmoid or the Kelvin-Eilmonts instability, depending from the relative magnitude of the magnetic and the velocity field. So although distinguishing between these two evolution paths may be very difficult, well, we believe that they could exist and is crucially in explaining the energy cascade, OK? And I will try to convince you now about this. So here are the energy spectra for the energy cascade for the resistive case, OK? So in the resistive regime, the onset of the plasmoid instability produces stippening, OK? Then this, I'm not very good with the point, with this point. Any, OK, here, there is any whose slope is given by k to the minus 2.2, OK? This is the result of Comiso et al physics of plasma 2016. So k star is the k at which the plasmoid instability starts. In the collisionless case, thanks to the collaboration with Luca Comiso, we made exactly the same calculations. And we found that the stippening, the slope of the change when the plasmoid magnetic regime is developed has to go like k to the minus 3, OK, to the zero order. The plasmoid-dominated regime in this case ends at the available scale length, which for us is given by the inertial scale, the collisionless scale, skin depth, please. So one scale, but here we are seeing multiple scaling. So does it mean there are multiple scale at least the energy is injected? Does it mean that? Well, multiple scale at which the energy is transferred, because you inject the energy at the beginning at a large scale, and then you go through the turbulent cascade. Well, here because there is a new regime in which there are other instability which take over, which is the plasmoid instability. And the plasmoid instability affects also the turbulent cascade, OK? That's the reason. And OK. So let's see if we can recover this k to the minus 3 spectra in our simulations. Oh, no, no, that's OK. Let's try on this picture. So that way. Oh, so now you can see. You can redo the top. It will be uploaded, so OK. So now on the other screen. OK, so let's wait. This one is not working. Here is not. You can appreciate here. Yes, it is working. OK, thank you very much. OK, OK. I'll just leave it here. So here are the magnetic and the kinetic spectra. OK. For reference, here is the minus 3 slope. And you see that we find a smoother slope than the theoretical prediction, OK? The magnetic energy spectrum tends to flatten consistently with the observation that the fully plasmoid mediative regime is somehow inhibited by the presence of the turbulent dominated, of turbulence dominated by the Kelvin-Helmets instability. OK, so this is a difference respect to the resistive case. And I will show this later again. And the kinetic spectrum is completely the culprit from the magnetic one. And it's different. While in resistive MHD turbulence, they goes together thanks to the collisions. Here they have a different slopes, OK? And indeed, while here you can recognize the presence of a knee, which is due to the developing of the plasmoid mediative regime, here you cannot see this sign, OK? There is no need. And here is the comparison. So here we run for the 19,000 resolution. The two cases in which we choose this value of the resistivity. And we have no electron skin depth. And here is the reverse, OK? So no resistivity and the electron skin depth. The structure are similar, you see? We have basically the same structure. But resistive current sheets are less sensitive to disruption and evolve following the laminar behavior, OK? While at the same time, you see that here you have already plasmoid and you have already evolved in a turbulent, in a completed turbulent regime. And this is a big difference because the number of plasmoids in the resistive regime significantly increases as we follow the turbulence evolution. And we get closer to the activity, to the turbulent activity peak. While in the collisionless case, the plasmoid start to form well before the turbulent activity peak. So this is a difference in the revolution. So basically, we stop this simulation before we could get to the plasmoid mediating regime. So but from the linear analysis I made at the beginning about the effect of the Kelvin-Helmholtz instability on the magnetic reconnection instability on the plasmoid instability, we could expect that the impact of the velocity shear on the growth rate of the reconnecting mode to be greater in the collisionless regime. Because we saw before that the peak of the peak, it was basically something like this. And then there was for the collisionless and the resistive regime, they were DE and ETA, they were almost the same. But this was the DE case, while the resistive case was like this, something. And so we could expect, oh, thank you so much, we could expect that in the collisionless regime, due to this announcement of the reconnection instability, we could expect that the plasmoid started to form before. So it is reasonable what we see. And the second difference, the big difference is that in the resistive regime, the current and the vorticity sheet are not affected at all by the Kelvin-Helmholtz instability. So this is a difference that they stay in the laminar structure until they evolve through the Kelvin-Helmholtz plasmoid instability. Here is a comparison of the spectra. And you see the spectra, we are not so close to the minus 2.2 resistive spectra. But the reason is that we stop the simulation because we could get to the plasmoid mediating regime. I mean, the results in the literature are solid. And we do not have to check them, but just to help us in understanding the difference with what we were seeing. OK? So plasma collisions make, and you see that the kinetic and the magnetic spectrum are quite similar in the resistive case because there are collisions that allow the two spectrum to evolve in the same way. So this is what I wanted to say about this slide. OK. So conclusions. And then I will show future perspective, try to remember some of the things I told you yesterday. So this problem has been addressed. The problem of the turbulent cascade in collisionless regime has been addressed for sure with a different perspective from what is usually done in this field because we were focused on the magnetic, on the structures, and on the interaction between the magnetic and the fluid instabilities. OK? So there was a question that has no answer at the time we made this work. And the question was, do plasmoid forming collisionless plasmas? Yes, they do. And the plasmoid instability develops also in collisionless plasma under appropriate choice of parameters. So you have to make a choice of the parameter that allows you to get the thin and elongated current sheet that has a ratio of order LCS over DE of order 200. At least. OK. And if they do, this is the second question, if the plasmoid form, how do they affect the thermal and energy cascade? So the energy spectrum of the turbulence in the plasmoid mediated regime has a different slope. And most importantly, the magnetic and the kinetic spectra are decoupled. OK? So they have a different behavior. And how do the plasmoid interact with the Kelvin-Emmels instability? Well, the plasmoid instability is enhanced by the presence of shear flow. OK? OK. So future perspective. Well, yesterday we saw the generalized home slow with many terms. And one of these terms was related to the ion sound larmor radius, which is related to the pressure gradient in the generalized home slow. So trying to put more ingredient in this framework and trying to still relying on the fluid model, which are more tractable for many reasons, it is possible to take into account also the scale length, which is bigger than the electron skin depth. OK? And so it will be, in our opinion, our next step is to put this ingredient into these turbulent studies. And we already make the linear analysis. So I give you just the flavor of what's going on. And so this is just the plot I made. Well, I try to make it again on the blackboard. Collisionless resistive case and resistive a collisionless case with Kelvin-Emmels instability. And here in the dash of the black line, these are the growth rate for the collisionless reconnection rate in presence of ion sound larmor effect. And in the solid line is what happens when we put on top of these shear flow instabilities. And you see that the spectrum of the unstable model grows much more than before. OK? And then there is a suppression in this area. So well, it will be interesting to see how these strange behavior will affect the turbulent cascade. We have to address this problem. And the second problem we are interested in, of course, is to go to three-dimensional simulations and three-dimensional effect. Well, from the physical point of view, it will be really interesting to have turbulence and magnetic chaos. Yesterday I showed you that when you go to 3D, the magnetic field lines equation are no longer integrable and you develop chaos. So what's going on? I don't know. But we believe it will be a very interesting topic to see how the interaction of the turbulent motion with the turbulent magnetic field with where these will drive us. And of course, there is an issue because for doing simulation in three-dimensional, a technical issue, for doing simulation in three-dimensional setup, it is necessary to go from CPU to GPU because otherwise it's not handable from the point of view of the numerics. Or at least you can do very low-resolution runs, but you need very high-resolution runs here. And so I think I stop here. And I just want to thank you. I have a garden. It was faster. I'm sorry. But so if you have a question. Yeah. I have a question about your last comment. I found that deep in you. Yeah.  And in my view, it's an awkward transition. Yes, it's really awkward. Because the codes that you've optimized, written and optimized for CPUs, it's hard to kind of transition them to GPU. If you start with scratch with GPU, it's not such an ordeal. But transitioning old codes to GPU is hard. And it can take full time. Good time. Yes, sure. Absolutely. Indeed, we started and we are not succeeding in finding someone who can do that because we need a person dedicated. You cannot put a student to do that. Because, I mean, a PhD student and then what he has in the end. So it's now you need the computer science exactly. But it's difficult to find. And we are trying to. You're funding but not personnel. Exactly. And well, we are trying to collaborate with the bigger computer center in Italy, which is the Cineca. And well, actually, Dario Borgonio participated in a hackathon with them. And they started the collaboration. But he cannot do that the full time. And so we are slowly. It's a slow transition. Are you trying to rework old codes or kind of build up on scratch? No, we are trying to. Well, they made in this hackathon some optimization. But it's a hard work because yes, you have to look at for what I understand. Because I said that I don't want to be involved in the GPU transition from the technical point of view. But basically, they have to look at all the communication and to understand where the communication are low and why they are low. So it's a. And then there are many, many. You are taking old code. Yes, we are taking the old code. Yes, which is older. But it has been renovated so many times. So it's not so old. But it was written for CPU for sure. And then we received many, many invitation from the Chineca for quantum computing courses and experiences. So I'm wondering, do we really need to go through GPU? And then we will be asked to go to quantum computing. I don't think so. No, I don't know. But that's a joke. But it's a field which is going fast. So if you don't have full-time people to work, you lose the train. And you have to think already of the next generation. I don't know. Because of all the work that people have done for the message passing techniques for the running blaster has to be done with that. I kind of feel like the MPI GPU era was OK. You know, it could be a physics system learning that's part of your toolkit. Exactly. That's it. I stop it there. That's not the case anymore. You really have to be multidisciplinary. You need experts in this area working on this. Yeah, it's difficult. I agree. There was a question over there. The driving is the electron skin depth or the resistivity because the plasmoid is a magnetic instability. And so it is driven by or in this case, the resistivity or the electron skin depth scale lens. OK. That's the mechanism which breaks the frozen incondition. OK. That's it. The sequence is of order D of this electron skin depth. Well, in a tokamak, I would say it's two centimeters, probably something like that. And of course, if you go to astrophysical plasma, it's much greater. Don't make me to say numbers now because I could be wrong. OK, you're welcome. Well, this is something I have the time. I can put the other presentation. So I can show you all the magnetic fillings. Exactly. As if it were time, then they tend to divert it on an electron path. That's what chaos is. OK. It will be time. Yeah. That's OK. Well, here is an idea of, no, no, no, I was wrong. Sorry. Where is here? OK. So these are the equation of motion. So this system can be the equation of motion for the magnetic field line. OK. So when you have the third dimension, which can play the role of the time, so at fixed time, Z can play the role of time for the magnetic field lines. OK, so this equation, if there is a Z dependence, of course, are not integrable. The hae, me, which equations they are? Do you recognize them? Hae? Haemma. Haemma. That's why. So these are the Hamilton equation. OK. It takes away time. You look at the Z as a time. It's your time. And the psi is the Hamiltonian of your system. OK. And so these are the conserved quantity, the conserved energy of your system. You can think in that sense. Yes. P and Q, exactly. P and Q. And so you cannot integrate them. Or you see, since as far as you have, in this case, it was two magnetic islands at the beginning, OK? So as far as you can consider them as linear and so not interacting, you can visualize the two magnetic islands. But when they start to grow and to overlap and to become closer, so there is a critical criterion which says that if the magnetic islands overlap, they develop chaos, OK? And here you see there is a developing of chaos which started from the first, the most unstable magnetic surface, which is the separatrix of the magnetic island. And then chaos develops in all the domain. So back to the question I was interested in, as a further word, so what I've shown today is, OK, in such a kind of situation where we know that there are also hidden structure in this magnetic chaos. So what happens if we have also a turbulent fluid? This is our goal, final goal. Thank you very much.