 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 fifth update of the T2 Tile project. Let's get into it. The goal from last week was to evaluate possible light sensor chips so that the tiles could have some sort of sense of people waving their hands in front of them, some kind of shadow detector or something like that. That's the main thing we're going to talk about today. I promised to a couple of folks in the YouTube comments that talking about fork bombs, extremely interesting topic, just elements that just reproduce themselves like cancer as fast as they can, how to handle them inside this kind of model. I'm going to push it to next week because there's a lot of action, a lot of developments on the hardware side for this week, so we're just going to have to go with it. For next week, we're going to do the fork bomb question, the philosophical and computational aspects of the fork bomb. For sure, the goal is also to get ULAM4, which includes splat 0.1 or 1.0 or something like that, ready to release. Ideally, it would be great if we actually released it, but there's a lot of stuff to do, so we'll see. Hopefully, we'll manage to have one question here. Now, something that I wanted to do last week and managed to kind of space it out, so I want to do it today, is actually show you the guts of the T2 tile prototypes that we have now. Okay, they are based on a board called the Beaglebone Green, and this is what it looks like. It's made by a company called Seed Studios with three E's in the name to make it better Googling in China, and it's related to the Beaglebone Black, and there's a whole family of Beaglebones. They all use a Texas Instruments system on chip, silicon, like that. Now, the reason that the Beaglebone Green was ultimately picked was mostly that these two headers here. Unlike the Raspberry Pis and the Arduinos, this guy has 96 pins, I'm sorry, 92 pins, 46 and 46 pins that come out of these things. Now, some of them are power and ground and so forth, but it's got a bunch of pins. And in addition to the 1 GHz processor, the main processor that's going to run Linux on this thing, that does run Linux on this thing, it has two other dedicated co-processors that you can use to do communication protocols that we in fact are going to use to communicate in six directions at once in our brick wall geometry amongst the tiles. Those processors are called PRU's, PRU's, programmer real-time units. They're neat, they're all throwback, it's all count the instruction, assembler language, and so on. This thing has got a lot of stuff on it. It's got an Ethernet port, it's got a USB, it's got a micro USB, which is pretty well buried once it's inside the tile. It's got a couple of special connectors up here that plug into some tiles that Seed has made, tiles. Extra add-ons. So the idea is, you've got these 92 pins, but they're not in the position that we want. So we are making a carrier board like this that we've looked at several times. At least we've glanced at it several times already. This is what it looks like when a Beaglebone green is mounted on one of the carrier boards. This is a white carrier board, it's one of the earlier things. The carrier board actually has a hole in it because the Ethernet socket is taller than everything else. But it still works out that the Ethernet port is accessible if there's nobody connected to this tile's west. So that's good enough. And then we've got this thing, we've got the display. This is a very cheap, resistive touchscreen 480 x 320 pixel. It's meant for a Raspberry Pi, it's sort of a clone. But we've designed an interface for it. There's an extra header over here that we can plug this thing in. And now we have sort of a display and interface if we're going to let people get close enough to actually beat on this thing. And then finally we have a 3D printed case for this thing. I am not really happy with this case for a variety of reasons, including what we talked about last time, which is these probe feet that come around these boards are kind of not strong enough. But nonetheless, it all comes together. We've got a button down here that we're going to connect up. We've got the display and then the six communication directions. And it mates up with another of its own kind in the brick wall geometry. However you like it, there you go. Like that. Okay, so that's it. This is the T2 tile. It's huge, it's big, it's clunky, but it will do the job to demonstrate what we're trying to demonstrate. All right, so I think I've got everything there. Let's push on. Oops, let's push on forward. Okay, so the idea of the light sensor. So we have a user button that we can click. There's another button over here, which is actually a power button and you can hard boot the thing if need be. And then you've got touch screen stuff. Why with all of this reaction would you also want to just be able to wave over it? My idea is, what does the user experience of interacting with a robust first system amount to? In, you know, typical programming, well, in typical traditional digital computers, it's all, you know, give it commands. But if it's in a robust first where the thing's healing, it's building, it's maintaining, it's managing, it's doing all this stuff on its own. And then after that, in the spare time, it's got any extra abilities, it will help you do your stuff. So to me, the canonical example of the robust first user experiences is something is doing something. And it isn't what you like. So you kick it or, you know, or you bump it or you wave your hand at it and it will do something else. So the idea is to have a bunch of levels of interaction, a bunch of levels that we come at it with and waving your hand in front of it. Are you there? Are you awake? Just like you would do to see if somebody is falling asleep with their eyes open would be the lightest touch. And that's why I wanted to have it. So we found out last week we saw me hunting around trying to figure out what to do. I ended up finding this particular data sheet in an application note. This particular circuit has got, you know, three to five volts input. I can do that. The Beaglebone Green has 3.3 volts. It has five volts. Our board is 12 volts between each other and it steps it down to provide the Beaglebone Green. So we have a variety of voltages. The analog circuits in here are based not on 3.3 or 5, but on 1.6 volts. And this is what caught my eye is that this particular circuit apparently you can feed a wide variety of voltages in. You go through this photo transistor that has three terminals, but one of them isn't connected to anything because it's just kind of light that acts there. And then you put your analog to digital pin, which is really just the correct one of these guys that you hook it up to. You put it through a resistor and then you go to ground. And when you do that, you'll get a V out from 16 millivolts to 1.6 volts. Hey, 1.6 volts sounds good. So that's what I set out to do. I ordered some last week. They did in fact arrive before last week's video went up. And I said, okay, how am I going to evaluate it? And this is one of the things that's been bugging me for a long time, that when you start using the components that are typical of today's computing. You know, it's all these tiny little things that are mounted on the surfaces. They're called SMD surface mount devices or SMT surface mount technology. And they're great. They're tiny. They're cheap. They're all sorts of good things. But they're a huge pain to use if you don't have a circuit board that already has a set of pads lined up right for them. So the TEMT6000 that was mentioned in this circuit here is one of those teeny, teeny, tiny little surface mount devices. And you know, the normal way that you do this is a hobbyist electrician, electronics guy, folk electronics person is you get a breakout board. A spark fan, Adafruit, one of these guys. And they make little boards that have tiny little pins that connect to the surface mount device and it leads them out to 0.1 inch that you can plug into a breadboard and you go from there. And that's great. But you know, it's not even the price. The breakout boards that they cost, you know, like five bucks or something like that when the thing that you're evaluating costs, you know, 20 cents. But it's even less than that. It's just having to wait for them having to do a whole order very aggravating. Now, there's a guy named Bunny Huang, who's great. If you don't know about him, he's worth Googling. I'll have a link down below. And one of the things he's been working on is working with a company called ChibiTronics that puts electronics components on paper and make circuits with him. And he has a nice little blog post about how you can prototype things using paper circuit boards. I've been wanting to do it for quite a while. I tried it. Here's what happened. Microscopic. All right. So now the idea here, and I'm acting as if I've ever done this before and I haven't. Yeah. Good luck. Me trying to get the foil tape open. It's going to be our 3.3 with room for an alligator clip. We're going to take it a little ways in. Now, they said the official way to make a turn is to go in the wrong direction first and then fold it over. Almost seems like it might have worked. So if we want to now turn it again and head off this way, we want to do it like this. This is confusing. This way. The second one, I took the whole backing paper off ahead of time. That's a bad idea because the thing rolled up but I managed to get it unrolled so it was all right. By the third one, I was actually figuring out how to do it a little better in particular. You take the copper away from the backing rather than the backing away from the copper because the copper is more flexible. That really seems almost having screwed up so far. I did screw up the video when I was trying to do the soldering because the light from the stereo microscope just blew everything out. So I basically hardly got any usable video. So I just took a few stills from the times when the brightness happened to be okay. But it all kind of worked. This is what it looks like through the microscope. Everything is easier through the microscope. I don't know if this is going to work. Unfortunately, we've got our little pin grippers and the power supply at the moment rather than the alligator clips. But so be it. Ground. Looks like it grabs. Kind of wants to turn over the card. This is great. 23, 22 millivolts. Alright, so now I want to know what's the absolute max I can get. Because I have to not exceed 1.6 volts, which is the limit on the analog to digital converter. Alright, well, so underneath the... I'm getting 1.4 or thereabouts. Okay, we got to find a better mounting of this so that we can play with it more. Wow, this seems encouraging. 75.9. There's a volt right on the noggin. It doesn't seem that bright. I mean, this seems totally reasonable. I mean, we're going to have to smooth the hell out of it in software, but that's fine. And, whoa, whoa. That's three volts. That's way too much. How are we getting that far? This thing advertised us that that's like rail to rail. So what if we cut this down with supply voltage to 1.6? That's actually close. That's what the analog voltage supply provides. And that was the one I wanted to use because I was afraid of over-driving the ADC channels, which the Beaglebone and the processor, the SOC, well, the Beaglebone guys, tell us way not to do. So this appears in bright light. It appears like we're pretty close to full rail. My supply is at 1.65 volts and we're getting 1.55 out. And, you know, and actually, you know, we pulsed to three volts there. We just have to believe that the guy is all right. So I think we really should be connecting this to VDDADC, not to VDD3V3. And we take it down to a slightly more reasonable light level. Like that, say, we're still at 0.7 volts and we're dropping into millivolts. So, and if we go all the way down to room light, I mean, LAMO room light. So, you know, that's the problem there where it's seven millivolts in this much light, which is it's not a lot of light and we can, hey, buddy, we can go lower. Yeah, I know, but it's not time. No, it isn't. You can say what you want. But, well, so I think now, of course, well, this is the other thing. And this is another test that we have to do, which I'm going to need to set up for this thing. We wanted to put this thing at the bottom of a well so that it would have a fairly directional view. And the question was, could that detect anything? But we're going to need to set up differently for that. Okay, well, so something. So it remains unclear exactly how much, if the TEMT6000 isn't getting to see like a wide angle, but something fairly narrow, whether we're going to get enough signal at room temperature, room temperature, room lighting conditions for it to be useful. But I think there's a reasonable chance given that we don't actually, all we really want to do is detect kind of systematic changes in the brightness, like someone walking by or shining a flashlight in there or waving their hand over it fairly closely. So we're going to go for it. And we're going to design in this TEMT in our next rev board. And we're going to run it at 1.6 volts, not be 3 to 5. That's the big trick with the datasheet, right? It said 3 to 5 volts output. I'm sorry. It said 1.6 millivolt to 1.6 volt output. But that's assuming that you had the lux range, whatever it was, 10 to 1,000, 10 to 10,000 lux. It wasn't like guaranteed to stay in 1.6. If you had more light, it goes higher. So anyway, don't have time to really go through it all today. So there it is. There's the TEMT 6000. Redid all the circuitry around it, connecting it up in particular to the 1.6 volt feed, not to the 3.3 volts, let alone the 5 or the 12, and so forth. And took another half a day, ran the detection for errors, and so forth. Generated the Gerber files that I was supposed to do last week. Actually, there was a bunch more stuff that had to be done on the circuit as well. Had pins, you know, had traces just going off in the middle of nowhere and had to clean them up, and so forth. Did all that, got as far as generating the Gerber files. So the trick is we're going to put the light sensor way over at the corner of the board. These pins right here are the serial port output that's on the edge of the, it goes right in this area here. So the idea is if we have the light sensor sticking on the outside, there'll be another tile next to it, and the well that it'll be looking out of will be the gap between the two tiles. So it'll have sort of a vertical range that it might see. We'll see how it works. At least it's kind of making lemonade out of the tile gaps. And whoops, and let's try to get settled down here. All right. The long and short of all of this is after messing around, making the Gerber files, and then inspecting the Gerber files, and then discovering that there was like actually a bug in the Gerber files. They tell you to inspect your Gerber files, but I never did because, you know, what's the point? Am I going to just look at it and see that there's something wrong of all these wires going in every direction? Well, I looked at it, and I at least saw there was something wrong. I looked at this, what the heck is this? Each of those little square things are supposed to be nice separate pads that make one connection, but then there's this sort of half moon thing and this little check here, none of which belongs there. I have no idea where it came from. I still don't know where it came from. I ultimately went back, and there it is again. I went back to the circuit layout and it's not there. Here's the Gerber file with this extra schmutz in it. Here's what it's supposed to look like. Eventually I tore out this whole sysreset end circuit and laid it out again, generated new Gerber files, and then it was fine. I had another crazy problem that turned out to, and there's my beautiful little arc edge cuts that I made the previous week. I had to admire them for a while. The long and short of it is I eventually got a set of Gerber files. I fed them into Seed Studios, the same guys that make this board, and I got a quote from them. I fed them into Osh Park, the guys that are better, again in my experience, better for two-layer than for four-layer because they kind of take a while, and fed it into a third-place PCB way that I've also used that's also in China. This is Seed Studios, and there was all kinds of weird, crazy things going on, yeah, like that. Like, where'd it go? Well, screw it. So this is Software Guy Lost in Hardwareland. Again, why is the board stuck way down here? Well, it turned out there was a tiny little bit of stuff, a little dot of inner-layer copper that had gotten loose. I don't know how it happened, but eventually I found it and got rid of it and so on. I have to say the Osh Park interface is nicer, the same thing. They saw this strange little thing as well, but I finally got that cleaned up, made a clean set, and in the end I have placed an order for the board with Seed Studios. They were fast. Even coming from China, it's crazy. And PCB way guys were also competitive on price, but the Seed Studio guys, for whatever reason, had given me a 25% off coupon that worked for the month of November, so that's what tipped the balance over. So the final long and short of it is, whoops, we've got a board order now made from Seed Studios. It probably won't be coming in next week, but it'll probably be in by the week after it, so next week we'll talk about fork bombs. All right, so that's pretty exciting. I need to stop because of course I've run long. I wanted to talk about this question, it's more of a comment from AJ Zaf, about complicated structures and so on, but really have to stop. We'll take it up again next time. I hope that will be one week from today. Thanks for watching.