 The T2 Tile project is building an indefinitely scalable computational stack. Follow our progress here on T Tuesday Updates. Welcome to the T Tuesday Updates, our top stories this week. Intertile events finally have some progress in it. Intertile event is the whole idea of being able to do tiled software, tiled hardware, where you can have lots of tiles that connect to each other and the computation doesn't have to really know about it because it can have events that happen entirely on one tile or that happen on an edge and start affecting other tiles. I've been blocked upon this for a while now and I really think that the idea was was that I thought it was going to be simpler than it was and I thought I was going to be able to just make small tweaks on the existing code base so I could just try like the easy low-hanging fruit part of intertile events but every time I tried to do that I would just get myself into more and more trouble so this week I did step back and I didn't write any code at all. I just wrote text and made lists of things and tried to design state machines to say when you're being a tile and you're waiting for an event to begin then do this and so on and so forth and draw pictures just like the pictures that had had for a while ago for the lock state that happens down in the Linux kernel. All these state machines are running up in user space in MFM-T2 the thing that's actually doing all of the logic for programming. Still unhappy with it you can see this clearly a work in progress of arrows that go nowhere and so forth but I feel good that this route can lead to actual progress so that's the news there. So each tile has six intertile connectors each intertile connector needs its own state machine because they can be doing events on behalf of neighboring tiles independent of whatever the tile is doing as far as events of its own almost independent of. So that's the story on the intertile events it's less progress than again as always than I would like but at least it's starting to move so that's good. Also zone frame production advances so the the zone frames are these things that you know that we have that snapped together and are going to support groups of tiles from the back we've been trying to build them and design them for a while got something that we were happy with and was actually just trying to crank them out oh yeah well we'll get to that in a second and here they are these are not good buckets we've got one one two three four five six each of these is eight frame pieces this is the special non black frame that I'm thinking of being the power zone that has the key master in it this is six we need ten or maybe eleven to have a spare so we're more than halfway there although still got quite a bit to do I've got another order for the jet black PETG filament the plastic because in fact as you can see in this picture the previous roll was starting to run out while it was printing one of these zone frame pieces I had gotten confident you know supposedly the Prusa i3 mark 3 has a filament out sensor built into the head so that it can tell when the sensor runs out now the version I have which hasn't been upgraded use a light sensor looking at the filament and if you had light colored or transparent filament it could get fooled this was a known problem it's been fixed in later revisions I haven't upgraded but this is black filament so it's like totally fine and finally I said come on let's just see it work let's just and every time I would watch it get close to the end I would check it out and stop before it actually the plastic disappeared into the thing enough so that the filament out sensor could trigger I let it trigger there it is it's almost gone now and then it did stop and it displayed the thing and said you know press filament press the knob or whatever it was and it was supposed to back out the filament I pressed the knob the filament did not back out I heard the the gears inside going to try to push it out it didn't come out and thus began another terrifying 3d printing story this is the story of 3d printing in 2019 at least in Dave's story and then it asks you whether the filament unload worked correctly and it hadn't so it says please open idler and remove filament manually well well thanks I'm I appreciate you saying please I got out the stuff I started working at it you know my you can see my printheads getting kind of dirty there's been quite a bit of filaments going through this thing but I opened it up and got into it as best I could and tried to remove the filament through the idler the open gate there I got this piece of it out it was you know partly melted and all horrible and I had to really kind of pull on it pretty hard but it still didn't get I couldn't load from the top successfully it was still jammed I didn't know what to do finally you know and this is you know the more experience you get with something kind of the more cavalier you get about it well you know I went at it with the dremel just going in from the top trying to get a piece out and I did there was another piece that was jammed in there that I managed to drive down now I tried punching several things you know with bits of coat hanger and whatnot to try to dislodge it the dremel is what did it tried to load it and it actually loaded and in fact you know yes so there's the piece that came out so it went down in the process of trying to go back up it folded in half and wedged itself in there pretty darn good in any event I've learned my lesson don't trust the filament out center sensor ever but we are back in business and eventually I switched over to the urban gray PETG to print that lighter-colored zone frame that you saw a moment ago so that's the story there also a Q&A from last week when I was showing the pipe hangers that were going to carry each set of power zone frames and I was still you know I had done some extra support here because there's some flex some bend in the where the pipe hook joins into the back of the frame Nathan King asked the very logical question or I mean made the very logical comment maybe you could eliminate the flexing in the hanging hardware by repositioning the base of the hook to be the center of balance in line with the hanging rod instead of justified to the back of the hook well that makes sense I decided to give it a try and you know so this this is what I've been using this was the latest version that I had this is the piece that connects to the power zone frames this is the piece that goes over the hanging rod they go together and I had shrunk it up and and so the idea was you know could we make this attachment point closer to the midpoint of the rod like that so I designed one like this sort of like much more like a question mark and I printed up a stack to try out the thing and there they were it took a while and and there it is and it seems pretty reasonable I actually get sort of kind of like the contrast and color for the for the pipe hook part of it because in a way that's not the scalable piece of it right you know that that's the part that's just being done for this demo for this particular mounting application so kind of making a different color sort of makes sense from that point of view but there is a remaining problem with it because of the just as Nathan was pointing out the center of gravity and because the frame goes along the back of everything and all of the weight except for the frame itself is on one side the center of gravity does not go through the frame itself so here you can see it's kind of hanging off to the back as we go and in fact I did kind of think about this and that's why I actually had had it sort of at the back the idea was to make it rigid enough so that if the center of gravity is somewhere in between the front of the tiles and the frame that it would be somewhat underneath this thing if we had enough strength to hold it rigid I mean we could try to have hooks or something or cables running down the front to balance out the load but I was hoping not to do that at the same time these these guys I did like them because actually the the curve that goes around the thing in this I designed it to be a little bit more than 180 degrees so it kind of pops on and pops off the rod rather than just hanging totally by gravity feels a little bit more secure so I think I probably will keep it the thing toward the back so that the net center of gravity is more or less under the center of the rod and just deal with the flex by strengthening things up a little bit but I think I may also try to see if I can't get a little button a little snap on for the hooks as well so anyway Nathan thank you for the suggestion you know the sort of these obvious things that you get so close to one's own design I get so close to my own design I don't even think of alternatives to it and you know it's it's good to be reminded I mean it might have been nice thinking back of it afterwards if we could have arranged so that the the power zone frame was closer to the tiles closer to the center of gravity and the little feet socket pops were going through the back of the frame and so forth but that ship has sailed all right there's another view so that's the view of the old one that that does get the thing to hang a little better at the expense of having a little bit more flex and the thing all right so that's the story on the news of the day our feature in our last couple of minutes I want to talk more about the stuff that was doing in Ulam 5 and actually try to show a debugging demo because this is a work in progress one of the things I have wanted to do for a very long time in Ulam is develop a library for doing bonds like chemical bonds like this guy wants to bond with that guy and once they've bound they kind of stay together they can still move around and they can break the bonds and reconnect and so on it's very useful to have stuff like that to build flexible structures that can persist but still move and that's the whole trade-off that we're trying to get in the movable feast is getting stuff that can perform some integrated structure bigger than just individual atoms and yet still be movable and I've made a lot of progress in the last week on using this multiple inheritance in Ulam 5 to do to do that and the trick is I've got a base class that has all of these general things I mean the whole idea of robust first programming it follows a typical pattern and for each of the elements that you're writing what what I've starting to emerge as the programming paradigm is step one is you do a consistency check at the beginning of every event you look at all your that your redundancies that you have I have a bond to that guy he should have a bond to me so you double check is that still true and if it isn't you have some pre-specified action that you take like break the bond erase yourself whatever it is and that's just part of the logic of the thing that if it detects an inconsistency it's going to go ahead and fix it in some way right there and so then I developed these little where this little bondo guys so here's the trick so there's a class called bond that we're making that's actually a template meaning that you can get tons and tons and tons of classes from it by putting in different values of the template parameters so this is a bond that takes an arbitrary tag I gave it b o d o in hexadecimal it's like bondo there's no n in hexadecimal so it's a boat oh and it has true or false saying which end of the bond it is because each bond is oriented and then how many units away in the event window you can see it so this is a length three bond that's you know the true end of the boat oh and then we also have one that's the false end of the boat oh and so the idea is once you can make multiple instances of this bond class by changing the template parameters and then you can use template you can use multiple inheritance mid bondo to try them out this is going to go a little bit long I'm going to go longer than my 15 minutes I do two of them and manages to stay under but I'm going to go a little bit long here alright so the idea here is we have a class head bond bondo that has a single bond worst head bondo there it is it has the base class bondo that everybody's going to be supplying stuff specific for the bondo demo and then it also has a bondo from a tail bondo it's the same thing except it has a bondo to and the mid bondo has both like that and so we have a seed this is the other another thing about robust first programming is that generally you have the thing construct itself from a single element which is a seed so we have a seed bond oh alright so let's try all this because this thing has got a bug in it that I've actually made some progress debugging but I decided to show you the bug instead because it's kind of a useful thing to know about I mean I know a lot of folks aren't programmers and even the ones who are programmers are really not very many of them are oolong programmers but this is important for the for the folks that are and just for understanding how things tend to work in movable feast machine robust first programming so we make a seed now what I'm going to do is I'm going to click this guy all the way on the right that's the arrow and now I have a yellow border around this tile and you can have it on any of them remember how to get rid of it there it is right click to get rid of it but I'm just going to do this one and what that yellow border means is that now events are being recorded and if I now go ahead and I deliver an event again using the magic wand tool that we saw last week on the seed bond oh it pops out into a head bond oh a mid bond oh and a tail bond oh that's what the seed does but there's also this red outline and that's coming from the event recording system and the red outline means we're sitting right after an event if it was in a green outline it would mean we were sitting right before an event so if we go back in time there it is there's the seed bond oh again now the frame is green because we're before the event we're after the event nice we can use the atom view inspector you can click right to pop up multiple ones click left to just pick the select one of them there it is so so here's our head by now this is probably going to be a little small maybe if I crowded in here I can zoom in and post so the head bond oh has a bond site going to one well what is one we need our event window image always available so site one is to the left and to the left of head bond oh is indeed the mid bond oh and in the mid bond oh also has a site one because it's always relative to you and the mid bond oh and he's got the tail guy and so forth so and then the he's also got a four which is the other side to the east to bring him back in it's all looks perfect if we let a guy have an event let's see did he do anything why didn't he do anything I don't know why he didn't do anything why don't we just let him run okay now what happened we lost our bond those well that's because there was a bug and when something detects an inconsistency it suicides and once one of them suicided the other ones detected inconsistencies because they thought they were connected to something that's no longer there so they suicides the whole thing evaporates normally you just say rats I missed the event but with the event recorder we just go back in time and we can go back as far as we need to go and then we can go forward so there it was right there so we lost our tail Bondo somehow now why don't we pick up this guy whoops I delivered an event I did not want to deliver an event there I wanted to move our guy so there it is so the head Bondo is looking at bond site 11 11 is to down that's where it belongs and so the mid Bondo is pointing at 11 for the next one see that's messed up also and I figured out actually and so in the next events we can watch this thing yeah in fact mid Bondo said I don't make any sense I'm gone later the tail Bondo picked it up and did the same thing and so forth but we can now go back further and that's what it was to see what the event was do we still have it yeah the mid Bondos up here the tail Bondos down there and the actual bug is I guess I overwrote it the actual bug in this case is when they're just moving around into empty squares it works fine but when they're working when they swap with each other just at random the third guy can get messed up and you know I knew that was coming it's just a bug anyway the event recorder lets you go back in time as long as you don't inadvertently hit the magic wand and make more events while you're in the past because it'll do it but it overwrites the future ahead of you it's a big help in along with the Adam view panels that we see here these Adam view panels have also now been extended to include the type the base class that the data members come to because these darn mid Bondos they got two bond sites one for the Bondo from and one for the Bondo to all right that's it the next update will be out in a week it's the last week of October which means I have to make a decision about what I'm gonna do in November we'll talk about that next week sorry I went so long thanks for being here