Home Automation Hangout 2020-10-04: EtherUNO prototype followup

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] so please [Music] good morning superhumans i acknowledge the traditional owners of this land i pay my respects to their elders past and present and to aboriginal elders and peoples from other communities who may be taking part in this live stream today is an hour earlier than this would normally be for many people around the world because today in melbourne it is the first day actually i shouldn't say melbourne i should say melbourne because that's how the locals say it um i suppose i'm a local i qualify as local uh it's the first day of daylight savings so we have just started an hour earlier compared to other time zones around the world and i woke up this morning with the feeling you know that nasty feeling in your throat when you are getting sick and you know it's like you've been chewing on razor blades or something like that i had that this morning which is not great so i may end up not doing a very long live stream today but we'll just see what happens depends whether my uh my throat holds out sometimes it doesn't i don't know why i don't i suppose i don't talk very much other than on live streams this is pretty much when i talk so last week we put together the ether uno prototype and because i was being kind of silly and not taking a whole lot of care about it i grabbed a whole bunch of parts off existing boards and i've just transplanted them so for those of you who were here last week yeah you would have seen me use the the rap the words aren't coming the preheater and then pulling parts off the boards and sticking them onto the prototype and i've got the prototype right here sitting on the bench this is what we put together and um i need to get that out of the way and what else okay so the end result of all of this was the live stream ran way over time and i was diagnosing problems which was actually cool i thought it was fun to be trying to figure out problems on the live stream while everybody's watching because diagnosing problems is one of those things that uh it really teaches you things it makes you stop and think about how things are meant to be working and and analyze how the failure is occurring so you could have something where the symptom makes you think the problem is in one area and it's actually being caused by some totally different part of the circuit and what you're seeing is the end result not the root cause so things like figuring out what is causing these sorts of problems i personally find really interesting and when i'm putting together a board my goal obviously you want the design to be right you want everything to work and in a in a world where everything runs smoothly what you do is you put down the pcb you fit the parts you plug it in and everything works and it's all good it doesn't always work that way and in some ways when it does go like that it's not as interesting so [Music] where we got to last week was the i'm trying to remember the point at which um we we figured it out so oh i've just seen on the cctv i've got a delivery coming to the door is it oh it's tash it's my normal delivery driver he's here on a sunday morning that's really strange and i can see based on the package that he dropped off it's something from aliexpress one of the many things that i'm waiting on at the moment but that's just going to have to sit on my doorstep for another couple of hours we'll wait and see what it is so uh we had the board with the problem with the power supply it was pulling all of the amps that we chose to give it i started it up with the bench power supply set on 10 volts and i was current limiting at 300 milliamps which is a level that was sufficient for the board to power up if it had worked but probably not enough to actually do things like burn tracks on the pcb if they happen to be a short circuit somewhere now on first bring up of a board there are many things you can do to play it safe one thing that i pretty much always do is power it up for the first time from a lab supply with the current limit turned down low now i probably should have started with the current limit lower than that like typically i would start with it at like 100 milliamps or some smallish amount ideally you want it to be down at a level where it's probably not going to damage parts on the board like the micro controller which might have an ability to single source a certain amount of current out of its io pins and um oh frank just said i should have a geeked up parcel box yes um there's a whole story about that there is i'm chasing squirrels okay i'm going to chase this scroll very briefly there is a very cool project done by grant on the so in the discord there are a few people who have been very active and have been grant is one of the moderators and he's done a project which is a package vault project i'm going to find the url for this so i might come back to this later actually but it's um this project is very cool i might follow it up with a url later guru of nothing yes so grant is guru of nothing so he's made a he's on a project where he's got a big steel box which is attached i think he's bolted it to some concrete slabs outside his front gate and it is connected pancake hey good morning and it's connected up with a um a linear actuator and there's not like an arduino type board in it and cameras and all sorts of stuff so what happens is that a delivery person puts the package into it closes the lid it locks itself and then it can't be unlocked unless he does it with his phone or you know through the home automation system so very cool uh so okay i need to return from my from that little scroll chasing exercise so powering up the ether uno the uh with the current limit set on 300 what we were seeing was uh were two hotspots one was around the voltage regulator which is the it was the five volt voltage regulator i think yes and the diode the protection diode on the input side from the power supply and so the diagnosis that we got to on the live stream last week was that the voltage regulator was stuffed it was essentially a short circuit to ground so what was happening is that the power from the external power supply was coming in the diode was heating up now in retrospect just thinking about this now that is strange because something like a one in four double o four power diode should not get noticeably hot if you're just running like 300 milliamps through it but it may the amount of heat coming off it may actually have been very very small we were looking at it on the thermal camera and the automatic gain control adjusts so that the hot spot that is highlighted on the board or the hottest temperatures it shows on the board will always appear as being like a bright temperature it adjusts the scale so you could be looking at a board which is almost uniform temperature and if it's got a couple of points on it that are maybe like one degree above the rest of the board they'll appear as hot spots but it doesn't mean that they are really dramatically hotter than the rest of the board they may be only just marginally hotter but it highlights it because of that automatic gain control so what we were seeing was heat in the diode and in the voltage regulator switching the voltage regulator for a new one straight out of a piece of tape solved the problem the board powered up but where we left it last week at the end of the live stream was that i couldn't flash it my theory was that it was the atmega16u2 usb to serial converter chip turns out i was wrong because after the live stream i went and had lunch came back and did some diagnostics and it turned out to be much much simpler than that there was actually nothing wrong with the hardware the problem was that i had pulled the atmega328 the main microcontroller off a really old board that i had in my junk box that really old board came off a freetronix 2010 i think it was which was prior to using the 16 u2 was the usb serial converter chip it had a an ft 232 rl i think as the converter and the bootloader was different so what happened was i got an icsp programmer plugged into the board reflash the bootloader and everything magically started working so um what you see now on the screen with the board sitting there and it's running it's plugged into usb plugged into ethernet that is apart from adding the crystal so just over if i reach back you see that crystal just there which is hanging off in a strange way that's not the crystal that is meant to be on the board that's the 25 megahertz crystal for the wiznet chip and it is meant to be a little surface amount crystal you can see there's a surface amount crystal up here and there's another one over here these little silver rectangles so that is the package that this is meant to be but i just didn't have any 25 megahertz crystals in that 3225 size package so i just got an hd 49 us package crystal and i patched it onto the surface mount pads got the soldering iron in underneath and soldered it on so that is the only hardware modification that i've made to the circuit since we were looking at it on the live stream last week so all it was was that reflashing the bootloader on the main processor and everything started working so what i'm going to just show you now is a couple of little checks to verify that this is working and what i've got here is come on change it to the desktop that's better so what i've got here is blink because we have to run blink everybody's got to run blink so i'll just hit upload on that and this will push the blink sketch across to the the board and i've queued up a few other sketches here that we can use for testing other parts of the hardware i've already gone through this but it's kind of interesting i'll just show you the different things that i check oh it's finished all right so back to overhead and if you look up in the top right part of the board it's a little bit obscured because we've got a blue led there that is really bright but there's a red led just below it a blue leds power and if i block the blue one you'll see the red one flashing on and off so we've got link running and something that i um i often do in this situation just to verify 100 that what i'm doing is really updating the code in the the microcontroller is to change the delay and then just upload it again and what you can see now because i just changed it to a 2.1 second delay instead of a one second delay you can see that blink is now running much faster in fact depending so it's got it's blinking five times a second it's 100 milliseconds on 100 milliseconds off so hopefully you can see that depending on the refresh rate on youtube and so we definitely have upload of code running to that board now so another device that is on that that is on that board is the mac address rom and hang on 50 i thought it was hex address 48 now maybe it's 50. it's probably just my memory that's wrong so what we've got here is a sketch which talks to the mac address chip so the mac address chip is oh okay james just said if you place a scrap of paper over the leds they may show better on camera i will try that let's switch back to the other back to overhead not sure the white paper is quite glary you can yeah you can kind of see i think the part of the problem is the white paper is now picking up glare from the overhead lights it might make things a little bit better oh well cool idea uh so this board has a mac address rom on it and that's because one thing that really annoys me is when i have to maintain code that is unique to each device ideally what you want to be able to do is have standard firmware ideally even a standard binary so you're not using something like the arduino ide plugging in a board and then pressing upload because what that does is compile it every single time ideally what you want to be able to do is generate a program compile the binary and then push that across onto each of your target boards so if you're setting up a whole bunch of boards you should be able to put the same code onto them and it's actually the exact same blob that is being moved across and what that means is you can't do things like to have a sep hard wire yeah where it's not working today you can't do things like set the mac address in the sketch because the mac address then ends up just being the same for every single board and that's no good you can't have uh you can't have the same binary blob on multiple devices on your network so what i did on the ether10 and now the etheruno is put on a microchip 24aa 125e48 eprom and that eprom is a little i squared ce prompt it's a very tiny device because it's i squared c i think it's like a and what is the footprint of it it's i think it's sot 2 uh was it slot 323 or something it's a a little six pin um sot type device so it doesn't take up very much space on the pcb and it's i squared c so and they come from the factory with every rom pre-programmed with a unique mac address from a range that has been assigned to microchip which means that your program can start up read the value out of the mac address chip and then use that as its mac address when it wants to connect to the network so um the yeah so i included that rom on the board anyway enough background explanation let's have a look at this code so what this is doing is setting the address of the mac address rom and because it's i squared c it needs wire to connect to it and then what we've got is this little array and it pre-populates the mac and it basically it's just got all zero values to start with so in this particular case if we don't get a value from the mac address rom the mac address is all just going to be zeros so in a sensible program what you would do is you would make this some default mac address which it will use if it fails to talk to the rom probably unless you want it to fail hard which is certainly a valid decision depending on what your device is so then all it does is um what are we doing here not very much printing some spaces and uh i don't even know why this thing is doing that i think because this got pulled out of a bigger program i don't know so what it's doing is taking it's reading a series of registers so the register address fa is the first byte of the mac address in the rom and read register is a function that is just down in the sketch a little bit you'll see that in a second so what it does is it reads the first byte out of the rom and it sticks it into the first byte of the mac address array and then it reads the second bite sticks it into the next one so what this is doing is populating this array that we started back up here and then it just prints it out so it puts it into hex format you can see we're using s printf and it's using percent 0 to capital x which means that it will be capitalized hex values and it puts the semicolon in between them and [Music] prints it so it doesn't actually need to do anything in the loop all it does is read the mac address rom on startup and then print it and then down here we've got a function read register we tell it what byte we want to read and it starts a transmission on the i squared c bus and it sends a um sends r on the bus and then requests one byte one that gets the byte it just sends it back to whatever call this function so this is actually kind of handy little i squared c utility routine you can use this to just read from registers on an i squared c device so if we just hit upload on this now this will compile it push it across to the board and when this finishes what it should do is exactly what we've seen in the sketch it should read from the mac address rom and spit the value back out and hey look what we've got it says starting test for mac address rom which is from here getting mac and the value is zero zero zero four a3 d3 34 a8 test okay so that is the value that came out of the rom uh that is stuck on that particular board so what we should get then is um an uh yeah a unique value so for every board that we that i build it'll have a different mac address based on the particular chip that came out of the tape for that mac address rom so um in terms of automated testing what we're doing here is just looking uh look at the output manually and what we're looking at here is little snippets that test different parts of the functionality of this board but this is just the sort of thing that i do as part of my manual prototype assessment so if i put together a board like this and i want to verify the different bits of the hardware are working what i'll do is have little programs like this which are snippets of a test it's not a full test suite it's just testing one specific thing in this case we're testing the mac address rom and it's just outputting it to the serial console so for something like end of line testing if we're looking at producing hundreds or thousands of these and we want to have them done on a production line by a pcba and we want to have them all automatically tested then what we would need to do is integrate each of these things into a test process and have it run these series of tests automatically and then give a pass fail result at the end and if it fails we want to know why the test failed so that's uh that's actually a really really interesting subject and i've talked about a little bit in the past and i might talk about it a bit more in the future as well i think talking about test systems for um production line end of line testing is a really fascinating thing so the that in terms of automated testing if this test was being done as part of an end-of-line test what we would need to do here is in our code we would need to check whether we had successfully read from the uh from the mac address rom and we would have to have a fail condition here somewhere so if you attempt to read from the rom and you fail or if you set a default value up here and then you attempt to read from the mac address rom and you get down to you know this point in the code down here somewhere and the uh the value that's in your buffer is still the default value from up here then you know that you've failed to get a new address and you can set some flag and output a failure message on your end of line testing so in that particular case the logic would need to be that the because you're not testing for a specific value which is usually what you do in a test situation normally what you do is you want a predictable value and you want to be able to say this is the value i was expecting to get like the result which could be i drove this pin high and now i've read that this pin is high or i've got an input which is at half of vcc and i'm doing an analog read on it and i'm getting a value within this range what we're doing here is we want to know you know we can't predict what this value is going to be it could be anything essentially that comes back out of reading this value so what the end of line tester has to do is have something like a default value and if it is no longer the default value then it succeeded so you know sometimes setting up tests like this are not entirely straightforward there can be ways that the test can fail such in a way that your board has failed but it has failed in a way that will trick the test into thinking that it's working so sometimes this sort of thing can uh can be a bit mind-bending i'll just you know making stuff up as i go here hypothetically you could have a situation where you are getting values back reading from the mac address rom and they are not consistent i don't even know why that would happen but imagine that as a failure mode you've got to think about how you would check for that which means that you would probably in this test want to do something like read from the mac address wrong multiple times and then see if you get the same value back every time i mean the chance of that being a failure mode is you know ridiculously small but as you're setting up tests you need to think about these sorts of things you've got to get yourself into the mindset of what is every single possible way this could fail and then try to catch it all right so we know that the mac address rom is working in fact if i hit reset on that board now it'll run that test again and we can see oh that's why it was doing that okay this is just let's get rid of this little for loop that was just printing a bunch of blank lines that's annoying uh and let's upload this again this way we can read the test what that would have been doing is because this came out of a test suite i think that was uh basically pushing a whole bunch of stuff down so that you could see distinctly where the test started and ended okay so now it's restarted and if i press reset we won't get that whole bunch of lines that push the test results back up off the page and if we keep re-running it you can see we're getting the same mac address each time that the test is run so cool now we know that the mac address rom is working what else can we test there was i'm just going to have a look over here okay so this one is kind of cool so this is where we're getting into testing the ethernet and this is a link status test now with the ether10 and the old um okay i'll cut that train of thought off um okay so one of the features with the newer wiznet chips the so this one's got the w5500 on it is that they report extra information about the connection and one of them is the link status with the w5100 there was no way programmatically from the microcontroller to talk to the ethernet interface and say is your link currently active you couldn't get that information with the w5200 and above so including the 5500 we can talk to the wiznet chip and it will report its link status which the link status is like a hardware level connection it means it's basically telling us that we've got a cable plugged in so in this case what we've got is the the chip select is set up on pin 10 because i select the same pin as on the official arduino ethernet shield because i wanted to make this software compatible and as i've talked about in previous live streams that is largely what drove the design decisions around the ether uno the whole idea is that the ethereum from a software point of view should be functionally the same as if you've got an arduino uno and an arduino ethernet shield and you mash them together onto the same pcb and that's what we've got here which means that all of the example code that is designed to run on an uno with an official ethernet shield should just work you don't need custom libraries you don't need custom board profiles everything works so what i've got is the ethernet init on pin 10 so that's the chip select pin and what we're doing in this loop is just reporting the link status so all it's doing is getting the link status from the driver and then printing it either unknown on or off so if link is on it means we've got the cable plugged in and if it's off it means we don't so what i can do is hit go on that and we should start seeing some results coming back up in the serial console in a moment and we can see that it says link status is on on on now how do we get to see this both at once i'm going to switch to the overhead which means that the console is going to be very very slow and i'm going what is going on with that so i'm going to unplug this bring it back into field of view there so we've got this unplugged and you can just barely see in the console the word has got longer because it has been unplugged so there was some weirdness here where the values were jumping around but now that i've unplugged the cable you can see that it's consistently off and if i plug it back in i'll slide back over here you can't see what i'm doing oh you can kind of see through the main camera so i'll plug it in now and you can see that the link status is now on so we are successfully detecting the cable being plugged in and reporting it back to the uh the console all right so what else can we look at um sd info alright so there is also a micro sd card slot on this board and so what i did was just pull off the little info sketch and um don't know if you can see it but there is a micro sd card just there that i plugged into it i grabbed the sd card out of my phantom drone and stuck it in there so it'll just have like image files and things on it but with a card in there we should be able to interrogate the card and validate that it is there so sd chip select i've got set on pin 4 and i won't go through this this is a very long and very difficult to read program with a whole lot of weird stuff in it um so you know things like this there are some entertaining blocks of code in here oh you can't read that let's pull it back to there so uh yeah so there are chunks of code in it like this and you know this sort of thing you can figure out but it does take some puzzling so what i'm going to do is just hit go on that and push it across to the board and we should be able to use this to determine whether it can communicate with the sd card and as i've said before and i've mentioned this a few times on previous streams sd cards are are just spi bus devices so um that's why we've got sd chip select and we've got a select pin and we can treat the sd card as if it's an spi device and that's because it is so which raises some interesting possibilities um one really cool thing i've seen is uh i don't know if one of you probably probably know where this is i can't remember where it was there was someone who made um i think it might have been a debugger or some kind of a device like that that plugged into the sd card slot of a target board and that i thought was pretty cool so you can if you have a board with a micro sd card or an sd card slot on it you can misuse that slot as a way to connect spi devices it doesn't have to be an sd card could be anything as long as it makes the electrical connection you've got a full spi interface right there in the card anyway back to here so what have we got okay sd fat version so it's showing us a version there which i assume is the uh the version of the file system i don't even know what those values mean okay it says type in your character to start i'm just going to say hey go oh failed interesting so to disable a second spi device all right i'm going to set this to 10 to disable the ethernet controller i don't know if this is going to make any difference let's find out i'll push it up and see if we can then communicate with the sd card so i've um i've tried this sketch in the past in fact i used this sketch this morning and it worked just fine but it might have been that i did that before the ethernet interface was initialized and therefore it needed to be needed to be disabled no it's failed again that's really interesting okay so let's move on to the next test because the next one tests the sd card as well it's it's another test that also exercises the sd card and this is sd web server list so what this does come on drag down um this has got the dead beef mac address hard coded into it this is one just one of the examples that spun funded bundled with the ide so what it does is set up the ethernet interface with this web server on port 80. it's got a hard-coded mac address on there and it reads from the sd card it outputs some information on the serial console tells us you know files it's found begins the ethernet interface and then we can connect to the ethernet interface we can connect basically with a browser and it should show us what it's found on the sd card so this will be exercising both the sd card and the ethernet at the same time so let's shove that one across um okay uploading sorry drink time all right i'm done uploading what is going to happen here sd card in it failed this is interesting i wonder if it's just because i moved it around or something maybe i'll just power cycle it and see what happens all right let's hit reset ah yeah okay i suspect that when i was moving the board around earlier i picked it up and waved it at the camera i might have moved the sd card in it because it wasn't connecting so what we've got now after i unseated the sd card and clicked it back in is it's now saying volume is fat32 so that makes a whole lot more sense than saying the the one zero one zero zero value that came before so it's saying files found in root it's got some folders in there and then you can see it's going down into the subdirectories listing the contents dji blah oh look what is that misc thm so this is obviously something related to the phantom which is the drone i don't know what these files are thm and rlv files log and it's got some images in the trash nothing particularly interesting but at least that shows oh look there's nothing in dcim so there are no actual images on this folder thumbnails okay joe and on sid those are thumbnails thm that certainly makes sense all right so now if i bring up a browser let's bring this over here somewhere and let's see what we can pull up so one two one nine two what am i gonna pull up one two five and cool so a couple of things firstly in the browser we got a value coming up and you can see we've got dcim misc f7 and trasher these ones have been truncated because of the dos vial conventions but yeah you can see the files the folders there that have come up in the web browser being served off the ether roono so it's reading data off the sd card and then serving it to us as a web page and looking in the console you can see a little debug message in here it says done and get http 1.1 so if and if you keep your eyes on this see it's just got done on there one and i hit reload it now says get http 1.1 again so the console is reporting each time that web page is being loaded so we're getting confirmation basically we've got complete round trip confirmation here we are sending a a request to it an http 1.1 request for a web page it is reading its sd card formulating the page putting it all together putting the html chunk together that needs to come back and sending it to us actually i wonder what it looks like from a page source point of view super fun super simple and in fact it's not even valid html look it doesn't have the open and closed tags or anything it's just sending us files and then an unordered list of the the things that it wants to send so where is it doing that we're doing volume files and somewhere content type oh this is the response header so it's sending the http 1.1 response header and then it's sending this so let's just uh make this a little bit more realistic um hey uh let's see title title i mean i could this is kind of silly doing this but head and then let's make it open the body tag and then we've got files and then after we've done all of that stuff where is it file not found content goes in where is the loop where it's doing the thing uncomment the serial list files well so far we have opened the uh the html document we haven't closed it if we now push that across and load that page again we should have the start of the document making a little bit more sense looking like a real document so this is what the output looked like before it's a very incomplete html document so that's now loaded again let's reload this reload view source again dude and now we've got html head title title close title close head open the body and then down the bottom here we should add on close the body and close the html so anyway i don't know why i was screwing around with that it just annoyed me that it was outputting invalid html so list files so after list files all right so i don't really have anything better to talk about today so let's do this um i'm just going to add this on the bottom here so client.printline and we want to close the body tag and then close the document so send that off and now we should have a um an html document that looks a little bit more sensible for people that care about html documents looking sensible obviously there's way more that you would need to put to actually make this a a valid like a properly valid document but well so now reload this i wonder if i've broken the html and view page source and look now we've got a closed body tag and a closed html tag so now it's outputting something that is closer to what an html document should look like but it doesn't really matter the browser figures it out anyway all right so uh now i'm curious to go back to that other test so that was the sd web server list test the sd info thing that we did before i'm going to hit upload on that again because i want to see what output this is giving i can't remember what it was doing earlier um oh i just noticed that there has been a large increase in viewers on the live stream just in the last few minutes and i wonder if that is because we are getting closer to the normal start time for this live stream everybody was caught out well not everybody some people were probably caught out because i started an hour earlier than usual all right so now we've got the little test thing running again type in your character to start oh it still says sd fat version is 1 0 1 1 whatever that means magic numbers i hate magic numbers so let's try this again now we've got values in it time 31 milliseconds and s card type sdhc manufacturer code oem blah blah blah version serial number so we've got a whole lot of info coming back off the card oh look it was manufactured in june 2015 so it's a bit over five years old and we can see the size of the card partition table blocks free space all sorts of stuff so yeah this is the exact same code that we were trying to run just like 15 minutes ago but now it works and it was just because as i said i think it was just because i didn't have the sd card shoved right in and the other thing is that the i don't have any spare card cages for that particular footprint because normally these boards are made for me in a factory and they have all of the stock so and that's actually one of the reasons that i was uh i was pulling bits off an old board in order to populate this one because most of the regular parts like you know just jelly bean parts like resistors and caps and all of those sorts of things i've got plenty of those and even things like microcontrollers and stuff but there are some things that i just don't have like i didn't have any of those micro sd card cages so i had to pull that off the other board and the the way those particular sd card cages work they've got a plastic base which has an unfortunately low melting temperature with a metal cage over them and the contacts so they are remarkably hard to remove from a board without damaging them and i think the one that is on this prototype now is slightly warped uh because of the the plastic getting very very soft when i was removing it from the other board and so it's that's probably contributing to the um the sd card not being so reliable when i plugged it in okay now where to from here i have no idea i suppose what i should do you start paying attention to you and looking at the chat [Music] okay oh modbus rtu okay so i'm going to quickly look back through a couple of things so jean-christophe del peron said where can i find the super house eagle library um at the moment you can't and uh i would i would be perfectly happy to share it the what i need to do is figure out how to go about sharing it with the new managed library mechanism so with eagle libraries in the past uh library management is a hard problem so i'm just imagining all the directions this bit of conversation can go okay a little bit of history when um when i started freetronix back in when was it early 2009 or whatever um mid-2009 i can't remember the exact date the eagle format for its design files for libraries for everything else was were basically binary blobs so sometime after that they switched to using xml so if you look at a dot board file or a dot schematic file in eagle now it's xml you can you can actually just read it and it's as readable as any xml is you can look at it and see net names and coordinates and values of parts you can manipulate the designs externally if you want to you can write scripts that will process eagle projects and modify them and you can do things like replace parts you can do all sorts of stuff now that in itself is kind of moderately interesting but what is really interesting about it is that xml is depending on what you stick inside the xml obviously you can you can do nasty binary sort of things inside the xml but xml when it's used for storing things in a sort of nice text format is difficult and versionable you can store it in github or git i i say github because that's kind of i don't know it's like saying hoovering for vacuuming so you can look at it in gif and get and see diffs and the diffs can actually make sense to you you can even add a pinch merge things together and this is the key of the point that i'm getting to with libraries the really big problem with libraries is how do you handle multiple people working on libraries and merging parts so there if you think of a library as being a single document um i'm trying to think of analogies for this i don't know uh so imagine it's a it's an essay or an article and it's a a big chunk of text and you've got multiple editors working on that article at the same time and they're working in totally different sections of the article you need some kind of a software system that's going to allow that to happen and for anyone that's done software development you know of this it's the classic uh multi-developer source code management problem and libraries for things like eagle or kicad or whatever basically this exact same problem so the challenge for the developers of those tools is how do you manage the libraries in a way that allows collaboration and versioning multiple users and all of these things which are difficult problems to solve and in the getting back to where i was five minutes ago the early days of um of freetronix what we were doing when i say we i mean me and mark alexander were the two that that started it the problem that we faced was that we wanted to have common footprints for certain parts in fact we wanted to have common footprints for everything we wanted to be able to be working on two different boards and have the same o603 resistor footprint in both of them it doesn't make sense for me to have a footprint and for mark to have a footprint and it was a real pain we actually ended up in the situation where for a while we had a free tronics eagle parts library and there was one of them and we would have to try to coordinate between us and we had it stored in dropbox so what we could do is uh and it was in a shared dropbox folder so both of us could work from the same library but what would happen is that if i needed to start editing it to add parts to it i would need to make sure that what i had was the latest version of it and edit that and that he was not making edits at the same time because we had a contention problem and he'd end up with corrupt libraries and all sorts of painful things would happen it really wasn't very nice at all and what we ended up doing was we had so this is uh this is a horrible solution but it was the best we could come up with at the time what we had were three libraries we had a centralized freetronix library so um and then so we had one library just called freetronix we had one library called freetronix john and one library called freetronixmark and we could both edit our own libraries and know that we weren't going to be causing any problems for the other person so if i wanted to add a particular ic that i was using in a project i would create the parts for that in my personal library and i could always save it and so we ended up using parts out of each other's personal libraries in our own project so if he'd added a part and i wanted to use it in my project i would pull it out of his library so we ended up with the original master library that we had been trying to collaborate on and then we and then we had our own one each and what that meant is that if you wanted to open a project in eagle you would need both of our personal libraries and the original freetronix library otherwise there would well with eagle one of the nice things about eagle is that it does embed a lot of that data within the project but if you want to go back and edit the parts you need the original library or to take the part out of the project and stick it into your own library and then edit it there anyway lots of hand waving and going around in circles and and confusing situations where you might have a copy of it in your personal library and then you have another copy of it somewhere else and you don't know which version of that particular part you used when you last produced that board it was all a nasty situation um so where am i going with this that was a little bit of a disjointed rant about the pain of using eagle libraries early on so all of this question came about from uh jean-christophe's question about where can i find the super house eagle library so since then the library management system has been massively revamped in eagle it now has managed libraries where the library is stored in their in their cloud management system and uh so in my case i have two main computers well three if you count the one that's at chris's place so i have two main computers that i use for editing pcbs and schematics there's my imac right here and there is my macbook pro which i use when i'm sitting in front of the tv and working in the evening and so i've got eagle on both of them and by uh so and i've got all of my libraries now set up as managed libraries so that i can have 3d parts associated with them so i either generate the parts using the internal part generator or for complicated things where i actually care about making it all look really nice i might generate the models myself in fusion 360 and then import them into the library and assign them to the footprint so this gets us all the way back to the original question which is uh i don't i haven't actually looked at what is involved in sharing a library using the new manage system so from just seeing the announcements that have come out from autodesk over the last little while it looks like they've done some they've made some changes in terms of being able to collaborate on libraries when managed libraries were first released it was like a one person per one user per library situation you could create a managed library it would go into their cloud management system but nobody else could access it i think that was the case you could export it in like a backward compatibility mode where you would export it as like an old style library but then you lose all of the the benefits of the managed library so what i need to do is figure out how to share my library i don't have uh let me see i actually have a whole bunch of libraries there is not one uh let's have a look at how it is i've just um i'll launch eagle and might as well show you a couple of things so while i'm waiting for that to open what else um so there was a question from austin's creations about using the p9813 led driver i've never even heard of that one i spent the entire day on zoom trying to diagnose them with someone my final thoughts are they are junk and very finicky i don't know um bro i sorry uh austin's creations i haven't seen that particular led driver and if you've had that much trouble with it i'm not inclined to look into it or want to use it myself so uh mike o'connor said this is a throwback to a previous conversation so he's said i found a board with 32 relays which supports modbus rtu that's interesting so that sort of device could be used as a replacement in like my switchboard or uh yeah at the moment i've got the din rail mounted relays connected to an arduino which is using relay drivers to turn them on and off but something like a board with 32 relays on it with modbus rtu interface could be interesting it'll be much nicer to have a device that you can stick in the switchboard and then connect some kind of a communications interface with it and send it commands and turn channels on and off so um oh intro this is an interesting question johnny bergdahl said any solutions to get tls working over ethernet the short answer to that if you're talking about the context of something like an ethereum or an ether 10 you know with an atmega328 on it short answer is no they are doing tls okay so for those of you who don't know what we're talking about and i don't even know what i'm talking about i'm just making this up as i go tls is in relation to encryption and security on a connection so being able to connect to like an ssl enabled web server and you know it's used for different purposes but the thing is that to do crypto in any way that is that is even vaguely sensible you need more processing power than is available on something like an atmega328 so on an ether10 ether uno you know those sort of class of boards short answer is no it's not really feasible even things like the the esp8266 which is a 32-bit processor it's much faster it's got a lot more memory i think there is a library i've never used it but i think there is a tiny tls library or something like that but trying to get tls working on on something like an esp8266 class device which is way more powerful than an arduino uno is really really pushing it it's um it's not going to be very good and you really need to be getting up more to the sort of esp32 sort of class of device before things like tls become something that you can practically integrate into your project so doing it over ethernet with this sort of board not so good [Music] now oh what were we doing that's right i was opening eagle because i was going to show some library stuff now i've just got to find a project that i can open that is not going to be too sensitive all right d1z okay this one this little project is one that no one has even heard of before and um you will be hearing about it but not just yet so this is a little project d1 zig it's a zigbee interface for a d1 mini and i have it i have a prototype right here uh in fact i'm going to hold this up to the camera this is a continuation of my um zigbee to tasmota project making um a zigbee coordinator using an esp8266 and taz motor and um let's see if you can see this so that is a d1 mini with one of these d1 zig boards on it and i'll pull it off that's the d1 zig board it's a d1 mini shield with a zigbee chip on it with a power amplifier so it's got decent reasonably decent coverage and the idea is that the two of them get smooshed together like that and they make a teeny tiny little package and i've got a cut out on this side let's see if you can focus got to cut it on this side for the usb socket so that it clears and the boards are separated just by the spacer the idea is that what i'm going to do is just alter these together directly so the whole thing is a zigbee coordinator that is like half the size of a box of matches you just plug it into usb and away you go so that is the project that is here and let's see so what i was talking about was libraries i just can't keep my mind on track today now libraries libraries library manager what have we got now i got this idea from the spark fund actually i saw the way they were organizing their libraries and i quite liked it so in use so there are some sparkfun eagle libraries let's see if i can move this across now the font is quite small on this it might be hard to read and you can see for example i've got a couple of spark funds libraries loaded there's um spark phone capacitors spark phone connectors spark phone switches and what they've done is broken it up into sections so that you don't have a single library that has got a thousand parts in it you might have 20 libraries that have a smaller number of parts each like 50 parts each or whatever so then i followed that same basic structure when i made my own so you can see for example super house connectors there are 185 revisions of that i obviously spend a lot of time messing around with connectors and so what i've got is i'll just read down them connectors discrete semi displays esp prog esp flash now the esp prog one is going to be obsolete esp flash is the new version filters fuses ics jumpers leds mtu's modules oscillators regulators relay sensors supply symbol switches symbols and test so what i can do is basically go into if i'm going to place a part on a board i go into the appropriate library so let's just open one um [Music] uh discrete semi connectors let's have a look at connectors that's probably got the interesting stuff in it oh edit it annoys me you can't just double click there to edit one of those libraries alright so what connectors do we have in here to look at uh i need to move this over here so that you can see the whole thing and you can see i've got many many footprints here and many 3d packages and symbols a smaller number of symbols and the way i've arranged this actually i'd be interested to hear other people's opinions on this this is just you know the best i could come up with in terms of my objective let's look at a specific example so let's have a look at m06 so this is a header which is a standard pin header and it's available uh 106. do i want six i'm just trying to think of the best example the one that's going to show you the most interesting things uh with different size variations and that sort of thing 127 plane 104 let's try um 101 [Music] no i'll shoot i'll start with the six this doesn't have all of the variations in it that i would like to show you but we can get back to that because the one by six header is like a standard thing all right so m06 and if we go and look at that in detail so this is standard six pin header and screw terminal variations all right so what i've got here are let me see six versions or six different uh packages for the one by six header now part of the reason for this is they i think these all have the same yeah these ones would all have the same footprint i've created different packages because i wanted different 3d models so this is just the way i've associated them so if we have a look at m06 you can see let's just scroll down what else is highlighted nothing all right you can see here six footprints these footprints i think are almost identical so if we look at just the one by six footprint that's the standard one you can see that this is just the regular one by six header it's got still screen around it name and value oh and one other thing that i've changed recently i this is something that i have debated with just myself i haven't debated it with anyone else so i would like other opinions what i used to do was put the point of origin for all of my parts on pin one and that was for connectors and that was just because that's what i'd seen other people doing and then and it turns out to be annoying in multiple ways so if you run a pick and place machine what you need to be able to do is take your design like ideally you want to be able to import your design file into the pick and place software and have it automatically set up all of your placements and that might be either by exporting exporting a centroid file or which has their xy coordinates or it might be by opening the native project and in the case of open pnp it can directly open eagle files so and because i've got i use dropbox to synchronize it i can be on my pick and place machine and just go in open pnp i just do import eagle and i select the board file and boom it sets up all of the placements for me now the reason i mention that is that the placements uh the coordinates of the part that you put on the board determine where the machine picks up the part from the feeder and where it puts it down on the board and now i don't actually put i don't use my pick and place machine to put pin headers in the board so this is not directly relevant here but this isn't it's a an interesting example imagine you have a connector like a um all right so you're using a mic a usbc connector the usbc connector has got a it's a rectangular ish metal thing with a flat top on it so it is quite feasible to pick that up on a pick and place machine and i'm pretty sure ceon uses his pick and place machine to put down usb connectors so what you can do is pick it up and put it down on the the pcb by using the nozzle on the flat part of the top of the package so if your origin is on pin one that is a real pain because it means that your peak location has to be offset relative to the centroid position of the part so what i've ended up doing is putting the um the center so this is basically the habit i've got into even for parts that i'm not putting on with the pick and place machine like with pin headers because the pick and place machines can't pick them up what i do is always make the physical center of the part the origin of the part so that's the zero coordinate so what you can see here see that little if i zoom in you can oh it doesn't get bigger there is a little cross right in the middle there that is the zero coordinate for this particular part and it is right in the middle of the part now that means that for an a linear part like this with an even number of pins the zero point is in between two pins if it's an odd number of pins it'll be directly on a pin but the idea is that the center is always the physical center of the part so other libraries i've seen other eagle libraries like if you look at i'm not sure how sparkfun do it i can can't even remember we could open it up and find out pretty much all of them use pin one as the point of origin and that can be really really frustrating all right so let's get back to here where are we okay so m06 and if i click on that footprint so you can see on the right hand side of the screen can we zoom no we can't oh well it doesn't really matter oh yeah that'll make it bigger so we've got the standard footprint that we were just looking at and if i go down to the next footprint so we've got one by zero six and then i got one by zero six p click on it see it doesn't change that is actually just a copy and paste of the exact same footprint in fact oh not copy and paste i probably just went duplicate and then renamed it and then 106p below it's the once again exact same footprint so in terms of the board that is generated by putting these parts down it's going to be the same every single time like if i put down that part or that part or that part let's see is that one the same yes that one is the same and that one is the same now i've skipped over one of them because i think it's a little bit different this one yeah you can see there that i edited the silk screen it's got a straight line along it whereas all of these others the silk screen kind of wraps around the pins that one is a variation but what you have to do if you want to make multiple 3d packages or multiple versions of a part that you can place on a pcb is make separate footprints and that's why i have six footprints that are exactly the same with the exception of this one which i've edited slightly so that is one of the limitations of the way the library format works in eagle but that is necessary because the 3d packages are associated with the footprints so if i click on this first one so [Music] 106-p you can see it's highlighted this is the 3d model for it down here and if i go on 106 s where is it it'll be oh there it is that is the 3d model that's associated with it so you can see it's highlighted just there so i've got different 3d models now if i click on that 3d model do i get a preview yes i do so um 1 by 0 6s means stacking oh yeah so that is the why does it say stacking it's the one below it um so that is a socket and then the 106 p is pins the 106 is just the footprint on the pcb with no 3d model associated with it so if you wanted a pcb where you just had a plain row of 1x6 on the board and there was no connector associated with it maybe you don't want to populate it then i would select that one now what the point i made very badly before i didn't say it very well is if i am designing a pcb and i put this part down the one by zero six or i put this part down the one by zero six p or this part the one by zero six s or the st it's going to make no difference whatsoever in terms of the pcb that is generated those footprints are exactly the same they were duplicated from each other so it's going to generate the same geometry the gerbers are going to come out the same the board is going to be exactly the same so from from a pcb manufacturing point of view it doesn't matter which one of those i pick the only reason that i have multiple footprints there and multiple variants of this part is so i can have different options for the 3d model that's associated with it so this one for example a 106-x st for stacking header it's this model and if we click on that one and get a preview let's see you can see that it is a socket with the stacking pin sticking down through it so then when i um when i take this design so if i put that part down and i then synchronize it with fusion 360 or if i use this library in fusion 360 my 3d model of the part will have that stacking header in it which is then useful if you want to do things like well it's useful for generating a preview but it's also useful for things like checking clearances and making an assembly where you take your board and you integrate it into other things like design a case around it you might want to add a shield on top and then check all the clearances so yeah i really like having 3d parts associated with all of this i think this is one of the um one of the most powerful things now about eagle is its tight integration with fusion 360. and um i'm trying to avoid going off and chasing another squirrel here there's the whole discussion about fusion 360 licensing that came up a little you know over the last couple of weeks because of their changes to the free license stuff my um the my personal use case is that fusion 360 and eagle are the two pieces of software that contribute the most to my productivity and to which my projects are the most closely tied so if i was just doing this as an occasional hobby thing or um then i would use kicad for sure uh if uh i'm trying to think of an analogy for this okay so if you are a visual editor and you your whole life is editing photos then and you get paid for editing photos that's where your money comes from then you'll probably pay for photoshop if you if your income is not directly tied to it then you become much more price sensitive about things and so you would probably use something like instead and uh okay i'm what i'm trying to do here is separate the whole question of open source versus closed source more from the point of view of uh of whether it is worth paying for something and i'm really trying hard not to chase down this little squirrel hole this isn't i don't see this as being an open source versus closed source issue i see this as being more of an issue of are you um is your work tied to and your economics tied to the performance of a particular piece of software and if it is then it should be you should feel comfortable paying for it whether it is open source or not now if there is a piece of software that that is critical to your work and you you use it and make money from it then i think the developers of that should be should have the option of being remunerated for it even if it's open source so if you have people who are contributing time okay a good example of this is octoprint so i use octoprint it's totally open source anyone can use it free of charge and not feel bad about it it's releases open source software i have it running on my on both of my 3d printers both of my active 3d printers so that thing up there octoprint is running on that little raspberry pi and controlling my 3d printer i could be using that and not paying a cent for it because it's released as open source but i support fossil on patreon because i want to see development of that continue and i am getting benefit from that work so i i want to be able to contribute back and it makes me happy to pay to use it i i want to pay to use that software because i'm getting benefit from it and i think many people think of open source software as being like something free that is just handed to them and you can grab it and run away and use it to your own advantage which you can but someone put in a lot of time and effort into creating that tool for you to use so if there is a tool that you use that is important to you from a work point of view and potentially you're even making money from it then i think supporting the people that created that tool is the right thing to do so that is why i um i do things like support octoprint development by donating on and the mechanism in that particular case is patreon but that's like in many ways i see that as being similar to if there is a particular piece of software that's got a subscription fee for it and i pay for it and i use it and it benefits me i'm getting productivity gains from it then i am perfectly fine with supporting the people that put in all of the effort up front to and ongoing to develop that tool which i'm benefiting from so that's kind of my take so at the moment like i have used kicad a number of times on a number of projects i can kind of fumble my way through it i'm certainly not comfortable in it i can use it if i have to but where i'm really productive is in eagle just because of what i've been using if i switched to keycad as my primary cad tool then i would also want to be contributing back to kicad development and in some cases that is as simple as sending some money like a small amount of contribution to someone if you're not in a position to actually contribute back with development yourself so i suppose my message is it's not so much about whether something is open source or closed source that to me is that's a really important issue i think it's critically important but what i'm trying to highlight right now is that no matter what tool it is that you use whether it's open source or closed source or whatever wherever it comes from if someone is putting in the hard work to create that tool and you are getting benefit from it then the right thing to do is to try to support those people and help them to continue to develop the tool that you are benefiting from i mean it's if you think about it from a purely self-interested point of view then you want that development to continue and being able to support that development is something that will help the you know the continuing ecosystem around the tools that you rely on so i have no problem whatsoever in paying a license fee for eagle because it is a tool that gives me a huge amount of productivity if i was using kicad as my primary tool i would have no problem whatsoever in contributing back to kicad development because it would be a tool that would give me productivity anyway a little bit of a rant on the side where was i that's right i was talking about um [Music] i was talking about libraries i really went off the rails there for a little bit and so i've got these uh six different footprints one of which has a slight variation and they have different 3d models associated with them that was the point of what i was getting to so on the m06 header it looks like so if you look at the devices down here however many that is i don't know how to count that but it looks to me like 30 or 40 devices that i've got in this particular library but then if you look at the footprints there are far more footprints than there are devices and far more 3d models than there are devices because i've created all these different variations now you can see if you look at the list hang on you can't even see what i'm looking at desktop please give me a desktop view come on desktop switch to desktop view no not working uh [Music] something has gone wrong with my switcher so desktop view there we go so just to repeat myself now so it looks like i've got maybe 30 or 40 devices here in this column and then in the footprint list to the left just to the right of it you can see there are way more because there are multiples for each of these and now you can see a whole lot of repetition here in the structure and that is because i've tried to be consistent with the way that i name these particular footprints and so you can see here in the m06 we've got the 106 which is the plain one we've got a dash p which is pins dash p below which is pins but the pins are sticking down below the pcb instead of sticking up from it we've got pra which is pins right angle maybe if i say that one is like that it's a right angle pin header and the other thing is that there are two variations of a right angle pin header you can get the version that looks like this where the pins come up and bend and then there is a spacer block on it or you can get the one where the pins come up there is a spacer block and then they bend and it sits up higher above the pcb so there are all these different versions type 1 and type 2 of right angle pin headers so then there is the 106 s which is the socket and the st which is the stacking socket so socket with stacking headers and you can see that for the most part this structure kind of repeats in 104 we've got the standard 104 and then we've got a 104 in a 1.27 millimeter pitch there's a 104 in a kf 2510 which is one of those little headers with the keyed things on it you plug in 104p for pins 104s for socket so they aren't all i don't have exactly the same thing in each of these it partly depends on what i've needed over time uh so there is no uh like with this one the kf 2510 that is the little keyed socket which is in a little pin header which is in 104. i don't have a one by six version of that although it's a actually you can see there's a one by two version a one by three version and a one by four version but i haven't created a one by six version just because i haven't used it there is a 1x6 version of that but i haven't used it um oh pancake legend thank you for that super chat i really appreciate it um like this so uh does that mean that you did that contribution to support content i think anyway um i think that i missed the comment earlier because i had that little chat thing in the background i think that's in relation to what i was saying earlier about uh supporting uh the people that create the tools that you benefit from so thanks andrew so what i've got uh so as i was setting up this library what i've tried to do is be consistent about each type of header so if i've got a one by um okay yeah your knowledge is useful for me too i have learned a few things from you uh so as i go through and set up like a one by one pin header one by two one by three one by four i try to make the same variations and name them the same in each way in each one and then down here you can see i've got two by headers so i've got two by three two by five two by six uh so i've got in the two by six variations for example there is a standard hang on what is going on two by oh two by six no let's look at two by three that's a a more interesting one because of the variations two by three so a standard two by three as a plane header then a two by three as a shrouded header so this is idc header on the board and then two by three icsp the reason i've done this is that i've got and then i csp st below the reason i did this one specifically which is actually almost the same as the standard 2x3 is that i've got a symbol in the library which is the icsp header for an arduino and it has the pins coming out with the labels on them so normally what you would do is if you are designing a project with an icsp header for an arduino you take a two by three header you stick it down in your schematic and then you look up the reference and in fact on my little rulers here let's stick that on there so i've got that ruler uh overhead my little electronics ruler 180 millimeters long it's got a bunch of useful things on it like led pin outs and examples of track sizes and ohm's law and there's an ftdi header pin out and down here you can see there's an avr icsp pin out so it's got miso vcc etc and it shows you where those signals are on the header so typically what you would do is throw down a two by three header and then look up a reference and see pin one is meant to be connected to meso and so you would then do that link but in your head you are having to do that mapping i like to try to remove any potential errors from the process so what i've done is created if i come back to my desktop view so i've created an icsp device and it has this particular pin out now where is the symbol for it icsp okay oh you can't see it in this preview but these pins have the signals already on them so pin one would already have miso on it pin 2 vcc whatever so the idea is that instead of just putting down a generic footprint into the project i put down a specific icsp header part into the project and the symbol in the schematic looks the same the footprint is mechanically the same but the nets on those pins are specifically named so when you're working in the schematic it is super obvious if you make a mistake and you don't have to think about it there is no translation of oh pin one is miso so i've got to connect to pin one it's just that is the miso pin it's got that label on it uh okay that was another squirrel [Laughter] all right so two by three here's what i was talking about so i've got two by three in plain enshrouded pin headers and in socket and once again they all have their own unique 3d models associated with them so i put down the particular variant that matches the 3d model that i want to have in the project and then everything comes out fine all right um oh james said i've been using arduino for 10 years and finally used icsp last week on a project to bootloader 328p to use the internal eight megahertz clock yep um i've got a painful clock story uh do i chase this one no there's a story i think i've told quite a long time ago about uh on one of the uh on one of the prototype boards for the ardusat payload processor module which had was it that one yes it was that one that's the one with the 17 mcus on it and i messed up the fuse settings on the main processor and i put it into a mode where it required an external clock so things like having a oh aaron wow um no you didn't need to cover shipping but thanks for that that's really generous um okay sorry i wasn't distracted by aaron thanks aaron um so i messed up with the fuse settings on the mcu and i put it into the mode so microcontrollers avr microcontrollers in particular i mean it's different for different types of microcontroller obviously but avrs have a couple of different clock modes they can either run off an internal oscillator they can run off an external crystal or they can require an external oscillator in which case you need to feed a clock signal like a square wave at the correct frequency directly into the xi pin so normally there is the xi and the xo pins that you attach the crystal to and the microcontroller itself uses the crystal as to generate the frequency but if you put it into the mode where it expects an external clock it won't excite the crystal it just sits there like a brick waiting for a square wave to come in on its xi pin and i set that as the mode and i couldn't recover it so i had a like a one-off satellite pcb prototype that i bricked because i had the wrong value in the fuse setting and i ended up having to generate a clock signal out of another mcu and then link that across and that allowed me to recover the processor and then change the few settings and i've breathed a big sigh of relief but that was one of those moments where i did it and then once i realized what i had done it was like oh my god i've killed this board and it's unrecoverable and it's like the only one of this very important prototype that's meant to be going into space but there are usually ways around things so um what it is 11 39 i've got to get onto stuff in the chat but i've done this big detour into eagle libraries and i haven't answered the original question the original question was very simple where can i get the um the super house eagle library the simple answer to that is right now you can't because i haven't put this anywhere and then i ended up detouring into this big discussion of eagle libraries and footprints so i am i'm quite happy to share my libraries where's my cursive gone there it is okay so i as i showed you before i've got that collection of libraries this is my super house connectors library and i've got other libraries like discrete parts and ics and mcu's and modules and switches and all sorts of things and i've done i've tried to i've tried to add 3d packages 3d models to as many of these parts as possible because i'm now so much in the habit of working in this mode where i'm looking at the schematic the pcb and the 3d model all at the same time on the three screens because the the physical shape the 3d model of the device ends up informing changes that i make in the schematic it's the i suppose the traditional way of doing electronics design is you start with the schematic in isolation you finish the schematic you throw it over the wall you do the pcb layout possibly with some some constraints like physical dimensions or whatever and you finish the pcb layout and then you throw it over the wall to someone who has to do the enclosure design and so they have a completed pcb and they have to design an enclosure around it so that is kind of the way electronics is generally done in you know any largest project but the really nice integration between eagle and fusion 360 in recent times has really changed my way of going about it i i find that being able to see the physical end result really early in the process even while i'm working on the schematic is very very helpful so i i try to i'll do some work in the schematic and you know rough board dimensions and things first sync it into fusion 360 and pull up the 3d view and from that point on in my development process i could be making changes in the schematic but those changes i am reasonably frequently uh sinking through to fusion 360. i it varies i might go hours or days without syncing but there will be certain times where i'm working on part of the project and i might be re-syncing with fusion like every 10 or 20 minutes because i want to see the most up-to-date 3d view of what i'm working on so it becomes much more of a cycle rather than a linear process with three distinct stages and just throwing it over the wall each time and i found that having that visibility of the end device as a physical object and being able to conceptualize it as a physical object helps with decisions that are made earlier in the process or at the earlier part of the cycle with with things like selecting switches or i mean there are the obvious things that are constrained by or interact with the physical artifact things like switches and connectors are the really obvious things but there are other things as well like the positions of leds on the board or how many like what leds you have for display purposes or whether you decide to put a little i squared c oled on it so you can get feedback and use that as another way of interacting with the device or it might be even things like how the user uses it like you might decide for example early on you might decide that you're going to put some buttons on it so you put the buttons in the schematic and then when it comes to actually representing it physically you think those buttons don't really make sense it would be much easier to interact with this device if i had a menu system with a a knob and a button so i could select menu items and then press it and being able to see the end result of how someone is going to interact with this device then informs how you go about the design process so i would like to share my eagle libraries i just haven't looked at what is involved in it i need to excuse me i need to do a little bit of reading because eagle has been under such rapid development recently and also now of course things are rolling into fusion 360. the whole game is changing in terms of how this software works and i simply don't know how to share these libraries i could probably just export them in legacy format as a dot lbr and then people could grab them but then if i update them i need some way of people getting those updates and what would be really nice would be to make this collaborative and have other people add things in here like say someone wants to someone has a fork of my library and they want to add you know the the six pin version of this keyed header so they added in here and then i pull the i merge their change back in so it would be really nice to be able to treat a parts library like a software project you know the way we have you you can take a fork of a project you can make some changes then you can do a pull request and then merge those changes back in and uh that would be super cool i just don't know it's possible uh uh okay there i just saw some interesting questions in there but i need to get back to looking at the chat so are they um the questions ah look at this i'm at 11 46 and my list of um questions is way off the page off the screen what can i say okay um all right so oh there was a question um which is have any freetronix customers let me know of some of the more interesting etherno or ether10 uses um well there was one ether10 use that i came across this was a couple of years ago now which was so the ether 10 is a little arduino uno compatible board with onboard ethernet and power over ethernet and this particular use was you know chook shed or in multiple chook sheds in queens i think it was in queensland and on in these particular truck sheds so this is on a truck farm you know this this is not someone's backyard with six trucks this is like where they have sheds of tens of thousands of chooks and they had um a big ventilation system so they've got some blowers that move air through the shed and the blowers are enormous they're the sort of you know sort of fan you see on a sci-fi show where um the fan itself might be three or four meters across and they have multiple of these fans at the end of the shed and they they move air through it and they also need to monitor environmental conditions so they want to make sure that the temperature is good you know nothing is that the chokes are in a in a good environment so what this particular customer did was uh so this customer was running a chuck farm and they've bought a number of dot matrix displays which are the display panels that um they've got 32 by 16 leds and you can penalize them together to make enormous display boards and they mounted some of those dot matrix display panels and an 10 on the wall up the end of the shed and it was taking environmental data and displaying it up on this huge illuminated panel so you could see the panel from you know miles away and see the temperature in the shed and make sure everything was going fine and that was running with power over ethernet and getting data updates from sensors over the ethernet connection so that was kind of an interesting application for an etherton i mean there are many others i've got customers that buy them and build them into commercial products and which i can't mention um i've sent ether tens to many many places including the australian oh what's it called there's a place in south australia where i think it's part of the defense signals directorate where they do development of um of interesting stuff in relation to the army that i okay let's not get into that um okay oh this is an interesting point uh both sion and johnny bergdahl said this that i don't need to share the libraries all the components are copied into the design files and you can export any component from those that is true if you if you grab one of my projects off github and i think pretty much everything is on github even incomplete projects then you open them in eagle you can export the parts directly out of the project because the way eagle's file format works when you add a part to a project it doesn't just make a reference back to the library it actually takes the in the complete part from the library and copies it into your project so your project is self-contained you can take the project file open an eagle you don't need the libraries installed to open the project and see everything in it but that is not great from the point of view of um [Music] of being able to collaborate on libraries it doesn't really solve that problem and so what i would really like to be able to do is make these libraries more collaborative and it also means that you only get the parts that are in that particular project so if there's a specific part that you're interested in and it's in a project you can get it that's no problem but what would be really nice is for me to be able to share these libraries and someone just download the whole library and they've got everything all the 3d models all the footprint variations everything so that's what i would like to do yeah oh okay so johnny bergdahl said um yeah i've moved the origin point to the middle of the component just to solve the pnp thing so this is showing how far behind the chat i am and uh so there was a question uh from user34638a awesome nick um saying you're talking about how tls was harder to support on the esp8266 a little bit ago can you elaborate as to why so i can give you a very general answer but this is outside of my field of expertise all right so what i'm telling you take with not just a grain of salt but like a little teaspoon of salt so doing any form of encryption on a processor is hmm i don't understand it enough to be able to explain it properly basically you need a processor that has a few attributes um and you need access to certain things to do for crypto you generally need access to randomness is one thing and that is harder than it sounds uh you need a processor that is fast enough to be able to do some kind of gnarly maths and it needs to be able to do it quickly enough that um that it can that it can not take too long to respond to things so it needs to be able to do things in relation to prime numbers and it needs to work hard basically so you can sometimes offload crypto to co-processors but in a little embedded project normally the crypto is done in the main processor and so if it is not capable of of running the algorithms that are used for the things like the encryption and decryption etc then you just can't implement it in a low end processor i'm it is so long since i've done crypto stuff that i'm going to be talking absolutely rubbish so i'm not going to go into that in much more detail there are people way smarter than me that work on that and do know what they're talking about um super house eagle library oh okay so pancake legend said in keycard i often use the user drawings layer to draw additional reference lines typically on a grid yeah that could be a handy thing there's a there are different layers in eagle as well that could be used for that purpose so there are some interesting tricks sometime it would there are a number of tricks in relation to drawing things like footprints and getting spaces on pins i am so tempted to detour into this and chase this squirrel right now uh all right let's do it nothing like a a squirrel hole at the last moment alright so let's switch back to desktop and i haven't planned this at all so i'm going to have to think about how i do this demo without messing up this library all right let's say i have got i've got a pin with an even number hmm how do we do this all right i'm going to just screw around with a footprint let's take an existing footprint and duplicate it and i'm gonna just call this temp and edit it what happened there i have no idea 106 temp i wonder if eagle is going to bomb out on me now all right so we've got this footprint hang on i need to move it so you can see the menu for the grid so one little oh maybe this would work better if i did this demo on a pcb yeah let's see if i can figure this out in here all right so grid let's switch it to millimeters and i'm just going to make it a one millimeter grid now if you have a part like let's move this part over here remove this oops come on give me the what is oh the tool mode switched let's get rid of that window yeah the tool mode no that i want that part over there all right so one this is a it's a kind of trivial trick and but i find that this is a trick that is useful in different situations and that is changing the grid to suit where you're wanting to position things so say we've got let's put this at x position zero so this is now you can see all sorts of rendering artifacts on here that's weird so this pad is now at position zero relative to the origin it's pushed up a bit in the y axis but that doesn't matter so let's say i'll move that down there let's say we wanted to [Music] put this on an offset where you can see that i've got a one millimeter grid if i zoom in you can see that this part because this is a 0.1 inch pitch pad is i'm going over this in my head this is a really bad demo i should be demoing this on a pcb because that's where things are much more useful um [Music] there's a particular technique that i'm trying to demonstrate but putting it into a concise way of showing why it's useful it's not that easy all right we've got a no i'm going to give up on that i'm going to think about this and do this as a better demo some other time i'm going to close that without saving it save no and i'm going to close so the library i've closed and i haven't saved it all right i'll get back to that um all right in that case since i'm bailing on that let's get back to the questions um yeah there was a question from sam gallon saying is there any way to use esp by ethernet since i want to have advantage of tasmota firmware and being on wired network now there are two different parts to that the first part is any way to use esp with ethernet yes and there is a particular project that is worth looking at which is the west 32w esp32 and let me see if i can find a url for that west32 this is a cool project uh west32.com oh there it is okay so i it is the most obvious url ever i'm just going to stick this in the chat and the so west 32 is an esp32 board with um power over ether it's got hard wired ethernet and power over ethernet support so if you look at that project it'll give you some really cool ideas for things you can do with that however there is a second part to your question so the first part is yes you can do hardwired ethernet with esp32 the second part was oh actually you might have been talking about esp8266 sorry i i miss i didn't look at that part of the question so the next thing is tasmota firmware and being on a wired network i don't think tasmota supports ah i wonder if this is an issue no um so tasmota will not support wired ethernet that's the fundamental issue i'm pretty sure it doesn't anyway tasmota will run on an esp8266 or a285 which is the same core with wi-fi and that's really what it's focused around now as as my friend andy pointed out to me last week there is an initiative to make tasmota run on esp32 so uh you can get tasmato on esp32 i believe now it does run but i think it's unlikely at this stage that tasmota will support the hard-wired ethernet driver given that the sp32 can do so much more i wouldn't be surprised if at some point the tasmota branch for the esp32 does support wired ethernet but at the moment there are very few boards that are esp32 with wide ethernet and there is also the focus of tasmota is very much on the esp8266 which means that there is very limited flash and it's a less powerful processor with less memory etc so anything like adding a driver for a device that is a real uh unusual situation it won't end up in the standard taz motor release you would need to like do a custom build is my guess so there is no easy answer to solving that problem it falls into the category of you could probably get tasmota running on an esp32 with hardwired ethernet and add in the hardwired ethernet driver support yourself but you're not going to be able to just download it install it and have it work it'll take a bit more work than that okay oh adam said during your lab tour you didn't show us your network closet can you do that on a future stream yeah sure uh yeah so i've got i've shown those on videos in the past but not for a long time they haven't changed all that much but yeah i could grab the portable camera and go and show you through i've i won't go into that right now short answer is yes we'll get back to that and not to follow up from that was also would be great to have a live stream topic covering what you do what you would do with your home automation system if you were to start from scratch yeah that is a really good topic and that is the sort of thing that has come up on the discord not all that long ago and the reason it's come up is that there are a number of people that are in that situation they might be doing a new build i think this was all prompted by someone coming along to the discord and saying i'm building a house what should i do and there are a whole bunch of suggestions and there is a there is a page uh where is it on there is a specific topic on the forum the super house forum i'm just going to see if i can find it now hopefully without taking a huge amount of time oh here we go building a new house post your super house automation ideas i'm going to copy i'm going to stick this into the chat and this is the the forum thread that's been going on since june and it has quite a few posts in it which is people talking about planning ahead and if you're building a home automation system from scratch what things should you do oh hang on i think i just gave you the link i gave you was actually down in the thread a bit you need to go back up to the start of the thread in fact i'm going to i'm going to redo that i'm going to put in that same url here we go that is the the thread with ideas and so this is not directly answering the question of what i would do differently but yeah this is i think that's a really good topic for a future live stream if i was starting from scratch what would i do so following up from that esp32 magic blue smoke said as of now esp32 does work on ethernet with tasmota as of 10 days ago on the documentation on a specific board whoa that's cool very interesting uh i what i don't see in the immediate future are budget manufacturers switching devices they currently make with an esp8266 over to esp32 i think esp8266 is going to continue for some time on sonoff class devices where a manufacturer is trying to make it as cheaply as possible they want wi-fi connectivity i don't really care that much about security to be honest like they just want a cheap wi-fi connection for their device and they don't want to pay they don't want to pay 10 cents more for another chip like an esp32 they will just keep using esp8266 but what will be really interesting is people who are building their own devices like for me personally for example if i've got a choice between using an esp8266 and an esp32 i'd rather put in the esp32 because uh for my personal projects maybe the chip costs a little bit more but it can just do so much more it opens up you know you can run micropython and you can do all sorts of really cool stuff on it and it is so much more capable than the esp8266 that for me for my projects i would rather go for an esp32 it's just a better chip and the diff the small difference in price doesn't bother me at all it's totally worth it for the benefits and so what's going to be interesting now i'm going to have to check this out thanks magic blue smoke for pointing that out what's going to be interesting is seeing people building projects where they use an esp32 and run tasmota on it it's going to open up some possibilities it has motor on esp8266 now and in fact for a long time has been at the point where there is no way to compile it with all of the options it's just in the resulting program there is no way it's going to fit into a typical esp8266 sort of device and the other thing is you have to allow for the fact that a lot of those devices are using the esp8285 which is the a266 core but with one mega so one mega bit one megabyte i can't remember of built-in flash it doesn't have an external flash chip i think it's one megabit which is which is actually a very small amount of memory and so you cannot compile test motor with a bunch of options turned on and then still install it on a device you have to be selective about what options are enabled and then compile one to suit your particular target and a whole lot of the tasmota project over the last year or two has been about the process of building all of these different binaries for different purposes and collecting things together like do you include a driver for a display when it takes up memory and most target devices don't have a display on them you know those sorts of decisions but with esp32 it opens up the possibility that you can have a whole lot more stuff running on it cool um okay so there was a a question from aaron and this funny thing is that this question is something i was thinking last night for a project that i'm going to get back to off topic question are you aware of a similar board to a pi zero w with a little more power and memory etc same small slim form factor looking to use it to run a letterbox 15x3 touchscreen panel and want to run a headless chromium browser on it ideally one bluetooth and wi-fi and possible usb-c to power the board and screen alrighty so the the reason i was looking into this just last night and i don't have a um i don't have a great answer there are things like the orange pi zero w the problem i've had with alternatives to raspberry pi is that so many of them use things like uh the well there are variants that run different all winner uh chip sets and so they have very specific software stacks that you can run on them and they what you do by switching to this i'm making a big generalization here this is nothing not always the case but what do you often do in switching to a board if you're used to something like the raspberry pi ecosystem and all of the code that you can run on it and devices that you can plug into it like hats and peripherals and being able to plug in a usb on the go [Music] thing or plugging in an external usb ethernet adapter or whatever or a camera you switch to another board like that looks very similar and it has similar connectors on it but it uses a different uh chipset like a one a different version or winner chip or something all of a sudden all of the things that you are comfortable with and accustomed to just don't work and you have to use a different a very different software environment and it can just be really uh disconcerting now that's not necessarily that those uh i'm not saying in any way that those are bad devices or bad chipsets or whatever it's just that if you are really comfortable in a certain environment and you've been working in it for a long time and then you switch over to a different environment there is going to be a period where you have to get your head around different ways of doing things or things that were working on this environment don't work in this environment or you do things in a different way you can solve the same problems but you have to solve them in a different way and there are a couple of times where i've used things like orange pie as an alternative to a raspberry pi and then i've tried to do something and discovered that no it just doesn't it's different on orange pie so there are these little speed humps you get have to get past so what i the project i've been working on that i've been looking into this for is building my own wi-fi access points specifically for iot devices this is a really it's not just a squirrel it's like a whole clan of squirrels so i'm not going to chase this right now this is a whole big thing that i'm going to cover in the future i have been for quite a long time now in fact for i think about a year experimenting with my own access points which are raspberry pi's and they are running they're doing a little trick uh called personal appreciated keys so the problem with iot devices like a song off this this actually ties back to what we're talking about earlier a sonoff running tasmota has it can't support enterprise authentication so if you have a typical wi-fi network you have an ssid and you have a password and yeah so someone comes over to your house and they say what's your wi-fi and you tell them you know the the ssid to connect to and the password it's the same password you use now i'm ignoring guest networks and all of that sort of thing for now but just think about it on a wi-fi network every device connected to that wi-fi network has the same password and that could be a problem if a device is compromised maybe whoever has compromised that device now has the password for your wi-fi network if you want to change the password on your wi-fi network think of all of the devices you have that are logging into it you have to go around and change that password on all of those devices the the whole thing of a single shared password for a wi-fi network is horrible and painful what you really should be able to do is issue it's like creating users or if you want to give a device access to your network you should be able to generate a password for it and it goes into that device and it's the only device using that password and at the enterprise level so say you're running an office imagine you've got a a small office and you've got 20 or 30 staff in it and you've got wi-fi and one of your staff members leaves now they know the wi-fi password it's not a simple matter to just say oh we changed the password and have everybody change their devices it would be really annoying i mean you can do that sort of thing in an office of 20 or 30 people but imagine you were running a company and you had a thousand people and you've got a wi-fi password change wi-fi password that'd be chaos so the way that's done at the enterprise level is using a different authentication scheme um now i'm over time so i'm not going to go into this in great detail but this this stuff is really interesting and i am going to go into this in detail later so what is done in that situation is that you create profiles for different users and this is what's typically done in places like universities and large companies anywhere that you have a large number of users that are trying to connect to the network so what you do is you create a profile and typically they're tied back to an authentication server which might be something like a radius server and so the radius server is maintains a list of all of the users and their passwords and it's a challenge response system so a device wants to connect to the network and it says hey i'm here and this is my username and this is my password i mean i'm dramatically simplifying things here there are there's handshaking and keys and all sorts of stuff going on but what happens is that the the device presents itself and says this is my password and the that goes to the radius server and the radio server looks it up and says yes you are an authorized user and you sent me the correct password so i'm going to send back a token and to the access point and the access point now says yes you're allowed to connect and you're on the wi-fi the problem is that all of those sorts of schemes you can't implement in an esp8266 for the reasons that were you know we were talking about earlier in the live stream it doesn't support the encryption necessary it just doesn't have the processing power the memory it doesn't have you know all the attributes necessary to do the proper crypto to support enterprise level encryption or enterprise level authentication on a wi-fi network so getting back to this whole thing about building my own access points this is the reason that i've been doing it what i what i've got running on my little homebrew access points is an authentication system which uses uh what's called personal pre-shared keys um it has different name people call it different things because it's not it's not an actual standard it's just you know it's a trick basically it's like a it's a party trick so what happens is when uh with this trick you don't run enterprise authentication you run the standard wpa style authentication which we're all familiar with that's the standard of ssid and password but what you do is instead of having a single password for the for all devices on your network what you do is in your authentication system you have a list of mac addresses and passwords so when a device connects to a network and says hey i'm here i am a sonoff i'm running tasmota and the network knows the mac address of the device and here is my password it looks up its list and says this mac address has this password yes i will let you on and it then lets the device join the wi-fi network so the end result is that you can run low-end devices like sonoffs that can't support enterprise authentication while still having unique passwords for every device and it means that you can create a profile for the device and then give it the unique password it connects to your wi-fi network and no other device knows its password that's the the brief summary anyway i've got all of that running and uh what i've been using for that is just regular raspberry pi 3s three i've got it running on a 3b plus that was on the bench over there and another i think an older raspberry pi 3. so what i've just been looking at is now turning that into a proper project and doing a video about it and releasing it and documenting it and all of that sort of thing and um what i've been just thinking about recently is making these little homebrew access points aesthetically nice and also convenient so i've been thinking about 3d printing and enclosure and of course because i've got unified gear through my house i've been inspired by the aesthetics of how unifi is done so i've been thinking about making an enclosure that i want to be able to 3d print and have a bracket that you attach to the ceiling and then an enclosure maybe a circular one like a unified access point i don't know a little bit like a smoke detector that you can put into the so you have ethernet coming through for the backhaul plug it into your device and you clip the enclosure on twist it and it latches into place so you have a little thing that's like a little ufo stuck to the ceiling and that is your access point and inside that is a raspberry pi type device that is acting as one of these little access points that's running the personal appreciated keys magic trick and then you can install a few of them around your house and run and a wi-fi network just for your iot devices while maintaining a higher level of authentication security than in a typical wi-fi network without needing to support enterprise authentication so anyway future project but well current project future in terms of releasing it and that is what i've been thinking about recently so just last night i was asking myself almost that exact same question what is the what board is similar to a raspberry pi zero w but with a little more power and memory and the slim form factor and in my case i need ethernet as well but what i'm possibly going to do is make a carrier board that the uh the the little pi or whatever we'll plug into which will have ethernet on it so i could use what i've been planning to do is do this using a pi zero w with external ethernet and i'll make up a pcb with like some vertical mount rj45 sockets so that i'm waving my hands around what's an example i can use i can't really see one so imagine this is the device it's like a shape of a little ufo and i want to be able to attach it to the ceiling have the cable come out of the ceiling with the ethernet plug on it and plug it into the back and then put it into the bracket and clip it in place so i have like some vertical mount i have a vertical mount ethernet socket on it have some leds so that it can show status just like a unified gateway and um yeah so i don't have an answer at the moment i have just been looking at it but hopefully i will have an answer soon so the orange pi zero w does look interesting uh and there are a couple of others but i don't really have a an outcome of that right now i haven't looked at a whole bunch of options and said yes that is the one i want to use but that was a very good question which i have now totally failed to answer um all right so i'm all right two things to wrap up both of these will be quick answers i promise i promise uh james o'gilman said okay i have to ask did you ever run blink on rgsat while it was in orbit the short answer is no because i did not have direct control over the operation of the satellites once they were once they were on orbit so i did the development of the hardware and uh but the i didn't have access to the management console to be able to do software updates once they were actually deployed but that would be funny um and there was there where is this i'm going to find this um was it fitsat i think it was fitsat1 there was a um there was a satellite that was put up by a footworker institute of technology which was a blinking led in space uh this is actually kind of cool i'm going to find this i think it was called fits that one this was a long time ago now ah yes here we go so this was deployed in october 2012 and i have a feeling that this may have actually i know was it i don't remember i think this one might have been deployed it was deployed from the iss but possibly a little bit before uh here we go um tickets at f1 okay i'm going to drop a another link in the chat this is a link to the wikipedia page of fits at one which this sort of thing just blows my mind it's a cubesat satellite which uses magnets so that it orients itself on the earth's magnetic field so that it's always in the same orientation with the same face facing earth and they put leds all over that face and they just made it blink so the idea was that the satellite would be traveling through the sky and blinking out messages in morse code as it traveled and you could just look up and see the blinking leds on the satellite so i mean there's more to it than that but that is the um uh that is the outcome i i love that project so much blinking led in space so um frank mcallendin said any progress on your lighting switch controller no sorry i've been distracted by a number of things one is i've been doing a lot of contracting work over the last month in particular contracting has just gone crazy which has stopped me from working on a lot of things and the time that i have had to work on other projects i've been doing things like finishing off the ether uno the problem is i have got so many projects in parallel at different stages of development that i want to be able to get some of them to the point where i can say that is done and wipe it off my list so the ether uno was becoming kind of time critical because of drawing up supplies of the wiznet w5100 and i need to be able to keep producing an ether10 equivalent board so that ether uno is the replacement for that but that now we've it's working it's all doing what it should so that'll go into production which means that one is off my plate i do want to do the ether bear which is the same thing but with the w6100 for ipv6 support and an atmega1284p processor for memory um but the light switch controller is something that i really really want to get back to that's a for me personally that's an important one right now though no other progress to report unfortunately the very last thing so um diy in the ghetto said is it possible to do home automation without using something like mqtt just curious yes it is you don't need to use mqtt there are many many many home automation systems that don't use it particularly home automation systems that are kind of like a monoculture so if you have a whole lot of devices that all come from the same manufacturer and they are designed to be integrated then um then a platform like mqtt has less value but the real killer of mqtt the huge benefit of it is that it gives you the ability to integrate devices that weren't designed to work together specifically mqtt i'm is to think of an analogy it's like um imagine all right think of it as languages imagine you had you had to organize a meeting between a bunch of people and every single person spoke a different language there was no common language between them you could do that but it would be hard if you have the meeting and everybody speaks the same language it's easy you can communicate easily so um what mqtt gives you is the ability to communicate in a common way across devices and link them up in different ways so [Music] if for example you wanted to just drop a bunch of money and install a clips or c bus system in your house then you don't need an mqtt broker because the system is integrated all of the devices are designed to talk to each other they come from the same manufacturer but if you want to build a home automation system which is much more diy and you have some sonoffs and you have some hue light globes and some lifx light globes and you have some other smart switches and you've got some zigbee temperature sensors and you know whatever you've got a whole mix of different things that is where a messaging system like mqtt just makes i was going to say makes everything easy but it doesn't make it easy what it gives you is that common language that you can make all of those devices communicate through and so short answer is yes you can build a home automation system without using something like mqtt and i should point out that there are other messaging systems i talk about mqtt all the time it's what i use it's in terms of like diy iot space it's pretty much dominant but it's not the only messaging system there are others things like rabbitmq and so there are different messaging and queuing systems uh [Music] but i for me i wouldn't even bother looking at anything else at the moment mqtt is where it's at it's what everything that i care about talks if you're building a different system maybe you would choose a different messaging platform but um that's the one i'm using um oh james thanks for that super chat uh yeah so i really appreciate that and thank you for hanging out with me so there are a whole bunch more things that i could um uh that i could talk about oh okay there are just there are a couple of things in here that i will just clarify in relation to my personal appreciate keys thing so jeff miller said uh you don't use a radio server to give all clients individual passwords as a question so i think that might be might have been a question to someone else and um stephen w said you can potentially use radius but that's likely too complicated for an iot application so [Music] unify okay i'm not going to get into that too much radius itself does not solve the problem the radius acts as an authentication server where in fact you can use radius for all all sorts of different things uh it is really just a it's a way of sending a query saying here is a user and a password is this authorized and you get back a result and some other data potentially about you know what services they're allowed to use etc but let's ignore that for now basically it's just a way of saying is this password good or bad and if it's good then you let them on if it's bad you don't that part of it is not the problem radius you know you can set up and you can run free radius there are open source radius implementations that's not a really big deal the issue is more what you do at the access point so the access point itself needs to be set up in such a way that it receives the connection request from a wi-fi device and then it knows to go and ask the question so how the little bit of magic basically is in the software that is providing the access point and doing more than just comparing the password that it's given against a single known password it has to know to go and look up using the mac address and the presented password against some external reference so that's that's where the little tricky is in the configuration anyway i will go into all of that in a lot more detail in the future but for now i'm out to two and a half hours so i've got to call on into this so thank you very much for coming and hanging out with me on a sunday uh it has been cool i didn't know what i would talk about today but once again they're always turnout turns out to be more than i expect so uh i will see you all later have a great sunday afternoon if that's what it is for you and uh i will see you hopefully on discord or somewhere talk to you later bye you
Info
Channel: SuperHouseTV
Views: 10,609
Rating: 4.8167939 out of 5
Keywords:
Id: wsZkAGzSsBo
Channel Id: undefined
Length: 156min 10sec (9370 seconds)
Published: Sat Oct 03 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.