Rwy'n gael ychydig i'w ddweud fel Llyfrgellwyr yn dweud yn eich cyffredinol ar y cyflwytaeth fel Llyfrgellwyr. Rydyn ni'n ddweud am y dyfodol, dwi'n ddigitaliogu yn ei wneud yn ymddangos. Rydyn ni'n ddweud am ymddangos, dyfodol ymddangos ymddangos. Mae'r ddigitaliogu yn ei ddweud. Yn y ddweud o'r ddweud o'r ddweud, dyfodol i'r ddweud, ddweud yn ei ddweud syntax, but a bit more worthy and a bit less curly braces. You can use it for designing all kinds of different digital logic but I normally encounter it in the context of CPU designs. You can take your Verilog code and synthesize from it a silicon implementation or target in FPGA or you can simulate the Verilog code and that simulation is the subject of what I'm talking about. I usually encounter this kind of simulation technique in my work as a compiler engineer at Embercosm. Embercosm's customers are normally semi-conductor manufacturers who are developing their own processor architectures and designs and we provide them with an open source software toolchain so that includes things like the compiler, the assembler, the linker, the debugger and all the binary utilities. But we're normally working with them on these tools at the same time as they're developing their hardware. So it's very useful to be able to use simulation techniques for us to test the compiler and run the generated code on a model of their actual hardware. And it also helps tease out some hardware bugs as well early on in the process. So the way I'm going to approach this is just to go over a quick outline of Verilog. If you're not going to have Verilog before it will be a quick primer or maybe a refresher if you're a bit familiar, a bit of familiarity with it. Then I'll talk about different simulation approaches in particular for CPUs. We'll see where Cycloacric modeling fits in with that. Then I'll talk about what Verilog is and how you would use it. And then talk a bit more about how you can use trace files and trace dumps to look inside what's going on in the model. There's also a workshop tomorrow on this subject and I'll talk a bit more about that later. So this is a quick overview of Verilog. So you can use it to represent things like combinatorial logic. So things like gates and or not and combine them together to compute arbitrary Boolean functions. You can use it to represent sequential logic as well.  A flip flop can store one bit of state at a time. It has a clock input and its state can be updated once on each clock edge. So those are the basic building blocks but we wouldn't normally work at a level of individual gates or individual flip flops at a time because it's too fiddly and fine grained a level of abstraction. So in Verilog things are grouped together. So you make registers by grouping together flip flops. So one flip flop, sorry, a group of eight flip flops might be represented by an 8-bit register. You can also connect registers and other things together using networks of wires. So the very low declaration of these things looks a bit like this. Here we've got a declaration of a 32-bit register and beneath it an 8-bit network of wires. The structure in Verilog around these things is made, I think of as three things. So we use modules to create reusable, to abstract away functionality into reusable components. And then inside the modules we have the sequential and the combinatorial logic to implement, to provide their implementation. So we'll look at each of these three things in a little bit. First of all, a quick look at modules. So this is the simplest Verilog module that I can imagine. It is something which just has one output and it continuously assigns the value one to that output. So this idea of continuous execution is an important point. Unlike other programming languages that you might have seen like C, the Verilog code isn't executed as a sequence of steps that happen one after the other. But in some sense, all of the code is concurrently executed all of the time. So it's a bit hard to grasp that idea in the abstract sense in which I'm describing it now. So if you try and keep it in mind over the next few slides and code examples. This is an example of something that might be a slightly more interesting module. So this module might represent some chip and have some, it might have a clock input, several connections to an SRAM memory and some PMOD outputs for input and output, general purpose input and output. So what this shows is just the interface of that module. There's no definition of the implementation here. So if you wanted to make use of this module, you wouldn't need to know what's happening internally. You would just need to know what its interface is. You could think of this a bit like the function prototype in C or being analogous to that. So next we'll have a look at some combinatorial Verilog constructs. So there's a lot of code on the next few slides, but I don't want to try to focus too much on all the syntax on the slides, but more to give you a feel of the kind of things that you can express easily in Verilog. So there's logical bitwise primitives. So things like negation and or and not and excusable and that kind of thing. You can also shift values up and down in registers. So there's both arithmetic and logical shifts. Unlike in C, you can choose the type of shift by using the syntax rather than it depending on the type of the operands. It's often going to be the case that you'll have wires or registers of different bit widths that you'd like to assign to something else that's another different bit width. So what it can be quite useful to do is to concatenate some wires or register values together to create a wider bit width out value. So you can do that with this curly braces syntax. I'll just go through a couple of examples on the slide. So in the first, so from the fourth line down, we can take two one bit values A and B and concatenate them to assign them to a two bit value on the left hand side. You can also concatenate things with constant values. So we concatenate A with the constant one. Or you can concatenate any number of values and constants to create a wider output. There's a few more examples on the slide but I won't go into detail about all of them. The slides will be available after and there will be some more detail in the workshop about some of these things. You can also use if and else constructs to conditionally control the execution of some statements. So the top code example is a function that computes the minimum of two values. In general, when you write a conditional, that will depend on some boolean value and then you'll have some statements in the if branch and the else branch. If you want to have more than one statement in a branch, a bit like C, you need to put these begin and end keywords around them. So the begin and end keywords are in place of where you would have say curly braces in C. Something that's semantically a bit different from what you'll have seen in software programming languages are always blocks. So an always block contains some statements that are executed depending on what the timing controls say. So the timing control is specified after the always keyword with an act. So for the combinatorial logic that we've just looked at, you would always write at star and that means execute this block whenever one of its inputs changes. Right. So a quick look at a little bit of sequential variable log as well. So this is the clock's logic. So you can have an always block for sequential logic as well. In this case, instead of the timing control, depending on all of the inputs to the block, this example is of a block that will be executed or triggered on the positive edge of the clock or its input. You could also use the negative edge. In this example, the register A is going to be assigned the value of B on the next clock edge. So when we write this, the syntax for this assignment in sequential logic is also a bit different to what we've used in combinatorial logic. So we'll have a little bit more of a look at that. So these are called delayed or non-blocking assignments when we write less than or equals. It causes the value on the right-hand side to be transferred to the variable on the left-hand side on the next clock edge. Whereas when we were writing the plane equals assignment with sequential logic, the value will be assigned immediately. So it means that you can do some interesting things with registers. So in this code example, the values of B and A will be swapped on every clock cycle. The values of B and A on the right-hand side are both taken from the current clock cycle, and then they're both assigned to A and B on the next clock edge. So that was a bit of a whirlwind tour of Verilog. So just to try and take stock of the things that we've just had a quick look at, it's a language for hardware description with a syntax like C, but semantically it's quite different to C with its concurrent sort of execution, things like always blocks and delayed assignments. You use modules to create blocks of functionality that are reusable. And then inside the modules, the implementation uses combinatorial and sequential logic. So I'm just going to talk now a little bit about the different approaches to simulating Verilog. Okay, so there's different approaches to simulating CPUs in particular. So one thing you can do is to write an instruction set simulator, which would just be a piece of software that you would code up that implements your instruction set architecture. The disadvantage of doing that is that it's not actually got any relationship to any Verilog code. It's just a simulator for the architecture. So what you might do instead is use a tool to generate a cycle accurate model of the Verilog code. That model that you get out of it will be able to show you what's happening on each clock edge of the model. So it's a bit more of a powerful tool than an instruction set simulator for seeing what's going on with the Verilog. Or you could use an event driven simulator, which is going to produce a more accurate simulation or realistic simulation in some sense because it can also show how events occur within one clock cycle as well. So it's the most accurate approach to simulation. The reason you wouldn't necessarily always want to use that is that it's the slowest form of simulation as well. The instruction set simulator is the fastest form, but it's got the disadvantage that it doesn't give you a timing model or connection with your Verilog code. So in between those two approaches is cycle accurate modelling, which is a trade-off between accuracy and speed compared to the other two approaches. So that's what Verilog does. So Verilator is a tool that you can use to take your Verilog and it compiles it into a cycle accurate model written in C++ or system C. So I'm just going to talk about C++ because I don't know anything about system C. It's a free and open source project. The variable project that it comes from is for free and open source Verilog and system C tools. It's quite widely used in industry and academia. So I had a look on Wikipedia. There's big companies like NXP and ARM using it as well. Then there's smaller companies like M because I'm making use of it too. So this is the kind of flow if you're using Verilator to build a model of some Verilog code. On the left, if you have some Verilog code, you would run Verilator on that and that would generate all your C++ model files. So although you have the model, it's not going to do anything by itself. So you need to write a test bench to drive it. So that test bench will instantiate the model and drive it forwards in time. Then you can compile and link your test bench and the generated model together. That will give you an executable simulator that you can run just like any other program. I'm going to work through an example of using Verilator to model one very simple Verilog module, which is a counter. So this counter is a module that takes a clock signal as input and then it counts on each clock cycle. Every end clock cycle is going to increment the value of an external counter. It's got a couple of other signals as well that I'm just not going to worry about for the purpose of the example. So the first thing you need to do to model it is you write a top module in which you can instantiate the module that you're interested in. So the inputs and outputs of your top module are things that are going to be exposed to the C++ test bench that it will be able to interact with. So what I've done here is created four inputs and outputs that will be able to be seen from C++. Inside the module the counter is instantiated and then the inputs and outputs of the counter are hooked up to the inputs and outputs of the top module. So in this example this is just a trivial wrapper around the counter but for something more realistic you might have several different modules that you'll be instantiating and connecting some of their inputs and outputs together. You would only expose a subset of all those signals to the test bench. Once you've written the top module you need to verilate the Verilog code. So I normally sort this all out with a make file rather than go into the details of exactly what's in a make file. These are just the relevant invocations from it. So you would call Verilator. It needs to know what all your Verilog source files are. You tell it what the top module is and that you want to generate C++ code and that's enough for it to run. When it does run it will generate a folder usually called Objder that contains all of its generated outputs. So that's ready to compile. Inside there you get a make file as well for building the model that it's produced. So you need to call with that make file and then usually there's a few different targets that you would want to build. So a target in this case vtopall.a is the target for the top module. So the name of the target is derived from the name of the top module and then there's a couple of other object files that you would always build as well because they contain utility functions that would be used by your model. So that's sort of done on the Verilog and Verilator side. When you create your test bench, C++ source you will have a class for the model, so vtop, that you need to instantiate and then some of those inputs and outputs that we put in the interface of the module are now accessible as members of those in C++. So here in the example we're setting reset to one and able to zero. If you want to, once you've instantiated the model you probably want to actually drive it forward in time so that it will do something. So I normally wrap this in a function for the clock in the model. So as a clock it's just a signal that alternates between a high and a low state. The clock model function is going to alternately set the clock pin to zero and one. Every time it changes the value of the clock pin you need to call the eval method of the model and that propagates all the state updates inside the model. So once you've instantiated the model you can repeatedly clock it to drive it forward in time and that's sufficient for interacting with the model like a black box. Probably what you're going to want to do as well from the test benches is access the internal state to see what it is or maybe modify it. So you can do those with tasks and functions. So we'll have a quick look at an example of one of each of these but before we do that a bit about the internal implementation of the counter. So the counter has a register inside it called internal count. Every time the clock ticks if that internal count is about to roll over then we increment the external count otherwise just the internal count is incremented. So this internal count is always going on but you can't see it. So let's write a function and a task to access that internal count. So we can declare a function to access it using the function keyword. After the function keyword you're declaring the bit width of what the function returns then its name so we call this readInternalCounter. If you want Verilator to expose this to the C++ test bench then you need to Verilator public in a comment as well so it knows to do that. Whatever you assign back to the name of the function is what's returned back into C++ so here we'll just assign internal count back to readInternalCounter. So if we rebuild the model with Verilator and then recompile it then from the test bench we can access that function now. So the model object that you have in C++ has got a sort of object-oriented structure but mirrors the structure of the Verilog. So starting from the model object we have to go through the top module the counter with instantiated and then it's there that we can find that function that we've just added. Can I just check how I'm doing for time? Five minutes, okay. So if you wanted to write back the state with a task then, sorry, if you wanted to write back or modify the state then you can use a task to do that. So we're here with declare a task with the task keyword. Again it's going to be told Verilator public so it knows to be exposed to the test bench. That's going to take an input that's declared that's going to be the new value of the counter and then inside the body of the task we'll just assign the internal count that's passed in to the internal counter. If we rebuild the model again then from the test bench we can access the task call the task in a similar way to call in the function through the top module on the counter passing it the value that we want to assign to the internal counter. Then once we've done that straight away afterwards we need to call the eval method of the model again to actually get the model to update that state that we've just changed with the task. There is a little bit of subtlety about using a task in this way that I'm kind of glossing over because it's a bit, because I'm a little bit short on time but there's a little bit more about it that I was going to put in the workshop for tomorrow in the details of that. So using functions and tasks is a handy way to access the internal state to see what's going on but you might not want a code or a function or a task every time you want to check out some internal bit of state so instead what you can do is create trace files of the execution of the model that you can then visualize and that can give you a much easier way to see what's going on in the model. So in Verilator to do that you just have to create a new trace object look it up to your model and then when your simulation is or model is running once it's completed close the trace file and it will be written out to disk. So the Verilator does need to know when to dump its state into this trace file so what I would normally do is modify my clock model function so that every time the clock goes high or low the state of the model is written to the trace file. The trace file also needs to be told what the simulation time is as well because everything's got a time stamp so you need to keep track of what the simulation time is. You can find that because you're dumping everything at every clock edge this can make really big trace files so if you find that you're having that as a problem and you might need to think about selectively enabling dump just for points in time that you're interested in instead. So rather than trying to talk about GTK where everything's the easiest thing to do is to just see it in use so when you open it up with a file a trace file in the left hand pane you have your verilog modules on the signals in it and on the right hand side is the wave viewer. I know it's very difficult to see but you can basically navigate the structure of your verilog and then if you pick a particular module that's instantiated you can see all the signals on the left. So if you're interested in a signal then drag it over to the right hand pane and it will show you what the waves are sequentially in time. It's going to zoom out a bit. So you can see the clock there. We might have a look at the external counter and we can see that it starts incrementing after a few cycles. Why is it doing that? Maybe if we have a look at the internal counter we can see that that increments a lot faster than the external counter. The process doesn't seem to start if immediately there's a few clock cycles before anything happens. So we can have a look at the enable pin because I think that when you look at the waves in this way I think this is actually exposing a bug in the counter because as soon as it got enabled the internal counter tripped over to one instead of spending a cycle when it should have been at zero. So quite often you can look at these traces in GCK wave and see what's going on in quite an intuitive way to spot where things aren't quite working as you expected. So that's sort of the end of the quick verilater tutorial. We've used verilater to build the software model and then drive it with a C++ test bench. Then to access and work with the internal state we've added functions and tasks and to view the state of the model and visualize it we've used GCK wave to look at the change dumps in the trace file. OK. So that sort of concludes the tutorial. There is a workshop tomorrow where there will be some material sort of expanding on this counter example if you're sort of beginning verilog or verilater and want to try and work through it and see it in a bit more detail. On the other end of the spectrum there's also some open source RIS5 cores that you can build a verilater model off and see what the cores are doing and execute programs on them. That's that's all. So thank you for listening.


Alive from New York, it's Ask Its Engineer! Hey everybody and welcome to Ask Its Engineer! It's me Lady Aida, the engineer with me Mr. Lady Aida on camera.  It's so exciting! I've got the glass in! And there's a glass in! Because it's green and we have a green spring in the school. Yeah, I'm in my abyss James Cameron phase. You love the spheres and you still love the spheres. Yeah, look at this. Okay, well let's get right into it. What's up, Tenth Show? What's the code? Tonight's show, the code is Cutie Pie Audio, 10% off in Native Freedster all the way up to 11.59 p.m. tonight or when I remember to turn off the code. Spend some cash, save some dough, get some free stuff, use the code. We'll talk about from Disco Lady Aida every single week we do a recap of what was on Disco Lady Aida, a live show that we do over the weekend from Lady Aida's desk, including The Great Search. We have JP's product pick of the week. Time travel, a little bit of news, Vegas news actually. And then I'm gonna do a segment about some open source hardware. Release an article today. That's that glass that I just showed you. Talk about current state, what's going on with some open source hardware companies and more. Tune into that. I'm gonna do some advanced manufacturing, Made in New York City factory footage, some 3D printing videos, some IonMPI this week. It's Infineon brought to you by Digikey and Aida Fruit. We're gonna do some top secret. There's a bunch of new products. We're gonna answer your questions. We do that on Discord because there is a lot of places that we're broadcasting. AidaFruit.at slash Discord. Put your questions there either throughout the chat or just hold them to the end. All of that and more on, you guessed it. Ask an engineer. So first up, Lady Aida, let's make sure folks know where they can save some cash. That's with this code. That's your data for Qtify. Audio, they get free stuff. What did they get when they started spending some bucks? We have all our freebies enacted. We've got the half-size promo proto that you get for free when you order $99 or more. We will be phasing this out for something different soon. So if you don't want one, pick some up or order more than $99, $149 or more. You get a free Black KB2040 ran on the pink PCBs. AidaFruit Black looks cool. It's got that gold plate, cast-related pads. It's pro-micro pinout compatible and features an RP2040, so it's great for any kind of mic controller project. Free UPS ground shipping for orders over $199. We'll talk about that. Who knows how long that's going to last. By the way, there might be a UPS strike. We have FedEx coming, don't worry. If needed. This is only... Who knows? We have UPS. Uncertainty, ground shipping. And tune in down to more. We've got Circuit Playground Express. There's lots of them, thank goodness. So our favorite all-in-one development board. It's round. It's got LEDs, buttons, sensors, and everything. Works great with Arduino, Circuit Python, MicroPython, Code Deluxe, and more. So thumbs and priests to us, and don't forget the code gets used with that. And then today, you know, I got a little... I got to spend some time on this. This is for all who celebrate today's Prime Day. And I just wanted to say thank you for Optimus for making me the ultimate sacrifice. It's great that every year people get together and honor Optimus. And the great thing that he did, there's all sorts of events and more today. It's a solemn, sad day. You know, I... Have your robots. Thoughts and more to Optimus's family and friends. But Prime Day. Okay. That was just a joke. Please buy stuff from Adafruit because it's not Amazon. Anyways, Chantel, thank you, JP, for doing the Chantel. I did get a little glimpse of it. We're going to watch it right after, because we were doing all this show stuff. There was a really cool cutie pie synth thing that Todd bought. And I just saw a glimmer of it. Glad the code's cutie pie. Yeah. And I think Mass came back with some synth stuff and then DJ did a cool project. So I got to see that. But that was right when we were about to start the show, when we were kind of like trying to get everything done at once. Next week Liz will be hosting and then we'll probably be back. So every week, 7.30 p.m. Eastern time on Wednesdays, show and share projects, repertory stuff, just about anything. It's the long-standing Chantel. Come on by. Some days we do from the desk of Lady Aida. What was on your desk this week, Lady Aida? First off, we showed, we built a second toy hacker board.  We're going to, in the top secret section, we're going to show a preview of the first only Wi-Fi, Python open source music streaming player for infants. Ours plays prints and we modify the inside and the outside. Cool. Also showed off, let me see. I got a couple of things going on there. The toy hacker board is for sign-ups. I showed off this board that plugs into a Raspberry Pi and lets you connect to iSpy or Stomacut and has some buttons and switches. You designed it actually with me because you were like, what's making it easy to plug in hardware to a Raspberry Pi? And then I finally got some ICN 6211s back in Stoktor Available. You could buy them and so design that I started in 2020, 2021. This ICN 6211, DSI to parallel display is coming. I got, I made one mistake on the board. I talked about that, but also thankfully, even though I swapped two pins, we can bit bang, I scored C on circuit Python. So I did get the register reading coming back. Also, I showed off some cool flexible PCB prototypes I got. Okay. Then we do the grade search. That's when you use your power of engineering to find things on digikey.com. What did you look for this week? So this week, we showed off a board that has a USB hub chip on it. It's a very simple USB hub chip, but you might want a slightly more advanced and powerful USB hub chip. And actually somebody emailed and they said that they were using this chip that ended up finding in a design because they wanted a hub that they could control, turn on and off the power ports remotely. I think this chip does that. So we look at different smart USB hub chips that are available, two, three, four port. There's like three or four chip companies that have like a big family of them, but they're definitely nicer than the really inexpensive ones. You have LED control, overcurrent detection, voltage, turn on and off, change the VAD, PID, descriptor strings, swap ports around. You can do a lot of cool stuff with these hubs over iSquad C control. So we found a family of chips you can check out from Microchip. Okay. And then every way JP does a product pick of the week. If he's back from a vacation, this is a live stream from product page where the discount is automatically applied to get away JP. This is this week's highlight. It is the PAM 8302 Stemma Audio amplifier. It's a mono 2.5 watt amplifier. And it is pretty plug and play. You can see here I've got a little speaker here plugged into the screw terminal. And then we have a little Stemma 3 pin plug that you can plug into your project and get the audio power and ground reference over to the board. So I'm just going to power this up over USB. Let's see, I can adjust the volume down and up. It is the Max 8302 Stemma Audio amp. Okay, a little bit of time travel. By the way, this week's show is going to be different because we got a lot of different segments this week.  And then of course, some we'll just do next week. But I did want to get some news out. So coming up is Defcon Vegas. Defcon Hackers with Disabilities is one of the groups. And more, we are a sponsor. On Saturday, there will be trivia prizes. You can win different gift certificates. And more, the folks who run it contacted us. And they said, hey, we want to have some cool things to give away. And so we worked with them. And that reminded me of this Vegas footage that's going around right now. This is this giant LED ball. And I'm just like, oh, cool. Phil B is going to run his eyeball code on this one day. It is my eyeball code. Yeah. But the thing about this was I'm like, I wonder what this really looks like in person. Is this like marketing shots or this or is this something? So Maker Melissa is in Vegas. And I said, hey, can you take some some footage just like whatever during the day? And so this is during the day footage. This is LED. That's bright. Yeah. And we're not really sports ball folks. But I understand this is basketball, of course. And this is really, really neat. I would go to Vegas just to see this. Defcon. This is like a cool thing to go check out. Yeah. And just look at straight up daylight. This is what. And Vegas gets bright. It's hot and sunny and bright. Yeah. This is like full on the sun is closer to this portion of the planet. And it still looks this pricey. See, I thought this was neat because I didn't really see anybody post footage like this online. And thanks to Maker Melissa for getting this to us. Because I'm like, I wonder how good it looks. But this is really neat. I want to see this. So it's electronic related. You can put it Apex Expo in Vegas again. Okay. And then some open source hardware guide stuff. We're not going to do the full on guide. All the guides we do each week. Yeah. But we are going to do one because I wanted to play Loose's video. If you have one of these IKEA air quality things, you can hack it with a QDPie SP32 S3 and Adafruit IS. So go to our learn system. You can see all the latest guides. We're going to go over all of those next week because we've got a bunch of other stuff we're doing this week. But here's a quick video. So if you haven't seen it and haven't seen the guide, check out this little video snippet. In this project, you'll add a QDPie ESP32 S3 to an IKEA Vendrickning air quality monitor to convert the small and affordable PM 2.5 sensor to an IoT device. Unlike most IKEA hacks, this doesn't require a hammer, just a soldering iron. It's also non-destructive to the air quality monitor. Three exposed test points on the PCB are soldered to and the QDPie is able to receive power from the built-in USB-C port. The QDPie runs circuit Python code that reads your data from the PM1006 sensor inside the Vendrickning. It then logs that data to a dashboard on Adafruit.io. You can set up alerts in Adafruit.io to text or email you when the air quality starts to deteriorate. See how you can hack your own by checking out the learn guide at learn.adafruit.com. Okay, this week is some open source hardware news. It kind of goes into the maker business. We used to do a specific video show around us and we kind of just merged into Ask an Engineer. But we have an article, I have an article once in a while I write and this is called... That was a glass head by the way, that's home.   We weren't, if people would think it was like mid-journey. It's not, it's actually just a glass head. This is real art that we made right here. It's real. Right here. Right here. So this is the article you can get to at Adafruit.com slash changing OSHW or you can just go to our blog right now. So the titled article is called When Open Becomes Opaque, the Changing Face of Open Source Hardware Companies. And this article, I did. Yeah, you can see that we have the byline right here. So this article was something that I didn't really have time or want to write back in, I think it was March or May. Prusa, the best known 3D printer company said, hey, we're not really, looks like we're not going to be releasing some of the open source files and open source stuff for our printers. And I was asked to take a look at this and I'm just like, oh, like, I don't know enough of what's going on in that 3D printing world, but I'll try. And then Arduino got 32 million in funding and they changed some stuff on their site and I'll get into that. And also how they're doing some things with open source. And I was asked to look into that. There was a product release from SparkFun that there was some questions about how they're doing open source and I was asked to look at that. And so in this article, I kind of go over like, why in the world am I in this kind of unfortunate? What do you care? Yeah, why am I in this? And some of it's because I started Hackaday and I was at Make and I was often asked to help navigate some of these issues. So one example is Scholastic took Evil Mad Scientist open source stuff and turned it into a book and they didn't have credit.  We're not going to like sue them or anything, but like we can we just want to get credit. So I was asked to like go behind the scenes and like try to help out. Do you have to go back to liquid looking wear? Yeah, there was there's companies. They said it was open, but it wasn't. Yeah, there's companies that were selling open source. And so my strategy is to privately communicate with these folks and say like, hey, here's the open source definition. Here's the things that we try to stick to. Here's all the benefits of doing open source. I've kept track of this. So if you look, I linked all these things from like the first open source hardware gift guide when it was like 10 open source hardware projects. This is a long time ago. And then when MakerBot had its rise and fall with open source hardware, got into patents, got acquired and all that. But I just been in this and like this beat is in the article. I said this beat is I'm stuck within it stuck with me. So I don't really have a ton of time to read articles, but there are like little checkpoints along the way that I try to have on our blog. And it's great that we have a blog. I like that we publish, you know, social media platforms change, things go away, but we have a blog that's been around for almost 20 years soon. In fact, I refer to some previous posts on this article that is a follow up. So this is essentially like notes to self. But so the thing that's changed with open source hardware is it looks like some open source hardware companies are starting to go close source or change what they're doing. Arduino is now, I think essentially like two different efforts. This is just my point of view. There's Arduino Pro, which is not open source hardware. I confirm with them. They said, nope, it's not open source hardware. And I said, okay, but your site still says everything is open source. So the Arduino site had said all boards are completely open source, all the software is open source. And for us, this is this is this thing that we've worked on for a really long time. We have them, I think, still the most libraries. I think you're still one of the top contributors. Definitely one of the top library. Maybe not like new ones as of this year. Yeah, I was on maternity leave. But historically overall, I think I like 450 library. So if you look in the article, because the site used to say all the boards are open source, all the software is open source. That's been completely removed. Gone. And I had asked Arduino about this. And maybe it's quits and all, but that was the time like, hey, what's going on with your open source stuff? So that got updated, changed. Arduino got 32 million in funding. And this article is on making around some social media right now. No one knew it. It really AI startups like back in the day, crypto and NFT startups made the news. But Arduino getting 32 million dollars. The best well-known open source hardware company. 32 million.  And the only one that I can think of besides this was little bits. And little bits was open source hardware. And then there, I think, just part of sphere now, not open source hardware. And what seems to happen is when companies get investment, especially this amount, they stop serving the users and they start serving businesses. So this seems to be an indicator. So with Arduino, they have the pro version, the pro stuff. And that's for business customers. They want to focus on business. And it seems like some of the open source stuff is not the same as it was. We'll see what changes. That being said, the latest Arduino War 4 is still open source. Yay. So good on Arduino. Oh, it's good. Good on Arduino. And I checked. The files are there. Yeah. I did ask them. I said, hey, since we're in this murky territory, it seems, where there's some Arduino that's open source and some Arduino that's not, would you consider open source hardware certifying the Arduinos that are not Arduino Pro? They said no. So that's their choice. I think it would be a good thing, but up to them. And I was asked about this because we were asked to carry it. And we're one of their products. And I'm like, oh, it's an Arduino Pro. And then we're asked to carry another product. And I'm like, let me ask them. And sometimes I get a response. Sometimes I don't. SparkFun, this is the one that came in recently. SparkFun, the OG, we wouldn't be here, I think, unless SparkFun did what they did. And I think this is the first time they've had a product that has closed source, binary file. And if you want to get the software, you have to sign an NDA. A person wanted to use the product for, I think, their company or something. They said, do I need to rewrite the software or kind of take a look at it? And the SparkFun person said, we are keeping the data logger for a more closed source as it contains SparkFun intellectual property and is the result of hundreds of hours of work. We may be able to release to you, but it would need to be under an NDA. Now, the SparkFun board has an open source hardware logo. It has a certain license for the hardware, software license, MIT. I asked them about it. And they said, that was an error because obviously you can't say it's open source when you have a closed source binary and NDA. I think that this is the first time they're doing this. Maybe they're experimenting. We'll see what happens. I'm not aware of any others. Yeah. So I was asked, I was asked, hey, do you know about this? And I said, well, I'll just email SparkFun. And SparkFun CTO got back to me, said it was an error that the board was marked as open source with the logo and certification. And I said, hey, I'm kind of curious. Is there GPL software in that closed binary? Or is there any open source software in that closed binary? Because it's like an IoT thing. It's a day log or IoT. You can use open source software in closed source things with NDAs. I would like to know if there's any in there. I'm not going to sign an NDA, so I'll never even know. So they didn't reply to that one. We'll see. If they do, I'll update the article and I'll put exactly what's in there. And then to get back to the beginning, Prusa, they're still selling a board or boards that have the open source hardware logo. And the product pages still say it's open source. People are buying these things that are open source. Prusa has an article. They're like, hey, we're thinking of getting out of open source. They have a whole list of reasons. But then it kind of went on radio silence after they posted this article. And then Thea had an article about like, hey, here's what's important to open source. And maybe there's solutions to this. Michael Weinberg, who's the president of the board or chairman of Oshawa, said, hey, what are the things that you're trying to protect with this new license? Prusa's idea is maybe there's a new license that can protect it. I don't think that's possible with hardware. And there's nothing that a new license would stop some of the things like to have a supply chain issue. They had went into some things about China. We have all the same things. I don't think that's the strategy that's going to work out. I think you just have to move really fast, give more to the users than you're getting. And with 3D printing, you probably have to have something on a regular basis that's lower cost and better. I don't know if it's open or not matters in the 3D printing world. Same thing with our stuff. We kind of have to have cutting-in stuff. Because yeah, there's like duplicates of our hardware. There's people who take our code. There's a lot of things that happen that you have to move fast. So this would be a little bit of a blow if Prusa gets out of it. On our blog, 10 years ago, I wrote about Prusa's tattoo because I'm like, oh my gosh, you got an open source hardware tattoo. So you got an open source hardware tattoo. And I followed up with Prusa. And I said, hey, can you comment on your article? And then they get back to me. And then they get back to me. Yeah, thank you. And I got a comment. So they went into some of the reasons they're thinking of getting out of it. And then I also asked if she's going to get rid of this tattoo because that's a pretty big tattoo for something. And it would be a sting, I think, to the community if Prusa exited the field. So maybe support them with their purchases. But I understand for our community, if you're not getting the files and the software and all that, you probably don't. You may as well get a close source printer. You buy things for a reason. They have a really good section on why open source matters. Prusa themselves said they wouldn't be there without building things on top of RepRap. So we're in this beginning of the end or end of the beginning. Who knows? If you're buying things that say open source and they're not, and you return it because of that, should you get a refund? There's a lot of things.  And I think there's a little bit of that with some of the hardware platforms. Once you start serving businesses instead of users, it seems like people will just leave. I look at our show and tell, and there's people that come on our show and tell for years. The reason they like going into our GitHub and the open source community is they know there's not going to be a rug puller switcher. They know that the code that they use, all the things they're doing are not going to be wrapped up into a close source thing and called pro. Or they know where it's going to be used and there's no shaky ground. And so we'll see what happens. It's definitely a different chapter coming up ahead. I think the supply chain shortage really put a squeeze on companies. I think they're making decisions. I think these companies are starting to blame open source. It's not open source's fault when you can't get chips from ST for years or when someone comes along and moves faster than you. It's not the reason. And then, hey, we want to recoup money. Well, it spends millions of dollars a year funding open source. We're not approaching it in a way that's like, well, let's get our money back first and then put it out there. That's not the way it works. And also there's really no protection for hardware. You have patents, you have copyrights, you can have trademarks. But there's no license, magical license.  This came up with MakerBot and came up with other companies that said, well, we want a license that says, like, we can keep it closed source until X, Y, and Z. And it's not, the license is not going to do that. So we'll see what happens. I got some comment back from HRSA. We'll see if I get anything back from any other entities. This is probably one of 50 articles I've done over the last 20 years that has like, here's where open source is now. Here's where it is later. Here's what's happened. Here's what's changed. Here's what's changed. I remember when there was three projects or one or two projects that were called open source hardware. Now there's too many to count. And now we'll see is the pendulum swinging the other way. So that's my article. I also put a disclosure. So when I was finished with this, I put all the text into chat GPT that I wrote. I wrote the text, chat GPT didn't. And I said, what titles make sense with the context of this? So it spit back some other titles and then I go back and forth. So it helped me decide on a title. And I like to do, we have an editorial guideline. I think anytime we use these tools, I do that. I'll always put a disclosure. But anyways, I made this graphic myself. And the title, I had a computer talk to me about it. I think it was a good one though. I like when open becomes opaque. It's a nice, that's a nice, not all the suggestions it had were good, but this one, I think was good. But then a human picked from the suggestions. Okay. Here's the factory. Speaking of open source hardware, here's some factory footage. That's the factory footage. Someone in the chat said cat GPT were. That'd be funny if it analyzes your article and just goes meh meh meh meh meh meh meh. Okay. Let's do some 3D printing videos and more. You can build your own adobot with Adafruit's RP2040 prop maker feather. This is a fully 3D printed toy robot that features a server-controlled head, sound effects, and neopixel LEDs. The startup sound lets you know when it's on and the button on the back lets you play random audio files. The mouth lights up while the audio is playing and the neopixels are animated when it's idle. The head also randomly moves back and forth. To stop the servo, just lay Adobot on its back to go into sleep mode. This uses an accelerometer to detect its orientation. The mouth also slowly fades in and out, kind of like it's taking a nap. Powered by the RP2040 chip, this feather has everything you need to make simple robots, toys, and cosplay props. It's got all the features you know and love about the feather, plus an itwis amplifier, accelerometer, neopixel driver, stomach QT, and USB-C. We think it's the best all-in-one dev board for making these types of projects. Libraries for CircuitPython enable you to develop projects with neopixels, servos, and audio output. The code is easy to modify so you can customize the LED animations or add new features. You can check it out on GitHub, links are in the description. We think CircuitPython is the best way to get started with DIY electronics. Download and 3D print the parts in your favorite filament. They print without any support material and most of them snap fit together. The electronics are secured to the various parts and they're easily accessible. It's a modular design so you can swap out the parts or customize the design. To learn how to build your own, head over to the guide at learn.adafruit.com. We took Adaba on a trip to Star Wars Galaxies Edge at Disney World and went to the Droid Depot to hang out with other robots. We had a lot of fun taking it out and even more so making robot friends. We hope this inspires you to check out the Feather RP2040 Prop Maker for your next project. What is this week's IonMPI? Okay, this week's IonMPI is from Infineon which I don't know if we've heard them before. It's this 14-pin SOIC chip. I'm going to get the part number right. It's the XDP201. It's a hybrid flyback controller. The particular slash new like the featured product on digikey.com slash new was about in a valve board they have. For this chip, which we'll talk about more in a bit, and this board takes AC power from the left and it converts it to a high current DC power on the right for charging batteries. It's an evaluation board for large battery charging. It also features the cool MOS. MOSFETs with ultra low RDS on. It looks like they have a nice yeah cool MOS. They're so cool. They are in this AC DC converter. Bam, just like that. Well, there's only two of them. There's five in this particular image. But yeah, it's an AC DC converter chip that is a hybrid flyback and uses also Infineon MOSFETs and also there's a valve board. So it's a 3-in-1 INFPI. So what this board, this valve board and this chip is part of is Infineon's full from beginning to end documentation and support and product line for light vehicles. Also known sometimes as micro mobility or e-scooters, e-bikes, mono wheels, balancing scooters and stuff. And if you're like us in New York City, you've probably seen a ton of these devices. E-bikes are really, really popular, especially over COVID 2020. In mid 2020, they were legalized. They were previously banned, but then they were allowed because so many people were doing delivery. They weren't using cars. They weren't using public transport. They were using e-bikes and e-scooters and skateboards and mono wheels. And so we see a lot of people with these battery powered micro mobility devices and they're great because they don't have gas and they don't need parking. You can put them in your backyard or you can bring them up to your apartment or leave them outside the house or whatever and lock them up. You don't need to park them. You can just go in the bike lane. They don't go very fast, maybe 10, 15, 20 miles an hour. Just wear a helmet and you can zip around pretty quickly in the city. It's very handy. A nice intermediate where you don't want to own a car, you don't want to get into a taxi, but also it's a little bit too far to walk. But in order for them to carry you and your groceries and the 75-pound bike itself, it can get to 200 pounds. And so these things have really, really big batteries. They have about 250-watt batteries, maybe more, 36 to 48 volt batteries. In comparison, this is a 10 amp hour, basically 10 amp hour times 3.7 volts. So this is maybe a 35-watt hour battery. And the ones we're talking about here are 10, 15 times larger and they tend to have like 15 to 25 to 30 of these standard 18, 650 batteries.  And then of course, to discharge a lot of current has to be very big, which means when you charge them, you have to have a big charger and that makes them kind of dangerous. They are very big, highly dense energy sources. And in New York City, especially we've had a couple of fires and people not charging their batteries safely. So it's really, really important to pick and design a really good charger. If you're in a company and you are the electrical engineer, you're working on designing a product that uses these high-density batteries. You want to make sure that you are getting your design certified. It's low heat, so it doesn't overheat. It's high efficiency, so again, less dissipation. It's UL certified. It's well heat synced. It does a good job and it plugs only one way into the battery and it doesn't electrocute people. So there's all these things about batteries, but also the charger has to be well designed and that's what this converter from Infineon is and the eval board is all about is how to charge these batteries. So these batteries, you need to, again, they're 250 watts and they're 48 volts. So you need to basically have something that gives you mains power, AC, direct to DC. You're not going to be able to do a DC, AC, DC conversion and then boost up to get that wanted. You basically have to go straight to the wall and because of that, you're dealing with mains power. So you want to be safe. You want to use something like a flyback converter that has isolated output. See that transformer in there gives you isolation so there's no risk of the hot or the neutral accidentally touching the metal case of battery or the metal case of the bicycle. It's going to be very bad. Also, of course, sparks could cause fires. So having current limiting and isolation is important, but there's some trade-offs with flyback converters which is that they tend to be really big and they're not good at lower voltages. They're good at like high voltages, especially if you want to boost up voltages. Here we're kind of bucking down. We're going from like 100 to 48 or 32 or maybe 220 to 40 to 32. And so that's where we've got this design for a hybrid flyback controller. So this hybrid controller, what's neat about it is it's very small. It's inexpensive and it's a very, very high efficiency, 95%. So you get the efficiency that you would expect from your kind of standard DC-DC buck converter operating at its best input-output optimized configuration. But this design is flexible about the input. You can drive it from 110 or 220, depending on whether you're in Europe or in North America. And it can handle different output voltages as well, which could be handy as you're charging this battery. The battery starts to lower. It gets a little bit higher. Or maybe you want to support different size battery packs with one PCB design that you just tweak the configuration. So it's a little bit more complicated than just a flyback, but what's really nice is that the chip, the XDPDS2201, has a lot of stuff built into it. One thing, for example, it has the MOSFET drivers built in.  You don't need a separate driver chip for those really, really big MOSFETs. It does stuff like keep track of your zero voltage and zero current switching. You don't want to switch the AC on and off in the middle of a cycle. You want to do it when it does the zero crossing. And so this chip kind of does all that for you. So it's kind of got the simplicity of your standard analog flyback or DC buck converter, AC-DC converter, but it's also got enough smarts inside that it can give you stuff like failure codes out of a UART pin. It can also program the configuration via this pin into a one-time programmable eProm for setting and fixing design. And it's been used in eval boards that they've created. They have eval board for USB PD that can give you as well as 5 volts out to 20 volts. And then of course this version which gives you 32 to 48 volts. I'll admit I'm not a big power electronics designer. I didn't take that class in school and I haven't done a lot of high voltage power design. But Infinii and Dedes have this really great webinar. Like it's on a webinar. It's like a slideshow webinar I guess. And there's a person who speaks and there's a lot of slides and they actually kind of go through and explain what's the difference between the flyback, your classic DC-DC converter and this hybrid feedback. Specifically what it's really good for is it's more efficient because not only is current stored in the transformer like most flybacks or in the capacitor like most buck converters, but it switches between the two depending on whether you're at a low input voltage or high input voltage. And then the cool thing about this X DPS 221 is that of course it can handle both. This is the basic app note for the layout of this chip. You'll notice that you do need transformers. You do need voltage into, you have to power the chip. And so you'll see that full wave rectifier. It's very low current power draw. A quiescent's like only like 25 or 50 milliamps, but you still need to have some DC voltage in. But then the output from the primary coils go in into the chip which then controls these two fats. There is an opto isolated feedback input so that the output voltage is controlled just good because if you're charging a battery you want to get it close to the open circuit voltage of the battery maybe a little bit higher. And then the internal charging circuitry doesn't have to burn off all that excess voltage as heats. And there's also these built-in parameters. So you can tweak the settings. You know, the day she goes into all the settings of like your startup delay and like burst delays and you know what inductor size and what's current and your voltage output, all that stuff. You can configure it with these parameters. There is a pin on there called the multifunction IO pin and I guess it's asynchronous UART. They have a programmer dongle you can use to rewrite it. And what's really nice is it also outputs failure codes which is like kind of handy. This is a non-trivial power supply. If you're designing something that you're going to have people who are in a rush, they want to charge the battery and it's not working. Why isn't it working? Maybe there's overheating or there's a timeout or a disconnection or something mechanically goes wrong. You could probably have on your little charger at least an error code that tells people, hey look in the manual, look on the website to see what is wrong with your setup because these batteries and these chargers can be fairly expensive. I looked at prices of e-bikes and they're $1,000 to $3,000. They're not cheap. So the more information you give people, you don't want them to throw out the batteries or charge them unsafely if it's not a good time to charge them, if it's too hot or too humid out or too cold or if the voltage is too low or you're getting an overvoltage or over temperature. So all those outputs come out in the UART mode and then you would read them from a microcontroller and display them on an LCD or LED. And this is part of a big family of products. So Infinion does a lot of stuff for not good mobility. They do microcontrollers, of course these FETs, the charge controllers, but they'll also probably do your motor drivers and such as well. So check out they have like a gigantic section of their site where you can like go to each part of an e-bike or e-scooter, you want to design this sort of stuff. They'll hook you up so you can do it safely. In stock. That's right. These chips are in stock. They also have the valve boards in stock but this chip in particular the X DPS2201. You want to do something flyback style, high voltage AC to DC. This chip will probably do it for you. Okay, I'll have a video. We're going to play it and then we'll see you on the other side for some new products. Introducing industry first application specific standard product based on asymmetric half bridge flyback topology with Infinion's latest hybrid flyback controller X DPS2201 to enable ultra high density charger design. It consists of a few major building blocks. A main stage and a PWM controller on the primary side. A rectification and communication protocol on the secondary side. X DPS2201 converts and delivers power over an isolated barrier in an efficient and safe manner. Targeted application includes smartphone charger, adapter and USB PD charger. Bill of material savings and ease of design with an integrated high voltage startup cell and high side MOSFET gate driver to yield a potential saving of up to 20 external components. Multi-mode operation across varying load and line input conditions delivers high peak and average efficiency. Simplified and low cost transformer design with a single auxiliary winding to support variable output voltage requirement. Infinion has developed a USB PD charger solution housed in an ultra compact PCBA form factor. The solution supports a maximum output power of up to 65 watts delivering a class leading power density of 31 watts per cubic inch. As a leader in power semiconductor the 65 watt solution incorporates CoolMOS, UptoMOS PD, communication protocol controller and hybrid flyback controller X DPS2201 to deliver a high efficiency of up to 93.8 percent to miniaturize your next charger design. For more information please visit our website www.infinion.com slash X DPS2201 Okay, first up. Okay, we've got a bunch of updated products. This is the ESP32S2 Feather with a BME280 barometric pressure and humidity sensor on it. It previously had an LC709203 battery monitor chip that chip has been discontinued and so we've revised it and now has the MAX17048. But luckily we've got great drivers for the MAX17048 in both Arduino and CircuitPython. So it's going to be a pretty seamless transition. I think this might be one of the last boards that had the LC709. We've converted all of them over the MAX17. But people have been pretty happy with it so far. So good little revision. We've also revised these chunky 1.2 inch hide letter seven segment displays. They have a 16 K33 LED drivers at backpack. So we did we did another revision that because you know sometimes you put semi-QT connections on it and we're like we don't really go through a revision note. But with these one thing I did is they now have a little boost converter on the back because these LEDs the segments have two LEDs in a row. So you can't really use less than five volts. If you don't use five volts you're not going to get the LED to light up very nicely. And so it gets nice and bright yellow nice and bright red. And so now these have a little booster on the back so you can use them with three or five volts and they will boost the LED driver to five volts but give you three volt logic level shifted on the export C pins. So basically it's just safe to use with whatever and the LEDs will look good no matter what. Next up this is coming soon but I wanted to let people sign up because some folks were asking for the URL and it's product 5778. This is the matrix portal S3. So the matrix portal is a popular board we made that has a Samdi 51 and it uses an ESP 32 as a co-processor but the Samdi 51 has been nearly impossible to get. And so I was like you know what it's time to revise this board instead of having a Samdi 51 the whole thing is now driven by the ESP 32 S3 which has a peripheral that makes it really easy to drive parallel displays like RGB matrices. So we're going to see how big of a matrix display we can drive with these but one thing it has is a ton more RAM. It's got two megabytes of PSRM and eight megabytes of flash so that's much more than the original matrix portal and of course it has native Wi-Fi it also has BLE. Otherwise it's the same physical size has the same GPIO at the bottom has the same pinout for the LED matrix. One improvement I made is if you go to the next image we now have oh sorry the next one we now have it so you can plug in onto the back of the matrix on the bottom like it sockets right in or all the matrices come with a cable you can plug the cable into the top so it has some mounting holes it's got it's got a little more flexibility but it should be completely code compatible in circuit python and arduino maker melissa went through all of our guides that use the matrix portal and made sure that they all worked on the matrix portal S3 only one guide needed a little bit of hardware to make it work otherwise all of them worked wonderfully so I think it's going to be a nice little upgrade so sign up when it gets back in stock. Next up back in sorry in stock for the first time last week we kind of showed this as a coming soon this week it's actually in stock it's esp32 s3 cutie pie this version has ps ram two megabytes of ps ram four megabytes of flash and yet it's so small it's like the tiniest little board but it's got this powerful s3 chip it's a dual core uh tensilica board it's from expressive so you know it's got that wi-fi action really well it's got arduino and circuit python support it's um becoming a very stable chip you know it usually takes about a year for a chip from expressive to become stable and well supported by the idf arduino and circuit python and I'm feeling like we're getting there you know it's got uh two buttons reset and boot so you can get into the wrong boot loader static ut port and and uh built-in antenna we'll probably make a version also with a ufl for people want external antenna but um the previous version we had did not have ps ram so probably folks are like I need more memory this version has a lot more RAM memory okay let's start with the show besides you Lady Aida our community of open source hardware enthusiasts people who are showing and sharing things all the time our team everybody who's making this thing go is my angel the audio bff so this is a add-on board for stem and qt boards we just showed off the sp32 sd qt board and those qt boards are very minimal we don't add a lot of extra hardware on them because we figured hey you can just plug in little boards on the back these are bffs and we made one that has a micro sd card and we also made one with an i2s amp and you know i needed for a project something that had both a micro sd card and i2s amps who could play audio clips long ones ones that were too long to store on the internal flash memory of the s3 chip or the s2 chip and so this is what i created it's got a picoblade connector for the speaker it's got a three watt i2s amplifier it's by default it's nine db gain and stereo mix output and then there's a little molex micro sd socket you can plug in up to 64 gigabyte cards and then use arduino or circuit python code we've got plenty of both to read audio files or any whatever doesn't have to be audio files although that would make sense because then you'd play them through the i2s amplifier and you get really good quality audio much better than using a DAC you're going to get you know your full 16-bit audio and then if you really want to you know you can of course stack another one i have two speakers so um maybe i'll show a quick demo overhead switch to add hold on i gotta get more hold on my girl i have to get my usb c power cable okay so go to the overhead so this is yeah it was out of focus but now it's in focus this is a prototype that's why it's got a little bit of a wire here but otherwise the same same idea i just didn't uh we just put these in the store like literally an hour before the show so you've got your uh semi qt sorry that your qt pi board like this esp32 s3 or you've got the uh this is rp20 40 and then you're like okay but i want to have you know micro sd and speaker you can solder headers onto this and then what you can actually do is also solder this board directly but in this case i put socket headers on it so i can remove it for live demoing i'll get back in and then let me reset it okay good it's running circuit python and then um it's the code i have on here right now reads wave files from the sd card and hopefully when i press the button we'll play them out the speaker so let's try it so there's noice kinsley she got on so it may or may not play exactly right this is taylor swift and jim heap yes and uh works quite nicely so you get really nice quality audio and i protect this originally for the toy hacker board um because i wanted to um have something that could play long audio clips like up to two or three minutes um and it looks very nicely circuit python is what we recommend because we've got the best i2s wave playback support there but you can also use um arduino or espidf if you like or whatever okay here's what we're going to do some of you all have been putting questions over just for us um some of you all have been putting questions discord we got those we're going to get to this in just a sec we're going to do some top secret first and then we're going to uh answer some questions and then uh then we're going to eat let's do some secret okay so we're going to play one two three videos and then you're going to show three things that you're working on some of these things are part of our new products tonight that you were doing some testing on whatever and then see thanks and then we're going to yeah and then we're going to show you some of the stuff we're working on so here it goes early it was this this is a rio r88875 this is a very cool chip it does spi to 40 pin ttl up to 800 by 480 resolution 16 bit um you know of course it's not super fast because uh spi doesn't as fast as eight uh three that's all right 24 bit parallel um but it is great if you want to just control these large displays from something as simple as uh 324 or 328 but of course other chips work as well and um with the revision this backlight driver got discontinued sorry this backlight driver so i had to um redo the board anyways this is a now a sought 89 not a sought 235 and so while i was there i also made a couple other updates uh now i'm testing it it's uh backwards compatible so you see the touch screen and color works and now there's a three state on the serial output pin as requested about a year ago so revision coming to the end of each shop we'll soon all right lady and we're here at the end of her factory with our kiddo doing electronics tonight what's uh what's this okay hot off the web press this is a panel of the new matrix portal s3 uh it features an esp32 s3 module and there's no um samd 51 it's just the s3 driving a portal and uh it's got sorry the matrix it's got headers on the back to plug directly and also idc on the top for cable but it's still the same size usbc stomach qt pins level shifters uh new picks and all that so these are going to get tested and put into the 80 feet shop so the cool will be a less expensive more powerful version of the matrix portal big upgrade early data was this first you get the pan then you get the tester then you get the power then you get the matrix portal s3 uh this is our s3 based matrix portal version got rid of the samd 51 driving the matrix directly and you've got uh both sockets and plug style connectors for the panels and here's my tester using my rp20 40 brains um i love this because i don't need to use a separate computer raspberry pi it's really fast and it programs it over usb and then it does like a wi-fi scan it tells me to press the buttons i press the buttons and it's like test done this is pre-programmed so it only took 12 seconds and then i can do this fast remove remove plug this in and then hit reset and one of the coolest things is that this program's in a uh a live demo so when people get it it comes ready to go um it also does a wi-fi scan and i scored c-scan so it's a good hardware test uh so this is coming to the shop soon just wrap this tester handy is bam so is our kiddo um i clicked off of it too fast so this is the modified player plays prints and stuff like that and uh that's the twitter hacker board what is this you're working on um i finally got a reel of max three one three two eight these are real-time clock chips that are um not pin compatible but they are far more compatible with the ds 32 31 um so uh which is kind of where it's like 31 32 is 32 31 so um we'll be able to have this breakout board it's a little bit less expensive than the ds and physically smaller um it has more capabilities so it sounds like max and was like well we're gonna keep this uh compatibility with this very popular real-time clock but maybe update the process to be you know more modern process and then um this is a usb mux chip um that somebody pointed out to me um it allows you to switch between two usb ports using the gpio and it's electrical switching so you know used in laptops and devices but it could be a very handy breakout board and this uh coming back from uh 2020 this is the icn 6211 uh prototyping board um originally designed with a sam d 21 e 18 i'm gonna redo this design a little bit but uh just to get started i've uh we fabricated it in the same layout um and it's a dsi to ttl tft converter so you have single board linus computers that have a dsi port um but you know you don't want necessarily program each dsi display or maybe you have old style ttl tft displays uh you can plug this in and this you know over i squared c you tell it what the size is and the front porch of the back porch is and h think and it um does it for you and i also got a backlight there so hopefully we'll be able to convert um common 15 pin dsi to 40 pin tft displays at a reasonable cost so i'm sicker okay we have a bunch of questions lined up i will probably play the rest of that uh kiddo video with the prince player because uh i was clicking fast yeah okay um like here we go ready yeah first up are there benefits to the rp20 40 over esp 32 s3 low power question mark well rp20 40 is gonna be cheaper um because it's it doesn't have all that wi-fi stuff and i mean you don't need wi-fi stuff uh in which case the rp20 40 um you know it has a cortex chip there's some stuff that's only available for cortex chips it's um uh it has the pio peripheral that might be handy um there might be stuff that works with the sdk that you like i mean you know i think if you need wi-fi um or bluetooth the s3 is going to be better but if you don't need those at all you're not planning to use them they'll be 20 40 is a low cost in a very uh durable chip for low power it kind of depends esp 32 has lower power deep sleep but the rp20 40 has lower power one power so it depends on when when you need the lower power so you want something to go to deep sleep last a longer time there's a different choice and if you want to just consume lower power while you're using it yeah cool okay um if someone wants to figure out i'll paraphrase this one uh what uh temperature the lipo's discharge at how should they figure that out um well all the eta fruit lipo batteries have a data sheet that goes with them and they'll tell you what is the recommended charge and discharge rate and temperature range okay um someone has modified under three pro with the mean well 24 volt uh 360 watt power supply they are curious can they power can the power supply be replaced with an external power brick assuming the power brick has the same voltage and volts as the mean wall psc um you can but it's hard to find a power brick that gives you 360 watts that's like a laptop power supply so that's why they use an mean well uh power supply but you can you know if it died on you you can get a powers a mean wall power supply to replace it uh fairly inexpensive but you will have to wire it up so you know 24 volts you know that you can't even really yeah you can't even get that from usb pd at the highest end so you're probably gonna have to stick with what you got that power supply um the next one is a good observation not a question but i'm going to repeat it the new matrix portal makes me wonder how much the part shortage is certain microchips position in the micro controller marketplace it seems for a while like everything with sam b now it seems like there's a huge amount of rp20 40 and sp32 stuff out there yes yes yes yes get absolutely i don't you know in production i'm curious i don't know yeah so and well that all it's all connected as we figured out we were talking to a very well known electronics company and they said the way that they get their business is not the sales people that they were paying millions of dollars to it was the developers who were working on stuff because they were tinkering around or they were using a chip like an rp20 40 or they're using something like circuit python or Arduino or whatever and that's how that's how these things get decided there's the people who are using a lot of these things and especially when they know about availability so a lot of things that adafruit does other companies look at and say oh if adafruit picked us probably the right chip probably the right decision um we've completely tried to get away from samd stuff because it's not available i can't get it and so yeah yeah we're like hey my i still really like the samd 21 series but i can't get it you know i can't get it and so that's why we have 300 plus redesign one of the reasons 300 plus redesigns so i think you're going to see a lot of esp 32 s3 is a lot of esp 32 out there a lot of our b20 40s i think it's just like why wait yeah i can't wait i can't wait for another year next up why does from adafruit underscore display underscore text import bitmap label use so much of bram 11k just import before you display character then 10 more bytes per character why does it do that um you know i don't know the details you can you know post in the circuit python forum or ask the circuit python discord but the text labels do quite a bit um there's a lot going on there and with python you can't you know it's not compile time you don't get to really pick and choose you're kind of you have to kind of import the entire thing at once um you know we do um different alignment and you can have different fonts and you can uh change the color and background and so i think there's just a lot of code there and that does you know auto word wrapping um and you get all of that but yeah it's like there's this big heavy initial import okay and then um this one is in discord uh well we'll do two last ones uh is the matrix portal hanging out due to the rf produced by the matrix panels it's hanging out because there is no um fixed place for the connector on the back of led matrices and you cannot guarantee where that's going to be so i just sort of made it it's a reasonable size and uh you know it already sticks up above the um led matrix you shouldn't have any rf interception but um each each panel is a different depth before you get to the connector it's just how it is you could try to do this one unless you can and they can post in the forms but um why it's basically why why is the rp 2040 so aggressively priced yeah um why is it so much cheaper than a yeah then they are yeah because sorry why is it 21 370 and the rp 2040 you sense the rp 2040 is a new mover and so they're interested in being disruptive um and the definition of disruption is something that is maybe not quite as good not quite as popular but it's a lot cheaper and that is a way that you usually win a market is if you can come in and you're significantly cheaper you will win over um people who you know because microchip atmel st these are old names like these are they've been around for decades uh you know you'll never get fired for choosing an st processor um you'll never even get in trouble for going with it with samd these are well known chips um and when anel was a disruptor remember they came in with you know very low prices too they were very aggressive uh compared to pic and they came with um much better you know you gave you gave me more ram they gave you bootloader capability they gave us the margarino came along they gave there's a lot of stuff that they went into to get you uh into the market um maybe we could pull up that core doctor a quote at the beginning they're very good to the users because they want to get users and then eventually they're like oh you have to claw back that value so atmel microchip is at at this point in their development in a claw and back phase where they will increase the prices as much as they can up to the limit of of pain for developers because they want to get money for a lot of similarities going on in the world right now with the you know the open source uh software and hardware uh world there's the users got you here and then eventually you do a bunch of different things mostly serving businesses yeah and then people move on um good strategy if you're running a company is make something lower cost and easier to use it's the disruptive way and it works very well and by making something easier to use especially in the world that we're in is put your code out there um make it open source um if you have something that no one can do anything with really hard to get the word out about it and get people to adopt it um educators um they probably need something open source if you do something close source it's probably really hard for them to use um so do you thems are questions for the night it's our show really good questions and really good observations are running all right thanks everybody special thanks to car running things behind the scenes here data for um answering customers and more um thanks for person and stuff keeping an open source hardware company going um you do have a choice as i went over my article you got lots of choices maybe pick the open source hardware ones um because i think that demonstrates the power of this community we all built is when you vote with your feet um that's what they say but for dollars we'll see everybody next week thank you so much this has been data for production here is your moment of zener good night everybody