 Computers keep changing the world, but their power and safety is limited by their rigid design. The T2 tile project works for bigger and safer computing using living systems principles. Follow our progress here on T Tuesday Updates. I'm Dave Ackley. This is the 19th T Tuesday Update. Let's get into it. We're trying to demonstrate how to build a whole new kind of computing, a kind of computer that can become as big as we want it to be. How do we do that? We do it by building an individual little tile that has display, processing memory, interconnect communications, everything, and that it can interconnect with others of its own kind. Next week is the 20th episode, which was the deadline to have 133 or more of these things manufactured and running together. We're not going to make that deadline, but we've made a tremendous amount of progress trying to get to it. What we actually will have to show next week remains to be seen. Last week, the goal was to demonstrate intertile software motion. I mean, once we have hundreds of these tiles, and as we develop the software, as we figure out exactly what kind of computational environment we want to provide to programmers to the upper level, we're going to need to be revising the lower level system software a lot. And the last thing that we want to do is to have to have put hands on 133 tiles every time we're going to make a change. The intertile software system, it's called the Common Data Manager, has the job of getting that stuff distributed out. We wanted to see it last week, we'll see a demo of it today. In addition, we have progress on manufacturing the cases, a little bit of information about the build materials. Let's go. All right. So, we've been working on revising the case design and trying to get a point where we could finalize it. I added a bunch of sort of industrial scaffolding look, because I thought that helped it, and I think it does. One of the things that I did, I should have done long ago, is now there is an identifying number that is derived from the time, when every time the build, the 3D thing is compiled, it puts the current time, which is the number of seconds, 1970 divided by 1000, onto the thing, because I've got these things all over the place. I've got these cases coming out of my ears. How do I know which one I'm dealing with? Well, now they have numbers. Here's an example of one. It's looking pretty cool, I think. Now, if you're a 3D printing person, you look at this first layer here, and you say, you've got a pretty severe case of under extrusion, because the first layer has not been sort of squeezed out to be completely flat. I kind of like this. It kind of feeds into the whole scaffolding, the look that I think I'm going for, I'm calling organic industrial, because that's really what these things are. They're really drawing much more flavor and design sense from living systems, from organic systems, but they're still manufactured using our industrial base and so forth. I kind of like the under extrusion in the first layer, we'll see how it goes. I started going for a manufacturer. I started doing four up, it's 10 hours after changing the layer thickness on Andrew Walpole's suggestion. So here it is, this is almost done at 9 hours and 52 minutes. Four of them are just about set, two buttons per. That's not all you have to do. So here's one of the earlier white ones with the buttons that have been put into their, popped into their little locking shaft. There's also these two glow rods, one on the west and one on the north, whose purpose is to carry the light from the light emitting diodes, which are down on the circuit board level up to the top of the case level, so that you can see it better. And having a lot of trouble getting the size of the hole for those glow rods, which are 1 eighth inch acrylic rod, to be reliable. And I don't really know why, so I tried to. So here it was, I was making some of them, cutting them off two centimeters each, or I think that's what it is, and got into a rhythm and I kind of made a hole back. So that'll hold me for a little while, although we're going to need more to finish the ring lotus, the 133 tiles. Here's just a beauty shot of one of these two layer ones I made, where you can see the glow rod in the north and the west. So I went to say, why can't I redesign it a little bit, so I could make the hole a little bit smaller, but then have kind of like relief gaps in it, so that if I had a particularly small piece of acrylic rod, I don't know exactly why these tolerances are changing. If it was narrow, the inner parts of the things would grab it, but if it was a particularly thick one, it wouldn't be that hard to squish the plastic back, because it would have these little gussets, these little cuts in it. And I screwed around with a lot of them, and so here's an early one where I didn't have very much of the things, and it gradually became more. Here's the west one. Here I am beginning to print out a one with a little bit deeper cuts. Here's a deeper one still. Eventually I actually moved the end a little bit away because it seemed like I was getting much more reliable grip, much more reliable sizing on the west holes than I was on the north glow rods. And so the west one looks very nice, but it's got nothing around it, so it's got nice scribbling magic marker from the under extrusion look, and so forth. And here's a west one with a glow rod in it. Here's a north one with a glow rod in it, and so on. So here, you know, completely assembled. It comes off, popped the two buttons in, put in the two glow rods, and now, oh, there's another issue, which is the actual socket holes to screw the thing down. Those are actually embedded so that we can use 25 millimeter screws when it really needs to be more like a 28 millimeter screw, which is extremely non-standard and hard to get. It's okay to make little holes in it, but since the thing is printed face down, where the holes end is sort of being printed over air, if you think about it going upwards. Two of my holes look pretty good anyway, and two of my holes did not look so good, and the last one looked really terrible. So in fact, I went back and I sloped the bottom better and made a bunch of changes, and got it so that the three of the four are looking pretty good, but the fourth one still sort of has that one thing across, but it's easy to pop it out with a screw when you first put it in. So here's another four. Do you see what's wrong with this picture? Yeah. What happened to the second button on this guy? It got some kind of crazy Hydra head, and I said, well, that's not such a problem. I will just go ahead and print some extra buttons. Well, no, not that simple. These buttons really have a tendency to come unstuck. So really what I needed to do was to somehow make the base a little bit bigger, but I couldn't make it actually bigger, so we make, you know, a brim. So I redesigned to add a ring around the bottom whose sole purpose is to provide additional sticking surface area for the buttons down and it has to be removed afterwards. I did a few tests. These are two different size brims. I went with the one on the right and a little more stick, although they both seem to work pretty well. And I haven't had a failure of those since. And so now my box of finished cases is starting to fill up. There's been a couple of more shifts in since then. I need to go into the office and pick up the rest of the PLA because this role is starting to get low. So that's the cases. On the through-hole parts. Now, we need to get those things to attach the Beaglebone greens to our circuit board. That's these things. They're 75 cents each, getting them from Adafruit. But worse, Adafruit only has 61 in stock. We need at least 150 or 200 sets to go. But they do give the datasheet. I poked on the datasheet and the datasheet mentions this 4U CON technology ink. So I did some Googling for that. And I found their website. And I said, yeah, you can sign up for an account and do things there. Of course, they were on Chinese New Year's for most of last week, so I really didn't get into this stuff until Sunday and Monday. So I don't have a whole lot going on there. But the long and short of it is, is yes, they have the parts and they're 10.5 cents each. But the minimum order quantity, MOQ, is 1,000 pieces. Now, we need 400 pieces max if we're going to say 200 tiles, max 2 per. And once you add in shipping, you're talking $237 for the minimum order quantity of 1,000 pieces. But that's 23 cents each. And hell, even if I just use 400 of them and throw out 600 of them, so it would be $237 divided by 400, that's like 60 cents each. It's still cheaper than getting them from Aida Fruit Plus Paint, not even including the shipping from Aida Fruit. So we're probably going to do an order. Of course, there's that lead time that's a little scary, but I'm hoping it won't be that bad. While I was there, I discovered they also have the part for the inner tile connectors. We need these things, the female headers that have these ribs on them to go into the things. And I tried to buy those from AliExpress. I had bought some, but now they seem to be gone. These guys got them. Definitely would be doing an order for that. But in fact, we don't actually need these things in order to send the order for the tiles off to ETS. So that's somewhat of a secondary issue. So finding4uconnector.com was a helpful breakthrough. I was wondering, am I supposed to feel bad for cutting Aida Fruit out of the middleman? I mean, they pointed me to it with the datasheet. I mean, in a way, this is the open source nature. And furthermore, you know, you go to the Aida Fruit forums and there are people there who are just talking about it. You know, I was trying to make an order for 4U Connector and their shipping was too expensive, but whatever. So I think they're okay with it. And all of the ones that have been built so far have been using Aida Fruit parts. So I hope it's okay. All right, moving on. The common data manager. So how can we get software to go from one tile to the other to the other without having to do it by hand? I spent a lot of time working on that last week. I spent time working on it this week as well. The first thing I wanted this week was a way to have user space, just unprivileged programs, be able to have an idea how well the packets are doing, how many bytes and packets have been sent in each direction, and a bunch of other statistics. So I created this new device, SysClass ITC packet statistics, that when you read it out, it gives you a bunch of information, bytes sent, bytes received, packet sent, and so on and so forth. And we can then, an unprivileged, a regular old program can just read this thing and display information about how much stuff has been going on and so forth. But once I started trying to use it, I was starting to get these terrible problems that I was getting these packet errors from the Southeast and the East, and you know, the feeling, the sinking feeling in my stomach, like oh no, here come the errors again. But, and I ran it down and, you know, saying, oh, there are these weird similarities in different cases, and, you know, I looked in the assembly code, is it possible I did something weird there? But no, but no. It was just a completely stupid, stupid programmer error that everybody who's ever written any code in CRC Plus has probably made this error. I made this error probably 40 years ago, and I made it again here. And it has to do with switch statements. A switch statement make a multi-way branch based on the value of a variable. The problem with a switch statement is once you finish one case, it doesn't automatically jump to the end. It falls into the next case. The code that I was starting with used to say return, so that's not a problem. But now that I added the statistics, I couldn't return yet because I needed to do extra code afterwards, so I set a variable instead, and I forgot to put in the break statement. So this is the fix. That's just the nature of programming. You know, it's always one's own and really the question is just how fast can you find your own stupid mistakes. But nonetheless, I got through that. Things started working again. I wanted to be able to do some graphics on the screen using purl scripts. I found this thing called Graphics Frame Buffer. I'm not sure if I'm going to stick with it, but I did get it to manage to get it to work. It's got test patterns. You can draw, text, and so on and so forth. So I'm using it now. So let's do a demo. All right. So here we have, once again, we've got the gray, blue, and red corresponding to the black cable, the blue cable, and the red cable. We only have four tiles here today. But these tiles, because I didn't get around to updating the code in this one yet, but you know, it's good enough to get the idea. And so they're all running the more recent Food.ulum sketch, which is really kind of going too slow. It may just have to shrink the picture down and not actually update the whole thing. We'll see how it goes. But this has got a lot more coolness in it. And so in particular, we now have, oh, here it is. CDM, the CDM directory is the common data manager inside it. There's a sub directory called common. And the idea is that everything that is in any of the CDM commons on anybody should be in the CDM common sub directory on everybody. And so these guys all hopefully have all the same stuff in them. It looks like they do. And now here's another neat trick. It only works for these two guys. But if I push the user button here, it takes a few seconds. But let's cross our fingers and hope for the best. Come on, buddy. All right, that guy worked. Did I not get it on this guy? Let's give him another push just to be sure. And I don't know what's going on with him. Well, but we can go with this guy. So now what he's displaying is that's the same in the packet packet statistics that we saw but now they're being visualized. What is with this guy anyway? That they're being visualized by little arrows going in and out the edges. It's a bummer that that guy won't do it. Here's what I'm going to do. I'm going to fake this thing out. Suppose I take cdm and I copy it to not cdm 11.mfz Now at the moment, it's actually the exact same file and the thing actually underneath the hood it does do checksums and cryptographic checksums and all this stuff. So it actually has ways of knowing that those are exactly the same file but at the moment the code is the cdm code is not sophisticated enough to recognize that those things it goes by different names. So in fact, hopefully what's going to happen except for the fact that since this guy didn't do it it makes me wonder if maybe this guy is stalled out I suppose we could check. Uh-huh. Uh-huh. Yes, it looks like he appears to not be running for some strange reason. Maybe we could start him up. Uh-huh. He must have died. Okay, well good. We're dying but we get to see a little war. When we first started up it reads through common and figures out everything that's in there and then once it's done that it goes into the neighbors. I have this, it has this checksum and so forth would you like it? And now that we actually have done this now I bet this will work. Alright. Okay. So these are the only two that can do it because these are the only two guys who have the user button wired up the correct way. These other two are just old ones. But now with luck this guy is going to announce oh, there we go. So right here you can see that he's now feeding a significant number of bites to get bigger arrowheads for more action. Uh-huh. And now he's feeding it up here to this guy and maybe he's about, maybe he'll start feeding it over here as well. It's all kind of randomized what order that it happens to do things. Eventually either this guy, he'll either feed it up this way or this guy might in fact feed up. Uh-huh. Well let's take a look and see among the ones that we're actually doing here. So it's not CDM-11. Look at that. There's not CDM-11 and and not CDM-11. So we can't talk to that guy directly. Someone will feed it to him soon enough. Uh-huh. So that is intertile software mobility. So we're going to take different purposes, different gathering up of stuff, wrap them up in MSC files, dump them in CDM common of any tile and it will propagate not fast because it's a background activity. In fact the MFM engine has been running this whole time in the background even though we took over the display to show our statistics and run this thing. The engine was still going. Pretty cool. Uh-huh. So that's the progress. Oh and there's one other interesting thing. You know one thing about common data management is what do you do? What happens? Suppose I don't really need not CDM-11. Suppose I delete this. Let's say I felt like cleaning up. I'll just delete it. It's wicked hard to delete files on this thing. This looks exactly like the state that we were just in. The guy hasn't got the file and in fact it probably won't happen before we're done with this video. But the other guys will just feed it right back in. You either have to do it all at once you have to delete from everybody by hand or you have to do something more sophisticated and we will do something more sophisticated but we're out of time for now. So what's exactly up for next week? We'll find out next week. Thanks for being here. Thanks for watching. Thanks for helping out. I'll see you next time.