Home Automation Hangout 2021-12-12: New 32-port I/O board and Rack32 firmware

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] do [Music] [Music] do [Music] do [Music] good morning everybody thanks for coming along good morning peter sion yes good mook moo to see on and oh there are lots of people i'm not going to go back and say hello to everybody uh all right i did notice there were a couple of comments oh and also i should before i get into this i almost forgot 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 so uh the there are a couple of comments back there in relation to the uh that 32 port i o board yes it's a lot of soldering and yes i need a bigger ultrasonic cleaner we'll get to that and i see that chip is out uh at the racetrack today at um so is the event today at the ballarat light car club so it's a motocross event sounds like a lot of fun okay uh where are we where are we costas good morning from greece yeah so because i started two minutes late peter has now just given me the warning 118 minutes i've already burned two minutes of my allocated 120 before he becomes the lunch police and starts telling me to get in cable tie you're in wartook ah yes look it up yeah i know where wartock is but i bet a lot of people don't so um uh okay where am i what am i doing what are we doing this morning i have no idea uh i did have a plan i did have a plan i've actually got a few things to talk about today and i don't know if we'll get to them all we probably won't we probably won't even get through the first thing now i was actually just thinking last week i was talking about the paving and things that we were doing outside so i was just thinking i'm just on my phone i'm going to pull up droid cam so we can go all mobile again because yesterday we moved some hang on here we go where am i i've got to switch my stream before i get into other things we'll go for a little walk out the back and see an update portable camera is this working audio is coming through but no we are not getting oh yes we do we are we are we have the portable camera uh i'm going to try walking slowly once again so i don't make you see sick so going past monitor city and the pick and place machine and let's go for a little walk out this way head out the back door oh it's like casey hand cam uh out the back door because yesterday we moved another uh three cubic meters of crushed rock which was once again a whole lot of wheelbarrows so the uh the area here has now been compacted so there was a um so peter our gardener landscaper came in yesterday and he used one of those vibrating things that packs down the rock and at the first layer it was all compacted and then we brought around another three cubic meters of crushed rock we were buried it around the back of the house and lay that down and then that was all compacted so we've got a really solid bed there now next thing to do is there's going to be some sand that will go over that for the final level and then the paving will be late but i put a few pavers down yesterday because we're looking at the the pattern and uh just down hang on just down there somewhere you can see a little bit of conduit coming out of the ground there's a draw lead and there's able coming out of it and that goes down under the crushed rock into the ground all the way across and it comes up under the house there and then it's uh yeah subtle clamped to the frame you can't really see that it's it's way down and way underneath anyway we won't get back into that topic today i've got those lights on order the ones i think it was austin who recommended them and so what we've been trying to figure out is the pattern for the paving this these are bluestone uh like a bluestone concrete hybrid paver they've got it's crushed bluestone set in cement and then polished like all cut flat so they're really really heavy and very cool so they're square i think about 400 i think they're 400 millimeter square so we've been looking at whether we should align them this way with the the pattern coming out perpendicular to the house or whether they should be diagonal and it's a little bit hard to tell from this pattern and also we've got the shadow of the tree over it but uh i think we need to i need to put some more out there to get a better idea of how this pattern works but i actually really like the diagonal pattern it looks quite cool when you're standing at the right angle so there would be a whole lot of triangles to cut lots and lots of cuts if we do it that way versus if we do it that way so originally i liked this pattern and i thought the straight one was kind of boring but now i really like the look of the straight one and this is all going to have red brick edging all the way around it as well so it'll be red brick edge and then blue stone paving in the middle and then there'll be some edging around the tree garden bed thing there with the lights concealed down there shining up into the tree anyway a little bit of a status report so that was about a month's worth of exercise that i got yesterday moving crushed gravel crushed rock all right back into here ah all my yamaha feeders are still sitting here waiting to get into the factory so i can set up the pick and place machine and the lab is a mess i hate working in it when it's when it's all messy like this my brain doesn't handle it at all so when when things like this happen and the central bench is all just stuff piled up on it and things shoved aside you know that it hasn't been a good time i've been frantic trying to get stuff done and that gets out of control and disorganized like this these bags are all parts related to the rockling which is the fpga board for with the theremin front end on it i've got to assemble a heap more of those there's some stuff here this is for a pcb conveyor project that i'm working on anyway more about that another time and hello steve okay back down to here and back to front camera i'll get out of droid cam ah where are we ah cable tie says i stopped mid bike for an ice cream i just looked at the chat and that was randomly the thing i saw thanks for making me want ice cream yes motion sickness alert ah right hmm yeah ceon says i like the diagonal you can look at them from different angles and that's less jarring yeah before we did the [Music] um yeah up and before yesterday in between yesterday and when the first lot went on i laid down a really big area of the diagonal and i'm just wondering if i can show it to you through the cctv camera ah i could but i won't um and i only lay the diagonal and i did a bigger area than that it was only yesterday after the rock was compacted that i ended up laying out the straight version and the diagonal version so the diagonal version that's there now is smaller than it was before and when it was bigger with more of the pavers it seemed more cohesive you need more of it to get a sense of the pattern because it's more visually confusing and it looks cool from different angles so from one angle you get the straight lines running along it and from the other angle you get like the staircase effect anyway all right chip you're back so you caught up all right jax texas herringbone so the these pavers are square so i was joking about doing a herringbone or if we if we just laid them all side by side in a a grid then we could just tell everybody that it's herringbone every second one is rotated 90 degrees and you just can't tell but with square pavers it actually limits you a fair bit in terms of what you can do and it can't be just unless it's on a concrete base which is this is not going to be it's crushed rock and then sand and then the pavers on it if it's on concrete you can do whatever pattern you like without worrying about the structure of it but for going on to sand we can't have the i'm leaving my hands around like it it helps explain or nothing we can't have the joints all aligned they need to be overlapped halfway so that if someone steps right at the point of a joint what they're not getting is four corners they're getting two corners and one long edge and that's the the strongest way to do it in terms of making sure that it's not going to subside or any of things are going to um yep oh jack stack said you're cutting them anyway yeah we i could cut them into rectangles but that would end up being a waste and the thing is that i bought those papers secondhand which means i can't get more it was someone adding warren diet that was ripping up a pool lining area like they had a swimming pool and they pulled up all of the existing paving and they sold it on i don't know where i can't even remember i think it was gumtree or facebook marketplace or something so we bought all of those pavers and we've got piles of them in our driveway it's enough to do that area plus some area out the front we're going to have a landing at the front door as well but if i cut them all into a rectangle to give them like the side ratio of a brick or whatever we would lose it and i can't just go out and buy more of the same if i run out that's it i'm screwed so all right what was i going to talk about i was going to talk about this thing the 32 port version of the light switch i o board and we're going to look at some firmware in relation to that as well now um oh dodgy says i kind of like the diagonal something a little different yeah and toby says you could even do a border or some lines through it of a different material so um yeah so that's a couple of votes for diagonal now it's got to be said that this is not a democracy and i do not get to make the final decision either but yes i kind of i quite like the diagonal but the the um the straight alignment is really growing on me all right so i'm slightly off camera here because i'm just fiddling around with some stuff on the bench where i've got a rack 32 set up and a uh [Applause] and a 24 port board which reminds me i discovered a mistake let's go to an overhead view so this is the 24 port board which goes into the rack mount and previously this was the largest version do i have any others here i thought i had a couple of others lying here on the bench but it seems like i don't so i've got 8 port 16 port and 24 port versions of this same board and now i have a 32 port version of that board so this is using every single possible ip address not like the address every single possible i squared c address on the mcp23017 so we've got eight of them here and you can see little resistor networks on here so that's a now that i've done the 32 port version i am so glad that i switched to resistor networks from individual resistors those previous versions of this board had for each one of these parts there were four resistors so there were 16 resistors on each side of each of the chips and that's a lot of placements going to resistor networks combines each set of four resistors into a single part in fact if i had an eight-way resistor network that would make that even neater maybe i should investigate that i should find some eight-way resistor networks all right so and yes it is a little bit silly having the i squared c address headers on this board because we're using them all anyway it's not a not as if you can change the addresses on the board with the smaller ones it makes sense particularly with the 8-way boards because you might want to daisy chain them which means you need to be able to configure the i squared c addresses by changing the jumpers but as i've explained previously the reason that i have the jumpers on the full size board even though it doesn't actually need them i should just i could just hard code the addresses on these is because what i do is i have this board laid out in eagle and then to make the smaller versions all i do is oh and each of these blocks is one sheet in eagle so there is a sheet in the schematic which has two of the mcps and all of the associated parts and these and the connector so that is one logical block that is without the inside part that is one logical block etc so what i can do is it means that instead of having to maintain four different projects in eagle i only maintain one project i maintain the one the full size one which now is this one with 32 ports and if i need to do bug fixes like say i decided to change the capacitors or you know whatever or i decided to go to eight-way resistor networks instead of four-way what i do is edit that in the full-size project and then i regenerate the shorter versions in the schematic i just delete the sheet for that section and then in the pcb all i do is do a region select on this end of the pcb i set my grid to 70 millimeters i snap it left by 70 millimeters and i'm done i then have the pcb layout done for the short version and then i delete it snap it left and i've got the pcb layout done for the 16 port version so if i make a change in the large version i can then regenerate the 24 16 and 8 port versions in only a few minutes i don't have to go and apply the same changes to every single one of them so yeah so the result is that on the 32 port version i have to allow for these addresses these address headers because i need them on the shorter versions now there are a couple of things that i could do about that and i've been debating one thing is i've been debating changing these to dip switches instead of pin headers and i even bought a heap of dip switches i'm going to go for a little walk into my parts library where is it switches dip three paws here we go i bought a bunch of these with the intention of um of possibly changing this over to use dip switches so yeah this is part of my um my part storage thing i've got digikey and lcsc barcodes on there and i've got a barcode scanner so if i want to order more i just go to the digikey site and zap that with a barcode scanner and it pulls up the correct page for me so these are three-way dip switches and what i could do is put a three-way dip switch at each of these locations and this is the other thing i was thinking about i could put um okay hang on i'm gonna have to draw some diagrams for this because it's gonna be a little bit hard to explain by just waving my hands around now this is a possible layout tweak where's a pen right here in the pen drawer that's where the pens are because that's the logical place for them all right so imagine we've got this dip switch or this way no no let's do it this way so we've got a dip switch i'm going to make it large and it's a three-way dip switch and we've got pads and holes like this and then we're going to have what do we have i'm just thinking about how this circuit works it's got pull up resistors i won't bother with the pull ups just imagine that which way around does it go no it's got pull downs i can't remember it doesn't matter anyway what i could do is if this is the footprint for the dip switch you can see it's got the three pins on here three pins top three pins bottom goes in like this when you flick one of these switches to the on position it shorts between those two pins so it's three independent single switches but you can also see that there is actually a lot of space under here and it looks a little bit small on on the camera here but this is heaps of width what i could do is put resistor footprints underneath this switch so it would end up like this so imagine that this is copper where i filled it in because what this would allow is on the 30 on the smaller versions like on the 8 16 and 24 port versions i could then populate that location on the pcb so this spot right here i could populate it with a dip switch and then it could be selectable but on the 32 port version with the exact same footprint on the pcb what i could do is leave the switch off and populate that with a zero ohm surface mount resistor and it would effectively be the same thing as if that switch was closed if it was in that position and and closed so then what i could do in the pick and place job is just specify the the binary values for the address pins and populate the ones that i want turned on and don't populate the ones that i want turned off so if that was a 0 a1 a2 which have binary well they have decimal values of one two and four and i wanted this to be address i don't know address five what i could do is populate a resistor there and there leave this one open and that then becomes address five uh i can't remember what the base address is of the mcp but anyway you get the idea so the point is that what i'd be deal i'd be doing is i could have a consistent pcb layout and have dip switches on the smaller boards and have populated 0 ohm resistors or it wouldn't even have to be 0 ohm it could be you know 1k or something just some low value in fact i don't even have 0 ohm resistors populated in a pick and place machine so what i would probably do is just populate them with whatever is the smallest value that i have loaded which is like maybe 220 ohms i've got 120 ohms i think i've got 120 ohm populated because i use those for can bus termination so uh yeah just some low value resistor it doesn't even matter you would just just be enough to overcome the bias volta the bias on the uh yeah the the other resistors that are applied to the line anyway um yeah dual foot printing that's a trick that i learned years and years ago from um sorry what ah that gonna make how many what um yeah sorry i was saying dual footprinting i know many people have done it's a trick that i learned years ago from luke weston who i think sometimes comes along to the live streams but i haven't seen him for a while all right yeah i see one says through-hole dip switches why not smd too much soldering uh yeah so surface mount dip switches would be an option the only thing is i'm a little bit paranoid about putting plastic stuff through my reflow oven because my reflow oven is crap well that's overstating it it's not crap it's um the it works okay but the temperature is not that even across the whole thing and so towards the middle of the area of the zone the um the temperature gets higher gets hotter and if i run things like plastic connectors through it they tend to discolor if they are in the middle of the of the oven if they're at the back or at the front they're okay so yeah i need a better reflow oven yes um yeah with pin headers versus solder jumpers it's not everyone would be comfortable soldering yeah so that's right austin's creations um originally these were cut track jumpers and the other place that was originally cut track jumpers was just here so this is the i squared c pull ups and at the moment i've got pin headers on here which is extra work for me because originally this was just cut track jumpers with a join on them so if you zoom in on a cut track jumper it typically looks something like this i mean the shape varies obviously but you end up with two bits of copper like this and exposed here so that you can solder onto them and they an open cut track jumper is normally like this and then you apply a solder bridge like a blob across here in order to close it but what i was doing was for the the pull-ups on here on the early versions i had closed cut track jumpers so there was actually a little track in between and the the idea with that is that you could use this normally it's closed but if you wanted to you could use a scalpel and cut that track so that it became open circuit and then if you wanted to close it again you could just solder blob across here and then if you wanted to open it again you remove the solder blob but anyway so the thing is that this is nice from a manufacturing point of view because it's zero effort what comes out on the board is just a feature of the pcb and then uh if people want to do anything with it then they've got to grab the scalpel and make the little cut or get a soldering iron and put a blob across it but i had several people in discord say hey that's a real pain i want i want pin headers on there so that i can just put jumpers on and off because i didn't want to have to be using the the knife and soldering across there they wanted it to be really simple to change the address or to take the remove the i squared c pull ups just like that just pull these off and you're done so i gave i p i caved i gave into the pressure and i put pin headers on here instead and likewise i actually i think in an early version i had maybe i didn't i can't remember i think i might have had cut track jumpers for the addresses and i had them set to defaults so on the first set it would have been three open cut track jumpers here it would have been two open and one closed here it was open closed open and if anybody wanted to change them once again the process was grabbed the knife cut the track or bridge with a bit of solder and a soldering iron and i ended up going to pin headers because it's just easier for people for the end user to change that and yes it's a lot of soldering this is the 24-port board and look at all this soldering and it's even worse with the 32 port build how many is this i don't know it's a lot of solder joints so we've got eight um was it eight eight it's a 64 128 256 plus uh 6 12 24 plus uh what have we got 6 8 so we've got 48 plus 52 plus 12 i mean i've lost track of what numbers but it's somewhere in the order of 300 soldered joints that i have to do to assemble one of these boards so 300 hand soldered through hole joints yeah that takes a while now for these connectors there's no real way around it because i don't think there is such a thing as a surface mount version of these connectors there are yeah they all come in this sort of style and i don't know that i want to run them through the oven anyway i could use surface mount pin headers on here but i'd still have to put them on there by hand so i'd still have to get them and sit them in position because the pick and place machine couldn't put them there and then be very careful putting it into the oven that nothing on here moved so yeah there are probably some tweaks that i could do in terms of the ease of manufacturing but oh i wonder if anybody has noticed a mistake there is a silk screen mistake on this board so we've got here the 32 port version which is the brand new one it just came out and let's see has anybody put the has anybody pointed out the silk screen mistake um andy just said i'm surprised i haven't included a prototyping area on the i o board yes yeah now austin's creation says yes having the pinhead as well increasing labor does increase the ability of new people to join in and use the hardware yeah and putting the pin headers on is not too bad i'll show you what i've done for that i've got some assembly jigs so this is the header jig for the 32 port version so what i did was i just got the um the regular pcb this is just a spare pcb from that same thing and then i turn it upside down so i'm looking at the bottom of the pcb and then solder the sockets onto here everywhere that the pin headers are going to go and i've got rubber feet on it so yeah i'm sure you can guess what happens next basically i just pull out some headers this is not yeah this is this is not the real thing but it's just to give you an idea there's a four-way pin header going into a three-way socket but it's all i do is i have the correct headers set this jig on here and i populate all of these and then i get the the pcb and i sit it oops upside down onto there and the headers all go into the correct place and uh yeah it just sits there and then i can just go along and solder it all and then at the end carefully peel them apart which unplugs all of the headers and then the jig is ready for the next one so yeah i often make up jigs like this it's really really common for me to you use pcbs for a project for other purposes like making assembly jigs and making test jigs like um taking a blank pcb and soldering pin head are not pin headers soldering pogo pins into it using this as a mechanical mount for the pogo pins and then doing the electrical connections onto the pogo pins so by using the same pcb as the device under test it means that you can be sure that all of the mechanical alignment is correct yeah so reusing pcbs in other ways for your projects is a kind of cool labor saving thing now has anybody pointed out that uh silk screen error yet i don't know all right uh no i haven't seen that yet i'm still waiting for the comments about the silk screen error on this board now base 14. yeah i'm working in base 14. um what am i doing what am i doing all right so where was i going well i don't know what else to say about this other than the fact that it's here and that testing it is also a real pain so this is one that i was just testing last night i've only assembled a couple of these it took me like most of a day to assemble four of these so this is the sum total so far of these that i've assembled uh two of them have been through the ultrasonic bath which comes back to austin's question austin's comment about needing a bigger ultrasonic bath yes so these two have not yet these two have not yet had rework and the bath done these other two have which is why they've got the stickers on them now and they still need to be serial numbered but they are um yes a couple of people have got the the silk screen error yes it says 24 port oh no i've got to do another revision of the pcb yeah i don't know if i can be bothered putting a sticker over that maybe i should it currently says 24 port on the bottom of that one it's actually the 32 port version so when i do the um when i do the process of starting with the full version and then cutting it down i need to move the end in each time to reduce the size of the board and i need to change the silk screen each time and i screwed up so yeah this one says it's 24 port which means it's 24 port plus bonus ports you get some bonus ports on the end uh now um what am i doing i don't know all right let's um that's right i was showing you this so this is how i test it what i do is put a a an ethernet patch lead into each pair of ports and then the test program which i can show you but it may not be that interesting maybe i'll show it to you running what the test program does is set the state of all of the pins to being inputs and then it goes to the first pin and it turns it into an output and it drives the state high or low i can't remember which way around it goes goes i've got pull-ups they've got pull-ups on them yeah so they're all high by default and then it drives one pin low and then in the in the test firmware it knows the matching pin for pin one here is whatever it is pin seven no seven yeah i think it would be seven because the ports go one two three four so the matching pin for pin one is pin seven so it then checks pin seven and sees if the state has changed and it also checks every single other pin and make sure the state has not changed so what that's doing is checking that it can drive and sense that pair of pins and that there is no solder bridge that is shorting any of the i o lines to any of the other ir lines so it's checking for short circuits and open circuits and it then does that for every single pin through the whole thing like it it goes to pin one asserts it and then checks its matching partner then it goes to pin two asserts it checks this matching partner so the test process runs through every single pin and checks it against every single other pin looking for cross connections and things and uh yeah it takes a while plugging in all of these leads and then it gives me a pass fail at the end and if it fails it tells me where it failed now let's run that so this is a rac32 that has got the test program installed on it and i'm going to yeah let's have a look at both this one is already past testing but let's have a look at both a pass and a fail what if i what am i doing here i need usb can it reach almost you can just see it plug-in usb there's no power yet because i've turned off that port on the hub and then i need a cable where will i get a cable there so i need to go from here to here so now i've got the rack 32 connected by i squared c to the i o board which has all of these big loopbacks on it i've got power coming from a bench power supply i've got 12 volts on here and that just makes sure that there is enough power to run ethernet and all of the other things which in this case we're not even using ethernet right now you can see just off the edge of the screen it's not quite plugged in i can't move that board any further across because that's the limit of the usb cable so i'll power on i'll give it 12 volts and it's now alive so you can see we've got power on the rack 32 you can see we've got power on the i o board and let's go to where's the test program do i have the test program still open uh i'm i've just switched over to arduino which is taking a while to open come on where are we open recent test test and then i'm going to show you this so this is my super dodgy test program so this is the thing that runs the the tests it's got possible addresses for all of the things it just announces itself and it runs through tests it's just a very simple thing it's just a loop inside a loop and some offsets to do checks for the matching pins and some other stuff that doesn't really matter anyway the interesting thing is if we open the serial monitor oh hang on i don't even have the usb port turned on here we go let's try this usb on and now i'm just going to you can't see this but i'm just going to press reset on the rack 32 and hope oh wrong one there we go so uh oh no it's running it's running the wrong firmware which one is that that one yeah it's not using the right firmware let's uh let's load that with the correct firmware hopefully this will work in the meantime drink i'm drinking game i drink every time there is a compiler error now what are we doing i hate to have a dodgy cable during test yes that has ah and austin says should make a 3d printed jig to hold the cables sends the retaining clip i'm going to show you some stuff in relation to that in just a moment uh right because that is a big labor thing what am i doing that's right i'm looking at this all right so we've got i'm just going to hit reset again on the rack 32 so it'll run the test scanning for devices and so it's found all eight of the mcp23r17s it's taking a while at this point because there it was running through every single possible combination of all of those pins and uh it takes a little while i think there is a short delay in the code because it gives some settle time now if i come across to here and i unplug this one i'm just going to unplug that cable which means we are now going to get a failure come back to here clear the output now the way it gives this output is not particularly useful on the failures it it kind of helps but yeah what we can see here is an error on these pin tests so and it's given me a test failed so we've got failures on all of the the pins on that particular port so target chip 3 and target pin 8 and then it's matching against chip 3 pin 12. so what it's doing is it's trying to drive chip 3 pin 8 and it's trying to read it on chip 3 pin 12 as the loopback pin and you'll see that there we've got the error on both ways so we've got you can see the match there is between pins eight and twelve and here we've got the same error on pins 12 and eight so it's once it's found an error on one of those pairs it really should only report it so ideally what it would do is suppress these errors because those errors have already been reported between these ones and it would be and also what happens is that when i get an error like this it's usually because there is something like a solder bridge on the resistor networks between two of the little pins on the resistor network and that will be let's head over to the microscope so on a resistor network it'll be something like a solder bridge where am i looking at on the board where where where there there there was an area there okay so it'll be something like a solder bridge between two of these pins on a resistor network which will then cause a failure and so then based on that information that it's given me where it says you know failure on uh chip three target pin eight i have to look at the pcb and um often i've ended up opening eagle to figure out which pin on the chip is actually that one that's failed and then i go and look at it and there's a little solar bridge but it'll be nice if this gave me some a bit more information about exactly where to look on the pcb for the failure all right uh so the um all right the labor saving thing labor saving where is the box i've got to grab the i'm gonna grab the box with all the bits in it because in here i have [Music] this which is a bundle of cables all glued together and i've just had problems with it i was trying to use this for testing yesterday let's um no not that one that one and yes it's a whole bunch of hot glue so these this is patch cables with the little connectors snapped off like the um the retention clips on the back are all snapped off so what i did was got a whole bunch of cables and i plugged them into a socket so that the alignment was all correct and then i just squirted hot glue in all around them and then waited for it to cool and then squirted more hot glue and kept doing that basically until this is like a it's a pretty solid block it it's very strong and the alignment is quite good but i've been having some problems so let's just um get rid of these all right so the time it's taken me now to undo those i mean that wasn't long but you saw it took me you know a few seconds to unclip those which is faster than putting them in the idea with this is that you just go like this and then you've got all the cables in place and when you're finished just go like that and you're done and it shouldn't matter which way around it goes so you just push it in and if i had four of those i could set this board up for testing in a few seconds instead of like a minute or two of plugging in cables so now that that is in if we go back to the desktop and i'll clear this output what we should have here is a pass but let's just see what happens uh dodgy says could he not make a pcb with those connectors on what it needs is yeah see i've got a failure there on target chip 7 which is towards the end of the board there are is it numbered from zero i think it is so if we go back to the overhead camera so there is now a failure in here that we weren't seeing before and it is because of this assembly it's some connection in here which is not working properly and maybe with a bit of wriggling or something it would then work but i just found that i have not been able to make oh it passed cool but yeah you can see the problem if that assembly is not put in and wriggled in just the right way then you get false errors and when i was doing testing yesterday it was just being really frustrating i would unplug it plug it back in and i get an error on a different pin and then you know trying to get all of the ports to pass when you're you when you've got that sort of uncertainty would be really frustrating and the last thing you want in a test environment is unpredictability of the tests and where the result of the test is not necessarily the result of the device under test it's the result of uncertainty within the test system so that's what i'm trying to in invoke ah serial one is out of view sorry so what i was trying to show [Music] yeah so it passed that time was the summary after i had got that connector and shoved it in and jiggled it around a little bit so it's a trade-off if i use the individual patch leads and plug them in then what i've found is that the leads themselves are entirely reliable so that it makes the testing it makes the result of the testing more certain because it's based on the performance of the board not the performance of the leads and things that are plugged into it so there was a suggestion i can't remember who it was was it dodgy someone said oh yes dodgy said could you not make a pcb with those connectors on so what i would need is a pcb mount version of a an 8p8c connector and i've never seen anything like that i would need that in a pcb mount version and the problem i think part of the problem might be that there is not quite enough give in the movement of the connectors here so when you're dealing with so if i just pull that whole thing out again when you're dealing with individual patch leads the patch leads can move relative to each other and the position of the pins and the things in here uh not being really dictated by anything else whereas when it's in a block like this if there is a very slight misalignment of each of these connectors one of them might be being forced into a slightly twisted position just because of the way it's mounted and then when you put it in one of these maybe having some like a bit of a marginal connection so i thought that this was going to save me a whole lot of time and labor and it turned out that it didn't so maybe with some messing around i could make a version of this that would be better but for now i think i'm just going to go with the patch leads um and also i've got to say this is a huge step up from what i was doing before so with the very early ones like the first batches of these the way i was testing this and this sounds ridiculous but this is what i was doing was i had uh i had firmware on a board it was before the rac32 i think it was running on a what was it running on an ether 10 i think or an ether mega and what it was doing was basically writing the same firmware as i used to use for my light switches and what it would do is just be watching each of the inputs and reporting to mqtt so i had a terminal open with an mqtt subscription and what i would do is get a light switch with a short patch lead plug it into the first port and i would press button one two three four while i was watching the terminal and i would see the events being published and if there was an event published then it was okay and if there was no event published then it meant that there was an open circuit and if there were two events published it meant that there was a short circuit to some adjacent channel so it was reporting two buttons being pressed when i'd only pressed one so i would sit there and go one two three four pull out the lead plug it into the next port one two three four pull out the lead plug into the next port one two three four it would take forever to test one of these boards and it was subject to human error because if i wasn't paying attention watching the terminal properly and i didn't notice that the number of publications to mqtt was correct then i could miss a fault so doing this method with that with this automated tester is so much better the only downside to it is having to plug in all of these cables and then unplug them all at the end so it's a it's about continuing to optimize the process and maybe if i can get some kind of connection onto here then yeah the alternative another way to do this would be to have pogo pins with little cup heads that go onto the bottom of each of these soldered joints but there is a problem with that as well which is that if i what that would not do is detect a failure to solder one of these joints because it would be testing directly onto the pad it would be putting the pin on here sitting over the top of the the target pin and probably making connection directly onto the solder or onto the pad here on the pcb so if for example during assembly i had screwed up and i had just forgotten to solder some of these and that happens like when you're sitting there and you're working through the this number of joints there are time things happen like you you'll be you stop to grab a drink and come back to it and then you don't notice that you've started further across and that there is a whole set of joints here that haven't even been soldered the pins are there there is solder on the pcb because it's uh it's like a hassle finish which means that the surface on the pcb is silver and it already has solder on it so at a glance you can easily miss it with a an enig board which is a gold finish it's more obvious because some of these joints will be silver where they've been soldered and some will be gold where they haven't been soldered but on a hassle finish board it is actually remarkably easy to totally overlook soldering some of these joints and that will cause a failure so testing by plugging things in means that we are testing all the way to the end point of the device we are not testing at an intermediate point and bypassing part of the device and that's a really important principle you need to be able to test the complete end-to-end signal path so what we're doing here is testing what ends up coming out of the connector not what is on the pad that the connector resolded to so yeah i could make up a test jig with uh 200 odd pogo pins which in itself would potentially be a reliability issue which makes contact to every one of these and yeah but that's not doing a proper end-to-end test of the whole board all the way out to the the perimeter or the periphery or whatever it is the external connections so now this brings us to firmware and there yeah so ben uh known as sumner boy on the on discord and moyne and i actually don't even know moyne's identity but i when i say identity moin is moin's identity in this context i don't know um moines moines name so i will just call mine and um and other people have been contributing as well so the but it's really uh some of the boy and moyne who have been driving the firmware for the rack 32 and other things for the open extensible rack system and it is so cool i've got to show you this this is this is neat what am i going to do um power turn off power there isolate usb i'm going to get this one out of the way and i'm going to put that rack 32 aside that's so this is the one for testing i'll keep that one separate and this rack 32 that i have over here uh this is one of the e versions with the ufl antenna for the external antenna connection so this one uh yeah we'll use this for our testing so let's stick in uh 12 volts coming in that's not live right now what we have here is the spi cable going to an lcd and that is a very important part of the process this is so cool uh we've got ethernet coming in so that's plugged into my network it's not live so nothing's happening right now and can i can't quite stretch hang on i'm gonna stretch it see this usb cable just on the edge of the field of view i'm going to plug that in because i want you to be able to see what's on the console there okay so let's get this into a spot that you can see it as well now what um what ben and moyne have done is really they've almost made this like uh what's the term they've made it like an appliance in terms of the way the firmware works so i'm going to just sit this in the field of view here and [Music] oh yeah so the board here i'm going to plug that into the i squared c header so now we have what we've got here is the equivalent in fact i'm going to change this i'm going to take that away and i'm going to plug in the other 32 port board uh no i'm going to show you something cool i'm going to plug in a 24-port board to start with let's start with this alright so what we have here is essentially a light switch controller we have the rack 32 with its network connection we have the status display on the for the front panel and we have a 24 port thing here that um that we can plug light switches into now i'm going to grab a light switch where are the light switches show light switches down there ah i'm going to get stuck out of the way so i can get to them things stacked on things i don't like that not that one find me a light switch not that one this one i think will do i don't know why it was in the box maybe there was something wrong with it we're about to find out okay so i've got a two button light switch here and we've got a patch lead so we can plug it in and i'll just plug it into i don't know three whatever it is it doesn't matter whichever port okay so what we have there is a complete light switch system like you would install in your house panel on the wall goes down through the wall etc back to some central location plugged into the i o board which is connected to the rack 32 and the status display now let's give ourselves some power so i've just plugged turned on 12 volts this is now powered up turn on usb we've got power on the light switch and we've got a status display on here now this is so this is what happens by default it just comes up with this i'm going to peel this cover off satisfying so what we've got here is the status display on the lcd and you can see it's dimmed down after a few seconds so it goes into like a backlight saving mode and it by default this is with no changes whatsoever no configuration changes this is the firmware out of the box exactly as it behaves you plug it in to your network you power it up it uses dhcp to find an to get an ip address and this one has been allocated address dot 237 on my network it is reporting the temperature on the board because there is an onboard sensor so it's currently saying 24.5 degrees celsius and i'm sorry that you can't read this the the text on this is very small i wonder if i could stretch the microscope no not quite so it's giving the ip address it's showing the mac address which could be useful if you're setting up static um allocations on your thing it's showing its mqtt id which is derived from the chip id yeah it's showing the temperature and you can see well you'd be having a lot of trouble seeing this but it's got ip and there's a little green light next to it which means that it has successfully been given an ip now for the mqtt it's got two little red lights which means that it has failed to connect to a broker which it will do out of the box because there's no broker configured but it is on the network and it's at 237 so oh and also you can see across the bottom see this row of boxes it has automatically detected how many ports there are attached to it in this case it's 24 ports and it is showing the status of each of those ports now if i press one of these oh you can see that it's woken up when i press the button it's com the the screen has come alive and when i press this first button once again you'll be having trouble seeing it just in there so i'm plugged into the second port across and the second port across if i press the button you can see there's a little pixel that comes on that shows the top left and if i press next one down it is the bottom left so it's showing button one and button two being pressed on that port so you've got a visual representation of what is happening with the light switches which is really cool so it shows that we're detecting it now.237 this is the funky bit check out how cool this is if we go to desktop and what you're seeing here is the console so this is where it has failed to connect to mqtt and it's telling us it's ip address let's let's just copy that up the address you don't actually even need the console you can plug this device in and from uh from the lcd you get its ip and then in your browser you just go to that ip hang on dot 23 why did it oh i didn't i didn't get the last digit and look at this all you do is you go to its ip address and it gives you this um oh i just placed across the comments jax tech said see my earlier comments the retainer clip is actually mechanically necessary in an 8p8c plug to compress the pins correctly in the jack yes that's a very good point so the shape of the pins in hand waving once again the the pins in the plug are a rectangular um a rectangular shape and then the there is a pin in the socket which is a spring and it comes in at an angle so when you insert the plug the uh the contact in the plug hits the edge of the spring in the socket and it deflects it so that the the socket is applying pressure to it and in each of those little ap8c sockets there are eight of those little spring fingers and because of the angle they're basically going to be trying to push the plug back out again so when you push the plug into the socket the little clip on the back of it latches it in place and it prevents it being pushed out so jaxtech is absolutely right in normal operation if you do not have that retention clip on the back of the plug the um it will not stay in there by itself it needs something mechanically to hold it in so perhaps if i did a version of this where i retained a clip one clip on the top and one clip on the bottom for example that might be enough that i can clip it in and have it latch and that might make it more reliable so jax tech that is a really good observation maybe it's worth going i might go to the trouble of making up another one of these and cut off three of the clips on each side just leave one clip and that way i can push it in and it will latch in place and hopefully stay in place but still be easy to remove because you can just click squeeze the tips all right um so this is oh and austin has been working on this firmware i think as well so uh right where was i at that's right i was looking at this so this is what comes up if you just go to the ip address that it gets off your network and you can see that there are some things here you can't change the this is just reporting its own firmware version 3.3.0 and short name etc so um and maker which is used to pick the logo that is displayed on the lcd and here we can configure the the mqtt broker so let's put in 1.2168.1.111 which is my bogus test broker well it's not bogus it's a real broker it's just that it's unauthenticated and i use it on my local network for it's actually it's just a raspberry pi running mosquito so i use it for just randomly sending stuff to it for testing anything that needs mqtt i also have another broker which is running on my synology nas um in a docker container and that is authenticated and obviously at a different ip address and that's what i use for my actual like live infrastructure and in this case because this is my test broker it doesn't need any authentications but you can put in username and password here you can put in a topic prefix and topic suffix if you want to i don't want to and client id i'm going to copy that so what i'm going to do now is let's go to item and we'll do mosquito sub minus h102168.1.111 make it verbose let's just subscribe to everything for now and then i'm going to because i don't know the structure of the topics basically i'm acting as if i know nothing here so what i'm going to do is just filter for any publications let's make that bigger so it's easier to read any publications mention the id of this new device and can i get this somewhere that you can see it all right i'm going to move which way that to there and oh no i'm not what i'll do is i'll move that over i'll put it up here and move this over here there almost there cool so now we'll be able to see anything that gets published to that broker so what i'm going to do now is save the config onto that rack 32 and immediately you can see that on the broker what it's done is it's connected to the broker and it has published a last will and testament and it has published to the adopt topic and uh this is part of the the future plans for the oxrs system which is also super super cool we'll get into that so what it's done is it's published a whole lot of information about itself it's basically saying i am here i'm a new device on the network i am running this particular firmware this is my short name this is the brand the version this is my ip address it's got a config as a chunk of json and all that sort of thing so it's just making itself known on the network that it's ready for adoption and it's then published temperature 31. so you might be wondering why this is saying it's 31 degrees in the lab it is not 31 degrees right now in this room that i'm sitting in or 31.5 it's going up the reason that for this high temperature this is getting slightly off topic but the reason that it's reporting a high temperature is that i put a temperature sensor on the rack 32 because i wanted to know how hot it got running in normal operation in like a worst case scenario so i specific i deliberately did not isolate the temperature sensor from any of the on-board heat generated on it so what i wanted to do was see for example the effect of the the heat from the linear voltage regulator if the board is getting hot i want to know about it so this is not the intention of the temperature sensor on a rack 32 is not to report the ambient temperature it's to report the ideally the hottest temperature that the board is experiencing so i want it to be thermally coupled to things like the onboard voltage regulator because one of the failures that you see a lot in networking equipment that runs for years and years is things like electrolytic capacitors drying out over time because they sit there running at i don't know 40 degrees or something and if you have something running at 40 degrees for 3 or 5 or 10 years eventually it starts to degrade and i i wanted to see how warm these boards were getting ideally what i would have done is put the temperature sensor right next to the voltage regulator so it was an absolute worst case and i was seeing the temperature of the voltage regulator but without messing around on the board it just wasn't neat in terms of being able to place it there so it's a bit of a distance away from the voltage regulator but it's still giving a reasonable representation of the temperature on the board i'm just taking a quick look where is it it er where is the temperature sensor oh it's over there it's kind of near the esp32 yeah it is a fair distance away from the voltage regulator i could have done a better job than that i could have stuck it closer to the regulator but anyway it's still kind it's meant to be representative of the pcb not of the environment now where was i yes so that's right i was showing you how cool this firmware is so out of the box with this firmware loaded you plug it into your network you plug in the i o board and the lcd and you turn it on it gets an ip address you go to that ip address you put in your mqtt details and we're done that's it like there is step one there is no step two so if keep with that open now you can't quite you can't see what i'm doing but if i now press one of these buttons i've just pressed the first button you can see it has just published port 3 channel 1 index 9 type toggle event toggle and if i press the other button it's going to say port 3 channel 2 index 10. so the reason that there are different numbers here it's showing this is the third port on the um on the i o board and it is channel is button one button two like pin one pin well saying pin one pin two is not strictly accurate so i'll say button one that's why it says channel one not pin one so that's pressing button one that is pressing button two and you can see the event is toggle and the type is toggle so if i um and it can do other detection types like if i just press this and hold it or is that disabled in this version of the firmware i don't know i'll try double press no okay so this particular firmware doesn't have that activated but the um the i o library has the ability to do things like detect multi-press and long press and all of those sorts of things but what we've got out of the box is publication of events all right that's right i was talking about the um the numbers so it's got the port and the channel and there's an index so the index is like the numbered position starting from the beginning and just numbering all of the inputs all the way to the end and that is usually easier to deal with than a port and then like an index within the port or the position within the port uh oh okay so austin says by default that won't be active you'd have to send a retained config message yes so the other thing is that this can be configured through mqtt as well now in the the um the idea with this is that you do not have to edit a config file and re-upload the firmware in fact if we go into here uh let's just get out of that not the test we're done with the test okay this is the firmware so this is the actual firmware that is running right now it is the the rxrs estate monitor firmware version three three zero and what you'll see is that there is no config in here for us to change there's uh there's an extra file which is logo.h that's the encoded version of the little logo that gets shown on the screen and there is the main program but there is no config.h which is what i often have in my in my projects i usually break out the config values into a separate file and then you've got to edit them things like changing your mqtt broker id like address and all of those things i normally do in a config file with this there is no config file you plug it in and it gets its address and then you go to that address you give it your mqtt broker it connects and then you can configure it through mqtt which is super super cool as well uh okay so austin just said also on the webpage go to ip address slash ota okay ota this will be over the air not found oh maybe i've got an old version of it so the hang on three three zero what is the current version of that firmware i'm just going to go to github and see if there is a newer version it is quite likely uh state monitor usp state monitor i think that is the one it is version 331 is that when ota was added austin i think it may be now if i go to let's um let's quit out of that and in here let's live dangerously really really dangerously uh super house projects oxrs what is it sha state monitor esp32 firmware is that it used to be called rac32 firmware but because that is we don't want it to be specific to the thing so great most eye version oox what have we got version 330 git pool let's grab that latest version and see what's changed what have we got plus two lines that surely cannot be the addition of ota just with that so let's go on to version 331 now let's open up arduino again and we'll flash this with 331 i've just noticed how lagging youtube is i just glanced across at my uh at the youtube studio interface and uh the pre in what i'm seeing in there is things that i was doing uh like a minute ago there seems to be quite a lag all right so latest version of the libraries uh possibly not all right let's see and there are a lot of libraries i need to make a script for doing this so to the dropbox sketchbook uh libraries there are the way this is set up there are a whole lot of libraries for different purposes so there's the rac32 lib which is the specific stuff for that hardware like that target platform io handler mqtt lcd there's the general api there's um oh no that's that's not even one of them uh so what i need is a l o x um what am i doing yeah uh ld no what is the directory oh no is that it yes i can't even remember my ls flags so let's do this what i should do is um do minus ld one let's let's try living dangerously for name in that do cd name get pull origin main cd dot dot done all right watch me break my um break my computer with a loop did i get this right okay so got it up to date up to date up to date up to date that is not looking good because it looks like everything is already up to date ah okay aaron says just go to github releases and grab the latest binary all right let's do that uh i did not even know there was a binary there um okay and this is going to be a silly thing to admit but then oh what have we got here is this [Music] how do i install the binary revert move required schema insights where are releases what's releases there 16 days ago ah ota is lower case and the api is low oh maybe it's already working then let's go to hang on do i have that window still open oh seeing this just reminded me of something i wanted to talk to you about which is a really interesting twitter thread that andrews orenberg is posting but we'll get to that oh xrs that this is the one i want so it could be that it's just that it is all it needed to be was lowercase the firmware is already doing it all right ah okay so what we can do is upload and then yeah let's do this let's go to uh here and releases that assets that all right i want to download firmware version 331 go download all right so now i should have that in my downloads folder and if i now go back to here and i go to choose file and downloads and you get to see what's in my downloads what have i got not giving anything away there what am i looking for [Music] what am i looking for oxrs oh oh no what is it called oxr is shar state monitor yeah where is it oh there okay not that one that one this should be the firmware and now upload uploading and we'll see if we can do a um a firmware update i have no idea what it's doing now is it booting is it oh yes upload complete restarting haha cool and starting up let's just switch to the overhead view so you can see it so it says starting up and it's just said version 3.3.1 it's pretty you can't see this lcd better esp32 and mqtt it's got an id doesn't have it doesn't show it as being connected to mqtt yet but if i press the button it's detecting it oh it's got gray next to mqtt which i think means that it is okay and when i press this it flashes orange so back into oh we've seen it yes now if we go back into here you need some navigation to get away from this without changing the url so we are now oh you can't see it there we go so we are now at version 3.3.1 it has retained the broker ip address because that stay that's stored in non-volatile memory and if we come back to my subscription here we can see that when i press the button we are getting the publications so we've just done an update of the firmware using the binary to publish binary that is really cool so i am very impressed by what this firmware is doing now that is really cool uh yeah that that is quite amazing so as aaron says hats off to ben and moyn they've done an amazing job yes this has been one of the really cool things about this project is that i um i i've been working on these boards and did some i did my own version of the firmware that made them work and i've been using them in my own house for ages but i'm not really a programmer i just kind of hack stuff together i got it working but then doing that was enough to inspire people that really know what they're talking about to do it properly and that is how we end up with firmware that is as cool as this and uh yeah that does things like show the the state on the lcd and does all the over-the-air stuff um austin says christopher aitken was a huge help with the html cool so big thanks to christopher as well right um i was .00 0.0 0.1 versions behind okay and thanks to chris also aaron says yes anyway this was the main point that i wanted to get across there oh can you demo outputs too um i actually don't i'm just thinking about how i could do that i don't think i have a board that i could plug in to demo outputs what could i use what could i use so okay just to uh to clarify what um what aaron is pointing out here these this board when i um when i did the original version the the use case was to connect light switches and so i originally called this the lsc or the light switch controller board and a couple of people had issue with that one is that one thing i can't remember who it was but someone got really annoyed by the fact that it had controller in the name because it's not controlling the light switches it's reading from the light switches it's not a light switch controller so i um i changed the name wrong camera once again so i changed the name so that it's 24 port i squared c rj45 breakout and that is also that name change is also reflecting the fact that this is not just for inputs so in the circuit there is a 10k pull-up resistor on each of the inputs on each of the i o lines and there is a 1k resistor in series with it which is like a a current a protection thing i won't go into that but the point is it is set up so that the the pins are biased high with the 10k resistors and they have a resistor in series with whatever is connected on here so it's optimally set up for using light switches connected back to it but it is not just for inputs you can also set the pins on the mcps to be outputs and you can drive so instead of just reading inputs of things plugged into this you can use all of these as outputs and you can then drive other things it could be switching relays with a relay driver board or whatever the point is this gives you a huge number of io pins you do have to keep in mind that there is a 10k pull-up on each of the pins so by default the output will be high and that could be a safety issue in some cases if you've got this connected to something that makes something move you have to think about this a lot if you're like in robotic sort of projects you have to consider the default behavior of things and like in a power-up state for example if the pr if you power this up and the processor fails to boot or it takes a while to boot and it leaves all of the io pins in their default state for a while if their default state is high and being high makes something move that is a safety issue but you do have all of these pins as either inputs or outputs so you probably wouldn't use this specific board it's um i don't i don't know why but yeah maybe maybe there'll be situations where you would want to but you probably wouldn't use this specific board for driving outputs just because the ap8c connectors are not the most convenient thing in the world for plugging into something at the other end but you could do it so one of these boards could be used for driving how many is it well in this case it's 24 in this case it is 32 and there are four exposed io pins per socket so you could use this for driving 128 outputs individually if you wanted to and the firmware supports that now maybe that's a topic for another day but yeah that is um it is actually more flexible than it even appears at first uh yeah heck a relay um yes gorilla teamwork makes the dream work yeah so i am really happy that people are running with these and doing the and working on firmware and other boards and things that all interoperate with this system that is so cool now what was i going to do that's right what i might just do is just pull up some firmware even though it's not even though i don't have it running on here let's um oh philip says uh john i'm into model trains these boards could be very handy for my requirements yeah they would be yes that is an obsession that i had when i was younger and it is a potential black hole that would suck up all of my time and interest and attention so for years i have resisted it i've um i used to have a really big n scale system and i still have lots and lots of n scale stuff in boxes up in the ceiling i ended up selling a whole lot of it at a at a swap meet many years ago but i still have a lot yeah if i had time and money and space that is an obsession that i could totally get back into but i know it's like some people fall into the trap of uh of gaming and it becomes something that they do every possible moment to the exclusion of everything else i know that if i started messing around with model trains again it's the thing that it would take over everything i would just be obsessed with building stuff particularly with the tools and the skills that i have now compared to what i had back then when i was doing it like um so i used to do things like uh brass turning to make parts for um for making like model steam logos and things and things like um like putting a bit of brass rod into a drill and using files and thing and saws to um to shape it to make like a blow-off valve to go on a steam loco it's a tiny little blow-off valve made out of brass anyway i still love doing that stuff and just creating things physically and crafting them but now with things like laser cutting and 3d printing and uh yeah all of the and cnc machining the stuff that i can do now i've got i've got to resist that temptation i will not get back into model trains because i wouldn't have any life outside of it [Music] henrik says you should make an i squared c relay board rack mount yes that is that is a good idea and there are other boards available something i should point out is that i am not the only one making boards for this system now which is kind of what i was getting at earlier there are people like austin who are building boards and who else there are a few let's um let's have a look i don't know i actually have not even looked at the oxrs site for ages oh which is terrible um what have we got add-on display oh let's let's have a look in hardware and see what's here oh i haven't even seen this oh who's making this one austin nice one austin so uh here on oxrs.io we've got a section of controller so let's just do a quick look down through here we've got the rack32 that you've seen that's an old picture i need to do one because this picture was actually taken before i had even received any of the poe regulator modules i had no idea if they would work or if they physically fit it on the board or anything so this was a prototype when i was doing early testing i need to take a new photo and update that and i didn't even have a header because i hadn't tested the spi for the oled at that point so the room 8266 this is interesting so i guess that's the i squared c header on there and there is a big five pin thing on there which i guess is a voltage regulator oh yeah this will be the so austin really likes this switch mode regulator the what is it the 2985 or something i can't remember so there's an inductor there this will be a switch mode regulator and it's got the footprint on there for the poe regulator as well so we've got ethernet on the front and is there usb or anything else is there a header for programming i can't quite see but anyway i am learning about the existence of this board right now i hadn't even seen this this is cool nice one austin i'm going to have to check that out so we've got the for input devices we've got the i2c rj45 so we've got an 8 port 16 port 24 port version and i need to replace these with pictures of the real boards and also add the fact that there is now a 32-port version output devices pwm controller so i squared c interface this is another one of austin's boards so we've got the i squared c headers here and here so that you can daisy chain them and it's got a header here so you can set the i squared c address and then it's presumably these are pwm drivers i what have we got uh 16 channels uh it doesn't say what it is um yeah cool pwm controller nice one austin and smoke detector ah sorry bedrock media yes so um james is also working on board so this is the smoke detector board which you could use if you wanted to be able to interface with smoke detectors i think it does power to the smoke detectors i don't remember i'm not quite sure what the uh oh there's a wiki link let's go and check that out privacy error let's go to it the certificate has expired but okay so there is a uh yeah anyway whole lot more information there if you're interested in that that is cool so james is working on that one as well shields iraq 32k next shield so this is an add-on for the rac32 that just provides a knx interface and this was done so i think frank designed this one because ben is using knx in his home automation system and he wanted to be able to interface with it so this board sits on top of this board and it uses this set of i o headers up here and it sits onto the i squared c header here and you can oh and into the lcd thing here so it passes through the lcd connection and it uses the i squared c connection i think that's the way it works maybe it doesn't use the i squared c i don't know anyway k x cool so uh i'm i am sure that there are other boards that could be added into the hardware section on the oxrs site here but uh yeah i need to like everybody else has been working hard on this and i've been totally ignoring it and i'm really sorry about that i need to actually put in a little bit of effort and uh and help out add-ons accessibility what have we got here ac smart switch what is that for oh austin working on a custom tower controller all right yes and displays what have we got ips display oh yeah i need to do some um so this is the 240x240 this is sort of an an incomplete page about this so this display is also available on this breakout which means that it can be mounted and then just plugged into the controller and switches so we've got austin's ac smart switch on here which is one that i showed on the live stream a while ago which is yeah that's a really really cool project i won't go into that excuse me more right now because uh yeah i i've showed a fair bit about that in the past i can't remember well long ago it was but if you're interested in this one this is a very cool project check out the the live stream which is where steve came to live with me in that same live stream he was in the box with the smart switches and the usb hub so where are we what is the chat doing what is the austin says oops that one has the wrong name yeah that's uh where are we hardware hardware smoke detector there was one here that said it was uh i can't remember one of these the pwm controller maybe yeah one one of these had the wrong name on it anyway so yes i am sure that someone possibly james had been working on an output board an output driver board as well so there are definitely more boards that need to be added into this list of all of the hardware modules that can be interfaced with this system and there is definitely a an output board which i don't have um sorry i'm thinking about this whole thing of an output board what is it it's 11 44 it's heading towards the end of the two hours and i do want to show you andrew zonenberg's twitter thread because it is cool use mosfets instead of relays do use with leds and then you can add dimming as well i'm pretty sure that james was working on a board in fact let's have a look at bedrock media bedrock media designs where is yeah i think this was it oh this is um yeah it doesn't have proper content in here yet but there was the power distribution unit and universal i o and relay 16 is this it uh that is an expanded version of my relay 8 and the relay 128 doesn't have anything in it since arduino uno yeah oh this is all on the wiki i think there's more information on the bedrock media design site so let's have a look at where would it be light switch controller let's just start in this category ah okay cool 128 channel relay driver that is a lot of placements um so this is basically an output version of my i o board but specifically designed for driving relays and let's have a bit of a better look at this so relays i haven't actually seen this photo before but yeah so these are the mcp io chips there and [Music] a whole lot of screw terminals along here so what i think he's got here is an option that you can either connect to the screw terminals or you can use idc connectors just depending on whichever is more convenient and it's got a whole lot of mosfets along here so these are the driving transistors that turn the relays on and off these are the snubber diodes that prevent against back emf when you turn a relay off and the electric field around the coil collapses and causes a reverse voltage spike so these diodes are to to stop that and where do you connect to it somewhere oh down there okay so here is the i squared c connection that you would use for controlling stuff so if you wanted to control 128 relays you could use this board with a rack 32 or with or with austin's what was it the room 8266 to control them but yeah maybe what i should do is a version of an output driver board and yeah there was that comment in the chat about using fets in setting it up with mosfets so that you can do pwm on leds that would be really cool as well all right james says check discord okay i need to catch up on discord yes uh where are we um oh james says i'll check an image on i'll chuck an image on the discord alright now if i i'm just going to switch to the front camera for a moment and open discord because i am not sure what's going to open this is the danger of live streaming i have doxed myself many many times i um i doxed myself on the last live stream or the live stream before i can't remember one of them it was one where i was showing orders yeah it was the one where i was ordering on aliexpress and it showed the delivery address and that was not such a clever idea so i had to go back and edit the live stream after it had been live to try to blur it out come on getting into getting into discord hmm all right where is it is it in general the din module for the rj45 breakouts okay here we go hang on i'm gonna switch to discord switch to dashboard switch to desktop so that you can see what's going on here and we have oh this is pretty cool so this is a din rail mounted board and i know this is probably quite small on your screen but you can go and check it out yourself hang on open original let's have a better look at this so it's got those i think they're 3.81 millimeter pitch pluggable terminals open i'll close that one for now back to discord and is it this so james said this is the din module for the rj45 breakout boards ah yeah cool okay so what you do is use the rj45 breakout board in the rack like in a rack mount and then have the rj45 connector going from that into this socket and then this can control things turn them on and off so that is quite cool that is really interesting james thanks for sharing that and it's got some clever construction here what you can see is that there is this pcb mounted inside the din rail enclosure which is so that pcb will be perpendicular to the din rail when it's mounted the din rail goes through the part of the clip here this pcb sticks straight out from the din rail and then you can see there is another pcb up here in the corner at right angles to it and it's mounted on this header and it looks like it's soldered in here as well probably for mechanical stability so the electrical connections are passed through on this header it's mechanically stable because it's soldered in here between the two boards and then there are buttons which are exposed through the front so [Music] let's just jump back to another view open original and i'll jump back to another view because i want to see all these pictures because these are cool this is nice work james and zoom in on all of these all right so on the front of it you can see that the buttons are exposed there through the front panel and those are the buttons that are on this bit of the pcb here and if we look at the other side we've got the rj45 socket and the switch yeah um oh jaxtech said looks like a web relay yeah except it's not because this isn't actually ethernet this is being used for gpio connections coming back to the breakout board so what this will allow so presumably this module combined with one of these would allow you to control relays in the switchboard this is a pretty neat solution very very interesting uh um henrik i don't understand this question uh henrik said where is the light i suggested for you i mean how long you have to wait more send us a question i sent a question in support mail i wanted to show some pcbs uh i don't remember that um sorry henrik i get a lot of email a lot of email i don't i don't even get a chance to read most of it um yeah this would be getting a little off topic now last time i checked i think i had something in the order of 50 000 unread emails yeah it was it's not pretty but this is pretty this is cool thanks james for sharing that now uh oh henrik said and i mean where is the rgb garden lights you ordered they would have only shipped a couple of days ago i only ordered them last week so yeah that'll be a while they were coming from china so it'll take a while and i don't i didn't order any special shipping method it was just whatever the economy shipping is so yeah maybe they'll be here in a couple of weeks i'm not in a huge hurry for them anyway because as you can see we still got to do all the paving we've got to build the garden bed thing around the tree um yeah so what am i doing okay what i'm going to do is show you i'm going to change topics totally and show you a really interesting little twitter thread here we go now this is an ongoing saga it is not over yet so one of um so if you want to find out what the most recent things are you're going to have to check it out i'm going to check i'm going to chuck this into the chat so this is the start of the thread and um if you want to see interesting pcb work you should be following a zonenburg and uh so femto dwino there is a whole lot of backstory to this i'm not going to go into the whole backstory of who the players are and the um and the fomu project and the bomu and that sort of stuff but yeah there's some really cool work being done here the the backstory of this is not the point this board could be anything um but femto arduino asked andrew to help out with troubleshooting a prototype of the the bomu and this is a six layer board with multiple levels of blind fires or vias whichever you prefer and figuring out why the prototype didn't work now for context let me show you the size of the board that we are talking about here i am going to because i have a um i have a fomu here which is not quite the same thing but it's it's the same size so this board that i'm holding that is this is a fomu which is an fpga based board that fits inside a usb port and just for fun let's have a look at how friggin small this thing is all right uh how do i get it where's the microscope all right i'm gonna have to zoom the microscope out of fraction zoom out and focus and a little bit dimmer okay so i'm just moving it with tweezers here so this is the pcb that we're talking about and these parts i think are o201 parts uh there's a couple of qfns and things on here so these are my enormous fingers i'm trying to get my fingers under the microscope to move it and like the board disappears it is it is really small and you can see on the other side it's got the connections that are used to yeah so this plugs into a usb socket and the whole thing disappears into the socket and in fact it's so small that to fit in the socket it needs a little plastic thing that goes over this to make it thick enough and then it's got touch sensors on here so these connections up here are touch sensitive and then it can communicate with the host computer anyway i'm just going to see if i can get it on my finger for scale move that up and i've got to find the find where the come on where is the microscope there it is okay so that's just sitting on my fingertip for scale this board is small all right now all of that was just to give you context for what follows in this thread because it is kind of bizarro so that tiny little board um what andrew has done is sanded the board down and it's a six layer board so he sanded the board down to expose the copper on the first layer so this is the top layer and you can see the pads there where the where parts are mounted so you can see like there would be a part across there between those two pads you can see the bga would be mounted on here and these are the pads that the bga mounts to and in the middle you can see there's a nice big ground connection there's a whole bunch of balls on the center of the bga to go onto that ground connection which links out through here to this polygon poor this ground port and so oh and this is the other side of the board now this so this is a prototype for a new version that they've been working on and the prototype was misbehaving and they couldn't figure out why and so andrew was helping to look into it and uh now there are blind and buried vias on this board as well so blind and buried vias let's explain what that is on get rid of that if we look at a cross-section of a pcb then there on a typical two-layer pcb there will be a layer of copper on the top and a layer of copper on the bottom and if you want to join between them a hole is drilled straight through and then it is lined with graphite uh as part of the manufacturing process i think it's graphite because it's conductive and then the i can't remember my memory on this part of it is hazy anyway there's a tiny little hole that's drilled through and then it is lined with something and then it goes into a bath to be electro plated and so what happens is that you end up with copper plating running down through the inside of the hole and that is what electrically joins the copper on the top layer to the copper on the bottom layer so when you have a trace that comes in on the top layer and then it has to jump down to the bottom layer it passes through the fiberglass through this via and so normally what happens is if you are laying out a pcb and you've got it's just a two layer pcb so you've got front and back it's really easy to stick vias wherever you want them because there's nothing in the middle to get in the way but what happens if you have a four layer pcb so you've got another layer of copper in here and you've got another layer of copper in here now the spacing is actually not quite like this but we're looking at a cross section here through the so what would happen in three dimensions is this copper would actually come out around the hole so there would be an easement around the hole so that there is no short circuit between this via passing through the board from the top of the board to the bottom of the board or in this case it would be layer one and layer four layer two layer three and so what happens is that you have a gap in the middle layer there will be a circular gap where the via can pass through it so you don't have a short circuit between the track here and this signal that is passing through here so thing is in a really really dense board like this this is a six layer board that is like smaller than my fingertip being having a via that passes through all of these layers so in this case we would actually have another layer here we'd have another layer here so that would be l2 l3 l4 l5 l6 so if you put a via between these two layers you are interrupting all of the intermediate layers and you're painting yourself into a corner it means that you can't run a track through that location in an intermediate layer because the vehicle will be in the way and so what happens with blind and buried vias there are two variations on the same thing with a blind via say you wanted to have a link between this layer and layer three what you would do is you would have a via that is only drilled through here so you've got connectivity between those layers but you're not interrupting these other layers you can have a track that passes through directly under the via on layers three four four or layer four five or six and so the hole only goes part way through the pcb so that is a blind via and a buried veer is between intermediate layers say you wanted to join tracks on layers three and layer five you would have a buried veer which is a hole that is drilled between there and there and it doesn't go through the fiberglass here or up here so you can run uninterrupted tracks on either side of that buried veer so you can have a link between layers inside the pcb and you can't see it if you look at the outside of the pcb there's nothing there there are just tracks here there are tracks here you can't tell that this via is even there it's inside the pcb so that is the backstory to blind and buried beers and how this little bit of work that andrew is doing is so cool now what you can see here is that he's found two problems a blind via from layer two to six collides with a trace on layer three this is a design bug that slipped through drc which is design rule check somehow on results in sw clock being shorter to a power rail and if we come to here you can see this is like an x-ray view version x-ray x-ray x-ray vision version you can see that there is a via here and it is colliding with this track somewhere inside the pcb so you can't even you can't see it it's totally hidden and the problem is when you're working on a prototype like this often there will be things that you need to patch and that is typically done by using something like a scalpel and cutting some tracks and putting jumper wires and things on but what do you do when the short circuit is an error inside an inner layer of the pcb that's where this gets kind of crazy so it says so there's no polygons on layer 2 in this area okay now he says i plan to approach the region of interest from the layer one side even though it's further away because they're relatively few obstacles to navigate so there's also a second short the net on the circle pad is shorted to ground somewhere so there is another short somewhere inside here that at this point andrew hadn't been able to find now um this is uh yeah so what andrew did was cast one of these samples in epoxy so that he could then shave it down and descend through the layers of the board to expose it and and verify that this is really what's going on but in the meantime okay so this is a second short so this is an area where a via is intersecting with another signal and you can see here this blue signal that runs diagonally up through here is intersecting the edge of this via here so this is all really just interesting detective work so good news is we know where it is that's he's found the short bad news is it's got is getting to it is not going to be fun now this is where things start to get a little bit crazy so what what he's going to do is attempt to patch this pcb on an inner layer so that they can get a prototype working and verify it now when it comes to doing things like patching prototypes i'm fine with cutting tracks on the outside of a pcb and running jumper wires but what andrew has done in the past and is in the process of doing here is milling part way into the pcb to expose inner layers and then doing surgery on the layers inside the pcb in order to make this work aaron says is drc not supposed to identify these kinds of issues yes absolutely it is meant to but um for some reason this one got through drc all right so the description here it says yeah i can come from the back side which would normally require removing the wlcsp milling down to layer five then cutting the via pad away from the ground plane coming back from the fro coming from the front avoids the wxisp rework but i have to cut through the usb connector pad on l1 a power trace on l2 a signal trace on l3 and the signal trace on l4 or before i get to the short and then patch it all on the way back out this is crazy levels of surgery and all of that at the bottom of a high aspect ratio hole uh now this is um [Music] where are we i'm trying to get down to some of the more the bigger bits here so the easiest option is going to be start with a fairly large cavity okay so when andrew says start with a large cavity it's 500 micrometers by 500 micrometers going through layers 1 and 2 and exposing layer 3 and it's going to be around a 325 micrometer deep milling operation so then i know kind of where this is going to go there is a problem coming up then need to go down another 1050 micrometers to reach layer 4. so think about the thickness of the pcb and it is a sandwich of a whole lot of layers there is fiberglass and then copper and then fiberglass and then copper the copper is very very thin so what he's talking about here is using a milling machine to mill down through certain layers until he just touches the copper on the target layer that he wants to rework to expose it so uh yeah this is with the the tiny little pcb mounted in a milling machine and is that a camera or a microscope i'm not sure um but yeah you can see the the tiny little milling uh bit here cutting into the pcb and exposing a little bit of the inner side indexing off the top left corner of the usb d minus pad so i can get close to the target location so this is the tiny little cutter on the milling machine and setting the location based on the position of the pad and ready to start cutting so this is where the cut is going to be made down into the pcb to expose one of the inner layers now this is where things kind of went wrong for this version initial exploratory cart this was free hand with no backlash compensation but the outline of the cavity at this stage isn't too crucial the main cavity is about 480 by 60 micrometers um my chrome yeah i'll make it larger in the i keep saying micrometer is that technically correct micro meter uh i've been taking the task for saying that before um i will make it larger in the horizontal axis the angled microscope means it's hard to see the floor so this is looking into the uh the machined area and you can see here and just keep in mind how small this entire pcb is this is the pcb i showed you before and this is the area that is being machined to expose inner layers and overlapping the gerbers on the optical image we can see the cut position is dead on the copper visible at the bottom of the mill cavity is the via pads which are slightly larger than spec so this is the photograph so what you can see here with that gold copper sort of area that's the photograph overlaid on top of the cad view so that you can see the intermediate layers so these are the layers that are coming through here to these locations where the vias are and this is where things went wrong because the all the dimensions that were being done were based on a stack up of a 1.6 millimeter thick board and this is actually a 0.8 millimeter thick board which means that the z-axis the depth of these cuts was based on a um a board profile that had certain thicknesses and it turns out that they were all wrong because andrew was working from a um a file that had that was based on the doing the stack up for a 1.6 millimeter thick so this is an angle version looking into the hole that has been milled into the board and it went too far so uh as i said here so a milling operation that should have taken me from layer three down about halfway to layer four ended up going through four and five and almost hitting six uh so um more cool stuff all right so here's some more information from so there are really two things going on in parallel here one is taking the board which has been um cut which has been set in a block of epoxy and then machining that off in layers to expose the intermediate layers and obviously the board is not going to work after that it's it's a destructive process but what it's doing is and allowing all of the inner layers of the board to be viewed so that you can then discover if the short really is where you think it is and the um the other operation is the one i've just been showing you with the milling machine all right so this is back to like grinding the face off the board basically and going down through the layers so here's layer six via five and six and layer five so this is halfway between layers five and six and what you can see here all these little spots these are all of the vias that go between layers and they are the vertical interconnects between those different things and then the next picture is the next layer where some of those beers terminate and there it is so this is the short so that thing right there is meant to be a veer passing through and not making any connection to this big copper area around it and you can see that this is where the drc failed to pick up the intersection between that via and this bit of the copper and there should be a gap right through there that should be a separate thing like this and like this with isolation around it this one should also have isolation so this is where the drc failed to pick up that intersection and hence the short circuit so this is what andrew is trying to fix by doing that that milling operation uh more polishing via four and five and metal four so you can see we're getting down towards the bottom of the board here there's not a lot left of it you can see the looking down through the fiberglass and all the layers really really interesting stuff i love looking at this because firstly andrew has skill that i can only dream of having but it's also really interesting to look inside the pcb and understand what's going on and actually see because often when we order pcbs we will have the design we'll send off the design files what you get back is a pcb with solder mask on it it's got solder mask and silk screen and apart from the exposed pads where you put parts on or through holes the rest of it is kind of hidden from you you can't see it so seeing a view like this where a board has been sanded down to the point where it's halfway between two layers and you can see the interconnect between the layers the cross section of those interconnects i find that really really interesting yeah it's like um it's like having doing a ct scan or something and then progress like moving through the layers all right so more intermediate layers more layers and we're getting towards the end of the thread at this point oh three hours okay ooh this is stuff that i hadn't actually seen yet because i think the last time i saw this thread it was up to here so 18 hours ago he's still working on it back to the lab so um previously it was um ordering stuff on aliexpress with john and this week it's reading twitter with john so uh here's the setup for another cut trying to fix a short where a blind buyer shorts to a signal trace so this is the view of the cutting head going into the board and this is the view showing where the short circuit is occurring i think it's that one i think it's that bit there so the idea is to cut into the board far enough to expose this area of copper and then cut the copper across here to isolate the via yeah i think that's what's going on here these images are at 45 times as far as my stereo microscope can go we've exposed the trace and consoled to it but it looks like the short isn't broken yet okay so this is in looking diagonally into the hole and you can see the edge of the copper just there annotated so you can see the various structures better okay what's going on here okay so that bit of the track there is that bit in there and that is the via which is there so it's isolating that from that looks like it's what he's trying to do uh top down after the next milling operation yeah i haven't seen any of this part of it this is all new to me we're a few micrometers above the copper at each end of the trace can probably do the rest by hand with a scraper and scalpel [Laughter] that's ambitious okay so here we've got view and just another view into it a few more steps and so i think it's trying to isolate that in there a bit of careful work with a number 11 scalpel and the short appears to be cleared confirmed by continuity test i need to be do some more careful probing to verify i didn't break anything else then reconnect the cut trace and we're done with the easier of the two edits yeah so you can see there just in that area there you see how that is now open this via passes through the board this bit of the copper over here has a clear gap so that bit has been cut and if we go back to this previous photo you can see there that it has not been cut so it's not isolated so reconnect cut trace yeah anyway this is all crazy crazy stuff um that is anyway i i like watching people do this sort of crazy thing hang on i've just blown way past my time because i was i was getting into watching the micro surgery on that pcb i would love to see that as something like a a live stream see andrew working on this the thing is they're doing this sort of work on a live stream doing any sort of work on a live stream is really hard not many people can do it and i personally i think it's because i don't like showing an unedited version of myself and revealing how little i know about things if you're doing things off camera and then showing how it was done it feels a whole lot less scary and also a whole a lot of it is a lot of it would just be me sitting there thinking about how do i deal with this and trying to come up with solutions to things so it wouldn't be very interesting but but i wish that i could watch andrew working on this that would be fascinating seeing a live feed from the uh the microscope as the milling operation is being done that would be super cool um now i am way over time so i'm gonna go uh there was more i was gonna talk about today i've got more topics i have so many more topics the pcb conveyor project that i've been working on that's a that's been fun and it's been fun getting back into doing a little bit of mechanical stuff as well and many other things but uh i think i need to call it for today sorry i've still got andrew's pictures up on my screen looking at uh editing intermediate layers of a six layer pcb that is so small that i have trouble holding it um oh this is one that i will answer dodgy said shelley pro 4pm update question there is no update i am kind of worried about this i i was really hoping that the shelley pro 4pm would pass um a u nz certification and i'd be able to install a few instead i've heard nothing i've seen to follow up a couple of follow-up emails to altaco asking about how certification is going and i've heard crickets ah i think it's time to prod them again it's a couple of weeks since i've emailed about it but yeah it's uh uh what's the right word i was gonna say i'm not really frustrated it's uh not really disappointed either that's the wrong word i am excited for the shelley pro 4pm and i hope it gets through certification soon and the fact that it hasn't got through certification and i'm not hearing anything it's um it's just like a i want it i want it and i can't have it um aaron said 32 port available for sale now yes it is and i have now put it on the super house site so let's uh i to see this should be the url so for those of you who are interested it is uh i think i set the stock level at some low level like two um i need to order more why is the super house site not responding that is not a good sign oh i got there eventually okay so i will drop the url in [Music] here and and peter says steve should email ultico yeah so this is i'm just gonna temporarily switch back to desktop and this is the uh the page the url that i just dropped in the chat and so i've now got the it defaults to the 16 version but the 32 port version is there as well and i set the stock level to two um what did i made the price 109 and i i need to make some more 24 port ones and i need to make some more yeah i need to make more of all of them basically oh no i've got eight of the 16 ports so that's okay and that's not a popular one anyway oh 11 of the 8 port nobody buys the smaller ones so the 24 port has been sold out and the 32 port i've only just assembled some so i need to uh i need to assemble a bunch more hmm i haven't really been selling any rac32s either so what's been happening is kind of what i was afraid would happen which is there was lots of excitement early on and people that were really keen for the rac32 but it has a very limited audience and all of this stuff has a very limited it's a niche market so what happens is that people are very excited about it and then it is released and then i sell like eight or five or eight or ten of something and that's it i don't sell anymore it just stops because the people that are actually interested in it have then bought the bought what they want so yeah i'm catering to a niche market here but anyway uh 32 port breakout it's there all right so i am going to go and have lunch and what else am i gonna do uh i need to assemble some more rocklings i think i'm gonna have to spend this afternoon doing pick and place and then and hand placement on parts for the rocklings because it's it's a lot to go i'm gonna be spending a lot of time staring into that microscope over the next couple of weeks all right okay now there was another topic that i wanted to get into related to oxrs and infrastructure and the adopt thing i'm not going to get into that but if you cast your mind back to when we're looking at the console of the of the rac32 and it connected to mqtt for the first time and it published that message with all its configuration information and it was published to the adopt channel hopefully there is some stuff coming in relation to that which will be a user interface kind of similar to like a unifi interface where you can add net devices to your network and then adopt them into the system for management and control them so that's what that's all about anyway i won't get into that or i'll be here for another two hours two and a half hours i've been here already you're all tired of my voice and i'm tired of my voice so it's time to go and have some lunch and i hope you have a great weekend i think it's weekend for everybody by now every time zone in the world should now be on the weekend so make it a good one and i will talk to you all really soon now how do i end this i hit this bye [Music] so [Music] you
Info
Channel: SuperHouseTV
Views: 12,663
Rating: undefined out of 5
Keywords:
Id: tXGKQ4X_W_w
Channel Id: undefined
Length: 149min 24sec (8964 seconds)
Published: Sat Dec 11 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.