Episode 3 Transcript

Episode 3 Transcript - The Middle is a Pumpkin

Tod Kurt 0:03 Welcome to the bootloader. I’m Tod Kurt.

Paul Cutler 0:05 And I’m Paul Cutler. Tod and I each have three things to share with you. And we’ll spend a five minutes but no more on each one. Todd, why don’t you get us started?

Tod Kurt 0:13 Sure. This week, I’d like to start out with talking about the 10 cent, you know, point one dollars, Arduino chip. This based on RISC five, a little bit of backstory here. One of the things that made the Arduino platform really useful and popular back in the early 2000s, were two things one, well, three things up count the huge community and effort. But the hardware specific things is the fact that was based off the Atmel 80 Mega 168, which was only $4. And it contained all these features that contain the 16 kilobytes of flash 2k of RAM, it was a RISC architecture, it had a bunch of useful peripherals like serial ports and and I squared C ports. And then separately, there was an open source compiler called AVR GCC that you could use to code it. And on top of that was built hardware, you know, it kind of took the world by storm because the closest competitor at the time was the $50 basic stamp. And so if you wanted an easy to use microcontroller platform, it really became obvious that Arduino is the solution. And so And thus, you know, now 20 years later, almost everything has kind of an Arduino, version or mode or whatever. And so recently, the company WC H is the maker of this CH 340. USB to serial chip that you might have seen on some of these dev boards that are out there, they’ve been getting into making CPUs, and they just announced that there is a 10 cent chip that is based on the risk five architecture. It’s basically an Arduino class processor, it’s got 2k Ram, 16 kilobytes of flash 16 kilobytes of flash 18 io eight analog inputs, it’s called the ch 32 v 003. I first heard about this from our fellow hacker Akiba on Twitter, who was quote tweeting a guy named Patrick Yang, who works at WC H. And the really one of the other nasty things about this is it this is a, it’s based on risk five, which is an open source architecture for chips. So before like if like all of our chips nowadays that we use, like from the chips on our on our cell phones, to the chips in our Raspberry Pi Pecos, are all based on ARM cores. And it’s a really good popular core that can scale from really big powerful things like you know, tablets and phones down to like little embedded processors. But for every chip, you have to pay a license fee to arm like the chip company pays us if you don’t when you buy the chip. But the cool thing about risk five is it’s open source. So you just get the core and you kind of configure it for the scale of project you want. And then you embed it in your custom silicon and you add the other parts of it you want like the memory or the peripherals and stuff which could also be open source, perhaps, and then you make a new chip. And that’s what they’ve done. So this isn’t sort of an open source design Chip, I think they’ve not actually released the design, because the particular licensing of RISC five doesn’t require that. But it does mean that the chips themselves can be a lot cheaper, because there’s not this, this license fee that is on top of it. And so I’m really excited, this just came out. And so they’re only available on like, you know, in sample quantities from LSCs, the sort of DigiKey in China. So it should be it should be pretty interesting to see how that goes for. There’s a bigger Big Brother of this chip called the ch 32 v 307, that has built in USB, and there’s a micro Python port for that there’s rust bindings for it, there might be an Arduino version coming for it as well. And so I think this will be a really cool set of chips to observe over the next coming years. Because it could be like the next big thing it was like it could drive down the cost of little projects even more.

Paul Cutler 3:27 Yeah, there’s no question about it, or mean RISC five, I believe, is under the Linux Foundation umbrella. And they’re a great steward of open source projects, whether it’s hardware or software. And it’s fun to watch that open source ethos start to infiltrate hardware.

Tod Kurt 3:41 Yeah, it’s kind of crazy. Because because a lot of these when you’re designing these chips, it’s actually kind of a software problem. People often write these things in this these languages called Verilog, or VHDL, which is a description language for how you connect the hardware bits together. Um, so you don’t draw schematics for the insides of a chip, you can, but you often are laying them out either sort of with Illustrator to like lay off the actual geometry of the of the transistors, or using this coding language. It’s very strange because it mirrors real life where everything happens at once. It’s not like a normal coding language and things kind of happen in a line. So yeah, I’m really curious to see how this goes forward. I’m hoping to get some samples soon. But I think it might be a couple a couple of weeks to a month before I get any value.

Paul Cutler 4:21 Gotta take the slow boat over. So that’s right.

Tod Kurt 4:26 So what do you got for us this week?

Paul Cutler 4:27 Well, let me ask you this. Which code editor do you use?

Tod Kurt 4:33 Well, it depends for most of my coding in C and Arduino, things like that. I use Emacs I’ve been using emacs since I’ve been since I was a little tight but for no Jas programming, which I do a lot of I use VS code or atom. I haven’t quite made the full transition yet to VS code for editing Linux config files. I use vi because I want to I want to be exactly certain exactly what characters have been changed. And so yeah, it’s kind of all over the map. It kind of depends how about yourself.

Paul Cutler 4:59 I just Switch to JetBrains fleet, which just came out last week. And I know that you know, as you mentioned, your code editor is a very personal choice. And I’m shocked to hear that you use VI and emacs but good for you. But I’ve been using PI charm, I use PI charm for about three, four years, switched to VS code for a year and then switch back to pi charm earlier this year. And then when JetBrains, who makes pi charm as well as a number of different integrated development environments, IDEs, they have one an IDE for every programming language out there. But they came out with fleet last week, and it’s in public preview. And it’s free to use right now while it’s in preview. And it looks like there’ll be a free version and a paid version with a slightly different feature set, which is similar to what they do with PI charm. But this one has a focus on speed. Fast and lightweight is how they describe it. So when you first open it up, it’s a code editor. But there’s a button in the upper right hand corner called Smart mode that enables IDE features including code completion, quick fixes, and, and more stuff like that. So if you want it really light and fast, don’t click the smart button. If you do want to get some of that code completion, those IDE like features, hit it. Now the other thing that’s really neat is it has a collaboration mode, you just hit one button to start a session, it copies the URL, you send that to your friend or your co worker, they click it, it opens fleet, and it opens the project that you’re working on. I tried it on my Windows box in my MacOS box just to see how that collaboration worked. And it was really one click easy. And all of a sudden, I’m looking at my code from a different computer. So if you’re doing remote coding or pair programming, it’s really really cool. One of the other things that can do similar to VS code is it can be distributed. So you can connect via SSH to another box where it will install a version of fleets. And you can actually use remote computing power to run your your ID remotely. Or you can connect to Docker or JetBrains space service service. I’ve been using it I like it, it feels snappy, I don’t know if it’s just in my head, but it does feel quick. And as I’m a hobbyist programmer, you know, I probably only use a small percentage of an IDS features, I’m not using the profiler, and that kind of stuff, which is one reason why I like fleet is I’ve got a pared down feature set. But it’s still more than just a code editor Mike give me. Now I’m going to call this what this is. And I don’t know if JetBrains will appreciate this or not. But JetBrains is competing with VS code. It looks like VS code, where VS code has icons on the left hand bar, this has a couple on the top instead, the look and feel was very reminiscent of it. And I think that’s great. I think, you know, competition is good. It’s going to drive innovation. And the other thing is, if you’re looking for a new editor, GitHub announced back in June that they were sunsetting Adam and come December that will reach end of life. Here’s another option for your for someone to try if they’re currently anatomies around want something that’s still light and fast and maybe don’t want to move to VS code for whatever reason. Yeah,

Tod Kurt 8:06 there’s the whole like similarity of editors or the reviews IDE style editors, for me started way back in in with with Sublime Text, which I don’t even know how long that is old, like 15 years ago, but it had a very similar things sort of a three pane where like, the right side is sort of a top down like 10,000 foot view of your of your file. And the left is like sort of your file hierarchy. And the middle is your code window, and it doesn’t run a bunch of really good, hinting of like coloring and block completion, if you’re using a language that has curly braces and stuff, and like Adam totally stole so much of that and VS code, still so much of what but both Adam and sublime are doing and so it seems like you know, it’s like, Oh, if it works, let’s just use it. And for me, that’s great. The problem I always have with a lot of these big editors like all these is I came from a world where you are typing around in the terminal and you cd into a directory. And oh, there’s a file. So you just type your editor space name of file, and you edit the file real quick, and then you get out. And, and that’s just not the way you use these big programs where like, if you just want to just open up one file and edit it and close it again, that’s just not how it works. You know, they take like, you know, 10s of seconds to start up. And they’re meant to kind of just be this persistent thing kind of lives on your computer.

Paul Cutler 9:15 Right there. They’re really focused on those big projects, just like you said, not that one file. And this is trying to find that middle ground, I think,

Tod Kurt 9:22 yeah, just just the fact that it’s got this the sort of two modes of the Quick mode. And the smart mode is very interesting. I’d like to see how that turns out after a

Paul Cutler 9:30 while. What do you have for us next?

Tod Kurt 9:32 All right. So all my things are pretty much all very much low, small hardware things. So in continuing on small hardware, there’s a thing called person sensor by useful sensors. Useful sensors is a small companies created by Pete Warden, who is one of the developers of TensorFlow, Google’s open source machine learning platform. I mean, it’s also a big believer in the tiny ml movement, which is moving a lot of the machine learning stuff down to the devices to be as close to you on hardware that you control rather than some mysterious cloud system somewhere that you have no real input into one of useful sensors. First piece of hardware is this little tiny board that’s about as big as a Stamp called the person sensor. And it detects faces. It does basic facial recognition, it can determine if you’re looking at it, and it’s $10. And you can buy it right now from SparkFun. You talk to it via ice word. See, it’s got a really easy API, it can remember up to eight people the two people don’t have any identification associated with them it just it just like numbers the Pete the person’s zero through seven mean you have when you put it into sort of a config mode, it starts to remember different people and then later with person number three comes back up you can go Oh, person three has arrived and they’re looking at the device. It’s got stomach you t quick connectors on it. Pete Warden’s example, that he has a has an article on Hackster IO with a video, he’s actually using an Adafruit Twinkie, with a with a tiny quick cable going to the person sensor. And it’s this whole thing, it’s like, you know, the size of a stamp. And what he does is he uses it to look at him while he’s at his computer. And if he looks away from his computer for long enough, it auto locks the screen. That’s awesome. So and it’s got little LED on it. So it’ll tell you, Oh, I’ve detected a person. And so you can quickly see as I was little LED on, and it’s recognizing me. And then as soon as you look away, if you’ve got like your phone recording it, because you can’t look back at it. If you get your phone recording, you can see that the LED goes out, and then the screen locks. It’s just amazing that like this, we’re doing facial recognition on a little $10 $10 board, which means that the meat, which means the parts cost is probably on the order of like $3, maybe even less, and yeah, you can buy them now. And so so I’ve got a couple of showing up I think maybe tomorrow. But I can’t wait to try this out. There’s API’s in Arduino, RP, 2040, C, Python and circuit Python, like one of the other examples I saw was running off of a Raspberry Pi, where they just hooked it up to the I squared C ports on the Raspberry Pi and then use normal desktop Python to control it. And this is pretty good developer guide. But the API is so simple that you don’t really need a lot of big documentation to understand how it works. Because it’s a very small simple device, basically, just ask it, is there a person and it says yes, person three, and they’re at position x comma y, and like confidence in the in this person three is like 50%. So yeah, so I’m very excited for this. It’s pretty interesting. And it’s like, it’s hardware that you fully control. It’s not sending data up to the net somewhere?

Paul Cutler 12:17 Well, that’s the first thing I thought of is what is the impact for becoming a surveillance society? Right, we were being monitored all the time. And now here’s a really cheap tool, what are people going to build with it? Yeah, I want to believe that people are going to build good things, but you never know. But to your point, not being cloud connected is a huge bonus.

Tod Kurt 12:36 Yeah, totally. Like one of the things that I really like about this is that because like Well, the nice things about tiny ML is that the problem space is small, because the things have to be on a handheld device. And so it can’t do a bunch of, you know, global recognition of a person, it can just kind of tell Is there a human shaped thing, looking at me, like, you know, in the case of, say, a coffee maker, where you’ve got two people who want different kinds of coffee unit, and then a person who walks up and just presses the Give me coffee button, it’ll automatically create the right coffee for you, or you can maybe, you know, look at the wall switch and say, Turn off that light. And you’ve got the cheap audio recognition thing somewhere, and it just knows that like, okay, a person is looking at that light. And so I’m going to turn off that light. And so I think there’s a lot of really cool applications that don’t, it just requires sort of the concept of a person looking at a thing, rather than knowing that it’s, you know, Paul Cutler, you know, living at this address with this phone number. Alright, so how about you what you got for number two,

Paul Cutler 13:37 GitHub is in the news, and not necessarily for a great reason. Oh, this past August, they launched copilot, and they call it your AI pair programmer. So it’s using open AI codecs. And we just talked about open AI last episode with whisper, but they fed it all these Open Source Repositories. And now when you’re coding, it can make suggestions, not just line completion, but huge blocks of code. Well, some folks aren’t really happy with that, and I don’t think I blame them. Matthew Butterick is a writer designer and a programmer who’s been using open source for 25 years, and he’s also a lawyer. So if you go to get hub, copilot, he lays out the case for why he thinks copilot is problematic. So he’s looking for people to talk to along with the Joseph severity law firm, because it’s a potential lawsuit. He’s not he has no one’s brought a suit yet. But I think Jamie’s a winsky aka JW Z, a co founder of Netscape and Mozilla also blogged this week that he’s looking at a possible lawsuit as well. So I don’t know if they’re together or separate. But there’s people out there that are really concerned. And what’s really neat as Mr. Butterick shares examples of the problems and it comes down to two things, one, how did Microsoft and GitHub train it? And then how is it used? So he asked some great questions he makes Some points that Microsoft probably could have done this a different way instead of sucking up all these Open Source Repositories, it could have been opt in, they could have paid some of those developers. Well, Microsoft claims its fair use. Well, if these are all open source and the majority of licenses almost every single license requires attribution, even the some of the most free and open licenses out there. And while there’s no attribution with copilot, even when it’s pasting large chunks of code, you know, you don’t necessarily know what license it originally was under. Bradley Cooper, the Software Freedom Conservancy asked GitHub in June of 2021. For legal references to backup the fair use arguments. Microsoft was never able to provide any Mr. Butter it says that’s because there is no legal authority for Microsoft’s position. And I know Bradley, I worked with him when I was at the get own foundation many years ago. And I don’t know if there’s anyone smarter when it comes to open source licenses. So if he’s concerned and asking those questions, maybe we all should be. But Mr. Butterick goes on and shares a couple of examples. He shares tweets from Stefan Karpinski and Chris Green, who wrote the original code and then shared exactly what GitHub copilot was suggesting. And it was the same code. Now when we look at copilot usage, Mr. Butterick, is asking what could the impact on open source communities be? And I think this is a great question. He argues that Microsoft is creating a new walled garden that might inhibit developers from discovering traditional open source communities, co pilot is suggesting large blocks of code, why would you ever need to go look at the source code repository, or talk to the developers on a mailing list or a forum? You know, the list goes on. So he brings up some good concerns. Now I used co pilot right up until it became a paid product. As a hobbyist, I wasn’t really ready to open my wallet, and even the circuit, Python, large parts of that were written using co pilot, and I was able to refactor large parts of it very easily with just a couple button clicks. It’s cool. But it’s also kind of scary. This is something I want to keep an eye on of where it’s going. And what is that impact on open source communities.

Tod Kurt 17:13 I think this is a really a really great sort of much easier to understand example, of the problem of these AI systems like, like lizard lizard, and there’s been some talk of the Oh, where is are these Ayar generators, like dolly and stuff getting their data from, because like, Oh, this looks, this looks a lot like so and so’s artwork that has been this really popular in this community, you know, and I would know them because I’m not in this community. But anyone who’s in the community knows that clearly, this is informed by it. But it’s kind of hard because of the way it kind of meshes together all the different influences. Whereas this, it’s so easy to see that like, oh, it’s totally pulling this function from this very well known piece of code. And then it’s also copying the wrong license that was at the top of another file that has happened have a similar and so it’s just like, it’s not only is it is it just kind of stealing code and not attributing it correctly, it’s then putting the wrong license on it. It’s just like, Come on, man.

Paul Cutler 18:07 It’s GPL license, you can’t be doing that period. Yeah,

Tod Kurt 18:11 I like how that GitHub is, or whoever it was, was touting this as a sort of improvement to the IntelliSense sort of code completion stuff. And I’ve always had a problem with that, because me being an old grizzled programmer, you know, I don’t want to just be able to like Tab, Tab tab through my function definitions and have it autocomplete everything for me, I actually want to like look at the API docs and find out what I’m putting you actually give to the function. On the one hand, I’m like app, people shouldn’t be using this stuff anyway. But the other hand, I also copy stuff from from Stack Overflow, you know, and usually I try to give attribution to that is something like thank you anonymous person.

Paul Cutler 18:45 Almost all of my circuit Python projects or some form of a product that Adafruit did I take their code, I modify it. I don’t think I’ve written you know, code from scratch yet. But I always leave those attribution blinds at the top and make it really clear where this is coming from. Yeah,

Tod Kurt 19:03 that’s the thing is we’re always building on other people’s work, like none of us, like unless you’re getting the sand off the beach and making your own chips in a forge. It’s like everyone’s building on someone else’s work. What’s your next one, thinking of reusing reusing code. So I’m a newbie to Python. But I’ve been using circuit Python for many years. And so I want to talk about a ulab, the numpy for circuit Python. And so if you’re a Python person, if you are have done any sort of Python work, you probably have come across a numpy. It stands for like numerical Python. And it is designed for doing operations on large sets of data. In a lot of programming languages, you’ve got like a save got a list of numbers, you need to do a bunch of math on those numbers. Like say, maybe just want to add 10 to all the numbers in your big list. You could run a for loop, and you just go through each each one at 10 tenants and, and that’s one way to do it. But in Python, if you’re doing for loops like that, you’re probably doing it the wrong way because Python is not that cool. Have a language like in C, that’s the way to do it. So usually try to use some sort of a built in function. So there are built ins for in Python for things like the concepts of map, filter and reduce. And that can help you. But if you’re doing math stuff, you need math type functions. If you’ve got matrices and vectors, you want to do vector operations, you need NumPy. And NumPy, is used for like all this kind of stuff for like editing images, audio machine learning, it’s a efficient wrapper around a bunch of matrix math, this well written c is really efficient. And so you start to think when you when you use NumPy, you really start to think of Python more like Lego, where you, you find the various blocks that are perfect for building your thing. And yeah, you could try to build everything out of one by one Lego block, but it’s probably not the right way to do it, it’s going to be a lot slower and harder to deal. So circuit, Python doesn’t have NumPy, but it does have ulab. It’s basically just the array and vector math portions of NumPy doesn’t do I’ll have all the linear equation solvers and the curve fit analysis type stuff that NumPy has. And that’s perfect, because the stuff I want to do in circuit Python with a larger arrays is usually like larger arrays of LEDs of NeoPixels. And one of the common things you want to do when you’re doing NeoPixels serving doing led animations is fade all the LEDs down a bit by some percentage. And then so like if you just were to turn all the LEDs on, and then fade, fade fade, they’re just kind of slowly fade to black. Pretty much every LED animation you see will have this at some point in their code. Some examples, like the silent effect, where it kind of has an LED light go back and forth with a trail behind it. What will you do that as you just light up an LED, fade all LEDs by a little bit, go to the next led, fade all the LEDs a little bit and you just from those two steps, you get a natural one light moving with the trail behind it. Another is like a like a firework effect where it’s like shot in the face kind of go, all you do is pick a random led, fade out, pick your enemy, the fade them all out. And so that’s what this is. Of course, if you’re listening to this, you can’t see us, this is a fire effect. And it’s a pretty reasonable fire effects. It’s just a matrix of LEDs, random one turning orange and then fading down to black, and looks pretty good as diffusers, it actually is kind of a reasonable cheapy fire effects in like eight lines of circuit Python, the reason why this can actually work is because I’m using ulab or like circuit Python NumPy. If you were to do the for loop, on tuner, 56 LEDs doing little fade down, it would take 40 milliseconds. And that really impacts your frame rate if you want to do like really cool fast animations. But if you do have the same, same type of fade in ulab, it only takes four milliseconds, that’s 10 times faster. And so in the shownotes, I’d have links to a little write up I have on this and some links to some videos on some some like effects you can do with it. But I’m curious to see how I can expand this. I want to maybe make a little little LED sort of toolkit that people can use that are based on the on you lab math. Oh, that’s great.

Paul Cutler 22:57 And I’m not sure if it’s you lab or micro lab, but I use it on the audio reactive projects. So it takes Oh, right on, it takes the microphone inputs, converts that to a matrix. And then, you know converts that to the LEDs. Oh yeah, the FFT equation is that the word I’m looking for? Algorithm algorithm. There’s an FFT algorithm that Jeff Eppler at Adafruit wrote. So if you’re ever looking for audio reactive projects on the Adafruit Learn site, almost all of them use microlab. And use that same FFT T calculation.

Tod Kurt 23:32 Yeah, that’s, that’s like one of the best, the best things they kept when they when they were stripping out all the stuff that makes NumPy very huge. One of the best things they kept was the fast FFT algorithm that’s in there. So you can do stuff like oh, I want to show the frequency components of audio. And that’s easy to do when you’ve got this little NumPy thing that just says, take this sample of audio and turn it into an FFT.

Paul Cutler 23:55 My last one is a fun one is called maker duck. And I would encourage everyone to go to Duck, and what you’ll see is anywhere from seven to nine 3d printers going at the same time, this is a Twitch live stream, and technically can be anything maker related, such as crocheting or painting, but I’ve only seen 3d printers on it. This is a wonderful community. Now I like watching it because I find 3d printers soothing, I find them almost mesmerizing. I’ll turn it on an extra TV or put it on my extra monitor at times. They have requirements. If you go to that Twitch page, you’ll see what you need to do to join. But one of the things you’d have to do is add your name and then the name of the thing you’re printing. So it’s sometimes fun to see what other designs people are printing for inspiration as well. But the community is headed up by a gentleman by the name of Chris Pirillo, and I link to his Twitch account as well. He goes live every night, I think, around 6pm Pacific. He’s a huge Star Wars fan so he’s always printing something Star Wars related. There. This week it was the pumpkin TIE Fighter imagine a Star Wars TIE fighter but the middle isn’t is made out of a Halloween pumpkin. And he’s got a huge a whole crew that helps him out zombie hedgehog fix him, dude. Tesla’s is are their handles that they go by. There are people that are 24 hours a day managing which printers are on that stream. Everything you’d want to know about it is on the Twitch page. But it’s a they have a wonderful and very active discord community as well. This is somewhere where I’ve lurked I think I joined a few months ago, but I haven’t been an active member. But it’s so fun just to watch all the enthusiasm around 3d printing. If you have a 3d printer, it’s a community that you might want to look into. The discord has channels for everything you can think of from just chatting in the cantina. Again, Star Wars themed to models to make to showing them off or even tech support if you need help. It’s just a great community that just has a lot of fun and shares that fun with everyone. They can highly recommend it.

Tod Kurt 26:01 This is so cool. I’m looking at it right now. And it’s a bunch of different kinds of 3d printers to it’s like there’s a some random Delta, there’s a Prusa mini there’s like an Ender. There’s like some homemade thing. It’s it’s just it’s so cool to see. I mean, this person’s got two 3d printers actually going in his little window of the one of nine that’s currently visible. And yeah, and it’s so it’s so relaxing to watch the watch things slowly create exactly the 3d printer. And then this you get nine of it all at once. Yeah.

Paul Cutler 26:27 And to your point, it’s cool to see the different printers and even to see how they’re Modded. What fans are they using and I’m getting inspiration on how to take my printer to the next level from there. Totally. Well, that’s all we’ve got this week. Thanks for listening for shownotes transcripts and to support the show, visit the bootloader dotnet or follow us on Twitter at the bootloader until next time, stay positive

Transcribed by