Hello, and welcome to this presentation of the STM32 Independent Watchdog. It covers the main features of this timer, able to reset the microcontroller on expiry of a programmed period of time, unless the program refreshes the content of the down counter before its value becomes equal to zero. The Independent Watchdog is used to detect and resolve malfunctions due to software failures. It triggers a reset sequence when it is not refreshed within the expected time window. Since its clock is an independent 32 kHz low-speed internal RC oscillator called LSI, it remains active even if the main clock fails. Once enabled, it forces the activation of the low-speed internal oscillator, and it can only be disabled by a reset. One of the main benefits for applications is its ability to run independently from the main clock. Since the IWDG belongs to the VDD power domain, it remains active when the microcontroller enters the standby and shutdown power states, in which the V-Core power supply is switched off. The Independent Watchdog offers a wide range of timeout values. From 125 microseconds to 32 seconds, it is clocked by a 32 kHz RC oscillator, which cannot be disabled when the independent watchdog is enabled. It generates a reset when the program timeout value elapses, or when a watchdog refresh occurs outside a program time window. It is possible to automatically enable the independent watchdog after a system reset thanks to the device option bits. It is possible to define the behavior of the independent watchdog in debug mode. Once running, the IWDG cannot be stopped. It remains active in stop and standby modes. Independent watchdog registers are located in the core voltage domain, while its functions are in the VDD voltage domain. Two clocks are needed. The APB clock is required in order to access registers. The LSI clock is required for the functional part of the watchdog. This architecture allows the independent watchdog to remain active even in stop, standby, and shutdown modes. A programmable 8-bit pre-scaler is used to divide the LSI oscillator frequency. A 12-bit down-counter defines the timeout value. This diagram illustrates how the independent watchdog operates. When the down-counter reaches zero, the watchdog reset is activated. This happens when the application software did not refresh the window watchdog on time. If the software refreshes the watchdog while the down-counter is greater than the value stored in the window register, then a reset is generated as well. To prevent a watchdog reset, the refresh must occur when the down-counter value is other than zero and lower than the time window value. The independent watchdog hardware is enabled by the device's option bytes. If the hardware mode is enabled after every system reset, the watchdog automatically loads the down-count with OXFFF and starts to countdown. To prevent any reset, the key register must be refreshed at regular intervals before the counter reaches zero and within the time window if this option has been selected. The independent watchdog software start is configured in only a few steps. The first step is to write the key register with value 0X000CCCC, which starts the watchdog. Then, remove the independent watchdog register protection by writing 0X0005555 to unlock the key. Set the independent watchdog prescalar in the IWDGPR register by selecting the prescalar divider feeding the counter clock. Write the reload register name IWDGRLR to define the value to be loaded in the watchdog counter. After accessing the previous registers, it is necessary to wait for the IWDGSR bits to be reset in order to confirm that the registers have been updated. Two options are now available. Enable or disable the independent watchdog window option. To enable the window option, write the window value in the IWDGWINR register. Otherwise, refresh the counter by writing 0X000AAAA in the key register to disable the window option. The IWDG timebase is pre-scaled from the LSI clock at 32 kHz. The IWDGPR prescalar register can divide the LSI clock frequency by 4 up to 256. The watchdog counter reload value is a 12-bit value written in the IWDGRLR register. A formula can be used to determine the independent watchdog timeout. The independent watchdog time is based on the LSI period and its prescalar, as well as the selected watchdog counter reload value. Note that the reset and clock controller unit named RCC provides registers indicating the source of the reset. In that way, the boot program can check if the reset was caused by the independent watchdog. The IWDG can be active in all modes. So, when low power modes are implemented, periodic wakeups are required to service the watchdog if the microcontroller state has to be preserved.


Normally, I do this lesson in one shot and I made a deliberate choice because this seems to be an area where kids struggle. I'm changing, I always smoke for like first time in eight years. I'm trying to do this lesson over two days. What we're asking is, are there certain trig values that we can memorize because I've told you your first trig test, part one, is going to be no calculator whatsoever. Holy smokes. Well, yes there is. As it turns out, we can get away with memorizing a minimum amount. We can memorize these two triangles. The one, one, root two, pi by four, pi by four, 45, 45 degrees, but pi by four radians, pi by four radians. And we can get away with memorizing the one, two, root three. Now you're going to have to memorize that it's a one, a two, and a root three. You're going to have to memorize that the two is the hypotenuse. I hope your clue in the one goes on the short side and the root three goes on the long flat side. And I think I even told you whenever I draw it, I always draw it, stretched out just so it's very obvious to me that that's the root three and that's the one. Every year on the test, there's somebody who has not taken my advice, and Ellen, when they draw their triangle, they do this and then they go like this. And now they've got all the angles in the wrong place, the disaster. And in the one, two, root three triangle, this angle is 30 degrees or pi by six. This angle is 60 degrees or pi by three. Then Trevor, our second option, if you really wanted to, was we could memorize this. How many of you memorized this over the weekend? Good. I'm using a method that combines the best. I'm willing to write something for one second in order to avoid memorizing this. The second concept that I introduced to you, Alex, was the concept of the unit circle. What I said was, you can imagine a circle where r is one, and if r is just one, instead of sine being y over r, sine just becomes the y-coordinate. And what I asked you to imagine was me, the human unit circle where if my arm was one long, sine of the y-coordinate, sine of zero is zero because that's how high my, sorry, zero is over here for you guys. Yes? I got to reverse everything in my head. Sine of zero is zero. Sine of, what angle is this in radians? I'm here to hear. Pi by two, sine of pi by two is one. Back to here, Mr. Duk. Sine of pi by two is one. What angle is this in radians? Sine of pi turns out that's zero. Sine of three pi by two, negative one, back to zero again. We said, Carly was your x-coordinate on the unit circle where r is one. It's a nice shortcut for learning the certain angles. So if my arm is one long, cosine becomes just x. Cosine of zero is one. Cosine of pi by two is zero. Cosine of 180 or pi is negative one, and cosine of three pi by two or 200 degrees is zero. That gets you those ones, which gets us around, I think a few days ago when I told you to do the alarm bell of zeros and negative ones, I said, I'm going to show you a better way to do those questions when they're undefined or zeros, and the better way is to use the unit circle. In fact, there's even a better way, which I'm going to show you next class. Then we said we can combine all of that with the cast rule to do stuff like this, example four. Now it says, use the chart or the unit circle. Technically, I'm using a combination of both. So I'm just going to say, find the exact value. But I did say, now this is your trigger phrase almost always when you see the phrase exact value, that's on the test telling, hello, special triangles or unit circle. The only time exact value doesn't mean special triangles or unit circle is in a question like this, where they give you the trig ratio as a fraction, and then they ask you for the exact value of another trig ratio. We'll talk about this as we get closer to the test. So let's try this, example six. The secant of 225, what's the first thing I'm going to do? Well, the first thing I'm going to do is what I've been doing for most questions, I'm going to do a sketch. I'll do mine right here, maybe a little straighter. 225 degrees, okay, finally Brett, we're giving degrees a nod, but we're committed to radians now here, okay? 225 degrees, there's 180. I think 225 is, right there, C-A-S-T. First thing, can you tell me is the answer going to be negative or positive? What is the secant of 200, well we don't have a rule for secant. What does secant go with? Okay, cosine, positive or negative in that quadrant, negative, secant therefore, positive or negative in that quadrant. I would do this, now if I give you this question, it'll be a multiple choice question and you'll cross off all the positive answers, I hope so. I want my reference angle, now my reference angle is this one right here. How big is this angle? Yep, 45 degrees, have I memorized a triangle that has a 45 degrees in it? Yeah, which one? Okay, I'm going to draw carefully. The 1, 1, root 2, and this is the 45 degree angle. So is the top one by the way, but I usually use the bottom one if I have a choice. Dominique, what did secant go with, which trig function? Cosine would be adjacent over hypotenuse, secant therefore is hypotenuse over adjacent. It's root 2 over 1, am I going to write the over 1, no. By the way, I'm not giving you a degrees question on your test. I like b, I like b, I like b. I'm going to give you radians and you know what, I'll probably give you one of the primary trig functions and then one of the reciprocal trig functions, although maybe I'll just do both in one because it's like this, it's a nice way to test. Cotangent, and you'll notice I know the angle, what's the angle, pi pi by 3. So you know what I'm going to do first, sketch the angle. Now I'm into radians, so I'm going to call this 3 pi by 3 and 6 pi by 3. Ready Alex, how far? And 4 pi by 3, right about there, 5 pi by 3, about there, C A S T. Let's see what does cotangent go with because it's my reciprocal. Okay tangent, positive or negative in this quadrant. So cotangent therefore positive or negative. So I would happily go, hey I know the answer is negative, yay. Brett, I would also like the reference angle. Now the reference angle is this one, how big, pi by, see if you get the common denominator trick, I'm hoping you're recognizing, you can almost intuitively figure it out. Yeah, pi by 3, have I memorized a triangle with a pi by 3 in it? Yep, which one? I'll give you a hint, the other one, sorry. I'm going to draw it like this, 1, 2, root 3, that's a 90 degree angle. Which angle, Brett, is the pi by 3, the bottom one or the top one, right there? Tangent is opposite over adjacent, so cotangent will be adjacent over opposite, help me out. Now the back of the book, if they give you this, will rationalize the denominator, they will write this as root 3 over 3, you guys don't need to. So when you're checking your answers, you may need to do that whole change it to a decimal on your calculator, and then change their answer to that small on your calculator, and see if you're right trick. Now this says sine squared, something plus sine squared, remember this really means the sine of 3 pi by 4 times the sine of 3 pi by 4 plus the cos of 3 pi by 4 times the cos of 3 pi by 4. You really need to find the sine and the cos of 3 pi by 4. Thankfully, Ellen, it's the same angle for both, so you know how I'm going to start, sketch. My denominator is 4, so I'll call this 4 pi by 4. I guess this is 8 pi by 4, but I'm not going to bother labeling it, Vlad, because I don't think I'm going to need it. 3 pi by 4, Vlad, I'm almost positive, is, right there, 2 pi by 4 is straight above, right, C, A, S, G, sine is going to be positive, cos is going to be negative. Although is that going to make a difference? I don't think so, because when I square the negative, I'm going to lose it, but I'll put that there. Stanley, what's my reference angle right here? I think you're right, Vlad or with authority, pi by 4, isn't it, because this is 2 pi by 4 right here. My reference angle is pi by 4. I memorized a triangle with a pi by 4 in it, which one? Let's write that over here, 1, 1, root 2, where this angle here was pi by 4. Stanley, what is the sine of this angle? This is going to be 1 over root 2 all squared minus, and what's the cosine of this angle? I've got that all squared. Turns out, because this is a 45 degree or pi by 4 angle, the sine and the cosine are the same. It's not an athosceles triangle, so the opposite and the adjacent are the same length, and the hot news is going to be the same. Hey, let's keep going, Stanley, this is fun. What's 1 squared over, what's root 2 squared, just plain old 2? What's a negative squared 1, you know what, I think this ends up being 1 half plus 1 half, which I'm guaranteeing you can do in your head. What is 1 half plus 1 half? All of these are questions where I know the angle, where they gave me the angle. In a few minutes, we're going to ask, what if instead of giving me the angle, what if they give me the answer and they want to know what angles could have been here going backwards, and that's when we'll use the cast and reference angles as well. That's on example 5. Log and Trigs together? Wow. That's like, Prince William getting together with Kate Middleton, look at marriage made in heaven, look at that. Oh boy, I can hardly wait, I got to wipe a little drool off my chin, this is so awesome. Find the, Sabina, what's the word after the, oh, there's my little trigger phrase which tells me special triangles, unit circle, and also X, Y, and R. We're going to do bed mass, which means we're going to do it inside the brackets first. By the way, what's my base? How much do you want to bet I get a 2 or a root 2 or something in here, because a 3 is really going to screw this question up without a calculator. What's my base over here? How much do you want to bet I get like a 2 or a root 2, because a 3 is really, a 3 doesn't play well with 4, but 2 plays well with 4s and 2s, let's see. First thing we're going to do is we're going to do our humble sketch. Here's 4 pi by 4, here's 8 pi by 4, 7 pi by 4, Spencer, I'm pretty sure is right there. This would be 6 pi by 4 down here, yes. C A S T, Spencer, which trig function did they give me? Cosine, positive or negative in this quadrant. By the way, I knew that was going to happen because can I take the log of a negative? See, I almost could have skipped that step if I was really trying to cut corners. I wouldn't, but I was like, it's got to be positive, otherwise this question seemed pretty simple. No answer. Spencer, what's my reference angle? I totally agree with you. Have I memorized a triangle with a pi by 4 in a, yes I have, this is the 1, 1, root 2. Now you probably have that drawn up here. I would encourage you in your notes and in your homework, draw it every time because from personal experience, Trevor, every year there's a kid that gets to the test, the non-calculator test and you know what they do? They draw the triangle wrong and all I can think is they probably only did it once on each page in their homework and assumed that was enough to remember it. In fact, by the way, when you get the test, you know what you'll do, the very first thing at the top of the page, probably draw both special triangles and then some kids also write out sine is y over r, cos is y, and then they even draw the cast rule and you've got almost like a little cheat sheet for the rest of the test. I would certainly consider doing that. I think that's clever. You said the 1, 1, root 2, where this angle here is pi by 4? Okay. What is the cosine of this? Cosine is adjacent over hypotenuse, come on, you're in physics. This should be walking the park trick, even first thing in the morning when your eyes are fluttering. It's x over r in terms of x and y and r, but you have a triangle here. I just want the solcatoa one. In other words, what over what? Cosine of this is what over what? Nope, that'd be 10. One over, there is no 2. Strike 3, oh no, at least you bumped it on 3, okay. One over root 2. So here's what this really is. This is the log base 2 of, now I always have to pause here to see who can tell me what the answer is. We're going to simplify this if you can't see what the answer is. But the best of you should be able to right now tell me 2 to what power equals 1 over root 2. Can you see the, I know logs was a while ago, Brett, oh thank you for restoring my faith in you after that whole radian's degrees fiasco last week. Thank you. Yes, negative 1 half. And by the way, if you've got there, great. Let's prove it. First of all, this is the same as the log base 2 of 1 over 2 to the 0.5, or to the 1 half. You know what? I'll put a 1 half there. Cos square root Maria was the same as 1 half power. Dominique, where is that 2 to the 1 half on the top or on the bottom of a fraction elevator to an elevator reintroduce the negative, yes. And now Maria, I can move the negative 1 half to the front. And I get negative 1 half log base 2 of 2. And what is the log base 2 of 2, Maria? What's the log of anything of itself? You get negative 1 half. Well played for remembering that, by the way. Also a nice review of logarithms. Are we going to beat these over 10? I would feel comfy putting one of these as a tricky multiple choice. Not going to be 10 of these. But my little math nerd heart right now is going pitter pat like you wouldn't believe. B, a log and a cosy can. OK, sketch. 510 degrees, well, Eric, how far have I just gone? 360, and then it's the 9 times degrees, 9 times, that's 450. That would be 540, so 510 is in there somewhere. Where this is 540 degrees, C, A, S, T. Justin, cosy can't positive or negative in this quadrant. By the way, I knew that because it can't take a log of a negative. And Justin, while we're at it, what's my reference? We'll get a 30 degrees. Have I memorized a triangle with a 30 degrees in it? I have, which one? Draw the little skinnier method of exaggerating. One goes there, two goes there, root three goes there. What's 30 degrees? The bottom angle or the top angle? OK, so what's the cosy can't of that? Let's see. Cosy can't goes with what trig function? Sine would be opposite over hypotenuse, which would be 1 over 2, 2 over 1, or just plain old. In fact, this whole thing works out to the log base 4 of 2. OK, this one I am going to see if you can do in one step. 4 to what power is 2? Ellen, square root, 4 to the 1 half. OK, the nerd within me sort of wonders what mode am I in? Oh, I'm in degrees from physics. The log of how the heck would I do cosy? Oh, 1 divided by the sine of 510. That's base 10. How do I change it to base 4? Divide by log 4. I've always kind of wondered how the heck it is. My calculator is doing it, though, because it's doing some kind of numerical approximation. Anyways, it can't do the way we did. It doesn't know the exponent rules or the cast rule. I'd like to see the software sometime. Turn the page. Using exact values to solve simple trig equations. I want you to notice the difference. Joel, here, I don't know the angle. They gave me the triangle portion. Here, I knew the angle. I needed to find the triangle portion. See the subtle difference? This is what I'm going to ask you, among other things, on the written section of your test. In other words, I'm telling you more than I like this question. I'm married to this question, except I hate one thing about this. What do I hate about A? And why do I like B better? OK, let's scribble out the degrees. And let's put a 2 pi right there. We're done with them. Now, we have solved trig equations before. But Ellen, we used our calculator. We're going to have to replace the calculator portion now, shift sine, shift cos, shift tan, with, hey, what triangle? So you ready? What trig function did they give me, Ellen? What trig function did they give me? Cotangent. I'm going to go like this, C-A-S-T. You'll notice on the previous ones, Maria, where I knew the angle, I drew the angle first and then wrote in the cast rule. Now, I'm starting out with a blank canvas. The cast rule, I need to figure out what quadrants we could have been in. Now, it's cotangent. I don't have a rule for cotangent. What function goes with cotangent, Ellen? Tangent. And they told me tangent was negative or positive. So where is tangent negative? No, no. Here, here. That's step one. By the way, this is a fraction. No, it's not. Yes, it is. It's root 3 over what? So I'm really saying, now I need to find the reference angle. How will I find that? From my special triangle. Which special triangle? Do I have a triangle that has a root 3 and a 1 in it? Let's draw it. 1, 2, root 3. Which trig function, Ellen? Cotangent. Cotangent is adjacent over opposite. Which of these angles has an adjacent over opposite of root 3, the bottom one or the top one? Which of these, when you go adjacent over opposite, do you get root 3? The bottom one or the top one? Bottom. What angle is that in radians? That's my referencing. This is pi by 6. This is pi by 6. Pi by what? Justin, I'm going to call this right here 6 pi by 6. And I'm going to call this right here 12 pi by 6. Pi and 2 pi. But why not give myself a common denominator and cut myself some slack? The first angle is that big. Emily, how big is that first angle? Well, let's see if that's 6 pi by 6. And my reference angle is pi by 6. You're right, I think. Say it nice and loud. Did you say 5 pi by 6? Yes. My second angle is that big. Brianna, how big is that one have to be? Got to be 11 pi by 6. Got to be. Similar to the process when we knew the angle, except this time, we're using the Castro to figure out the quadrants. We're using the answer, the fraction answer that they gave us to figure out which triangle we're going to draw. And from there, we can figure out what reference angle using good old Soto. And once you know the reference angle, it's some basic subtraction or addition. Caitlin, can you see I don't know the angle? So I'm going to start out, hey, with the cast rule. You'll also notice, fib a little bit to you, when we started doing secant and cosecant and cotangent with our calculator, I asked, how do we solve secant and cosecant and cotangent? We don't, I always said, we flip it. Actually, the nice thing about this is I really can do the flipping when I go adjacent over opposite instead of opposite over. I actually flip the trig ratio. I don't actually rewrite this as, well, this is secant. I could, I guess. Secant goes with which trig function, Caitlin? Cosine, was it negative or positive? Here or here? And what did they tell me the answer was as a fraction, Caitlin? Negative, ignore the negative, sorry. Two over what? Two over what? It's meant to be, next you do. Yes! Said that again, ready? As a fraction, what did they give me the answer? Two over what? Do I have a triangle with a two and a one in it? You see why we had to add that one in there this time? Which triangle has a two and a one in it? Yeah, careful, not the one, one, root two, that has a root two and a one in it. The one, two, root three, let's sketch. Caitlin, secant goes with which trig function? Cosine is adjacent over hypotenuse, so secant, therefore, is hypotenuse over adjacent. Yes? So here's what you wanna ask yourself. Which of these two angles has a hypotenuse over adjacent? Top one or the bottom one? This one? I can't hear you, I'm sorry. Yes, let's see, hypotenuse over adjacent would be two over root three. Is that what we have here? So which of these angles has a hypotenuse over adjacent? Yes, hypotenuse, the top one, the top one. Which is how big? And that's my reference angle. And Caitlin, how big is right here, straight across? Three pi by three, can you see now my two angles? I hope, I hope, I hope, I hope, I hope. Here's the first one, boom. Theta one, how big, kiddo? I totally agree. Theta two, how big? Four pi by three. By the way, let's prove it. Secant, you said it was one, one divide, oh, I gotta go into radians, Mr. Dick. Secant is one divided by the cosine. One of our answers is four pi by three. This should work out to negative two, does it? Woo! Of course, you can't check on your test with no calculator, but I think we need to do one more. It's no room, Mr. Dick, yeah, there is. Can you scroll, turn the few pages, get to the answers, because below the answers, I believe you guys got a half page-ish. Solve, giving your answer as an exact value. Cosy cant squared theta equals two. Zero less than or equal to theta, less than two pi. Go once around the circle and stop. Don't write this down, but just watch. Is that the same question? How would I get the cosy cant squared by itself? Five by two, or is that the same question? How would I get the cosy cant squared by itself? So in your homework, you may be asked to do some fairly basic equation solving, getting the trig function by itself, by either dividing or multiplying or crossing. That's fair game. But I don't have the quick trig function by itself. I have cosy cant squared by itself. How do you get rid of a squared? Okay, first thing I'm gonna do is recognize that this is actually cosy cant of theta equals the square root of two. Oh, no, wait a minute. When I square root both sides, what must I remember? This question. Do I know the angle here? No, no, no, no, no. So this isn't quite as easy as the other ones. I'm gonna have to use the cast rule to figure out what quadrants I'm in. Now let's see. C, A, S, T. Sorry, what is cosy cant go with? Which trig function? Sine. This says sine is positive or negative. Sine is positive here and here. Sine is negative here. Oh, there's gonna be four answers. And Caitlin, what is this answer as a fraction? Root two over what? What we're really asking is, do I have a triangle with a root two and a one in it? Do I? Why, yes I do. That would be the one, one, root two triangle. Now cosy cant, a star goes with which trig function? Sine is opposite over hypotenuse, so cosy cant's gonna be hypotenuse over opposite. Which of these angles has the hypotenuse over opposite of root two? The bottom one or the top one? It's actually a trick question. Turns out, you know what? They both do. I'll use this one here. It's cos. How big is that angle, Asar? Oh, you don't need to ask that question. I told you by giving you a domain. Nope, nope, nope. That's the other triangle. Five by four, okay? By the way, pi by three goes in the triangle with the three in it. Is six also multiple of three? That goes in the triangle with the three in it. Don't wait to remember, but you know. That's my reference angle, Vlad. What that means is that this angle, this angle, this angle, and this angle are all pi by four. Pi by what? Let's be clever. I'm gonna call this four pi by four and I'm gonna call this eight pi by four. Why not cut myself a bit of slack? And now I go, Asar, there's my first angle right there. I'll call that theta one. How big is theta one? Right here, just one pi by, right? The reference angle. Remember, each of these little squiggles is pi by four and that's just a squiggle by itself. Now the second one goes this far, which means Asar, it's gonna be four pi by four, take away a squiggle, three pi by, yeah, now we're onto it. Good, good, good. Let's keep going. This is kinda literally fun. How big is this one? My pi by four is absolutely, absolutely, absolutely. And how big is the very last one? Seven pi by fours. That's solving trig equations as exact values without a calculator. I have to give you a multiple of pi by four or pi by six or pi by three, or I have to be right here. So in addition to the homework from last day, so right now I think I gotta sign one, two, three, four, all, you can try nine, eight. You can try number 10, except you can cross out E and wonder where D went to for that matter. 11 all is good, 12 is good, 13 is good. And then I also have for you this sheet right here. Let me hand it out. So I have this sheet, it says solve for, without using your calculator. There's two questions, grand total, the answers are attached. This may look familiar, this was actually from a couple of days ago when you were doing the homework in your book and I was saying to you, why is the answer in the back of the book an exact value but we're only doing decimals is before we knew how to do these special triangles. I just recopied this. And some of them will get fairly repetitive because there's only so many multiples of 30 degrees, 60 degrees and whatever I can ask. But you need practice on this, okay? So the answers are attached. You got holy smokes like a half hour more than, hey probably no homework if you hustle. Kick butt. Take home quiz next class. Officially about three or four more lessons until we're at the test. So I'm thinking about two and a half, three weeks from now ish.


Lewis Cooks won it back. Most of this first half of the first six minutes has been in the commentary. Half of the field slanking on the penalty spot. Back to Jefferson Lermer. Oh, it's a fissure. It's a Colombian rocket from Jefferson Lermer to light up St Andrews. He's already on two for the season, much like his previous goal. A layback to him on the edge of the penalty area and no mistake with the right-footed bullets. Seventh minute, it's Lermer for the Cherries 1-0. Back at the Cherries midfielder. Now, unfortunately, this is again for Bourbon. Gosling goes himself. Oh, against the Sky Blues. 3-1-0.


The last thing that I was going to do was show you where we are with the capture app integration. As many of you know, the tracker app is going to be phased out in the next year or so. It's running on very old technology and we have hit kind of a critical point where additional features wouldn't perform the way they needed to with this older architecture. So the capture app is the replacement. It already has all of the event functionality and we have been working for the last year or so on getting in the rest of the tracker functionality. In the 236 release, if I came through and I did a search as a user and found a record in the capture app, I would open that record and it would take me to the tracker app. But we have gotten past that point now to where we are able to open up the records directly within the capture app. You'll see that this is coming with additional features like this enrollment dashboard here giving you a quick overview of the various stages and events. It allows you to quickly open up any existing event to go in and see what was previously reported, edit that event if needed. The information is feeding into the indicators and feedback at this point. We also are able to go in of course and add in new events within the capture app. So for many tracker implementations, we actually now have the full tracker functionality that you would need. For those that there are several other areas of functionality that we're still working on, for example, relationships, we are also adding in additional functionality that has never been available in tracker before. For example, widgets that we're showing growth for infants or other functionality that's been long requested, managements, clinical decision support. So there are many things that will be added into this in the near future. Right now, this version that I'm showing you is not turned on by default or made accessible to U.S. users because another thing that we have tried very hard to do is revise our development project in order to work more closely with the field and with users. So the design of this capture app that you're seeing has been a collaborative effort with many different countries input coming in from our HIST groups based on Ministry of Health requirements. And what we want to do before we make this the default or accessible to the global set of users is to now apply it in the field and do some final polishing in revisions. What you will see from us then is that right now, when you turn in or download your 237 and upgrade, it won't do what I am showing you here. It will perform as it did in 236, but that is only going to stay that way for the next several months. We plan to do an interim release where we will have done some more polishing after working with several implementations in the field where by default it will begin to use the capture app rather than the tracker app. We are not going to retire the tracker app until we have several releases worth of stability under our belt, but that means that in the coming months, we are working with several on the ground implementations. We're getting user feedback for this and we'll continue to improve it. By 238, you should have not only this by default, but additional functionality as well and we'll be communicating more in the coming months as we switch from using this as the kind of turned off version of the capture app to by default turning it on. So this is where the major functional changes are being added into the tracker data model. We are no longer adding functional improvements to the capture or to the old tracker app. Now it's all going into the capture app and the capture app is around the corner for most of you that will be using it.


Hello everyone. I am Mrs. Supriya Ambarkar from Vulture Institute of Technology, Solapur. Today we are going to cover a topic on case study, that is an RMI. Basics of RMI we are going to cover in this topic, distributed object concept, then RMI process and binding of client to objects, then parameter passing techniques, design issues, components of RMI architecture and etc. The learning outcome of this session, at the end of this session, student will be able to explain the distributed objects concept, students will be able to state the execution steps of RMI. Now, first we will consider the basics of RMI. RMI is basically remote method invocation. Here we are able to invoke a particular method, which is remotely available. So, in distributed system, we are having a client-server paradigm and RPC handles the interface communication mechanism. So, this principle of RPC can be applied to handle objects, means invoking that remote objects. With this concept, objects in different procedures can communicate with each other through remote object invocation. So, this is an extension of local method invocation. Now, we will see the distributed object concept. Now, first we will consider the basics of objects. Objects are the set of data and its methods. Here an object invokes other objects by a particular method. So, by passing arguments and parameters, we are able to suppose to invoke that method. So, in this diagram, the remote objects and remote references are available. Objects in other processes can invoke a method that only belongs to its remote interface, which means local objects are invoked in the remote interface and in other methods, M is implemented by the remote objects. So, in such a way, the distributed objects are going to work. Now, we will consider the distributed shared object concept. How processes across the network share the objects? Here, objects are going to consider in terms of the distributed shared object. So, in distributed system, it uses the client-server model or architecture and the server manages the objects and client to invoke that method, which is we want to call as an RMI. So, this technique sends the request message to the server, which executes that method of object and returns the result message back to the client. In this diagram, we are able to see the local object, then distributed shared object, the particular process with an interface, then network. Now, we will consider the RMI and LMI, remote method invocation and local method invocation. Here, in this diagram, we are able to see the remote method invocation and local method invocation with an object in terms of B and F. These are the remote objects and both must have remote interfaces. Client can invoke the remote object interfaces. So, here B is available to A also. So, client can receive an RMI, which means the reference is passed as an argument or results of RMI, where the B, C, D, E have a local invocation. So, this is in terms of RMI and LMI. Now, we will consider the different design issues in RMI. Here, we want to consider the two main points, RMI invocation, semantics and level of transparency. In terms of semantics, maybe semantic, at least one semantic, at most one semantics are there. So, maybe semantics. Here, client may not know whether this remote method is executed once or not at all. So, this in terms of maybe, at least once semantics, here, server has executed the method at least once. At most once, here, the server executes the method exactly once. So, this is in terms of semantics. Then, level of transparency means hiding the internal RMI processes such as marshaling the data, marshaling the results, message passing, locating and contacting the remote objects for a particular client. So, this is about level of transparency. So, we want to consider these two design issues for RMI. Now, we will see the flow diagram of RMI. How client invokes a particular method which is remotely available via a remote object. So, stub and skeleton concepts are there. Then, remote reference layers are available at both the sites, client as well as server side. TCP IP layer means network is available. Via, we are able to suppose to call a remote objects. Those objects are available at remote site. So, this is in flow diagram. Now, we will see the list of RMI components. The list considered client, server, remote objects, proxy, remote reference module, stub, skeleton, communication module, the binder concepts. In this slide, we will see the details of that components which will be considered under RMI architecture. Here, client side and server side both are available. So, client having a remote reference module, server also having a remote reference module. For communication purpose, for request reply purpose, communication module is available. Server side, different servants are available via which we are able to suppose to bind a naming concept with a particular remote objects. Here, the client want to make a request. So, remote object B is available at server side. Via skeleton dispatcher concept, the server will be able to give a reply. So, reply in terms of what? Reply in terms of remote object. So, via communication module, the client is able to call that particular remote object. So, in such a way, the method is going to invoke by a particular client from a server via RMI concept. So, remotely method availability is applicable or available for a particular client. In this particular slide, we are able to see the RMI execution components. Here, the communication module, that is in part of the RMI, particular RMI concepts. So, client and server process both are involved for the communication module. Then, remote reference module, it is responsible for translating between local and remote object references and creating remote object references. So, this is in part. So, this is a task for the remote reference module. This module uses a remote object table which will be required to map a local to remote object references. So, this is in terms of remote reference module. Now, we will consider the RMI software. So, this is an middleware layer, consists of proxy, then dispatchers, skeletons are available. So, this is an middleware layer via which we are able to suppose to make the communication. Server programs are there. It contains the classes for dispatchers, and remote objects it supports. Client programs, the looks of the particular remote object reference using a particular binder. So, here the binder concept is very important in terms of what? This is a one kind of a service which maintains a table of textual names to be remote object reference. And according to that, servers use this service for the remote object references. So, without binder concept, RMI is not going to work. So, RMI is very important. Now, we will see the RMI execution process. So, client side, they having the class objects. Local objects are there. At the server side, distributed shared objects. They want to register particular distributed objects via a particular naming service with a location service and accordingly the name object handle the particular naming service. Address protocols are available. So, via a naming service, the server is able to look up a particular remote object in which location it is available.  So, make the contact with a distributed shared object via client. So, this is an RMI execution process. Now, pause the video and write down your answer. When we say that the method invocation is local and remote. So, we want to consider that. The method invocation between objects in the same process is called local invocation. Whereas, those between different processes are called remote invocation. So, this is an difference or the concept of local and remote invocations. Now, we will see the different types of objects are available. So, objects are basically you can say the classified into the two types based on the time of binding and based on the time of existence. The based on time binding objects are again classified into runtime and compile time. Then second based on how long they exist can be classified into transient and persistent. So, transient objects exist only when the time when the server manages the object. And persistent objects exist even if they are not contained in the server process address space means client manages the persistent object and store its state on any secondary storage. So, this is all about the different types of objects we want to consider. So, these are the references which I have referred for this particular topic. Thank you one and all.


Hello everyone. This talk is on the bottleneck complexity of MPC with co-related randomness. I'm Dhavya and this is based on a joint work with Claudia Orlandi and Peter Scholl. Let me begin with what Secure Multiparty Computation or MPC means. Suppose you have n mutually distrusting parties out of which T are corrupt and the goal is that these parties want to compute some combined function on their private inputs. MPC gives them a way to do so while ensuring two main properties. The first is correctness. That is at the end of the protocol, everyone gets the correct function output and the next is privacy, meaning that nothing beyond the function output will be revealed. So in a nutshell, you can think of MPC as a protocol that emulates the effect of having a trusted third party to whom all these parties simply submit their inputs and get the output in return. The efficiency of an MPC protocol can be measured with respect to different parameters. One such popular measure is communication complexity, which measures the total number of bits that are sent or received by honest parties during the protocol execution. Bottle-neck complexity is a special flavor of communication complexity. So to understand this, let's look at this protocol A, where every party sends a single bit to a central party. Next, let's look at this protocol B, where again every party is sending a single bit, but this time the bits are communicated in a chain-like fashion. Now you can see that in both these protocols, the total number of bits that are being sent is the same, which is n minus 1 bits. So their communication complexity is the same. However, protocol B seems much better in the way that the communication has been distributed because it's more balanced among the parties. So to capture this, Boyle and others, they introduced this notion of bottleneck complexity, which is defined as the maximum communication complexity of any party within the protocol. So if you consider protocol A, its bottleneck complexity will be at least of order n because the central party there is receiving n minus 1 bits. However, for protocol B, the bottleneck complexity is a constant because every party is actually receiving or sending at most one bit. And that's why this bottleneck complexity is independent of the number of parties. So now if you have a situation where the bandwidth of this central party is creating a bottleneck, then definitely protocol B with lower bottleneck complexity would be the one that is preferred in practice. Now, if you think about settings where the number of parties is very large, there the goal would be to design protocols having bottleneck complexity independent of the number of parties. And we refer to such protocols as being BC efficient. BC efficient protocols were studied by the work of Boyle and others. And on the negative side, they showed that it's impossible to design BC efficient protocols for general functions. And more specifically, they showed that even if you don't care about security, still it's impossible to design protocols having bottleneck complexity sub linear in the number of parties for general functions. However, on the positive side, they presented a bottleneck complexity preserving compiler that transforms any insecure protocol to a secure one, and this compiler was relying on FHG. Since FHG is relatively inefficient, a natural question to ask would be that if we restrict ourselves to just specific functions, then can we design protocols with low bottleneck complexity without relying on FHG. So this is the question that we addressed partially in this work. So we considered this setting of semi honest adversary, where the corrupt parties, they follow the protocol steps but the adversary can learn their internal state. And we allow the adversary to perform up to n minus one corruptions. And we also assume that the parties have access to a correlated randomness setup. So in this setting, we designed BC efficient protocols for two function classes. The first function class is abelian programs, where an abelian program can be expressed as a function on the sum of parties inputs over an abelian group. This is actually a very expressive class of functions, which covers important applications like voting and classifiers and so on. The next class is that of selection functions, where the input of the first party is the selection index that can vary from two to n, and the output is nothing but the input that the first party has selected to learn. So for these two classes of functions, we design BC efficient protocols, and we use the tool of garble circuits, which can be built from one way functions to construct them. And additionally, the construction corresponding to selection functions also uses additively homomorphic encryption, which can be instantiated from standard number theoretic assumptions. So now in the rest of the talk I will present some warm up examples and give an idea about these two constructions. So before going into the construction, let's think about how any protocol design will look like such that it's independent of the number of parties. So one of the designs that we saw earlier was a chain like interaction. And this was quite promising because every party was talking only to its neighbors, which were constant. So this helped us design the protocol having bottleneck complexity independent of the number of parties. But it's not just enough to design protocols over the chain, because we also have to make sure that the number of traverses that we're making over the chain, even that should be independent of n, and the size of the messages that we're sending over the chain even that should be independent of n. So what kind of functions can be computed incrementally over the chain in a way that the size of the messages don't blow up. A natural example that comes to mind is that of the addition function. So let's consider the XOR example where every party has a single bit as input and the output is nothing but the XOR of these n bits. To begin with, if we did not care about privacy, then what the first party could do is she could simply send her input to the second party who could locally XOR his input with hers and forward it ahead on the chain and so on until the last party on the chain gets the output. So note that this is a BC efficient protocol because here the bottleneck complexity is independent of the number of parties. What if we now want this protocol to satisfy privacy. So assume that you had access to a correlated randomness setup, where every party is given its own masking bit such that the XOR of these masking bits is zero. And then what each party could do is she could locally XOR her input with her masking bit to compute the must input and then the parties could compute the XOR of these must inputs over the chain. It's easy to see that the XOR of these must inputs would be the same as the XOR of the actual inputs and therefore the protocol would be computing the function correctly. This is an example of a BC efficient protocol that computes XOR securely. Next, let's look at a BC efficient protocol for and function, where every party again has a single bit as input, and the output now is the logical and of these input bits. In this protocol, as a part of the correlated randomness setup, we give each party two elements, one for each potential input. She will use the element Z if her input is zero, otherwise she will use her element R. So the basic idea is that if you visualize the and function as this tree, then what we want is that at the end of their chain of inputs, we want the parties to identify whether they have arrived at a green node or a gray node, because that would correspond to their output being one or zero. So if there's just one green node, it's enough if we just give the parties some information to identify if they have arrived at this special green node or not. So this information that we give to the parties that can simply be a sum of these hours that were given to them. So that's what we do. Let capital R be the sum of the individual hours given to these parties and the parties are given this as a part of the correlated randomness setup. What the parties do is that in a forward chain they compute the sum of their wise. Now note that if each of their inputs was one, the sum of these wise would be nothing but the same as capital R. So the party at the end of the chain can simply check if this is the case if the sum is equal to capital R or not, if so she outputs one otherwise she output zero. So this protocol seems to work correctly, but let's analyze its security. Suppose an adversary is corrupting the first and the third party where the input of the first party X1 is one and X3 is zero. So the correct output in this case is zero. Now from the adversary's perspective, among all the possible parts during the protocol execution, based on the inputs of the corrupt party, he already knows that the actual part during the execution should be one among these two parts. So as per the security of the protocol, he must not be able to identify which of these two parts has been active during the execution. However, now what he can do is that in his head, he can imagine what the sum would have been had he added R3 instead of Z3 on behalf of P3. So he computes this sum Y dash based on that and checks in his head if Y dash is equal to capital R or not. If it is indeed the case that Y dash is equal to R, then he will be able to identify that the path taken during the protocol execution should be the one passing through the orange node. Because this is the one that if P3 had added R3 instead of Z3, then she would have arrived at the green node. So this contradicts the security of the protocol because now the adversary has learned which was the correct path taken during the execution and this will allow him to learn X2, which is the input of an honest P2. So to fix this, we do not give the parties the capital R as a part of the setup. Instead, we give each of them a PRF key. Now, what the parties do is that at the end of the forward chain, once they have obtained the sum, now the last party, she will be computing the PRF on this sum using her secret PRF key and forward it to the next party. The next party does the same. He applies the PRF using his key on this and then forwards it to the next party and so on. So there is a backward chain where there are N applications of the PRF on this sum. Now, as a part of the setup, instead of giving them capital R, we will be giving them Z, which is the output of the applications of a PRF using the N different keys on capital R. Now, what the first party at the end of the backward chain does is that she checks if the Z dash is equal to Z or not. And if it is the case, then she outputs one, otherwise she outputs zero. So it's easy to see that the correctness still holds because when the sum Y is same as R, these two will match. And now we have avoided the attack that we saw previously. Intuitively, that's because as soon as this honest party applies the PRF using his secret key K2. Now this in some sense fixes the sum Y. So now the adversary can no longer imagine what the output would be had the sum being Y dash instead of 5. So this is an example of a BC efficient protocol for and that is secure. Now the two warm up examples that we saw for XOR and and they are actually special cases of a function class called abelian programs, where an abelian program can be expressed as a function on the sum of inputs of parties over an abelian group. So we generalize some of the ideas there in this construction. Now what we already know is we know how to compute the sum of inputs securely. So if you had as a part of the setup some quoted sharing of zero, then the parties could simply compute the sum of the must inputs, which would give them the sum of their actual inputs. However, note that the output of edge may not necessarily reveal the sum of inputs, it just reveals F on the sum of inputs. So we want to avoid parties from learning this sum. So what we do instead is instead of having a quoted sharing of zero, we have a quoted sharing of a secret random element R instead. So that at the end of the first forward chain, the parties compute the must sum X plus R, which we refer to as Y. So now to compute H what we need to do is we need to compute F of Y minus R. But we should do this in a secure manner to be sure that this capital R remains hidden from the parties. So for this we use the tool of Gabel circuits for this secure evaluation. So let me take a detour and let's look at what Gabel circuits does. This is the circuit that we're interested in where input R is hard coded, it takes as input Y and it outputs F of Y minus R. To evaluate this securely, we transform this into a Gabel circuit, which you can imagine as a magic box, which has slots for each input bit. So imagine that this Y can be expressed as a string of five bits. Now this has a slot for each input bit and each of these slots can take two types of token. One is the token for zero corresponding to that bit of Y being zero and the other is the token for one. So the key of Gabel circuits is that if you feed this box, the tokens corresponding to an input, then this box will output F of Y minus R and nothing else beyond that. However, this box can be evaluated only if you have these tokens available. And also the security of this Gabel circuit holds only if one token per input slot is available. Now coming back to the protocol, recall that we were trying to compute F of Y minus R securely using Gabel circuits. So now as a part of the setup, each of these parties is given this magic box or the Gabel circuit. Now we also need to give them some information related to the input tokens so that they can evaluate the Gabel circuit. Now recall that the input tokens would be corresponding to Y but the value of Y is something that is determined only during the protocol and we do not know during the time of setup. So that's why the setup must give these parties information related to all possible values of Y related to the bits of Y turning out to be zero as well as one. So let's just consider a single bit of Y for simplicity. So there are two possible tokens corresponding to this single bit of Y. So what we do is that we additively share each of these tokens where additive sharing means that only if all the shares are available, then this token can be reconstructed. Otherwise the parties learn no information about the token if even a single share is missing. So we do an additive sharing of the token corresponding to zero as well as one and give the parties their respective shares. These are going to be useful in the evaluation as we will now see. Now in the protocol as we saw before the parties compute the mass sum in the forward chain. Now what the party at the end of the chain does is that once she knows the value of this mass sum Y, which is the input to the gavel circuit, she identifies her appropriate share of Y based on whether Y turned out to be zero or one. And then she forwards her share and why to the next party. What the next party does is that he also identifies his appropriate share of Y and he adds it up to her share and then he sends this forward along with Y to the other next party and so on. So now at the end of the backward chain, the first party would be getting the sum of all these additive shares of Y. So she will be able to reconstruct the token for Y and use it to evaluate this magic box and get the output F of Y minus R, which is nothing but the correct output of H. Note that here the input of the gavel circuit which is why is actually public because all the parties know it. However, gavel circuit still helped us in order to ensure that this hard coded input are still remains hidden from the parties. And also note that if, for example, two out of these three parties were corrupt, still that adversary cannot obtain multiple evaluations of the function and he cannot carry out residual attack. That's because he gets exactly one of the tokens. So due to this additive sharing, we know that he will just get the token corresponding to Y. And for the other bit, which is not equal to Y, he will be missing the share of the honest party. So that's why the security of the gavel circuit holds since he gets just one token per input slot. So this completes the description for the protocol for a billion programs. And for simplicity, I explained it for three parties, but it can be extended up to n parties, and it maintains the property that the bottleneck complexity is independent of n. Lastly, let's look at the construction for selection functions. Recall that selection function has the input from party P1 as the selection index, which can vary from two to n, and the output is nothing but the input that P1 chose to learn. A useful way to look at the output of selection functions is to express it as a summation of bi into Xi, where bi is an indicator bit, which is one, if i is equal to the selection index C, otherwise it's zero. Now this way of looking at it is useful because if we could make a party pi compute this bi Xi, then the values of these bi Xi's can be aggregated over the chain in a BC efficient manner. But the problem with this direct approach of making each party compute bi Xi would need the party to know bi, but that is something that is not leaked by the output of fetch. So to do this without allowing the party to know bi, we do it under the hood of additive homomorphic encryption. What I mean by this is that suppose somehow these parties P2P3 and P4 they got access to encryptions of B2B3 and B4 respectively, then what they could do is they can locally compute the encryption corresponding to bi Xi without knowing bi. And these encryptions can be added up over the chain to obtain the encryption of the output. But now we need a way to give them these encryptions of bi, but that is something that we cannot directly give as a part of the setup because the value of bi depends on the input of party P1, which is something that is determined only during the protocol. So that's why the setup must somehow account for all possible inputs of party P1. Instead of giving them a single encryption each, what we give them is a lookup table. This is how the lookup tables would be having the structure. So each of these lookup tables have exactly one row which has the encryption of one. And that is corresponding to the case when the selection index turns out to be the same as the parties index and all the other rows have an encryption of zero. The idea is that during the protocol, what P1 can do is that based on a selection index, he can point these parties to the correct row based on whatever his index is. For example, if he points, if his selection index is three, then he can point all of them to the second row so that they use these appropriate encryptions and they're able to get the encryptions of the output. However, if you order the ciphertext in this way, then the pointer is automatically revealing what the selection index is. And that is something which we want to avoid because we do not want these parties to learn the selection index. So what we do instead is that we apply a random cyclic shift on these rows of the lookup table. Now they are not in this lexicographic order, they will be shifted sequence of rows with an offset R which is big during the setup. And this offset is also given as a part of the setup to party P1. The reason for giving him the offset is so that he can calculate the appropriate pointer based on this offset and his selection index, and he can give it to the parties. Now what each party does is that she just looks at this pointer C dash, the row corresponding to that in her lookup table, and then she computes these ciphertexts. And now C dash doesn't reveal anything about the selection index, so the protocol maintain security. So this is the main idea of the protocol, but there are still a couple more things to take care of. The first thing is that here we just got an encryption of the output, but we also need to decrypted in a BC efficient manner. And secondly, if you generalize this and extend it to n parties, then we are actually giving each party a lookup table of n minus one ciphertexts. And this is a huge storage overhead in the cases when n is large. So we also have a mechanism to compress the size of these lookup tables and make it independent of n. Interestingly, both the techniques for these two features, they actually rely on gobbled circuits and I refer to the paper for for the details. So, to summarize, the notion of bottleneck complexity captures how balanced the communication of a protocol is. And in our work, we design BC efficient protocols for a billion programs and selection functions. And interesting open questions are to get more thoroughly characterize which functions allow for BC efficiency. And it would also be nice to get a general bottleneck complexity preserving compiler that does not rely on FHG. With this, I conclude my talk. Thank you for listening.


Hey everybody today, we're gonna take the Ender 3 that's printing right behind me And we're gonna install the th3d easy a bl now Let's look at through the instructions and I had some questions and I thought you know what? It's probably better to go straight to the source. So you know what let's go Guys I don't think this is where I was supposed to go Let's try that again That's better all right, so we're here at th3d studios and this is Tim the owner of th3d And I thought we'd bring him in today to install the easy a bl on my Ender 3 We're gonna get that going my name is Jim and this is Tim and this is the edge of tech So like I said, we're here at th3d studios with Tim and we're gonna start installing the easy a bl on the Ender 3 Tim why do we want to do this? Well, first of all, Creality doesn't understand that bed should be flat on your printers along with other companies I'm not just gonna take it up on Creality But basically what the a bl system does and it's very core functionality is it eliminates the necessary Steps to manually level the bed so you're not screwing around with your your big knobs underneath while it's printing and try to get Everything working it's gonna take a reading of your bed and then use your z-axis motor to compensate for any sort of variations in that Awesome, so there's other automatic by leveling centers out there. Why the easy a bl So obviously I'm a little biased because I I made it and I own the company But the main come the main competitor would be the bl touch which has a mechanical probe That comes down into plays and touches your bed Now the room for user with that is very high Especially since they changed the new one where they're using plastic pins instead of metal And there's been a lot of reports of people breaking those pins and then the sensors junk ours is a lot more robust And it's a contactless sensor. So it's not actually touching your bed It's getting close and the sensor basically emits a field and it monitors that field and it checks to see if something's there Okay, you're bad, and they're very accurate too. So so while we're installing the easy a bl We're gonna go through the process Is there anything that we need to watch anything we need to look for you said it doesn't touch the bed if we change beds Do we need to do this process again now? It depends on the surface in our testing here We've actually found that you don't actually need to recalibrate the sensor some people think you need to do There's a thing called as the offset which tells the printer How far do I need to move down after the sensor triggers to get the nozzle to correct height on the bed?  We're gonna use the th3d unified firmware the brand new release correct Awesome. Yeah, and we make it really easy You can always get the latest release by going to firmware dot th3d stew calm awesome And that takes you directly to the download page and so to do the firmware We need to get something separate right because there's no bootloader on the on the under three And I think you guys sells it's like an adreno or something like that, right? Yeah, so certain machines don't need it but printers like the under three the under three pro Okay, basically anything that has what's called 1284 p-chip Sure, we have this documented on our site, too Okay, and you can always contact us if you have any questions, right? Hey, I don't know what I have you can share our support email before you purchase and we'll tell you So but all the bootloader does is allow you to load firmware over the USB port Okay, and it's a one-time thing so you hook it up once you connect some wires from your UNO to your printer board And you hook the moon up to the computer and it burns the bootloader and then you can load USB Firmware nice, so we're not gonna do that in this video We're actually gonna have that already done, but I am gonna make another video about that just so you know how to do it But if you do need that he does sell them here at tth 3d. I think they're somewhere in the bins right over here So you can check out Tim's website. He has them on there, and then if you buy it I believe he offers like some support with that, right? Yeah, so that every abl kit comes with one-on-one support through our email system And then also if you do need the bootloader kit, we have that deeply discounted when you purchase it with an abl So if you get one of our easy abl kits on that product page you can get it I think it's like four or five bucks off because the kid is $16 normally, okay, so but we do like doing bundles and I like saving money, so I like trying to save our customers money Nice, I love that so we're gonna get rocket and rolling on the easy abl install But I think we need an easy abl Aaron. Do you got one? Perfect. Let's go do this. All right now that you saw Aaron toss me this easy abl direct wire kit That's we're gonna be using in today's video We also have an oem mount and Tim told me if you order the easy abl kit And you put a note in the order that you need an oem mount. He'll send you one of these for free So don't forget to do that if you need one at home You can actually print this at home. There is an stl file for it as well You can also follow along with the instructions if you go to easy abl guide dot th 3d studio dot com And that's what we're gonna be using to do this video, so let's do it So we went ahead and opened up that package it came with the easy abl sensor in the board It came with the wires here and like I said if you put in the order notes that you need the oem sensor mount They'll send you one of those as well So we already went through the pre-installation checklist. We're good to go and we're gonna start installing All right, so the first thing we're gonna do is Tim is actually gonna start installing the oem mount and we're gonna take out these two screws here We're gonna remove those and then install the mount and he's gonna start doing that And this is m3 Borts right, okay cool So we got m3 bolts and there's two of them now chances are you're gonna need longer bolts because Creality actually ships with different size bolts some are shorter and some are longer So make sure you have extra set of m3 bolts, and I believe these we're gonna use our m3 by 8. Yes perfect So as you saw it was real easy. It's just those two bolts. We take those out your fan housing here We'll come loose with those two bolts We're just gonna go ahead and tighten those back in and it's hard to see but this is the black mount that we're putting on right now So we're gonna go ahead and do that one and the next bolt and we'll be right back so the next thing we want to do is go ahead and take our sensor and Tim said we need to remove the lock nuts, right? Yes Nope, we don't need those okay so then He is currently screwing the nut Back up the side of the easy a bl and he's gonna put it in to the mount that was printed and the goal here is to have this two millimeters higher than your nozzle and He told me that the ender the wrench that comes with the ender three is actually two millimeters so you can lower that down and He can show you there So the idea is to get your nozzle down onto the bed, but not hard so what he just did was he put the sensor in and he put this wrench here and He lowered this down so the nozzle is just touching the bed correct and the sensor is just touching The sitting on the wrench and then he screwed this nut so it just sits on the mount here So everything should be about lined up now So the next thing we're gonna do is go ahead and raise your x-gantry up and use the Use the coupler on the left side of the printer just like Tim is doing there So now what he's doing is he's putting the other nut on through the bottom, but he's holding the top so it's solid And then what I usually do is I hold this bottom nut and turn the sensor Perfect, then you don't need a wrench. So That's awesome. So you just hold the bottom nut there and then turn your sensor in to tighten it down Perfect now does that lower at all if you turn it? It does a little bit, but not enough words gonna affect anything perfect cool Onto the next step. So the next thing we're gonna do is go ahead and Unravel the wire that comes with it and we're gonna run the wire. So working with Tim he really likes to run it up and Attach it around and he's gonna show us properly how to do that without making it too tight down by your sensor So the key the key here is to have a little bit of loop here and secure zip tie or electoral tape or cloth tape Whatever you have to leave a little loop here because then this is not going to be straining on here If you put it like this What's gonna happen is this is going back and forth you can see how this is straining the cable It's gonna really to the wires inside here breaking gotcha So I like to run them like this especially on the Karelia machines. We leave a little loop wire There's plenty of wire on these and then I just take a zip tie and Gently secure it like you're not gonna crank this down So get on here perfect close to the coupler. So this is what Tim was talking about He came up here and made this a loop so it doesn't put a lot of stress on the end and doesn't break these wires So now what he's doing is he's gonna go ahead and attach The wiring around the side here as you see him doing So what we got here is Tim went ahead and used zip ties and they're not real tight I mean they're tight enough to hold everything But not tight enough to pinch these wires and not tight enough to pinch your Bowdoin tube And he zipped it up around the top of the under three wiring and if you have your stock under three in there You still have this wired in if you used our guide to build this your Bowdoin tube is loose You have two options You can couple it back up with the with the zip ties if you want to or you can just zip the wire straight to the Other wire loom. It's totally up to you. And so we got that all in and secure. We're gonna go on to the next step Okay, so what I do on our machines here is we'll take all these cables here and bundle them together So it's all nice and neat if you have the easy-out filament sensor You can also bundle the cable here only about three or four inches For the sensor cable before you feed the filament in but we don't have it on this printer So we're just gonna go ahead and start bundling these and just makes it cleaner And make sure that these wires don't get caught on anything So you so you just wire it all the way down through the wiring that's already there and you just attach it So it's all one nice clean wires Yeah, we have we have about a dozen under threes here that our ABS farm and we have them all built out the same exact way awesome, and He's gonna finish zip tying this and he's gonna go all the way down to the bottom and we'll be right back All right, so the next thing we're gonna do is Tim is actually gonna pre-strip the ends of these wires and he's gonna use the included Side cutters that come with the Creality Ender 3 and he makes it look very easy but Take your time and you can strip them or if you have a wire strippers at home You want to use that and it looks like you're just doing the black and the red wire, right? Yeah, there's two wires inside this one harness perfect And then the next thing we need to do is go ahead and take off the top cover now I have a printed fan cover here, but it's three screws. It's the one there the one on that side and then there's one more in the back and That'll allow you to take the The top cover for the motherboard off and this goes for the under three standard If you're gonna use the under three pro you need to remove this from the bottom so you'll have to turn your printer over and Remove that so you're gonna pull this up And when you do that be careful because your fan is attached just like Tim pulled that out right there And we're gonna go on to the next step So now that you got the fan cover off This is what you see and if you go in here and you carefully move your wires over You'll find this bank right here, and we're actually gonna be using that to install So what you want to do and and Tim is gonna do this in a second is he's gonna actually loosen the first two right here And that's where we're gonna get our power from so we always have power and it comes straight from the board All right, so what we're gonna do now is take the included wires and Push them right through the bottom of the back just like Tim is doing and that'll actually feed the included wires out and through Just like that Then he's gonna go ahead and unscrew those first two terminals So what we're gonna do is go ahead and twist the red wires together, and we're gonna twist the black wires together So they're ready to go and we're gonna put them back in to those first two terminals So how it's gonna go back in is red all the way to the end, and then he's gonna screw that in Once you get him in good there we go, and then black is gonna sit right next to that So there is a wiring diagram on the TH3D site for this and You can check that out if you need to but just remember it goes red first and then black All right So the next thing we need to do is go ahead and remove the z-end stop and you can use the Allen wrench that came with the kit or a three millimeter hex So the next thing Tim is gonna do is go ahead and disconnect the z-end stop After we started doing this we realized that Creality actually shortened their z-end stop cables this this wire right here So we're gonna change it up and we're actually gonna mount the control box right up here That way all we have to do is cut the end here and mount it And then the white wire here can come up where the fan goes and we'll show you that in a little bit And be a lot shorter as well So we got all the wires cabled here and we realized we have to mount the control box here So what Tim's gonna do is go ahead and push the control box around through the side And he's gonna mount it right on the side of that extrusion And we are using the screws that came out of the z-end stop to do that. All right So as you can see Tim mounted the control box actually on the side of the extrusion right here and it mounts really nicely right there And we're gonna go ahead and start wiring it now So the next step is we got to take the top cover off the control box and Tim's gonna work on that now So he's actually gonna cut the end of the connector off of the z-end stop Just I do recommend leaving a little bit here. So if you ever need to reconnect this you can So I just cut it right about here So leave about an inch. Yeah, so you can still use this if you need to For some reason you gotta send this in for warranty or you know something else down the road So now you're just splitting the wires and you're gonna go ahead and strip them now when I'm using these I'm barely putting any pressure on this I'm just getting it to a point where it kind of holds on and then I pull So if you over actual wire strippers, you can do that But because we want to make sure you guys can do this with the tools you have We're doing it this way now because these are really thin wires Priely uses. I like to twist these And I'm stripping them about twice as long as I need because what we're gonna do is once it's twisted We're gonna fold it like that. So our terminals have a little more meat to bite on to All right. So the next step what we want to do is go ahead and loosen up the rear Terminals there just like that And we're gonna go ahead and insert the wires into the two terminals in the back Now does it matter which way they go in it does but you're not gonna know which way they need to be in until you Do the test later on? Okay, so you might have to switch these two depending on your luck of the draw You got a 50-50 shot of if this is gonna be correctly wired this side will not damage anything if it's wired in reverse Perfect, so it won't damage it if it's in reverse and so we're gonna go ahead and get those two wires pushed in and tightened Would be good. So the next thing Tim's gonna do is go ahead and take that Existing cable that comes out of the board and push it back in the channel where it goes and That should be good and the next thing is the power wire Yeah, so we don't obviously need this much wire. We include this length for depending on what printer you're doing where it's going Etc. So I'm gonna go ahead and just you know kind of eyeball this and see how much wire I need and then cut it And then we're gonna strip it just like we did on the last time So again light force, so you're not gonna crimp down on this if you're using these You're just gonna put life force on it and pull and as you can see sometimes you don't get at the first try So just do it again and it'll come off and then repeat for these wires too And we're gonna do the same thing with these power wires as we did the end stop cables Just because it's easier to insert these will actually bite into the terminals But I found that people say it's easier to do this and the screw tumors are big enough to fit this stuff doubled up in it So if you want to have an easier time, you can do the strip it longer than you need This is the total length you need to go into the terminal But if you strip it twice as long you have this nice rounded edge to get into the terminal instead of fighting with all The little strands of wires trying to get into it If you look on the board here, which you can't see from the camera angle But the one closest to me which is the top of the board It says th3 easy abl at the bottom of the board This top screw terminal is your positive, which is red and then the bottom one is negative So we're going to insert those just like we did the other one And I usually give a little tug make sure they're in there Now that we got everything wired. He did give it a little tug to make sure they're both tight And we're gonna go ahead and what cleaned it up Okay, so while we're cleaning up the wires now at this point Tim is actually is gonna show us a couple different ways to do it We can actually zip tie the cables in the back and zip time in the back or what he prefers to do is Loop them and then push them down through the bottom where the other cables go into the board and they'll actually come up and You can actually pull them right up through the board there And you can hide them inside when we put the cover on that way all that wiring is hidden And when you put the cover on you won't see much of that wiring at all So as you can see Tim actually pushed the wiring down in and it's staying in there just like that And it's all nice and clean that way.  I had the two screws here and the one in the back We're gonna put that together and we'll be right back. So while we're putting the fan on We had a cat come up and help flopped right over on the table with us All right, so what you see now is it's a little bit loose We had to loosen this up to slide everything this way a little bit So the cover will go on in a little bit, but we did not put the cover on yet because now we need to test the sensor So we're gonna go ahead and plug the machine in and we'll be right back So now that we got the machine plugged in we went ahead and raised our x-gantry almost all the way up so what we want to do now is turn on the machine just like that and No magic smoke, so that's good And then we're gonna go ahead and do an auto home, right? So we're gonna go ahead and hit the button go to prepare hit the button and go to auto home And hit the button again and a way to see if we are wired correctly In the actual control board for the easy ABL is to go ahead and try to touch it while it's coming down As you can see it's not stopping which means we're not wired correctly So those two little wires that we put in before need to be switched And that's good that we can show you that so we're gonna do that now So as you can see we loosen this up because what we need to do is go ahead and loosen these two screws and pull those wires out So we just need to flip those wires around So what we did was we went ahead and loosen these up and we took the left one and put it in the right And we took the right one and put it in the left that way the wires are gonna be incorrectly now Basically, like I said, we're just switching those wires around inside of the control board where they go in here And that should make our center trigger now now that we have those wires swapped. We're gonna go ahead and turn it on So the machine's on we're gonna go ahead and hit the button Go to prepare hit the button go to auto home and we're gonna do another auto homing just like we did before Except for this time when Tim puts his finger underneath the sensor it should stop just like that Perfect So in the guide it says you can do an m119 command to make that happen The easiest way is to just do an auto home like we did hit the button go to prepare hit the button go to auto home hit the button you'll see those two all home and then What you knew is just as soon as it starts coming down Start touching it and now you know your easy ABL is wired correctly We can go ahead and finish mount on the control box and put everything back together I'm gonna go ahead and shut the printer off at this point Okay, so now we got the control module mounted down like we said here and we slid the Cover back on the top of the control module you took that off earlier and now you can see how everything's run I'll use this so our white cable goes down where the ZN stop used to be right through here The ZN stop comes through the side right there There's just enough gap to make that work and it plugs into here and now It's tested so what we need to do is go ahead and calibrate the sensor Okay, so next thing we want to do is go ahead and turn on the under three and we're going to go ahead and put the bed back on and For your enjoyment you get a half a cat right here So We're gonna go ahead and put our bed back on in my case I have the glass bed with the th3d easy mat So the next thing I'm gonna do is go ahead and heat our bed up to whatever your average print temp is in my case I use about 60 C so we're gonna stop at about 60 so while that's heating up We're gonna go ahead and lower this down to about what five millimeters off the bed roughly Yeah, just before your nozzle touches so as long as your nozzle is not touching you're good And then we're gonna go ahead and heat this bed up with a sensor right here So the next step is the calibrator sensor What that means is setting with distance this triggers that and we want this to trigger before the nozzle It's a bed because I don't want to be putting holes in your beautiful bed mat So I'm gonna raise this up a little bit and I'm gonna slide the wrench that we use to mount the sensor underneath the nozzle now if you don't have a wrench you can always Manually put it down and then tell your Z to move up. So I'm just gonna show you that too. So I'm gonna take this back out and now My nose is on the bed. So I'm gonna go here go to prepare Move axis Move Z and Then move one millimeter and we're gonna move this up to one Two and now we can calibrate our sensor and all the calibrator means it sounds It's like a scary word, but we're just gonna adjust this little adjustment pot on the top So I'm going to use a little Phillips precision screw This is a 2.5 you can also use a tube But you don't want to use too big because then you're gonna scrape the walls of the the sensor housing here If you notice obviously our sensor mount has some flex to it when you're adjusting this You don't want to put any pressure on it. You want to just basically let the screwdriver sit here and turn it clockwise Until the light turns on and it may take a couple turns Or or even more than a couple it depends but you'll see the light turn on and we will get the light to come on There we go And then we're gonna go back just to make sure we get it perfectly down Then we'll go back till it shuts off and then come back again If you notice it takes a little bit more of a turn to get it to come back on and go off That is completely normal. So when I move my hand away from here You want to see that this light is on at this point now our sensors calibrated and we can verify By going and auto-homing it again, and it should stop before it touches the bed So now that we got the Sensor dialed in and the light came on like you saw we're gonna go ahead and do another auto-home So go to prepare and then go to auto-home like we did before and you should see it crosses And then it should Auto-home just like that Now one of the things we can do too is you want to verify that you actually calibrated correctly and that your printers Mechanically sound as we have a feature in here called the m48 test and you can do this from a G code command But we baked it into the LCD on our version of Marlin So if I go to prepare and scroll down a little further right after home Z you'll see run m48 test So this is going to home all and then take 20 probes and a probe consists of a fast and slow probe and then it's going to spit out what's called the standard deviation So this is going to run and if you just leave the LCD here It will go back to the main screen and it says m48 test running and once it's done doing these tests You will see your m48 result on here and what you want is to have the m48 result under 0.01 and that's good So if you're lower than 0.01 that means your sensors calibrated correctly and your printers mechanically sound meaning your Z Is moving correctly and all this other stuff So we just got a m48 result here of point zero zero two four two seven So this sensor is reading an accuracy level of point zero zero two millimeters Wow, and you want at least point zero one so we're way under we're way under our son on a well-built printer Meaning it's mechanically sound. We have no electrical issues. We've got the mean well on here So I don't expect to have any electrical problems You should see double zeroes in here and these are way more accurate than even the BL touch Like BL touch average is about point zero two point zero three These these consistently beat it out in accuracy all the time awesome So we got a mechanically sound printer that we built using Luke's help gap Yeah, and we have a really awesome easy ABL sensor that we put together courtesy of you guys at TH3D So I think we should do a test print and see if how it goes. Absolutely. Alright, let's do it Okay, so we have the filament loaded and we're gonna go ahead and do a test print And what we're gonna do is take an STL file that is right in the file section of the TH3D firmware package The folder you want to look for it is is bed level STL files and I'll go ahead and put that in the video in a second Okay, so what we did was we went ahead and loaded the SD card We went on to the SD card and we told it to start printing the 200 millimeter test code So what it's gonna do is heat the nozzle up to 230 and heat the bed up to 60 And we're gonna start our test print and we'll be right back as soon as that's heated up Okay, so it got heated up and now we're gonna go ahead and start the process of probing the bed It'll start in the center and then it'll go ahead and do nine points along the whole bed So at this point it did the probe and it went to the back corner here So when it starts moving we want to hit the button two times and you'll see probe Z offset And when it starts going you want to look under the nozzle and start dialing it downwards downward is this way And we know that that probe is two millimeters off the top of the bed So we need to dial this probe Z offset to about What we say there? Oh Too high too high Too low there we go So right now I have it at about 1.4 and you can see we're getting a pretty good line now The offset's gonna vary based on each printer. So yours will not match what he has here, right? So you just want to watch your print as it's going around if it needs to go closer to the bed You can dial it counterclockwise if it needs to go higher from the bed you can dial it clockwise and Just kind of watch for your layer lines You remember that the probe is about two millimeters off the bed in our case We have it at 1.4 millimeters down for the Z offset and we're getting really good lines now So what you want to do then is when you think you're dialed in and good go ahead and click the button Click it again and go to control Click it and scroll down to store settings Hit the button there and you'll hear the little verbal like okay That will not be there if you use the filament sensor, right? Yeah the easy Yeah, so if you use the easy out you won't hear that but in this case we don't have that you're going to hear that verbal Okay, and you know that we're set now at 1.4 on The offset and that's actually looking really good All right, so when it is completely done It'll fill in everything here and it'll fill in the outsides and it'll create all your lines here And you should have a really good First layer it looks pretty good Probably a little close like Tim was saying here during the time lapse But we can adjust that just a little bit with our Z offset like we did before Anything else you want to throw in Tim? Well, and the other thing is too like I was mentioning I could actually forgot because I set up his firmware. I forgot to set the probe Edge in usually on these beds. I probe in a little bit further. So we're probing in 15 millimeters from the sides I usually do about 30 and you can tell like this side You can see they're pretty close in terms of the height and setting the probe edge We give this a little more consistency across the entire bed, but this isn't bad though This this is really good for especially where first go But if you guys do ever have issues like this, you can contact our support We can give you direction on what to change in your firmware. Perfect So that's what it should look like And uh, you know, that's awesome. We're good to go All right So as you saw we just went ahead and we installed the easy abl From th3d and tim did most of the installing so that was pretty awesome And we ran the red atomic Silk filament actually to do our test print down here when we were making sure the z offset was correct Anything else you want to add? Um, that's about it. Just make sure you follow the installation guide This video is going to be awesome because it's specific to the end of three. It's a very popular machine Just make sure to check as uh, jim noticed when we were examining the bed leveling Result He was a little closer on this side because he just moved this and the gantry is a little off But he's going to take care of that so check your gantry Make sure it's level with the printer's frame on either side because the system compensates for bed Tilting warping etc not for your gantry being off. Yep with that being said I'm going to throw the x gantry rework and the bed leveling video in the bottom there The other thing you can also do is buy the th3d Solid mounts and they actually replace the springs here. So you never have to loosen those springs again It just makes it all solid. I did a video on that if you go back into history I'm going to install that on this later. But for now, that's how we do it I think it's time to head back home though. Yeah, I think it's gonna low light. It was like seven seven seven thirty It's late. We've been here. It's it's been a long day, but I'm going to zap myself back home. Here we go Whoa I'm back Well, I tell you what we now have a th3d easy abl on the end of three right here behind me And it was awesome a special thanks goes out to tim and erin of th3d For rocking and rolling and having us come down on easter to film this video It was a lot of fun and we really had a blast I tell you what the best part about this is I don't have to level my bed anymore One thing you do have to remember is that you want to go down below and grab the link for the th3d firmware When you do that, you're going to get a file in there for the starting g code You're going to need to use that g code going forward on all of your files for the end of three that way It probes correctly before each print. You want to make sure you do that Also, don't forget to make your x gantry completely level if you didn't already do that I'll put the video in the description below and make sure that's good You'll want to do that because these printers print so much better when the x gantries are level With that being said, I hope you learned something today and as always keep printing Hey everybody, I want to hear from you in the comments below I want to know what your favorite bed leveling tool is. Is it a bl touch? Is it a th3d easy a bl or maybe something I don't know about maybe you just love the stock springs I don't know. Well, let me know in the comments below because I'd love to see what your favorite tool is If you like the video click the thumbs up and give me a like If you want to see more click that little subscribe button right here And if you want to get notified every time a great video comes out click that little bell I really appreciate you guys watching. Don't forget. We have paypal and patreon both links are in the bottom and every little bit counts You guys rock