1 00:00:00,001 --> 00:00:08,720 Welcome to the Bootloader, I'm Tod Kurt. And I'm Paul Cutler. Tod and I each have a couple of 2 00:00:08,720 --> 00:00:12,720 interesting things to share with you, and you'll want to stay till the end of the episode for a 3 00:00:12,720 --> 00:00:17,640 special announcement. But first we have a special interview with Debra Ansell. Debra is known 4 00:00:17,640 --> 00:00:23,400 for her work with LEDs and you can find her at geekmomprojects.com. She also goes by Geek Mom 5 00:00:23,400 --> 00:00:29,800 Projects on Instagram and Mastodon, which I'll link to in the show notes. Debra, welcome to 6 00:00:29,800 --> 00:00:34,400 the show. You were at Teardown 2024 this past June. Tell me about Teardown. 7 00:00:34,400 --> 00:00:43,040 Hi, Paul, thanks. And it was a wonderful experience. I still have, you know, warm fuzzy 8 00:00:43,040 --> 00:00:48,920 flashbacks to moments that happened there. So I'm really happy to talk about it. It was 9 00:00:48,920 --> 00:00:53,720 unreservedly the best MakerCon I have attended. Now I haven't attended a wide variety of them, 10 00:00:53,720 --> 00:01:03,840 but I've attended a number. And I think there were a confluence of factors that made it such a fun, 11 00:01:03,840 --> 00:01:10,320 enjoyable, stimulating, welcoming event. So that's an open ended question. But I'll start with 12 00:01:10,320 --> 00:01:15,240 for people who don't know what Teardown is, I strongly recommend finding and maybe you can link 13 00:01:15,240 --> 00:01:21,640 to this on your website, an interview that Helen Leigh had with David Groom about what Teardown is 14 00:01:21,640 --> 00:01:26,560 and what goes into it, because she gives a really good explainer from an insider's perspective. So 15 00:01:26,560 --> 00:01:32,200 I will probably, you know, misstate the purpose of it and all that. But from my perspective, it was 16 00:01:32,200 --> 00:01:39,000 a place to go, bring some projects, find people who are interested in similar projects or might 17 00:01:39,000 --> 00:01:44,400 have different interests, but that are in the same world space that really are happy to talk about 18 00:01:44,400 --> 00:01:49,560 them and want to share them and, you know, meet like minded people and kind of see what's going 19 00:01:49,560 --> 00:01:55,640 on in the community in person where you can have real conversations one on one or in small groups. 20 00:01:55,640 --> 00:02:03,480 And it was a really wonderful combination of attending talks, hanging out with friends who I 21 00:02:03,480 --> 00:02:09,240 had a group of friends whom I knew would be there, meeting new people from a wide range of backgrounds 22 00:02:09,240 --> 00:02:13,520 and circumstances, and, you know, meeting some people I'd met only online and meeting some people 23 00:02:13,520 --> 00:02:18,440 I'd never met before. And there were some people who didn't know about it and came last minute who 24 00:02:18,440 --> 00:02:25,680 I would like fit in perfectly there. I'd mentioned the talks, there were workshops, there were 25 00:02:25,680 --> 00:02:33,000 people, there was great food and drink that Helen took great pains to source from interesting local 26 00:02:33,000 --> 00:02:38,520 restaurants in the Portland community. And there was a chance to explore Portland. They took great 27 00:02:38,520 --> 00:02:42,600 care to not only have, you know, talks and presentations during the day, but provide events 28 00:02:42,600 --> 00:02:47,400 over the couple days before and the day after and evening events where we could all kind of unwind 29 00:02:47,400 --> 00:02:53,880 and hang out in slightly different spaces that give you a chance to see the local environments. 30 00:02:53,880 --> 00:03:00,120 And, you know, hang out in a fun place that was a little different. So you're constantly getting to 31 00:03:00,120 --> 00:03:05,360 see a little bit, things that are a little bit new, explore Portland with, you know, people who may 32 00:03:05,360 --> 00:03:08,920 not know it either, and talk tech, but in interesting ways. 33 00:03:08,920 --> 00:03:11,640 What was one of the highlights of the city of Portland for you? 34 00:03:12,240 --> 00:03:20,800 The highlight, in an interesting way, they went out of their way to create a geocaching style 35 00:03:20,800 --> 00:03:26,800 scavenger hunt event, which they put a tremendous amount of effort into, and I think was very clever 36 00:03:26,800 --> 00:03:31,840 and not everybody was into it. I like a little game like this in a competition so that you ended up 37 00:03:31,840 --> 00:03:36,800 divided into teams and you had to run all over Portland to pick up these clues, which they were 38 00:03:36,800 --> 00:03:41,920 magnets hidden to whatever magnetic thing they could find in various landmarks all over the city. 39 00:03:42,120 --> 00:03:48,160 Now, it turns out our team, not so good at the clues, but incredibly persistent. So we probably 40 00:03:48,160 --> 00:03:52,840 went about three times the mileage that you were supposed to do. 41 00:03:52,840 --> 00:03:53,280 Sure. 42 00:03:53,280 --> 00:03:58,600 And we were actually conventioning and complaining a great deal, but it was a great bonding 43 00:03:58,600 --> 00:04:03,680 experience. It was actually, it was, I knew none of the people on my team super well. And by the 44 00:04:03,680 --> 00:04:09,680 time we came out of this, what probably should have been a much shorter event than we made it, we 45 00:04:09,680 --> 00:04:15,280 had bonded tremendously over this whole chance to run around Portland, look for these clues, decode 46 00:04:15,280 --> 00:04:19,800 these puzzles. And again, not everybody was into it. And we certainly lost a few people along the 47 00:04:19,800 --> 00:04:25,000 way, but got a certain sense of satisfaction out of finishing with this group. And I learned about 48 00:04:25,000 --> 00:04:29,440 the bridges in Portland, which are maybe the nice ones, and which is that apparently there's 49 00:04:29,440 --> 00:04:34,200 different colleges in there. So I thought that was a fun way to integrate the city into the 50 00:04:34,680 --> 00:04:40,280 convention. And also they had scheduled, for example, a dinner the first night at Autodesk that 51 00:04:40,280 --> 00:04:46,480 is near to where Tear Down was. And the convention itself took place in the Lloyd Center, which is a 52 00:04:46,480 --> 00:04:52,480 semi-abandoned mall. And that in and of itself became kind of a character in the convention, 53 00:04:52,480 --> 00:04:59,560 because it is semi-abandoned, but in this weird, wonderful way that there are a few, there's an 54 00:04:59,560 --> 00:05:03,960 Annie's Pretzels and there's a, there's probably a Cinnabon somewhere. And those typical mall 55 00:05:03,960 --> 00:05:08,640 staples, and then a lot of empty storefronts that locals, that you can rent for cheap. So locals 56 00:05:08,640 --> 00:05:14,080 have taken it over and there's like, they've converted one retail store into a roller skating 57 00:05:14,080 --> 00:05:16,960 rink. You like look inside the storefront, there are people roller skating in circles, and there's 58 00:05:16,960 --> 00:05:23,600 still an ice skating rink downstairs. So it's this kind of interesting, wonderful fantasy location 59 00:05:23,600 --> 00:05:28,760 that you could, you're in a mall, and I grew up in the 80s in malls. So maybe that's personally 60 00:05:28,760 --> 00:05:35,640 resonant with me. For me in particular, it was a lot of fun because I, it was in a converted GAP 61 00:05:35,640 --> 00:05:42,680 store. And I had recently made a batch of denim jackets as my most recent project of illuminated 62 00:05:42,680 --> 00:05:49,400 LED denim jackets. So they were perfect as an installation in a GAP store. And I got to display 63 00:05:49,400 --> 00:05:56,560 those too. And I got to use the GAP theme in my, instead of GAP kids, it was GAP LEDs. 64 00:05:56,560 --> 00:05:57,800 Oh, that's awesome. 65 00:05:58,000 --> 00:06:03,960 It was fantastic and not my idea. I have to give Allie, my friend Allie, who was there, all the props 66 00:06:03,960 --> 00:06:07,560 for coming up with that idea. And she said it and I said, wait, that's perfect. And she helped me 67 00:06:07,560 --> 00:06:12,120 style my display and made it fun. It let your imagination run wild a little bit. It was a 68 00:06:12,120 --> 00:06:18,000 character. It was a presence in and of itself to be in this mall at this convention. 69 00:06:18,000 --> 00:06:19,080 That's very cool. 70 00:06:19,080 --> 00:06:19,680 Yeah. 71 00:06:19,680 --> 00:06:23,320 Speaking of the mall, what were some of your favorite installations at Teardown? 72 00:06:23,880 --> 00:06:30,440 Well, of course, I'm partial to the LED installations. And Ben Henke, with the help of 73 00:06:30,440 --> 00:06:36,280 Claire Cassidy, put together a wonderful Pixel Blaze demonstration with all the wonderful things 74 00:06:36,280 --> 00:06:41,720 you can do with Pixel Blaze LED controller. Jason Coon, you know, who's a good friend of mine, a 75 00:06:41,720 --> 00:06:46,800 good maker friend, brought a number of his Fibonacci boards and put together. And it was nice 76 00:06:46,800 --> 00:06:53,120 because you get, you got a reserved space in the GAP store. So his went up across a wall and that 77 00:06:53,120 --> 00:06:58,760 was the LED lounge area. So they were, they had put beanbags and a sofa beneath it. So you could 78 00:06:58,760 --> 00:07:05,360 lounge surrounded by beautiful LED art installations. And then I got to meet and talk to 79 00:07:05,360 --> 00:07:10,840 somebody who had only briefly really talked to before, Aisha, and I cannot pronounce her last 80 00:07:10,840 --> 00:07:17,000 name, who does wonderful LED PCBs and gave a really great talk there. Oh, and a friend of mine, 81 00:07:17,200 --> 00:07:25,800 Charlyn Gonda, who is, goes by Charlyn online, had brought her LED jewelry, a subset, but it's 82 00:07:25,800 --> 00:07:30,200 still wonderful and amazing to look at. So that's the LED overview. And it was all wonderful. But 83 00:07:30,200 --> 00:07:34,360 there were also other fun things like somebody brought an electron microscope, which I didn't 84 00:07:34,360 --> 00:07:37,680 have a chance to check out, which I'm sorry I didn't, but showed people how to use it. Somebody 85 00:07:37,680 --> 00:07:42,320 was showing, I guess it's not as much an installation, but it was, it wasn't a workshop. 86 00:07:42,320 --> 00:07:47,920 They had a wire bonding machine and I had never seen, you know, people wire bonding, you know, 87 00:07:47,920 --> 00:07:54,080 dies on, you know, tiny, tiny PCBs before. And that was fun to watch. So I'm sure there's much 88 00:07:54,080 --> 00:08:00,640 more and I'm, I may pop up with something in the middle of this interview, but, but it was 89 00:08:00,640 --> 00:08:06,480 actually really fun the way you were kind of lounging amongst all the installations. And yeah, 90 00:08:06,480 --> 00:08:10,720 I was certainly drawn to and appreciative of all the LED art that was there. 91 00:08:11,280 --> 00:08:14,880 We were chatting before we started recording about the vibe of the convention. 92 00:08:14,880 --> 00:08:18,000 What were some of the other things that, that fed that vibe? 93 00:08:18,000 --> 00:08:25,760 I give all the props in the world to Helen Leigh, who really poured herself, heart, mind, and soul 94 00:08:25,760 --> 00:08:31,920 into organizing it. And Josh Lifton, who I think runs CrowdSupply for letting her run with it. And 95 00:08:31,920 --> 00:08:38,880 also obviously doing a lot to make it work as well. But from the beginning, Helen, you know, 96 00:08:38,880 --> 00:08:45,520 she worked, clearly worked very hard on it and reached out quite early to people to say, you 97 00:08:45,520 --> 00:08:51,920 know, we're looking to create this inclusive, diverse, interesting, welcoming environment. 98 00:08:51,920 --> 00:08:56,000 And you do have something to contribute. So she set a tone and an expectation early. 99 00:08:56,000 --> 00:09:03,040 She ambitiously, you know, took on a venue that didn't come with wifi or anything built in, 100 00:09:03,040 --> 00:09:07,840 but obviously spent a lot of time thinking about what could work and did a very good job of it. 101 00:09:07,840 --> 00:09:13,200 Because Teardown last year was at Portland State University. So this was a new venue for them. 102 00:09:13,200 --> 00:09:18,400 First of all, the first step was the expectation setting that this is a place for everybody. 103 00:09:18,400 --> 00:09:21,600 Like, you know, do you know anybody who maybe hasn't spoken before who'd like to, 104 00:09:21,600 --> 00:09:25,760 do you know somebody who has, who doesn't get recognition for what they do, who should, 105 00:09:25,760 --> 00:09:30,480 you know, be displaying here. And so it was clear from the beginning that this was going to be a 106 00:09:30,480 --> 00:09:35,840 welcoming environment, whether or not you're a big name or, you know, very casual hobbyist with an 107 00:09:35,840 --> 00:09:42,800 interest. And that was really nice. And it was designed with conversation and connection in mind 108 00:09:42,800 --> 00:09:46,960 very clearly from the layout of the spaces by building in lounge areas where people could sit 109 00:09:46,960 --> 00:09:52,720 and talk to building in gaps in the schedule that were really, for me, who, you know, 110 00:09:52,720 --> 00:09:55,920 I get a little overwhelmed being in large crowds of people for a long time. 111 00:09:55,920 --> 00:09:59,920 I could either talk to people or I could kind of just duck out and have like a few moments 112 00:09:59,920 --> 00:10:03,440 to myself without feeling like I was missing too much. I appreciated that on both fronts. 113 00:10:04,240 --> 00:10:10,160 The time, the space, the planning of events, of social events afterwards that, like, you know, 114 00:10:10,160 --> 00:10:16,960 I mentioned, you know, going to Autodesk for a big party for planning this, you know, these team 115 00:10:16,960 --> 00:10:23,840 geocaching hunt all over Portland for planning a meeting at a video game bar that made it very 116 00:10:23,840 --> 00:10:29,120 easy to engage with others and like, you know, something of interest to kind of everybody. And 117 00:10:29,120 --> 00:10:33,440 for me, you know, there's some people who just want to go and talk nothing but tech, 118 00:10:33,440 --> 00:10:38,080 which is great too. You could certainly do that, but it gave you other interesting things to look 119 00:10:38,080 --> 00:10:44,080 at and comment on too. So it put it all in kind of the context of you're in this city that is a 120 00:10:44,080 --> 00:10:50,960 great place to be. And let's all bring all these projects and topics that we love together here, 121 00:10:50,960 --> 00:10:55,360 but let's also interact with, you know, the community around us, or at least, you know, 122 00:10:55,360 --> 00:11:00,560 find out what's interesting in the community around us while we're here. So it's engagement. 123 00:11:00,560 --> 00:11:08,080 There's a lot of engagement, a lot of planning. It was nicely planned and nicely announced. So 124 00:11:08,080 --> 00:11:12,400 you knew what was going to happen at any moment. There was no trying to figure things out. A lot 125 00:11:12,400 --> 00:11:19,680 of space was provided. I think what also contributed to the vibe was it was a conscious decision 126 00:11:19,680 --> 00:11:25,520 at Teardown, for example, not to have badge hacking, because while it's, you know, it's a 127 00:11:25,520 --> 00:11:31,200 wonderful and exciting event, I'm not sure why they did this. This is my take on why not having 128 00:11:31,200 --> 00:11:35,920 badge hacking was actually a positive in this circumstance is it can introduce a level of kind 129 00:11:35,920 --> 00:11:41,440 of competition and one-upsmanship that was absent. And it also can drive people to kind of work 130 00:11:41,440 --> 00:11:46,080 solo, which again, they produce amazing things. And at the end, it's very cool, 131 00:11:46,080 --> 00:11:54,000 but really the events were designed for communication and connection. So I think 132 00:11:54,000 --> 00:12:00,400 that was purposely omitted from the roster. So yeah, a lot of factors were just kind of 133 00:12:00,400 --> 00:12:06,560 well thought out. And I think to also went to great lengths just to make people feel included, 134 00:12:06,560 --> 00:12:11,280 as I mentioned to you, I think before the show, you know, a great icebreaker. You know, 135 00:12:11,280 --> 00:12:15,840 when I go to a convention like this, I always feel like I've found my people because you always have 136 00:12:15,840 --> 00:12:19,920 something in common to talk about. And my big icebreaker question is if I don't know what else 137 00:12:19,920 --> 00:12:23,360 to say, so what are you interested in? What do you like to do? Because people always have a good 138 00:12:23,360 --> 00:12:28,240 answer to that. One of the people I asked said, you know, I've just been interested in learning 139 00:12:28,240 --> 00:12:31,600 about programmable electronics. I didn't know anything about it, but I was told to come by 140 00:12:31,600 --> 00:12:36,800 and, you know, learn about them here. And so complete newbie, but he had a great time. 141 00:12:36,800 --> 00:12:43,600 He was, and people were really happy to talk to him. You know, every maker I've ever met is super 142 00:12:43,600 --> 00:12:47,360 happy to talk about what they're doing and show it off. So it was, you know, he had a great time 143 00:12:47,360 --> 00:12:51,520 listening to people and people were happy to encourage him and to give him tips to, you know, 144 00:12:51,520 --> 00:12:56,720 where he might go to pursue his interests. So it just felt like it was kind of an equalizer 145 00:12:56,720 --> 00:13:01,840 because there were also some people, there were people with pretty big YouTube followings who, 146 00:13:01,840 --> 00:13:09,200 you had maybe a parasocial relationship with them, but it was, you know, but you got a chance to just 147 00:13:09,200 --> 00:13:13,440 kind of talk to them and they're normal people too, just as much as the guy who'd never done 148 00:13:13,440 --> 00:13:19,440 a single electronics project, you know, by himself. And yeah, you just had this feeling 149 00:13:19,440 --> 00:13:24,320 that kind of everybody was in the same space, sharing the same experiences. 150 00:13:24,320 --> 00:13:27,360 That is awesome to hear. What a great conference. 151 00:13:27,360 --> 00:13:32,080 Yeah. Yeah, it really was wonderful. Really had a great time. And it didn't hurt that 152 00:13:32,080 --> 00:13:38,240 some of my favorite makers who I do know and adore were there and we just brought the party, 153 00:13:38,240 --> 00:13:43,680 but it was a party that everybody was really happy to engage in. So, you know, it was great. 154 00:13:43,680 --> 00:13:46,080 And I'll link to some of those makers in the show notes as well. 155 00:13:46,080 --> 00:13:48,720 Debra, thanks so much for being on the show. 156 00:13:48,720 --> 00:13:51,120 Oh, Paul, it's my pleasure. Thanks for having me. 157 00:13:51,120 --> 00:13:55,840 Thanks to Debra for that interview. Teardown sounded like a really good time. 158 00:13:55,840 --> 00:13:59,520 Yeah, I was bummed I wasn't able to go to this year. 159 00:13:59,520 --> 00:14:04,560 It sounds just like a great group of makers there between Charlyn and Jason Coon and Ben 160 00:14:04,560 --> 00:14:08,080 Henke, I think was there, she said. Yeah, all the cool folks. 161 00:14:08,080 --> 00:14:12,480 Yeah, all the folks that I would want to actually meet someday. So I might have to put this one on 162 00:14:12,480 --> 00:14:14,880 my bucket list as well. Yep. 163 00:14:14,880 --> 00:14:17,040 What's your first one for us this episode? 164 00:14:17,040 --> 00:14:20,480 All right. So you know me, I'm all about the DIY synth stuff. 165 00:14:20,480 --> 00:14:24,960 I'm a big fan of synth libraries for microcontrollers. Some of my favorites are the 166 00:14:24,960 --> 00:14:31,200 Mozzie for Arduino synth library and CircuitPython's Synth.io. But I've also used the Teensy Audio 167 00:14:31,200 --> 00:14:36,160 Library, which is sort of the standard bearer for a lot of the good audio projects out there. 168 00:14:36,160 --> 00:14:40,160 And there's also Daisy, the Daisy Seed, which is like used in professional products. 169 00:14:40,160 --> 00:14:45,360 And there's others. But all of them have the problem of, you know, how do I get things wired 170 00:14:45,360 --> 00:14:50,240 up to make sound? Because they're a library. They're not a physical thing. And then once you 171 00:14:50,240 --> 00:14:53,360 have something that actually makes sound, it still requires a good amount of programming 172 00:14:53,360 --> 00:14:56,240 and synthesis knowledge to make something that sounds cool. 173 00:14:56,240 --> 00:14:59,840 Well, there's this project that's been around for a while called the Tulip Creative Computer, 174 00:14:59,840 --> 00:15:03,360 and it tries to solve some of these problems. And it solves a bunch of other problems too. 175 00:15:03,360 --> 00:15:06,880 But the main one is like, how do you make music? I've been following it for a while, 176 00:15:06,880 --> 00:15:11,600 and lately it's gotten really interesting. It's a ESP32 based device you can buy right now for 177 00:15:11,600 --> 00:15:17,600 60 bucks. It includes a seven inch touchscreen, high quality audio deck, MIDI I/O, a battery, 178 00:15:17,600 --> 00:15:23,120 and yeah, ESP32 processor on it. It runs a custom version of MicroPython, 179 00:15:23,120 --> 00:15:28,160 and it's set up so you can plug in a USB keyboard and just start typing into it directly. You don't 180 00:15:28,160 --> 00:15:33,760 have to have a computer to program it. You can program it by itself. And because you're, you 181 00:15:33,760 --> 00:15:39,200 start out with just the REPL, the MicroPython REPL, it's sort of a live coding music environment. 182 00:15:39,200 --> 00:15:43,040 If you want it to be like the Sonic Pi project, which is really fun by the way, if you have a 183 00:15:43,040 --> 00:15:47,840 Raspberry Pi and want to make music kind of live coding, I highly recommend trying out Sonic Pi. 184 00:15:47,840 --> 00:15:52,640 But unlike the Sonic Pi, there's no hassle of getting a Raspberry Pi running. 185 00:15:52,640 --> 00:15:58,560 Because it's a microcontroller, it just starts up instantly. It's just kind of cool. But wait, 186 00:15:58,560 --> 00:16:02,880 there's more. Did I say it's a device? It's actually a fully open source project, 187 00:16:02,880 --> 00:16:07,040 and you can build one yourself if you've got an ESP32 S3 board and a touchscreen. 188 00:16:07,040 --> 00:16:12,000 And the Tulip designers provide a bunch of guides depending on what specific hardware you have. 189 00:16:12,000 --> 00:16:16,160 So you can like kind of cobble together from parts you might already have in your 190 00:16:16,160 --> 00:16:21,920 shoebox full of electronics to make your own little Tulip thing. There's also a 191 00:16:21,920 --> 00:16:27,680 desktop Tulip emulator if you want to try it out just like on any computer that runs Python. 192 00:16:27,680 --> 00:16:32,080 And to get back to the synth libraries, on the physical microcontroller side, 193 00:16:32,080 --> 00:16:37,920 Tulip uses the Amy synth library, AMY, which is the C library that has bindings in both Arduino 194 00:16:37,920 --> 00:16:42,320 and Python. And it's a really interesting take on a synth library in that it doesn't 195 00:16:42,320 --> 00:16:48,560 try to be super low level. It mostly tries to say, "Here's a bunch of synthesizer recreations 196 00:16:48,560 --> 00:16:54,320 with patches you can just load up." So you don't have to like hook things together like a modular 197 00:16:54,320 --> 00:17:01,360 synth the way you have to do in Mozzie or Synth.io. You just like say, "Load up this DX7 sound," and 198 00:17:01,360 --> 00:17:05,840 you get to play electric piano or whatever. And it's got drum machines and a bunch of other things. 199 00:17:05,840 --> 00:17:10,640 You can go low level if you want, but by default, you don't have to. So I have a Tulip coming. 200 00:17:10,640 --> 00:17:16,400 Should be here maybe next week. And I'll include links to all this in the show notes. 201 00:17:16,400 --> 00:17:22,400 I watched the video that we'll link to, and you didn't even touch on one of the cooler parts. So 202 00:17:22,400 --> 00:17:27,200 you start off at the REPL, but then you just hit an icon in the lower right-hand side of the screen, 203 00:17:27,200 --> 00:17:31,520 and you can choose from different modes. You can put it into synthesizer mode or drum sequencer 204 00:17:31,520 --> 00:17:35,840 mode. So to your point, you don't need to know the libraries and the coding to actually make 205 00:17:35,840 --> 00:17:40,400 that happen. If you do, you get that level of control, but they also have a UI for all of that, 206 00:17:40,400 --> 00:17:44,960 which I thought was really interesting. Yeah, and the way that it's set up is that 207 00:17:44,960 --> 00:17:50,880 you can have all these functions, the drum machine function, the synthesizer functions, 208 00:17:50,880 --> 00:17:55,600 kind of all running in the background, and you can still have the REPL controlling it. 209 00:17:55,600 --> 00:18:00,240 Like you essentially controlling it via MIDI, or MIDI as in quotes. If this was a video, 210 00:18:00,240 --> 00:18:05,360 you'd see my fingers going wiggle wiggle. It's really interesting because in Arduino and 211 00:18:05,360 --> 00:18:10,640 CircuitPython, to rewire the synthesizer, you essentially stop the synthesizer, rewire it, 212 00:18:10,640 --> 00:18:15,280 start it back up again. But in the Tulip case, while it's running, you're kind of unplugging 213 00:18:15,280 --> 00:18:19,440 it in real time and reloading things and changing it and stuff. And so it's really interesting. 214 00:18:19,440 --> 00:18:23,440 I can't wait to play with it. Yeah, for 60 bucks, how can you go wrong? 215 00:18:23,440 --> 00:18:27,200 Totally right. That was my number one. So Paul, what's your number one this week? 216 00:18:27,200 --> 00:18:32,000 I'm going to go back to the well on code editors. I didn't know that I had a thing for testing code 217 00:18:32,000 --> 00:18:36,960 editors, but apparently I do. After previously talking about JetBrains fleet way back in 218 00:18:36,960 --> 00:18:42,080 episode three and recently covering the CircuitPython online IDE by River Wang, I have two 219 00:18:42,080 --> 00:18:48,400 more to share. First up is ViperIDE, an online IDE for MicroPython and CircuitPython, made by 220 00:18:48,400 --> 00:18:53,680 Volodymyr Shymanskyy, I hope I pronounced that right. I apologize if I didn't, who is the co-founder 221 00:18:53,680 --> 00:19:00,160 of BlinkIO, an IoT cloud platform. Like other browser-based solutions, ViperIDE requires Chrome 222 00:19:00,160 --> 00:19:05,200 or Edge because it requires web serial to work, which isn't available in Firefox or Safari. 223 00:19:05,200 --> 00:19:09,280 One of the really innovative things about it is that you can connect your boards via USB like you 224 00:19:09,280 --> 00:19:15,520 would expect, but there's also support for web REPL over the internet or local network, Bluetooth, 225 00:19:15,520 --> 00:19:21,440 and P2P WebRTC support. It includes features you would expect in an IDE, including syntax 226 00:19:21,440 --> 00:19:26,480 highlighting for Python, JSON, TOML, and more, and it has a viewer for markdown files and can 227 00:19:26,480 --> 00:19:32,480 auto expand and minify JSON files just like a big IDE would. You can also install it as a 228 00:19:32,480 --> 00:19:38,480 progressive web app so it looks and feels like an app, not just a browser or browser tab. And it 229 00:19:38,480 --> 00:19:43,040 includes a terminal, and I'm putting quotes around that. What you really see is the REPL, the serial 230 00:19:43,040 --> 00:19:48,400 console. Unlike any of the web editors who do have a serial printout, this includes that, but the 231 00:19:48,400 --> 00:19:52,640 terminal also allows you to interact with the REPL, which is really cool, and I haven't seen it in 232 00:19:52,640 --> 00:19:57,760 another online IDE. It's definitely MicroPython-focused. For example, there's buttons for 233 00:19:57,760 --> 00:20:02,960 soft reset and hard reset, which is handy, but the hard reset button doesn't work in CircuitPython 234 00:20:02,960 --> 00:20:07,520 as it calls the machine function used in MicroPython to reset it. It also includes support 235 00:20:07,520 --> 00:20:12,480 for MicroPython's package manager right in the IDE, making it simple to import libraries. 236 00:20:12,480 --> 00:20:16,560 It's running MicroPython compiled to WebAssembly right in your browser, and you can even try it 237 00:20:16,560 --> 00:20:22,320 with an emulator in your browser as well. It's really well done. I've included links to a review 238 00:20:22,320 --> 00:20:27,120 from Les Pounder at Tom's Hardware and Mr. Shymanskyy's recent visit to the PyCast show as well. 239 00:20:27,120 --> 00:20:33,360 Next up is another editor called Zed. Zed's been around for a little less than a year for macOS 240 00:20:33,360 --> 00:20:39,040 and just recently released a Linux version, which is how it caught my eye. This is an editor in IDE 241 00:20:39,040 --> 00:20:43,680 for folks who miss Atom or Sublime Text and don't need all the features of a full-blown IDE, 242 00:20:43,680 --> 00:20:47,120 like features found in VS Code or PyCharm, like a profiler, for example. 243 00:20:47,120 --> 00:20:52,080 Zed is from the creators of Atom, and it's also open source. Right from their home page, 244 00:20:52,080 --> 00:20:57,040 here's how they describe Zed. Zed is a high-performance, multiplayer code editor, 245 00:20:57,040 --> 00:21:01,920 and unrelenting performance keeps you in the flow and makes other tools feel slow. 246 00:21:01,920 --> 00:21:05,200 You'll note I said "multiplayer" in the description. It includes the ability for 247 00:21:05,200 --> 00:21:09,760 multiple developers to collaborate and edit code together within a shared workspace, 248 00:21:09,760 --> 00:21:14,560 which is similar to JetBrains Spaces. If you're collaborating with someone, it has the ability 249 00:21:14,560 --> 00:21:19,120 to jump to your teammate's location right in the code and vice versa, and has a built-in screen 250 00:21:19,120 --> 00:21:23,360 sharing tool. There's a few things it doesn't have, such as Git integration, but if you're 251 00:21:23,360 --> 00:21:28,160 comfortable at the command line, that's really not a big deal. It also doesn't automatically pick up 252 00:21:28,160 --> 00:21:33,040 Python virtual environments. You have to edit a JSON configuration by hand and point to the 253 00:21:33,040 --> 00:21:37,600 location of your virtual environment. And then one other thing that I did discover that was 254 00:21:37,600 --> 00:21:43,360 interesting is that it uses pyright as a linter right out of the box. pyright is a static type 255 00:21:43,360 --> 00:21:48,320 checker for Python, and I opened my big web app with built-in fast API and had all these squiggly 256 00:21:48,320 --> 00:21:52,240 lines with pyright telling me that all my code was wrong, and I did a double-take. I'm like, 257 00:21:52,240 --> 00:21:55,840 "No one's telling me my code's wrong," so I was digging into what pyright is. 258 00:21:55,840 --> 00:22:00,560 But if you're an intermediate to advanced user and you're okay at the command line and just want a 259 00:22:00,560 --> 00:22:05,280 fast code editor, check out ZADD. I'm giving it a chance as my daily driver, and so far I'm really 260 00:22:05,280 --> 00:22:11,040 liking it. Yeah, I've been running it for a couple weeks now, using it to edit CircuitPython and 261 00:22:11,040 --> 00:22:17,840 Markdown files. And yeah, it's fast and pretty easy to set up. It kind of reminds me of Sublime 262 00:22:17,840 --> 00:22:23,040 Text, but like Sublime Text from five years ago or whatever, when it was simpler. It's definitely 263 00:22:23,040 --> 00:22:29,920 a lot simpler and faster than VS Code, which has become a bit ungainly to me. There's just too many 264 00:22:29,920 --> 00:22:34,800 extensions now, and it's like there's too much choice. The paradox of choice for like, "What 265 00:22:34,800 --> 00:22:41,200 should I do? How should I set this up?" Whereas Zed's a bit cleaner. It comes with a lot of 266 00:22:41,200 --> 00:22:47,520 code syntax highlighting and code linting built in without you having to set up anything. And I only 267 00:22:47,520 --> 00:22:51,680 had to do a couple of little tiny configuration changes to make it so that I could use the 268 00:22:51,680 --> 00:22:57,840 CircuitPython stubs with it. So yeah, it looks pretty good. Yep, it's written in Rust, which I 269 00:22:57,840 --> 00:23:02,000 think really contributes to the speed. I probably should have mentioned that as well. Nice. What's 270 00:23:02,000 --> 00:23:07,120 your next one? If you've been reading the Hackaday blog recently, you might have seen this article. 271 00:23:07,120 --> 00:23:10,960 I was very happy to see that my friend Leah Buechley was mentioned on Hackaday recently. 272 00:23:10,960 --> 00:23:15,600 She's a professor at the University of New Mexico, and for the last few years has been applying C&C 273 00:23:15,600 --> 00:23:22,000 and advanced mathematical techniques to ceramics and clay, creating shapes and overhangs and angles 274 00:23:22,000 --> 00:23:26,880 and structures that I wouldn't think possible in clay, let alone 3D printer plastic. 275 00:23:26,880 --> 00:23:31,040 They're using these commercially available 3D clay printers, which I didn't know existed, 276 00:23:31,040 --> 00:23:35,520 but they've augmented them with special tricks, sometimes with special algorithms to feed 277 00:23:35,520 --> 00:23:40,720 the slicer, sometimes with special formulations of clay. And if Leah Buechley's name is familiar, 278 00:23:40,720 --> 00:23:44,880 it's because she's also the creator of the LilyPad Arduino sewable electronic system 279 00:23:44,880 --> 00:23:50,800 from about 15 years ago, and the echoes of which, the round PCB with big pads, 280 00:23:50,800 --> 00:23:54,400 you can see in the Circuit Playground Express boards that are very popular at Adafruit. 281 00:23:54,960 --> 00:24:00,880 So the recent thing that she came out with, her and her team, is called Cerametal. It's a way of 282 00:24:00,880 --> 00:24:07,680 3D printing metal on the desktop using a custom metalized clay. And once it's printed, it's fired 283 00:24:07,680 --> 00:24:12,720 in a kiln, and it gets centered into a solid metal part. So you just have like a standard, 284 00:24:12,720 --> 00:24:19,680 like tiny 3D printer, you print out this clay onto a platform, and then you put that into the kiln, 285 00:24:19,680 --> 00:24:26,320 and it becomes a metal object. Like, what? So this custom metal clay is just made from metal powder, 286 00:24:26,320 --> 00:24:30,000 xanthan gum, and a few other ingredients, and you just mix it together in a literal, like, 287 00:24:30,000 --> 00:24:35,440 kitchen stand mixer. To slice the model that they want to print out, they couldn't use a standard 288 00:24:35,440 --> 00:24:42,480 slicer like Cura, because the clay, once you start extruding it, you can't stop. It just kind of 289 00:24:42,480 --> 00:24:47,680 keeps coming out because of the way that the mechanical materials of the clay works. So they 290 00:24:47,680 --> 00:24:54,800 had to create a new slicer that supports this continuous extrusion. And so it's sort of like 291 00:24:54,800 --> 00:24:58,960 vase mode. If you've ever done vase mode in 3D printing, it's sort of like that, but it will do 292 00:24:58,960 --> 00:25:03,120 fills because they want to, like, make a filled object. And the print resolution is pretty 293 00:25:03,120 --> 00:25:08,080 impressive. They can do a 0.6 millimeter nozzle and 0.3 millimeter layer height, which is pretty 294 00:25:08,080 --> 00:25:13,440 comparable to a standard 3D printer. The cost is around 2k. That's for, like, basically half of 295 00:25:13,440 --> 00:25:18,560 that is for the printer, half of that is for a kiln. And when you compare that to, like, the 50k 296 00:25:18,560 --> 00:25:24,800 to 130k for an SLS, Selective Laser Sentry Machine, that's pretty darn cheap. And you're doing this 297 00:25:24,800 --> 00:25:29,120 all on your desk, you know? A desk, and then you take it to a kiln. And, but one of the more 298 00:25:29,120 --> 00:25:32,800 interesting things to me, like, so I'll never do this because, you know, I don't play with clay, 299 00:25:32,800 --> 00:25:37,360 but I think it's really fascinating that you can make metal objects now. In their slicer, 300 00:25:37,360 --> 00:25:42,160 they use an algorithm called Fermat Spirals to fill in the spaces, because one of the 301 00:25:42,160 --> 00:25:49,360 characteristics of the Fermat Spiral is that it guarantees that the area between the lines 302 00:25:49,360 --> 00:25:55,280 are equal area, which is perfect for when you're laying out a base that should be filled. I'll 303 00:25:55,280 --> 00:26:00,080 include a couple of links in the show notes for some things to play with. Fermat Spirals are also 304 00:26:00,080 --> 00:26:06,400 very pretty. They're sort of a parabolic spiral. There's also a great video that Leah gave for the 305 00:26:06,400 --> 00:26:11,520 ACM SIGCHI conference that goes through all of this. And so I highly recommend watching the 306 00:26:11,520 --> 00:26:16,320 video. It's about maybe 14 minutes long. I read the Hackaday article, and I thought it did a good 307 00:26:16,320 --> 00:26:20,080 job of explaining, you know, how you put the powder together with the clay and then fire it in the 308 00:26:20,080 --> 00:26:24,720 kiln. But one of the things that caught my eye is they said that the shrinkage is consistent, 309 00:26:24,720 --> 00:26:30,400 which has got to be awesome for metal parts, because then you're getting, you know, the same 310 00:26:30,400 --> 00:26:35,120 part every time. Yeah, that's one of the, that's, my wife does a bunch of clay stuff, and that's 311 00:26:35,120 --> 00:26:40,000 one of the things that you're always having to figure out is clay always shrinks when you fire 312 00:26:40,000 --> 00:26:49,040 it. But the amount of shrinkage really is based on the thickness of your piece, the tallness of the 313 00:26:49,040 --> 00:26:53,040 piece, the amount of like wetness that day of the piece. And so like, you essentially have to like 314 00:26:53,040 --> 00:26:59,200 make a couple of trial runs to get something of a consistent dimension. And so the fact that they can 315 00:26:59,200 --> 00:27:06,720 get a very consistent output is huge. Oh, that's interesting. I had no idea. So yeah, what's your 316 00:27:06,720 --> 00:27:12,400 number two for this week? Way back in episode four, in November of 2022, we talked about Matter, 317 00:27:12,400 --> 00:27:17,760 the open source IoT specification that's managed by the Connectivity Standards Alliance, which is a 318 00:27:17,760 --> 00:27:23,280 mouthful. If you don't remember, don't know of Matter, it requires a Matter controller, such as 319 00:27:23,280 --> 00:27:29,280 a Google Nest device, Apple HomePod or Apple TV, or most Amazon Echo devices. And then for example, 320 00:27:29,280 --> 00:27:34,160 you can buy a Matter supported smart light bulb and set it up with Apple HomeKit, Google Assistant 321 00:27:34,160 --> 00:27:39,120 or Alexa without having to worry about what it's compatible with. If it's Matter compatible, 322 00:27:39,120 --> 00:27:44,480 it'll work with them all. I'll link to a great article from Wired Magazine on what is Matter. 323 00:27:44,480 --> 00:27:49,680 The reason I bring it up is Scott Shawcroft, CircuitPython's lead developer, shared in a 324 00:27:49,680 --> 00:27:54,560 recent Python on hardware newsletter update that he's working on an open source implementation of 325 00:27:54,560 --> 00:27:59,520 Matter called CircuitMatter. Don't let the name fool you. It will be a pure Python implementation 326 00:27:59,520 --> 00:28:04,320 of the Matter specification that will also be compatible with CircuitPython and potentially 327 00:28:04,320 --> 00:28:10,800 even MicroPython. Jeff Epler has already implemented IPv6 networking support in CircuitPython, 328 00:28:10,800 --> 00:28:15,040 which Matter needs as well. This leads me to believe, and this is just a guess, 329 00:28:15,040 --> 00:28:20,240 is that Adafruit might make a Matter compatible microcontroller at some point in the future. 330 00:28:20,240 --> 00:28:24,400 There's already a board from SparkFun that is Matter compatible, but only with Arduino, 331 00:28:24,400 --> 00:28:28,800 not with CircuitPython. I'll link to that in the show notes as that came out this past January. 332 00:28:29,680 --> 00:28:33,920 Now, if you read the article from Wired on Matter that I mentioned earlier, it does mention that 333 00:28:33,920 --> 00:28:39,600 the functionality supported by Matter is mostly pretty basic for now, limited to on/off, start/stop, 334 00:28:39,600 --> 00:28:44,720 and notifications from the device. But if you could program a microcontroller to even just do 335 00:28:44,720 --> 00:28:50,240 a start/stop instead of always sending data via MQTT, for example, to take a measurement, 336 00:28:50,240 --> 00:28:53,520 I could see a number of different use cases that pop into my mind for that. 337 00:28:54,320 --> 00:28:58,720 It's very, very early in development, but I think it's something I'm excited to keep an eye on. 338 00:28:58,720 --> 00:29:03,760 Yeah, the Matter stuff is really interesting. With the recent talk of Swift Embedded, 339 00:29:03,760 --> 00:29:08,240 Swift's the programming language that Apple uses for all their devices, what we should be using 340 00:29:08,240 --> 00:29:12,960 when we write apps for the iPhone or whatever, they recently released a bunch of Matter examples 341 00:29:12,960 --> 00:29:20,800 that run on the ESP32-C6 dev board, which I think there's an ESP32-C6 Adafruit product as well. 342 00:29:22,000 --> 00:29:25,920 These are just another version of the ESP32, it's not like a special chip, 343 00:29:25,920 --> 00:29:30,160 it's not super expensive, it's meant to be really low cost to go into smart light bulbs 344 00:29:30,160 --> 00:29:35,680 and things like that. I can't wait to see more hobbyist-level things that use Matter. 345 00:29:35,680 --> 00:29:39,520 Yep, exactly. And it'll probably have to be an S3 board because it needs 346 00:29:39,520 --> 00:29:44,560 Bluetooth and Wi-Fi, so that S3 is probably the base minimum. 347 00:29:44,560 --> 00:29:49,680 So that's our show. I mentioned the special announcements. You want to tune in for a 348 00:29:49,680 --> 00:29:55,200 special live episode of The Bootloader on CircuitPython Day, coming up on Friday, August 16th. 349 00:29:55,200 --> 00:30:00,560 Thanks to Debra Ansell for taking time to share her experience at Teardown 2024, 350 00:30:00,560 --> 00:30:04,480 and thank you for listening. For show notes, transcripts, and to join our newsletter, 351 00:30:04,480 --> 00:30:14,160 visit thebootloader.net. Until next time, stay positive. 352 00:30:14,160 --> 00:30:16,320 (chiming)