1 00:00:00,001 --> 00:00:06,820 Welcome to The Bootloader. I'm Paul Cutler. 2 00:00:06,820 --> 00:00:10,880 And I'm Tod Kurt. If you want to learn more about this podcast, visit thebootloader.net 3 00:00:10,880 --> 00:00:14,320 for show notes and transcripts, and where you can also find our new newsletter. 4 00:00:14,320 --> 00:00:19,080 Paul, two weeks ago on 16th of August was CircuitPython Day. We were honored to be an 5 00:00:19,080 --> 00:00:23,480 official part of it with a special live video version of our podcast. You can check that 6 00:00:23,480 --> 00:00:27,360 out on YouTube, and we provide a link in the show notes. I just thought we'd like maybe 7 00:00:27,360 --> 00:00:31,440 talk a little bit about the experience of the entire CircuitPython Day in our live show. 8 00:00:31,440 --> 00:00:35,360 But first, I'd like to say thank you so much for organizing all of that. 9 00:00:35,360 --> 00:00:37,440 Oh, it was nothing. 10 00:00:37,440 --> 00:00:42,040 Like not all of CircuitPython Day, but like for our part of it was all organized by you. 11 00:00:42,040 --> 00:00:43,840 I just kind of showed up. So thank you so much. 12 00:00:43,840 --> 00:00:45,560 It was my pleasure. 13 00:00:45,560 --> 00:00:49,200 The format was we first talked about what CircuitPython had been doing for the last 14 00:00:49,200 --> 00:00:54,960 year in terms of like its features and updates and how it's in its relationship to MicroPython. 15 00:00:54,960 --> 00:00:59,480 We each talked about one project that each of us had done. It was really nice to hear 16 00:00:59,480 --> 00:01:06,760 your Song Matrix thing because it straddled so many different technologies because it 17 00:01:06,760 --> 00:01:12,760 was a network project that dealt with MQTT and the Shazam API. I don't do much internet 18 00:01:12,760 --> 00:01:16,480 stuff with my little electronic devices that run CircuitPython. So it was really cool to 19 00:01:16,480 --> 00:01:21,840 see all that and to see like real Python working in concert with CircuitPython. 20 00:01:21,840 --> 00:01:24,840 Yeah that's one of the really neat things about the project. I've got a couple of projects 21 00:01:24,840 --> 00:01:31,640 that do that, but actually writing real Python on a Raspberry Pi and then writing CircuitPython 22 00:01:31,640 --> 00:01:36,440 and having those talk to each other is just, that's what excites me about CircuitPython 23 00:01:36,440 --> 00:01:41,880 is that those physical devices that you can touch and feel. It's just something better 24 00:01:41,880 --> 00:01:43,680 than just seeing code on a screen. 25 00:01:43,680 --> 00:01:48,520 Totally. And it kind of reminds me of the synergy that a lot of web developers got when 26 00:01:48,520 --> 00:01:53,120 we were able to write JavaScript code that ran in the browser and also JavaScript code 27 00:01:53,120 --> 00:01:58,320 that ran on the backend using Node or something. So it's like we're getting that same level 28 00:01:58,320 --> 00:02:02,440 of like, "Oh I don't have to switch gears too much because I'm still writing Python." 29 00:02:02,440 --> 00:02:04,760 Just different flavors of it. 30 00:02:04,760 --> 00:02:09,280 And then my project, I made this like two weeks before CircuitPython Day, I made this 31 00:02:09,280 --> 00:02:14,640 like plan that I'm going to design and build and code a little playing card sized drum 32 00:02:14,640 --> 00:02:18,920 machine and it didn't quite turn out because I made some tiny mistakes. So I've got 10 33 00:02:18,920 --> 00:02:22,240 of these boards and I'm wondering, should I even like fix them up and put them in the 34 00:02:22,240 --> 00:02:28,960 store? But it was a fun experiment. I tried doing a similar thing a couple of years previous 35 00:02:28,960 --> 00:02:33,160 with CircuitPython Day and that worked out pretty well. So this was a good learning experience 36 00:02:33,160 --> 00:02:38,360 for me. And if anybody has seen this little drum machine playing card thing that I made, 37 00:02:38,360 --> 00:02:42,640 if anyone is interested in one, let me know and I'll see if I can send you one. 38 00:02:42,640 --> 00:02:46,680 And I think it's cool that the project didn't actually work out and you talked about it. 39 00:02:46,680 --> 00:02:50,360 So many projects are, "Look, I did this and it just all worked," but that's not how it 40 00:02:50,360 --> 00:02:54,800 is in real life, right? We all have challenges and things break and it's good to actually 41 00:02:54,800 --> 00:02:56,480 show that side of a project. 42 00:02:56,480 --> 00:02:57,480 Yep. 43 00:02:57,480 --> 00:02:59,920 Well, what's your first one this episode for us? 44 00:02:59,920 --> 00:03:05,840 All right. Synthesizers. Have you heard of them? So one of the things that I've been 45 00:03:05,840 --> 00:03:12,400 into is modular synthesis. So it's the kind of mad scientist synthesizers you might see 46 00:03:12,400 --> 00:03:17,600 with all the knobs and lights and all the cables that plug in. And the way this all 47 00:03:17,600 --> 00:03:24,400 works is that each little module does one specific part of the whole synthesis process. 48 00:03:24,400 --> 00:03:27,520 And so you have something that might make a noise and then you have something else that 49 00:03:27,520 --> 00:03:34,160 shapes that noise's loudness and another module that shapes that noise's frequency response, 50 00:03:34,160 --> 00:03:39,060 sort of a tone control. And then things that will produce different pitches that control 51 00:03:39,060 --> 00:03:43,760 the thing that makes noise. And so it can get really expensive really fast. And so people 52 00:03:43,760 --> 00:03:47,360 when I've talked about modular synthesis, they're like, "Oh, that sounds really cool. 53 00:03:47,360 --> 00:03:51,880 I want to get into it." It's like, well, it's really expensive to get into if you're not 54 00:03:51,880 --> 00:03:56,000 building the stuff yourself or if you've just decided to sort of like, "This is my hobby 55 00:03:56,000 --> 00:04:01,960 and I'm going to sink a couple hundred dollars into it every couple of months." 56 00:04:01,960 --> 00:04:09,620 And so if you wanted something else that was modular synthesis but was not as expensive, 57 00:04:09,620 --> 00:04:13,300 what were your options? It's like, well, there are some of these software programs out there 58 00:04:13,300 --> 00:04:18,140 like VCV Rack that will do the sort of virtual on your screen modular synth. And that's actually 59 00:04:18,140 --> 00:04:22,380 a really cool way to get started. But it's a thing on a screen. And one of the whole 60 00:04:22,380 --> 00:04:26,500 points of modular synthesizers and physical synthesizers and physical things in general 61 00:04:26,500 --> 00:04:30,900 is to get yourself away from screens. And there's also the other problem of if you're 62 00:04:30,900 --> 00:04:35,540 trying to build some of this stuff yourself, the things that you will be interacting with, 63 00:04:35,540 --> 00:04:40,140 like the jacks you plug cables into and the knobs you turn, those don't work well on a 64 00:04:40,140 --> 00:04:44,420 breadboard. There's always problems where you're like, as you're turning the knob, the 65 00:04:44,420 --> 00:04:47,260 potentiometer will come out of the breadboard because they're just really not made to be 66 00:04:47,260 --> 00:04:51,800 plugged in like that. And so what's the solution? And I've been seeing some noise about this 67 00:04:51,800 --> 00:04:55,900 thing called MICRORACK from this synth get-together, the synth conference called Super Booth a 68 00:04:55,900 --> 00:05:01,740 few months ago in Germany. And lately I've been inundated by Instagram ads for its Kickstarter 69 00:05:01,740 --> 00:05:08,740 campaign, which I'm like, man, Instagram has me targeted. And so MICRORACK is a collection 70 00:05:08,740 --> 00:05:14,140 of little PCB modules that plug into a breadboard, just like all these other things we might 71 00:05:14,140 --> 00:05:19,500 have that like Adafruit sells, except they are modular synthesis modules. So instead 72 00:05:19,500 --> 00:05:23,740 of being several hundred dollars for each little module, it's a little like each little 73 00:05:23,740 --> 00:05:29,140 module does the same functionality as these synth modules, but they just plug in and you 74 00:05:29,140 --> 00:05:33,700 wire them together, little jumper wires like you do on a breadboard. And so it's really 75 00:05:33,700 --> 00:05:39,220 nice. It's inexpensive. The way you interact with it is very much the way you interact 76 00:05:39,220 --> 00:05:42,940 with stuff on breadboards. So if you're used to doing stuff on breadboards, this is like, 77 00:05:42,940 --> 00:05:46,820 oh, this will fit right in. And they've got a pretty rich set of modules, it looks like. 78 00:05:46,820 --> 00:05:52,100 And they're using the Solaris breadboard mostly as a power distribution and a mounting platform, 79 00:05:52,100 --> 00:05:56,460 which is great. It's like, oh, here's this very common plastic thing with lots of holes. 80 00:05:56,460 --> 00:06:00,780 Let's use it as a mounting board, essentially. I've become a backer of it. I'm going to hopefully 81 00:06:00,780 --> 00:06:06,980 it'll be out. They've been making modules for like six months or a year, and they've 82 00:06:06,980 --> 00:06:10,160 been showing them off for several months now. And so I'm hoping it's a real thing. It looks 83 00:06:10,160 --> 00:06:16,380 pretty real. And if anything, it's going to be a nice way of solving some of these problems 84 00:06:16,380 --> 00:06:21,300 of how do I get the knobs to not move around when I'm prototyping something? Because I 85 00:06:21,300 --> 00:06:25,860 prototype my own little synthesizers on breadboards, and their modules, like some of their modules 86 00:06:25,860 --> 00:06:31,900 are just like little knobs that have outputs. I'm like, that's perfect. 87 00:06:31,900 --> 00:06:34,900 Like you were saying at the beginning, I looked into EuroRack a couple of years ago when I 88 00:06:34,900 --> 00:06:40,500 had some interest, and it was just so overwhelming. I had no idea where to start. And like you 89 00:06:40,500 --> 00:06:44,220 mentioned, the cost quickly went up and up. And I thought about just buying a couple of 90 00:06:44,220 --> 00:06:48,940 modules from just Winterbloom and starting there, but I still found it pretty overwhelming. 91 00:06:48,940 --> 00:06:54,620 But this is something I might check out. Do you remember how much it was roughly on Kickstarter? 92 00:06:54,620 --> 00:06:59,220 I think for like, they've got like a starter kit that's around like 80 bucks or whatever 93 00:06:59,220 --> 00:07:03,500 that contains like a good handful of modules. I think the most expensive thing you can get, 94 00:07:03,500 --> 00:07:10,500 which contains all their possible modules is like 300 or 400, which is the cost of one 95 00:07:10,500 --> 00:07:16,700 modular synth module if you go to a store that sells them. So in terms of I think modules 96 00:07:16,700 --> 00:07:20,500 per dollar, it's one of the highest that's out there. I'm mostly interested in it since 97 00:07:20,500 --> 00:07:26,940 I developed some of my own little music gizmos. I'm mostly interested in using it as little 98 00:07:26,940 --> 00:07:31,980 pieces of potential UI that I will have in my synthesizer. I'll just like use their knobs, 99 00:07:31,980 --> 00:07:36,660 use their jacks, that kind of stuff. There have been other similar, let's make some of 100 00:07:36,660 --> 00:07:40,220 this audio stuff more breadboard friendly little things that have been out there. I'll 101 00:07:40,220 --> 00:07:44,900 put some links to some previous ones in the show notes. One of those famous ones is called 102 00:07:44,900 --> 00:07:50,060 Breadboard Friends by Mutable Instruments, Emily Gillette. It's like two of the main 103 00:07:50,060 --> 00:07:54,940 problems with the synth stuff on when you're prototyping some stuff is how do you do jacks 104 00:07:54,940 --> 00:08:00,460 and knobs? The other one is how do you do power? Because the Eurorack standard is all 105 00:08:00,460 --> 00:08:04,780 the signals are plus minus 10 volts. And your breadboard, like everything you do on a breadboard 106 00:08:04,780 --> 00:08:10,540 is usually like three volts or five volts. So it's like one of the main things it solves 107 00:08:10,540 --> 00:08:12,740 is how do you make that work? 108 00:08:12,740 --> 00:08:16,100 Very cool. So how about you? What's your number one today? 109 00:08:16,100 --> 00:08:20,380 I've been talking about building a standup arcade for probably 20 years from when I first 110 00:08:20,380 --> 00:08:25,020 got a set of ROMs, the actual arcade games you load into an emulator to play. About five 111 00:08:25,020 --> 00:08:29,420 or six years ago, I finally started it. And living here in the Twin Cities, we have a 112 00:08:29,420 --> 00:08:33,820 local company called Paradise Arcade, who has a focus on the community around fighting 113 00:08:33,820 --> 00:08:38,540 sticks, fight stick controllers for fighting games. But they have a wide selection of arcade 114 00:08:38,540 --> 00:08:43,100 parts, including buttons, joysticks, and the hardware to hook them all up to a computer. 115 00:08:43,100 --> 00:08:46,700 I drove down to their shop, which is more of a warehouse and not a retail shop, which 116 00:08:46,700 --> 00:08:51,100 I didn't know at the time. But they were pretty awesome and helped me out. From there, I bought 117 00:08:51,100 --> 00:08:56,460 plans on the internet to actually build the cabinets and then bought the MDF to do it. 118 00:08:56,460 --> 00:09:00,500 But I've never done woodworking. So this has all been in fits and starts over the last 119 00:09:00,500 --> 00:09:04,580 couple of years. I haven't worked on it in a year or two, though I plan to pick it up 120 00:09:04,580 --> 00:09:07,780 again in the next few weeks as I have that itch again. 121 00:09:07,780 --> 00:09:11,420 The point of the story is, if I had to do it all over again, there's a solution that 122 00:09:11,420 --> 00:09:17,740 looks to be a lot easier. Pimoroni is taking pre-orders for the PiCade Max, a bar top arcade, 123 00:09:17,740 --> 00:09:23,000 not a stand up, that sits on top of a desk or a bar, hence the name. It includes everything 124 00:09:23,000 --> 00:09:29,940 you need to build it, just add a Raspberry Pi 5. The kit includes 6mm powder coated MDF, 125 00:09:29,940 --> 00:09:34,780 two player controls, and a 19 inch screen and 5/4 aspect ratio, just like original arcade 126 00:09:34,780 --> 00:09:35,780 monitors. 127 00:09:35,780 --> 00:09:40,540 What's really innovative about the PiCade Max are the add-on boards that come with it. 128 00:09:40,540 --> 00:09:46,460 There's the PiCade Max Power Hat, which powers both the Pi and the screen at 5V and 12V. 129 00:09:46,460 --> 00:09:52,660 The PiCade Max USB controller board supports up to 24 buttons and two 4-way joysticks that 130 00:09:52,660 --> 00:09:57,940 connect via USB-C. This itself is a deal, as the wiring harness I bought for mine was 131 00:09:57,940 --> 00:10:02,820 about $100 just by itself. 132 00:10:02,820 --> 00:10:07,340 And then lastly, there's the PiCade Max USB audio board, which has two screw terminals 133 00:10:07,340 --> 00:10:13,260 for a pair of speakers and is an I2S audio DAC with a 3W amplifier and volume control 134 00:10:13,260 --> 00:10:17,220 via a separate encoder board. What's really innovative is that these last two boards are 135 00:10:17,220 --> 00:10:23,820 powered by the RP2040 and connect via USB-C to the Raspberry Pi 5. Pimoroni mentioned 136 00:10:23,820 --> 00:10:27,100 in an interview with Les Pounder at Tom's Hardware that they'll be selling these two 137 00:10:27,100 --> 00:10:32,420 standalone boards in the future, and I know I want to check out the audio board for sure. 138 00:10:32,420 --> 00:10:40,060 The PiCade Max kit retails for £495, or about $650 with the current exchange rate. That's 139 00:10:40,060 --> 00:10:44,020 really not that much compared to how much it would cost to build it yourself and take 140 00:10:44,020 --> 00:10:49,380 it from me. And it's about 50% lighter and not nearly as heavy as using normal MDF to 141 00:10:49,380 --> 00:10:53,280 build the cabinet. Of course, I don't want to know what shipping would cost across the 142 00:10:53,280 --> 00:10:58,020 pond for that. I'll link to a couple articles from Tom's Hardware with their coverage, as 143 00:10:58,020 --> 00:11:02,540 well as the PiCast show on YouTube, where host Les Pounder had Paul and Phil from Pimoroni 144 00:11:02,540 --> 00:11:04,460 on to talk all about it. 145 00:11:04,460 --> 00:11:10,100 That's really cool. There have been a few retro arcade using a Raspberry Pi things over 146 00:11:10,100 --> 00:11:15,740 the years, but they've always been sort of, "Oh, if you can find these random parts that 147 00:11:15,740 --> 00:11:20,100 I happen to have in my garage, if you can find the exact clones, you can use my plans." 148 00:11:20,100 --> 00:11:23,900 But having something like this PiCade Max could make it really easy just to, "I'm going 149 00:11:23,900 --> 00:11:25,220 to build it this weekend." 150 00:11:25,220 --> 00:11:32,220 Yep. And you do need to set aside time. Paul from Pimoroni joked on the stream that they 151 00:11:32,220 --> 00:11:38,020 did that his speed run of doing a complete installation was like two hours. And that's 152 00:11:38,020 --> 00:11:41,620 someone who knows what they're doing and has probably done it before. So you need to put 153 00:11:41,620 --> 00:11:47,020 a good chunk of time to do it. But then again, it's taking me years and years to work on 154 00:11:47,020 --> 00:11:51,860 mine. So this sounds like it would probably be a lot faster. 155 00:11:51,860 --> 00:11:57,460 No kidding. Yeah. And I'd love to get the link to the place in your area where you actually 156 00:11:57,460 --> 00:12:02,060 got some real arcade hardware. Because I used to be really into that. I used to have a couple 157 00:12:02,060 --> 00:12:07,420 of stand-up arcade machines. They were old Atari Vector things that were always dying 158 00:12:07,420 --> 00:12:12,180 because that was kind of their normal state of things. They were in, once these old games 159 00:12:12,180 --> 00:12:16,900 get past a certain age, they're kind of always failing, it seems like. 160 00:12:16,900 --> 00:12:22,660 Yeah. And it's really neat. They have everything from PCBs for a couple of games to mounting 161 00:12:22,660 --> 00:12:28,020 hardware to they custom make some PCBs. And then they've got the whole fighting stick 162 00:12:28,020 --> 00:12:31,020 stuff. But I'll make sure to link to Paradise Arcade in the show notes too, because they 163 00:12:31,020 --> 00:12:32,020 ship internationally. 164 00:12:32,020 --> 00:12:38,500 Yeah. And the cool thing about the PiCade Max being separate boards is you can take some 165 00:12:38,500 --> 00:12:46,340 of the Pimoroni stuff and use it with an existing sort of arcade platform that you've already 166 00:12:46,340 --> 00:12:50,620 partially built. If you are kind of stuck on the wiring harness problem of how do you 167 00:12:50,620 --> 00:12:55,140 get these joysticks and buttons and speakers hooked up to whatever you want. 168 00:12:55,140 --> 00:12:59,940 And I've been worried about sound because just doing the 3.5 millimeter out from a Raspberry 169 00:12:59,940 --> 00:13:05,100 Pi isn't, you know, it's still a little tinny. But yeah, I'm excited about that because I 170 00:13:05,100 --> 00:13:09,020 really want to check out the audio board. It's got the two pairs of speaker terminals 171 00:13:09,020 --> 00:13:13,100 so you can use a real pair of speakers with it, not just some cheap computer speakers. 172 00:13:13,100 --> 00:13:14,980 Totally. Yeah. 173 00:13:14,980 --> 00:13:17,940 What's your next one for us? 174 00:13:17,940 --> 00:13:26,320 So yeah, well, OK. So at the beginning of August, on August 8th, Raspberry Pi introduced 175 00:13:26,320 --> 00:13:33,340 a new microcontroller board, a successor to their popular RP2040 Pico. It's the Pico 2 176 00:13:33,340 --> 00:13:39,240 and a new chip that powers the RP2350, which is a great chip. It's like they've improved 177 00:13:39,240 --> 00:13:47,100 it in almost every manner. Like it's it's got a like a twice as fast dual core set of 178 00:13:47,100 --> 00:13:52,180 CPUs in it. It's got extra PIO if you're doing that sort of weird protocol stuff. It's got 179 00:13:52,180 --> 00:13:56,420 twice the memory. Just oh, it's a lower power. You know, even though it's twice as fast, 180 00:13:56,420 --> 00:14:01,260 it's lower power. So it's just all around a really good update. And I've been really 181 00:14:01,260 --> 00:14:08,420 excited as I've been slowly getting some of these RP2350 based boards in to test. Since 182 00:14:08,420 --> 00:14:13,940 it's twice as fast and almost all the stuff I do with the chip is in CircuitPython or 183 00:14:13,940 --> 00:14:17,980 synthesizer stuff, both of which are really compute intensive. Having a chip that's twice 184 00:14:17,980 --> 00:14:22,020 as fast means I can do essentially twice as much, twice as many synth voices or something 185 00:14:22,020 --> 00:14:28,540 or twice as fast response time. And as I was testing it out, I learned that the capacitive 186 00:14:28,540 --> 00:14:32,900 touch library in CircuitPython called TouchIO wasn't working with it. And I looked, started 187 00:14:32,900 --> 00:14:38,220 looking into it, found a bug on the CircuitPython GitHub. As I was looking at it with my oscilloscope, 188 00:14:38,220 --> 00:14:46,260 I discovered that there's this errata that was in the data sheet called E9 that is a 189 00:14:46,260 --> 00:14:53,940 problem with the actual hardware, where if you're using a GPIO pin on this chip in a 190 00:14:53,940 --> 00:15:01,140 certain way, mostly as an input, it will latch up and stay at 2.2 volts instead of like high 191 00:15:01,140 --> 00:15:08,820 or low. And so the way the capacitive touch sensing works in CircuitPython and a lot of 192 00:15:08,820 --> 00:15:16,860 other systems is you have a pin and it drives that pin high for like 10 microseconds. And 193 00:15:16,860 --> 00:15:21,660 then it turns that GPIO pin into an input and watches how long it takes for that pin 194 00:15:21,660 --> 00:15:28,180 to go low. And that time that it takes is basically it's discharging the capacitance 195 00:15:28,180 --> 00:15:33,420 of whatever the line is connected to, like a little capacitive pad. And when you human 196 00:15:33,420 --> 00:15:38,260 touch that pad, that changes that capacitance. And so the time it takes to go from high to 197 00:15:38,260 --> 00:15:43,300 low changes. And so with that, you can get a really good sense of like, oh, was something, 198 00:15:43,300 --> 00:15:47,860 has something touched the capacitive pad or not. But because of this pin is sort of like 199 00:15:47,860 --> 00:15:53,380 staying high or not staying high, staying at 2.2 volts, which is kind of not quite high, 200 00:15:53,380 --> 00:15:58,620 but it's definitely not low. It means that touch I/O doesn't work. It also means that 201 00:15:58,620 --> 00:16:04,180 certain kinds of button inputs won't work either that have like certain low or certain 202 00:16:04,180 --> 00:16:10,980 high of resistance pulldown resistors, or if you've configured internal pulldowns in 203 00:16:10,980 --> 00:16:18,220 the chip. And so I'm at this point, I'm not recommending people use the Pico 2 or the 204 00:16:18,220 --> 00:16:25,660 RP 2350 if they're newbies, because it's got this weird input problem where you don't 205 00:16:25,660 --> 00:16:31,380 know is it not working because of my wiring or is it not working because you're tickling 206 00:16:31,380 --> 00:16:37,220 this weird input bug on the chip. And thankfully, Dan Halbert has looked at, Dan Halbert, who's 207 00:16:37,220 --> 00:16:41,460 a core CircuitPython developer, he looked into it in much more detail than I, and he's 208 00:16:41,460 --> 00:16:46,220 created a bunch of really good test cases that he's opened issues up on the Raspberry 209 00:16:46,220 --> 00:16:54,380 Pi GitHub and on the MicroPython GitHub. And so there's a bunch of good data and the relevant 210 00:16:54,380 --> 00:16:57,780 people have been notified. So hopefully there'll be a fix. I don't know if there'll ever be 211 00:16:57,780 --> 00:17:01,980 a software fix. We might have to wait for the next version of the Pico 2 chip to come 212 00:17:01,980 --> 00:17:07,260 out. But if you want to read more about this, Haxter wrote an article about it that talks 213 00:17:07,260 --> 00:17:11,700 a bit, I think they downplay the problem a bit, because I think the problem is actually 214 00:17:11,700 --> 00:17:17,780 more of an issue than some people say, "Oh, it only happens if you have internal pulldowns 215 00:17:17,780 --> 00:17:22,380 enabled, da da da." But no, I think it's a problem any time you're doing any kind of 216 00:17:22,380 --> 00:17:28,500 input with high resistance pulldowns on the output, which if you're doing low power work, 217 00:17:28,500 --> 00:17:33,540 if you're doing certain kind of bit bang protocols like I2C, if you're doing those by hand, would 218 00:17:33,540 --> 00:17:39,140 that require an external pulldown resistor? So yeah, just be warned, there'll be lots 219 00:17:39,140 --> 00:17:41,940 of links in the show notes about all this if you want to look into it more. 220 00:17:41,940 --> 00:17:46,420 Yeah, it's disappointing to hear on such a popular chip, right at the beginning to run 221 00:17:46,420 --> 00:17:52,260 into a showstopper bug like that. Does it occur on all the pins, all the GPIOs? 222 00:17:52,260 --> 00:17:53,260 Yeah. 223 00:17:53,260 --> 00:17:54,260 Oh, okay. 224 00:17:54,260 --> 00:18:01,420 Yeah, yeah, yeah. I mean, I think maybe the ADC pins in some cases, it doesn't affect 225 00:18:01,420 --> 00:18:09,100 them because the analog buffer gets turned on instead of the digital GPIO buffer. But 226 00:18:09,100 --> 00:18:15,340 all the digital pins, definitely. Yeah, pretty frustrating. I think most people won't see 227 00:18:15,340 --> 00:18:20,060 a problem, but I've seen a problem with buttons and I've seen a problem with the cap touch. 228 00:18:20,060 --> 00:18:21,740 Which is one of your favorite things to do. 229 00:18:21,740 --> 00:18:25,980 Yeah. No, it's like, I was like, "Oh, I'm going to just use this as a drop-in replacement 230 00:18:25,980 --> 00:18:30,660 for some of my existing boards on Tindy," and nope. 231 00:18:30,660 --> 00:18:31,660 Just kidding. 232 00:18:31,660 --> 00:18:36,300 Yeah, lol. So yeah, what's your number two this week? 233 00:18:36,300 --> 00:18:39,620 I've mentioned a couple of times on the show that I have a 3D printer from Bambu Lab and 234 00:18:39,620 --> 00:18:45,540 they're back in the news again after Stratasys has sued them for patent infringement. Stratasys 235 00:18:45,540 --> 00:18:50,180 created 3D printing back in the late 80s and through that and their acquisition of MakerBot 236 00:18:50,180 --> 00:18:54,900 just over 10 years ago, hold most of the patents related to 3D printing today. I've linked 237 00:18:54,900 --> 00:18:58,380 to two articles from Ars Technica and Tom's Hardware that have really good coverage in 238 00:18:58,380 --> 00:19:03,380 the show notes that go into far more detail than I will. In question are 10 patents and 239 00:19:03,380 --> 00:19:09,060 two jumped out at me, the heated build platforms in Purge Towers. Both of these are pretty 240 00:19:09,060 --> 00:19:13,780 standard in 3D printers, which raises the question, are their patents still valid or 241 00:19:13,780 --> 00:19:18,660 is there prior art that may invalidate the patents? Phil Torrone of Adafruit asked this 242 00:19:18,660 --> 00:19:23,100 question a few weeks ago when this hit the news. He suggested that someone like the Open 243 00:19:23,100 --> 00:19:27,140 Source Hardware Association should start a database to catalog prior art to see if the 244 00:19:27,140 --> 00:19:31,700 patents could be invalidated. I'm wondering if it actually needs to be a database or could 245 00:19:31,700 --> 00:19:37,060 prior art be tracked in something simpler, similar to an awesome list and simple markdown 246 00:19:37,060 --> 00:19:42,940 on a GitHub page, for example. I'm half tempted to start a list myself, but I don't think 247 00:19:42,940 --> 00:19:47,500 I have the context in the industry to get the list right. This isn't the first time 248 00:19:47,500 --> 00:19:52,300 a prior art search has been done against Stratasys' patents either. Doing some search engine queries 249 00:19:52,300 --> 00:19:56,780 prepping for the show, there were calls just over 10 years ago for prior art to fight some 250 00:19:56,780 --> 00:20:01,660 of these patents, but I couldn't tell if anything ever came out of it. I'll link to the articles 251 00:20:01,660 --> 00:20:05,180 that I mentioned with coverage of the story in a Reddit thread with some speculation about 252 00:20:05,180 --> 00:20:11,420 why Stratasys is going after Bambu Lab and not other companies. Again, it's just speculation. 253 00:20:11,420 --> 00:20:16,220 I'm not going to say they're conspiracy theories, they're just theories. It probably just comes 254 00:20:16,220 --> 00:20:22,060 down to the fact that Bambu Lab has had a large amount of success in a very short amount 255 00:20:22,060 --> 00:20:27,580 of time. They're afraid of losing market share of their large commercial 3D printers to an 256 00:20:27,580 --> 00:20:34,860 upstart consumer 3D printing company. I've heard so many patent issues with Stratasys. 257 00:20:34,860 --> 00:20:40,540 One of the things I think that started the whole consumer 3D printing revolution back 258 00:20:40,540 --> 00:20:47,340 in 2006 or 2007 was that one of the key patents that was about the, "Oh, I'm going to melt 259 00:20:47,340 --> 00:20:55,620 plastic and squirt it out using a CNC-controlled nozzle," that went out of patent in the mid-2000s 260 00:20:55,620 --> 00:21:02,020 or something. Thus, we got RepRap and then we got MakerBot and Prusa and all these others. 261 00:21:02,020 --> 00:21:08,220 Every 3D printer is because of this patent being finally expired. I remember hearing 262 00:21:08,220 --> 00:21:14,100 one of the reasons why a lot of these consumer 3D printers don't have heated build chambers 263 00:21:14,100 --> 00:21:17,760 is because Stratasys still had the patent on heated build chambers, and so everyone 264 00:21:17,760 --> 00:21:25,140 just had heated platforms. Then, people would say, "Well, you know, if you put your heated 265 00:21:25,140 --> 00:21:31,540 platform 3D printer in a small box from Ikea, your prints would be much better." 266 00:21:31,540 --> 00:21:36,580 Right. Stratasys' headquarters is about 15 minutes from my house here in the Twin Cities, 267 00:21:36,580 --> 00:21:39,580 and I'm just half tempted to drive over there, knock on the door and go, "What the hell 268 00:21:39,580 --> 00:21:40,580 are you doing?" 269 00:21:40,580 --> 00:21:41,580 "What?" 270 00:21:41,580 --> 00:21:47,260 But obviously, they look at this as defending their patents and their revenue streams, so 271 00:21:47,260 --> 00:21:52,980 I see both sides of it. It's still very frustrating for things that are very common today to still 272 00:21:52,980 --> 00:21:54,660 have patents against them. 273 00:21:54,660 --> 00:22:00,300 Yeah, super frustrating, especially for things that seem pretty obvious, but this is the 274 00:22:00,300 --> 00:22:03,860 world we have to play inside of, I guess. 275 00:22:03,860 --> 00:22:09,420 And I did look. A number of those patents don't expire until the mid-2030s, so there's 276 00:22:09,420 --> 00:22:13,060 still over 10 years to go on some of them, which is quite a long time. 277 00:22:13,060 --> 00:22:17,780 Yeah. I'm on the crossfingers that we'll find a way. 278 00:22:17,780 --> 00:22:23,140 Well, that's our show. Thank you for listening. Visit TheBootloader.net for detailed show 279 00:22:23,140 --> 00:22:27,420 notes, transcripts, and to sign up for our new newsletter. If you like the podcast, you'll 280 00:22:27,420 --> 00:22:31,340 like the newsletter as we give you some behind-the-scenes and some extra links that we didn't cover 281 00:22:31,340 --> 00:22:38,060 in the show, and we promise there's no spam, no tracking, so check it out. Thanks for listening 282 00:22:38,060 --> 00:22:39,220 and stay positive.