What we got here is my controller for my Hobson, Hobson X4H501S quadcopter or drone. Now this is great, I love the quadcopter. Much better now I've got this firmware update. Now somebody may think, oh what's these for? Well these are for two things, one so I don't actually be resting on them while I'm doing this. And I do have a little bit of extra here just to help me out with that. And two, it's my answer to, if I'm in follow me mode and I want to chuck this in my backpack, how can I do that? Well I can put these on. But today when I took it out today and I put it into, oh I think it was in return to home. So it doesn't work, as far as I like to work out it switched these off in return to home. That's good, but in follow me mode it doesn't, you can still use these. But if you put these on, it sort of like stops the movement of them. And if you put an elastic band across, that will do it even better.  I'm going to put this into the netted part of the exterior part of my backpack on the back. And then see if I get a good follow me mode. But I'm going to go into an open field to do it. Because this doesn't like doing that follow me mode when you're running in and around trees. It's not really good for your quadcopter because it's blind. It may have the camera, but it can't negotiate around things. So, but the thing with these of course is they get through the batteries really quickly. And although, you know, I've got no problems with charging up the rechargeable batteries that I've got. The problem is some of my rechargeable batteries now are starting to show signs of age. Because I've had them for quite a few years. Quite a few years and some of them, you know, they're just not charging. They're not holding a charge for five minutes and it's not going to talk. I've also needed something else as well. I've got two, I've got three pencil battery chargers. All the same company, Energizer. Two of them are exactly the same and we bought exactly the same time. And they're exactly the same output, so everything else. But if I am to put them into a like kilowatt meter, one of them shows six watts. Well between sort of like, let's say between four point three and five watts. And it's supposed to really be six watts. And the other one shows less than that. It shows maximum of like four point one, four point two. So you know they're exactly the same. There's a big difference in the output. I mean that's like 20% area. So I've already been in the back of this. I'm not going to lie. I've already been in the back. Why can't I get in the back? What am I missing? Am I missing? No, I'm not. This is fine. There's a lot of things, right? I've already been in the back. And I've done some modifications. My modifications, even though it's not easy to see straight away, is this will just come straight out. That's there because these things that were in here, I've taken out is like spacing type things. And also all this was built up to here and I've cut it all out. All gone. The reason behind that is because I want to be able to fit these in. And now they do. Two pair of these go in here quite nicely. And which means I have the ability to balance charge. Yeah, without taking them out. And here's the other balance charge. I've got two charges. So I can do this with two individual charges.  I've got two pair. Oh, sorry. I've got one pair made up already. And they're going to attach basically here. Which means I can connect them and disconnect them. And I can do all that pretty much from just taking the battery pack cover off by having these underneath the back cover. And having these underneath the back cover so I can disconnect these. I can charge them when nothing is charging. Reconnect. But also I want to be able to use because if something goes wrong with those batteries, I want to be able to just quickly take the back off four screws just as quickly as that was and put this in. Disconnect these of course nice and easy from the plugs and put this in. So what I'm going to do as well is I'm going to connect onto this. This. Which fits into, of course, these. So I can just interchange these batteries. Nice and simple. And I've done most of the work, like I said. I've cut all of this out. And I know that these fit because I've already done it. I've already put the back on and put the cover on and had the wires there so I could get to them. And I really know that. And now I'm going to, I'm going to desolder this because this is going to actually be in operation today. I've already been out. And I've used these batteries that are on charge over there. And by the time I've set this up to have this fitted it means that I can just literally take these out the back put this back in with the recharge batteries. Of course that would just plug straight into the socket so I'm about soldering. Just into one it doesn't matter. They're just in parallel. And then when of course these plug in, both of these will plug in because they'll be in parallel as well. And we're good to get. We're good to fly. And then I'll be able to do time checks, measurement checks on how long it takes for these to run out against how long it takes these ones to run out. And just more things to be fapping them out with. It's all good fun. So that's what we're going to do now. So there we go. We've got 0.5 of an amp. Okay, 0.58 of an amp. So that's quite a bit of a pump. And we haven't even got the quadcopter on. So I'm just going to put that there and just let the rest of it run out and everything else goes through. Okay. So hopefully in a second that's going to be talking to that quadcopter. Yep. Okay. Now I want to wait for it to start collecting the satellites. It's going to take a couple of few minutes because I'm indoors and I don't want to keep turning this over for fear of breaking the connection and start again. So we'll just give it a couple of minutes to get some idea. But even half an amp, over half an amp that's drawing out these batteries. And that's quite a bit of power, really. Quite a bit of power. Yeah, let's just give it a little bit more time. Look at what's going on over there. Right, on the quad itself it wants me to calibrate it for starters. But we've got five on the quad and zero on the handset. Man, I've got three on the handset. Three on the handset. Seven on the quad, three on the handset. I'm going to turn it around so you can have a look. I hope you can see that because I can't really see what you can see. Try and turn it the best I can. And it looks like we're in return home now to be in return now. So I've got four on the handset and seven on the quad. And it's still going up in power. It's using more power. Seven on the quad, five on the handset. And this is without record or anything like that. I don't actually think there's a chip in it. No chip. You can see that. You can get the angle. I'm sorry if I can't. I just have to sort of trust me a little bit. I'm going to wait until it's 12 on both so we get to see the sort of power this is using. I'll be very conscious so I've got the live connection in my hand and I don't want it to touch the case of the GPS. I don't want it to touch anything apart from the way it is. Okay, we've got eight on the quad, six on the GPS, six on the handset. And we're still going up in power. Still using more current, but more and more. Seven on the handset, eight on the quad. And we're still going up. So we're just going to just put my hand for a second. Just put like that. Just make sure that you're thinking of touching anything. So we're still going up in power. And I want to just do the calibration. Okay, that's one part of the calibration. I know it's going to ask you for calibration, so I'm doing that now. Okay, so now we're in the ability of flight. And now we're going to very carefully put this over. And I've got two on the handset, nine on the quad. Can you see that? Maybe you can see. So I've got the handset and eleven on the quad now. So we can probably safely assume them. Now this is with nothing else. This is, I haven't got a chip in the quad. I would have to turn this off again. And then again, if I turn it off, it would be very quick for this to come back. And then put a chip in and press record. If I press record, it's just going to see any difference. So it's not going to record. And it would actually be the quad doing the work. This is just going to send the signal momentarily. So really, I suppose I don't need to worry about that too much. I'm going to be turning the quad on while I've got it set up like this anyway. So we can say then so in sort of like 0.62 I've sort of got 0.6245 a second ago. There we went 0.58. In retrospect, if I put on the not hold side, we'll get an idea of the highest and the average. Can you see that what's going on behind there? I'm really sorry. I'll tell you later. It's just, I'm going to give you that and I'm hoping that I can, I don't want to have to set the board out. I'm hoping I can literally just solder to here. This is great because it says 4V to 13V that you can put into this. I don't know if you can see that, I hope you can. 4V to 13V. So these being around about 8.4V are what they are now because they're fully charged is within that 6V range. And I can just parallel them up. I have seen somebody else do something like this and they've got a book converting all sorts to keep that 6V. You know, 6V is the way I look at it is this is going to require the same amount of power. So if you put 6V in it's going to require more current. If you put 8V in it's going to require less current. At least that's the way my brain tries to tell me it works. So I'm going to go along with this here. It's all in the middle of the range. Hopefully I'm going to get extended battery control times. If I don't, this whole thing has been wasted time. But I don't think that's going to work out like that. I'm pretty confident it's going to work out the way I think it's going to work out. So I'm going to solder those onto there. I'm going to solder this onto here. And that's it. We're done because I've done everything else already. I've done that. I've videoed it. I did the whole thing on video. Now I did it all. So if you do want to see all of that I'll do it. I can put that up. But I'm not going to water everybody with the labors of it. It's quite simple really. But we just want to see it in action. And the ability of course to put these in and to disconnect them while they're in and to charge them. Disconnect the charges and reconnect them. We're good. I was going to do some switches. I've got some switches and plugs socket and stuff. And I thought I'm making a lot of work for myself. I don't need to do it like that. And so what happens if I knock the switch while I'm using it. And I'll cut out on power. It's going to come back home to me isn't it? Which is pretty good. But let's just get on and do this. I've got more of these things spare. All taken from another helicopter that I flew into trees a couple of years ago. I was trying to see if I could fly a helicopter that only had one pedder on top. Guess what? At that time I couldn't. At this time I don't know if I can either. So I can't bother with them anymore. I've got another one. I bought two and one for spares. Just in case I smashed one up. I did smash one up. It was so easily done to smash it up. I didn't bother using it. It was for spares so I'm probably going to put that flogging it up as well. I don't even flog it. I'll take a big tree branch to it and start hitting it and sell it. I'll speed through this bit because we're going to wait now two minutes for the thing to use up. Unless it's something interesting I can tell you. I don't think I'll get anything interesting to say. I've just got something in the post. Hold on. Okay. There's going to be something in the post today. There's something. Hello. It's Christmas. Oh, brilliant. Transistors. Transistors. These, if I remember, are complimentary two, two, two, two, two, two, two. I can't get it open. Yes. Ten of each. Ten of each. I shall get in ten at a later date. I just panted some of these. I saw a couple of few circuits I wanted to build that use complimentary pairs with two end two, two, two, two. But they're in this these like older style metal cases. And I thought, oh, they're nice and cheap. I'll get some though. Apparently guaranteed to be original, excuse me, genuine. And I'll make a little project look quite nice. That was in the post today. The post today. The post today. Solder on just now. I could just splice this, I know. But I'm not going to. If I can actually get the lamp thing out. Do you know what I'm going to do? I'm going to cut some. Because I can see I'm probably going to mess trying to get that result. I'm just going to cut them.  Okay. I'm going to take this up here. I'm going to take that off there. And do the first part of the modification.  Because what we want is we want this on here. Like so. So I've got two nice bits of solder there. So let's get these soldered on here. Because this means I can just connect this in at any stage. So the two other plugs. See what I'm doing. So there we go. So now that's going to be nice and easily to connecting to these two and to these two sockets. That plug. Into these two sockets that's going to get here. And I'm debating whether just to spice, whether just to trim this wire back here and just literally go to here. Or to try and go on to the solder joint. I'm just wondering what might be to my benefit. I think I'm going to try and go on to the solder joint itself. And if I can't I'll put two nice bits of solder on there. So I'm just going to go on to these ones. That's I think is going to be the situation. What's going on with this solder? It's like trying to tell it's a half way mark or something. Because it's tied up. Oh that's a bit annoying. I can't just unroll it. So it's the way that they put it on at the the facatory. What's going on here? That is annoying. I'd like to be able to just unroll. Oh it's dead again. I know it's not very good for you to breathe this stuff in but it does smell nice. I certainly shouldn't be breathing it in like that. But I've got to I need to buy some carbon filter and just set myself up with a smaller extractor fan. Because the one I've got is way too big. Way too over the top. It gets in the way now. And I'm using the phone stand. I've got a non-rechargable battery on charge. I just need to keep going on that. That's all I've got. It's only a milliamp. It's at 9.1 volts at the moment. Okay. They look like they've got enough solder on them. I'm going to stick a bit more solder on these joints here. Just to make sure there's plenty. I'll just clean that. There we go. Beautiful clean tip. Now in the other video I've shown how this takes around about 630 milliamps while it's running when it's got 12 GPS's and all that sort of stuff on the go. Okay. It might be worth me either editing part out of that video and splicing into this one or actually putting that video up as well. And having this as the quick see how it's done and the other one as the in-depth cutting through these bits and all that sort of stuff. We'll see. I just hope that now reaches. This is the case. This is going to be on the side just inside the case there. Brightly. I may have to cut the top of this out. Well that's fine if I do. Lovely. You don't want any sort of cloudy connections or anything. That's nice. Okay. If I just push those wires out of the way they're not going to be interfering with anything or each other. Which is the main thing. We don't want any short circuits.  Well what we've got to do really I suppose is plug one of these in and kiss goodbye to my transceiver. I say transceiver because we've got information that comes back from the quad to the display here. So it's transmitting and receiving. So transceiver. He's up all the soldering I've got to do. Is that really it? Oh I don't at all. Oh really? I can turn this thing off. I can turn it off. I can read in my tip to make sure that stays beautiful. Generally you end up doing little jobs like this. You end up putting more solder back on the tip. Just to ensure you keep it looking nice. Keep it looking nice. Just keep it performing nice. I've got no idea what's going on here. It's all in a mess and a tangling. A bit of a knock going on there. Oh my knife knife's all gone. Really scary. It's like pattern on the soldering. I've got another reel of that as well. I've got it sent to me free of charge. So now when I put these this in, I can literally just put this in here and that will fit back in the way it was because of those cutouts already there for the loops of course. And then all I'm going to do is connect up this. Maybe not that way, but that way. And I have that connected to four pencil patches. Not a problem. I'm not using the pencil patches. I should now be able to just put one of these in. Or two. Because they're paralleled. Gotta double check these connections again. Just because this is it and that way it's coming on to you. Oh, why am I starting to sweat? Oh, would you believe it? I'm doing it the wrong way round. Good job that didn't work. And that just means that the actual wires are the correct way round. This is the moment of truth. That's just one on there. It's just going to be a parallel connection for the other one. And there we go.  I've not had that before when I put the pencil batteries in there. Because that is like 8 volts, that's 8.4 volts. Loads of power. So, there we go. Now, I'm just going to take that out and fit these two batteries. That is quite annoying and deeper. Fit these two batteries like this. As it's going to be these that I'll have in now. Test everything out. I probably should try and do that like that. Because, well, I don't need to. Because even though the wires are plenty long enough I really do need the wires out of the way. I decided the other day that I was going to feed that down there because this will connect. As long as I can get these from, I don't mind undoing the back. But wouldn't it just be nice and convenient if I could do it all from the back of the panel just by sliding off the back there. And there is some space but I think what I'm going to have to do is I can't work out which way is going to be best. Because I didn't have these on when I checked it before. So there could be a little bit of a a little bit of a disagreement with what I'm actually saying. But it did work before just having the actual connection terminals and the charge and ones there and I could access them all from the back but I hadn't got these sold into place. So couldn't honestly say how that's going to be now. But regardless it's four screws and if it's, yeah, if I'm just like my little Simon thing the second time I'm changing the motor I don't even put the other point in the screws back in. Where's the point? If I keep crashing it, I look around and it just starts to come apart. I just clip it back together again and just come and fly. How lazy am I? But the reason why, because I don't want to be charging these with it connected because, okay there's a possibility I could but it's the balancing then between these they'd normally be another sense wire type thing going on and I'm not 100% proficient on what it is I'm saying right now. So please don't condemn me for not getting this exactly right. So I'm not going to try and preach anything all I'm trying to say is that I feel more comfortable disconnecting these when I'm charging because I don't believe that I can just leave them connected because these two circuits then are connected in parallel while I'm charging with two different charges and there's no sense between to make sure they both get charged equally it could be that just having them connected might mean that they try to balance themselves out equally but I don't know enough to say that's going to happen. That's why I've gone to the thinking of disconnecting whenever I do it. If anybody out there has got a chance to do it and you've got enough experience whatever to back that up then great I'd love to hear from you but apart from that I'm going to do it this way because I believe that I'm on to a more of a winner doing it like this. And as of all I've done is just put these in power. I'm pretty comfortable but I shouldn't have any fires or maybe I should leave that for a few minutes just no because everything I've sort of understand is that this should be okay. And as you can see look my little that's the wrong one isn't it? I've just got a little stick out here this is how I want it because this will move in oh that's not good I'm actually going to wire come out the thing there but this is what I thought might be easy for me to be able to do and then there I it doesn't matter which one goes into which charge because they're both the same two cell lipo 800 mA charges nothing that's getting warm is it? just my hands I'm setting a little bit because I'm nervous I'm getting this right and now this is going to be the thing can I actually put this on the back and have it all be in there and it's probably going to be a case of no you can't and you're right no there is a little bit of a a little bit of a thing but it's just all that means I've got another one out the way a little bit more or think of another way of putting these in to have it easier to access because if that's down there like that the rest of it is going to be okay the rest of it will be okay but if I had to take the back off to do it I might as well just took all the wires out of the way and not have that headache at all about trying to squeeze everything in because that should be okay let's see what I'm doing that should be okay so maybe that's what I'm going to do then so this is where I was thinking about putting the switches in to switch these batteries apart from each other not disconnect them maybe from the system but just switch them away from each other so I would just have a switch to disconnect the two batteries from being in parallel and that's it so hopefully there I shouldn't really have any issues because that seems okay again then if I screw it all back down that's good we still got plenty of any extra power so I was just thinking about putting the toggle switch up here so I've got two batteries on or one battery which then when I charge them both I'm going to switch on to one battery so I've got two separate chargers but of course I'd have to do that with proper isolation positive and negative disconnected from each other and that's the way I'd be wanting to do it so if anyone's had any suggestions on that I'd really be chuffed to hear from you and that's it I'm going to call that a bit of a win a little win I'm not saying I've not seen that even when I put it in there but then again my Jura sub batteries I think are a little bit depleted anyway I've been putting it on full blast before so that'd be first little modification I'm still waiting for the antennas to come through so I've got my distance for the visual and also for the range I took it up over 200 meters today and it's got some great footage great footage unfortunately after 12 minutes I forgot to clear off the stuff that was on the 4th gear drive and after 12 minutes sort of 37 or something it sort of switched off the recording I only know that because when I played it back here of course it tells me on the player how long the time is and I had loads of fun with it afterwards plenty of time so I still yesterday I had a 22 minutes flight out of it but I wasn't doing any recording so I was really chuffed with that because I had my phone out there with me I did the timer and unfortunately what seemed to have happened was I did a cut and paste from the 4th gear car to put it onto my computer drive and I made a new folder for it drone flights put it into that and went back to the actual drive to watch it and it was there not a problem did some other things, rebooted went back to the drive and I couldn't find the folder let alone the files the video files so I don't know what's happened there I don't know what's happened because I've got some great scenery great scenery because there's no wind no winds today, at least there wasn't I'm looking out of the trees now and they're blowing around a little bit but still no winds and I was well chuffed, of course I've got the screws in I'm not so losing looking around there so that's it guys, that's it for the first bit of modification I've got the extra power I've got extra voltage just a little bit I need a couple of volts above what you get from this I've still got the capability of just plugging this in with batteries so it is a case of just these 4 screws and to be completely honest with you it's not as low it's lots of screwing to the miter it's only a few turns and they sort of tighten up so I know me because I don't intend on throwing this thing around you can just put 2 screws in but I'll do the 4 screws because I'm not lazy today I've got that nipped down done that's nipped down type I've just heard one of the screws that I could hear rattling around in there just like I'm laying on the floor so maybe I won't be putting all 4 in there but I'm not right this minute anyway I'll have to have a little scoot around for that but I'll do that on the end time what I've got in that corner that one in the top corner but I will find you the ones and I will put them in I thought there was another one left in here but I must have chucked them both on oh yeah there is one left in here so let's do that again nice and quick look and full thing on the battery great stuff I just got to wait another about 7 hours now for this thing to charge I put it on I wrote it down over there there's no smoke I think it was 11.05 when I put it on to charge so it would be interesting to see because I've complained to the seller I've complained to the seller because this thing has taken about 6.5 hours nearly 7 hours to charge which means that the 800mA output of that charger which I know is that 800mA because look it wants 12 volt input of 800mA output and that's all it's drawing ok now when you buy these and you get the 800mA from pubsum hopefully you're better focusing on that but that says 800mA 0.8 amp output here they advertise on theirs now this never worked for me because they gave me a 120 volt adapter ok to plug into this well now I should have had a 240 volt adapter really it was being where I live and I didn't check it because because I just didn't think I'd have to honestly so but I was really hoping that the advertised time for charging those batteries which I think it's supposed to be like just under 3 hours is because you're using 800mA now I could I could connect it to my power supply I could connect it to that I could set up to 800mA put it into my volt and just directly connect but I wanted to try and keep the battery as good as possible for as long as possible so it's taking so long but pubsum have said that they're going to give me they're really confused with how they're going to do it they're going to send me out another one of these which they haven't got until the 7th of July which is fine or they're going to give me $30 in credit into my gear best wallet so I'm going to exchange it down that 5 5 credits type thing per dollar you have to get 50 you have to buy enough to get 50 of these credit points to get $1 but they want to exchange rate with me for $5 for $1 for my $30 refund oh I'm one for doing the figures so I don't like the idea of that because that means I get like less than $2.5 quid and these cost more than that to buy here or from there so I prefer to have another one of these things because if anything goes wrong at least you've got another backup I'll have 3 working ones which is great plus the iMacs anyway I'm on the shuttle success on the battery upgrade I was going to try and use these types of batteries but they just bloody won't fit in but I'd have time going across the top of the GPS I didn't really want to have that metal type stuff going across the top of the GPS so that's what I'm hoping is going to work out quite well I will do time checks on one recharge of these two and we'll see how that works out each pack by the way is 1100mAh so I've got 2200mAh on the 8.4 volts which will work out of course well one of these is 2200mAh but it's only 3.7 volts next upgrade antennas catch you later guys thanks for watching


So, okay, it's time for X-Trix update. So, one who haven't heard about X-Trix, and I think it's just, this giant mini PCI express from Factor, it's 30 by 50 millimeters, really small board. And we tried to use PCI express two lanes to get the maximum performance up to 10 gigabit per seconds, robust speed. We use LMS 7002 RFIC, and actually we're using two channels, so we do MIMO here. And as all our SDRs was, we use GPSDO on board. So we started our first X-Trix SDR, and it has GPSDO, so we're still using GPSDO on board, so it's our feature. We also try to put co-ox synchronization and all the stuff like GPO, SIM cards. So, you can see it's really packed, so there's no more space to add extra features. So, what's inside? So, we use RTX, currently it's 35 FPGA, where we have SIM5, so it's SIM level translation chip. We have a GPS model for GPSDO, but it can also produce URs, GPS data, if you need. Actually, since we're using PCI express device, it has really low jitter and really low latency. It's really easy to make, like network year 1588 clock source for the network, because it has GPS. So, but PCI express is not, mini PCI express card specification, as PCI express lane, one lane actually, and the second lane is optional. So we use both lanes, but not most motherboards support this feature. So for that, we develop special adapter. I'll speak later on. And for the motherboards who doesn't have PCI lines routed at all, so we add USB to five chip. So it's like a last resort, if you don't have a PCI express, you at least can do something using USB two point rule. X-Trix has 12 GPIOs where five of them has different pairs. So that's LVDS. You can do like really high speed data on this GPIOs. X-Trix use very efficient power system. I'll talk about it later. And we use all bands available from LMS seven ships. And the main feature was to support the most possible sample rate we can do. So it's above hundreds. So it's actually third to all KOTOSMODEF.com. The first talk was actually in 2016. So I'll try to reconstruct chronicles events during our development. So it's been a long while actually for developing and polishing things, but finally we are closer to final revision, the final production. So as you can see, there was several samples and we weren't happy with something. We'll try to improve in truth. And it seems we are like putting a second system effect like how X-Trix is second system, second SDR. And when you're doing second system, it's always easier to get into endless improvements. But what issues we're fighting with? So as I said, we tried to get as maximum sample rate as possible. So like LMS-7 documentation sales, it's theoretically it can do 160 mega-samples. So we thought that we can do it easily in our first revision turnout. That's not really achievable because even a 400 mega-sample rate, it means that it's 200 mega-gears DDR signal on LML on a line bus. And the line interface is CMOS. And the CMOS on that speeds is really tricky. Typical DDR RAM, DDR2 RAM, for example, use different file interface for that. But what we managed to do on our boards, it's 90 mega-samples for MIMO and the 124 CISO. And if you do some black magic, say that word, you can do a significant more. So what is the kind of black magic here? We introduced extra DC-DC for manipulating so-called VIO voltage. For VIO interface, we can change dynamically from one to 3.3 volts. So it's for both doing optimal performance and the optimal power usage for your application. So if you're doing like low simple rate, you can reduce voltage and it will give you extra power savings. And when you do need the maximum performance, so you can increase this voltage. But what we noticed in our design, doing more than 90 mega-samples in MIMO, it stops working when the temperature rise. And what I achieved currently, it's around 15 mega-samples per second in MIMO mode, but it works until 30 degrees of Celsius, so you need to actually cool the whole system to work with. And moreover, you need to do special calibration. So what kind of calibration I'm talking about? So it's all about DDR signal. Initially, DDR signal need to know special time to latch date on the best. So it's called like phase delay. Actually, DDR3 RAM, for example, has built-in mechanism in phase to actually find the best optimal point for this latch. DDR4 RAM is even more complex. They do like channel equalization for each bit and find the best like attenuation and other stuff. So we tried to do something similar here. So we wrote a special program that's doing LFSR stream of parallel bus and doing different phase difference, looking which data lane introduced some error. And based on that, we can find the best optimal phase for the mode. So you can see in this 140 mega-samples size mode, only like less two lanes, bit number two and bit number one are more flickery. And it's reduced more like noise somehow. And these bits are actually limiting for that speed. If you are doing like eight-bit RF signal, you can increase a bit more. Since the last bits will be like rubbish. But it's not the only issues for high sample rate. If you can get like 100 plus mega-samples per second in hardware, doing it in software is all challenging. For example, typical phosphor implementation on my laptop breaks at 65. It still can display something on more speeds, but it means they're constantly drop frames. So you can't see the picture in real time. So there need to be done more optimization here. Another part, it's really hard, not really hard, but it's challenging to get 12-bit roll streaming because 12-bit to 16-bit transformation at that point actually takes a lot of CPU. So I started to do special SMID instruction, but haven't done yet it, because doing really optimal ways is tricky. So we'll release it later. And what we can really achieve from bus performance picture. Actually, X2 PCI 2.0 means 10 gigabits per second it's what actually specification says, but it doesn't mean it's the actual payload you can achieve. Because first it use four to five bit conversion on the L zero layer. Well, on L one layer you'll get like eight gigabit per second. Then on a transaction layer, each transaction is up to 128 bytes maximum. And most system, some system, some modern Intel system and Xeon system and do this 256 bytes, but actually my laptop on the 128 that gives some restriction and do it control channel and other stuff that's all limiting up to like 6.8 gigabit. So it's not really like really efficient bus, but it's what you can really get. And our implementation of DMA is really efficient. So what I could achieve, it's 6.7 gigabits. So it's almost the theoretical limit. USB 3.0 is always the same picture. It says five gigabit per second, but it's only on net layer. So it does the same four to five bit conversion. And you'll get like four gigabit per second. So what we achieved in the USB 3.0, it's only 3.1, but I'll talk about it later. Another point was power optimization. Mini PCX platform factor strictly declares 2.5 power conception maximum. When we did our first revision of boards, we used three DC DC chair, north and two LDOs and turned out it was above three, was in most operational ways. So we found that we used a single LDO that was doing from 3.3 to 1.8 was for LMS chip. And actually it was like almost a Watt of heat dissipation. So we completely redesigned the whole power system for board. Now it's eight DC DC channels, all programmable and softwares. So it has a high to C. You can do any voltage from 1.0 to 3.3, but you need to be very like accurate because applying high voltage to low voltage network, you can just burn the chip. So you need to do like special care, that's why it's all hidden from software layer. If you need to do modification, you need just dig into like low layer library and try to tweak something. So we separate three DC DC lines, especially to LMS chip. So LMS chip use like three power voltages. So we have a special channel for each of them to get the maximum power savings. And actually the result is pretty good. For most cases, we are in the spec but doing something crazy, like doing MIMO channels, receiving and transmitting at the same time, doing preprocessing on the line chip and achieving maximum sample rate. Unfortunately, it goes above the spec, right? It's already impossible to improve with here. Another point, what we looked, although PCI Express is really a good bus, it's really a robust low latency, it's very hard to work with because most laptop nowadays doesn't have a mini PCI Express form factor. And the other point, Thunderbolt 3 is not really widespread yet. So as during previous year, Intel announced, so they like remove license fee for chip manufacturers for Thunderbolt 3 until we more open specs and so on. But still, there's not much Thunderbolt 3 in the consumer sector right now. So we have to stick for USB 3, especially for debugging, for developing and for other convenience. So initially I thought that it was completely impossible to do transformation from USB 3 for PCI Express. But luckily we found USB 3480 chips. It was famous in special R&Ds for DMA attacks and some security research on PCI bus. So they use it for many uncommon use cases, so but we used for exactly what it was developed for. So we're doing conversions from PCI Express to USB. But since the bus is not transparent, you can do DMA to USB 3 in point transformation. You need to write a special layer of software compatibility. So we developed a special library. It's already published in our GitHub. So you can use 4,000, any other PCI Express device that you want to use over USB 3. And actually the performance is okay. We were able to get more than 100 million samples in size and mode. So it's really useful. And one more interesting feature. This chip has 4 GPIOs, so I do, and I think it's really good to do GTAC. So when I do GTAC over these GPIOs using my simple Bing banging using Lib USB, just to rewrite the full FPGA image, it took me almost 40 minutes. That's not something, it's not really a user experience you want. After optimization in Lib USB, doing multiple transactions, so I was able to achieve only 27. So it was not usual anymore. But using 8058 macro control built into this chip, it was, I was able to get initial performance below 4 minutes and doing assemble optimization of bit banging. I was able to get like a minute, slightly more than a minute. And the minute is okay. So you can wait a minute to upload the new image. It's not an hour. Another challenge for doing transformation in this chip, it has limited number of in points, actually for end points, and each points can have four kilobytes for maximum. When doing like a real massive operation, it might be a problem. And actually it was. When I start and I wrote initial design using one end point, I could achieve on transmission up to 160 megabytes per second and the 128 on receive side. So what I did called inter-relief mode when I send odd packets to zero end point and even packets to first end point. So it's actually doubled the fee for size because it's operational kind of doing at the same time. And I could achieve more speed. Initially, Rix was more, actually Rix get more gains in two weeks. I don't know why, but the real disadvantage of this, you need to take care of some like USB timeout events. And when you get USB timeout event on first end point and you don't get any feedback from zero point, your data can be messed up. So your handling in the scheme is not so easy. Yeah, initially I wanted to add CDC interface for our GPS and SIM card, but actually there's no more points to do with this. And that's why it's not exported as usual. CDC, ACM device. And another thing that I noticed at working over live USB is more than 250 megabytes per second. It's where you can get the same jitter as in PCI express mode. So even doing real-time kernel, real-time option for stock kernel doesn't help much. So it definitely helps, but it's not like complete remedy for this. So probably kernel driver will help, but right now we don't want to do it, at least right now. But for other speeds, that's USB free, great. So what's it look like in FPGA? Well, we try to do in our FPGA design as simple as possible to use the least dependency possible. And it's like two bases. One bus is 64-bit, 125 megahertz. It's like DMA bus, high speed bus. And another is XA, XA is bus for peripherals. So we have simple UR, simple A2C. And we have a special course like USPI course for doing firmware update and to store some extra data, for example, some collaboration data and other things. And we have USB to core for thing for the reason where PCI express doesn't work. And although we introduced RISC-5 or soft core, initially it's using only for USB to enumeration. So USB to enumeration is done in soft core, but very useful for any applications we can do like tuning from soft core and doing some commands, some collaboration, any other scheme. So what's our current utilization? So we are using 35R checks now. Actually we occupy 100% of BRM. It's mostly the RX-P4 and TX-P4, but it can be reduced. It's like overkill to work well with any system. For example, if I use ATOM motherboard or Xeon motherboard, I can like use one quarter of this before it will work without any endurance for overruns. But using it on my laptop, it has this fancy 4K screen and when you do switching between windows, it can easily get bus stop for some time. And without proper buffering, you can get the same level of performance. For some system, it's a must. So we don't do any DSP here, so it's completely free. And we want to use it as an extra accelerator here. We are thinking of doing some acceleration for 4G, for LTE and other networks, but right now there's no release yet. And yeah, you can actually, it's almost one quarter of LUT, so you can add any other you want. So as mentioned, we add USB to support. Mostly, as I mentioned, not all mini PCI Express from Factor actually have PCI Express lanes and not all users actually need the 100 plus mega samples per second. But using it for like Raspberry Pi's and other stuff, it would be really useful for. Currently, I have an implementation of ULPI interface to end points. The enumeration is already done, but no host libraries is provided yet, so I can start developing for this. But hope to finish this work right after we ship the boards. So what's the current status of software? Actually, all our host libraries and kernel driver for PCI Express is already on GitHub, so you're welcome to use it for XTX or any other projects. And we provide some software for third parties. Definitely, we provide OPSDR plugin. Actually, it's not all feature implemented yet, but we are working with them. So if you have some application in mind, so let us know, we'll test. Whether this feature works fine, definitely JR Osme's DR works fine, then we started it, time with tech support. We will discuss yesterday, Osmo Turex also use our native interface. It was really interesting because in our stack, only Osmo Turex that was dependent on UHD like took really a leap boost and tons of other developed dependencies. And when we switch to using the strict tricks, we can get rid of like tons of our needed dependency. The FPGA code is not published yet, so it will be published as we ship the boards. And we are working on multi-strict synchronization right now. And definitely we want to get the more user experience, more like better user experience. So if you know what to test, hotels will definitely test this. So when we get everything all working, so we think how to, what to do next. And initially, we think that crowd support was a great idea to push the strict tricks. And one thing was what to actually put on crowd supply because we had so many ideas of strict tricks that can be combined with different FPGA options, with different temperature. It can be industrial, commercial, it can have GPS or can be without GPS. So initially we want to put many options, but it is a really bad idea for crowd source. It's more likely you'll get like few pieces of that, few pieces of that, few pieces of that and you run out in the higher costs and you had just increased price for the most options. So that's why on crowd supply, we just make one thing for each option. So it was one strict, one adapter for USB3, one PCI Express to mini PCI Express adapter and one massive MIMO package. So since it's just one USB3 adapter, I think it's a good idea to put everything we can do, everything we can imagine into the single adapter. So it was, it's what looks like our first design. In center, if it's not clear, it's OLED display that can actually display not just text, it can display graphics, it can draw like initial was ID to put some spectrum here and other fancy stuff. But we were afraid of doing another year of development on this, so we get rid of this. Yeah, you can connect the display driver data. So it's a brief history of our USB adapter history. So this picture of our first revision, actually it's pre-revision already and the last revision use six layer boards just to get rid of emissions on USB3 lanes and PCI Express lanes because current design has a high speed lanes on top layer and you actually can see it in spectrum. So actually what's our final design looks like? It's since in model, almost the same but without display. Yeah, it's here, actually I can pass around if somebody hasn't seen it. So what's interesting in our design? So as I said, we are fighting with power consumption and we want to have this SDR to be basically cooled. So that's why we introduced a special thermal optimization. So our case actually is a head sink to the board. So this aluminum brick and center is actually right below the LMS7 chip. So when you screw the board, it will attach to that heat stick. And all the excessive heat will be dissipated onto the case. So it's what's inside of this brick and it's what we'll look like when we get the final board. So actually our boards have been manufactured right now. We'll get during the next week and we'll can test everything is USB3. But yeah, another reason for that fancy board, you can actually remove the PCB from the case and work on table without case or you can install it in the case, so it's up to you. Another product that we put on crowd supplied was our PCI Express to mini PCI Express adapter. The main reason for that was since our X-Tig 4 utilize two PCI Express lanes and they're like no adapter on the market that actually used to PCI Express lanes. So our adapter use standard PCI Express X4 to our mini PCI Express socket. So it actually used to lanes and actually it has preamps, LNAs, GTEC and other stuff. That said, I should want to add that if you don't need all this fancy stuff, like no LNAs, no amps, no X2 PCI Express you can buy a very simple mini PCI Express to typical PCI Express on Alibaba for like $5 or something like this. Yeah, the only limitation it will be just one lane. So it's like performance for our so it has pre-driver, it's almost 20 dB the whole band. Actually, it has a small gain on low frequency but we'll optimize it due to low capacitors and the LNA gain is not so linear but it's probably LNA almost works here. So, what's overall status of our Karol supply campaign? So there's good news and bad news. Good news, so we have our hardware design finished and file prototypes either we get them or we'll be manufactured and give them soon. So no more optimizations are planned just like we need to manufacture it. The bad thing actually, we can't deliver initial date because one of components is only will be in July it's actually our crystals and we can't just use another crystal because there's no options for the price performance. So, what will be in future? So since Karol supply version has one extracts we are thinking to do two options like pro options mostly used for industrial embedded applications and light options and use small HPJ and for commercial usage. And the X6 it's not just a board it's almost a framework we'll be using to build some more products and currently there are two things we're thinking about it's M2 version but for M2 it's always complicated which form factor in which key to utilize. So we have a good idea, so please give our feedback because for us it's really hard to guess and another things we are thinking about to do is extracts to use parm to file this in. They may be during this year or may well not, we'll see. So thank you. As far as I understood you, you are not doing digital signal processing on the FPGA at the moment? Yeah, because everything is done on the LIMES chip. Yeah, but so you are streaming for digital baseband? Yeah. Well, I mean there is a down sampler built into the LMS7 chip so we can sample at a higher frequency than what we are streaming. Yeah, I just wanted to comment. So you said you have a native backend for Osmo tier X or something like that? Native what? Yeah, native support for Osmo tier X, yeah. Yeah, but so we are not talking about the UHD one then? Yeah. Okay, and where's that? It's on all GitHub? In your GitHub? Yeah. Okay, not in the OsmoCon one, right? Not in OsmoCon one. Okay, are there plans to? Yeah, there is a plan. Put them together? Or? Yeah, yeah. Because I need to do like more refactoring because what I did, I removed all UHD stuff and put my stuff so it can't be used with UHD. So we need to decide how to do better merge of this because there's no like abstraction in Osmo tier X to use one or other mode. So I had to replace some holes to be it more like compatible with the X-Trix. The cheap approach is what we do in Osmo BTS, which would basically be to simply link. So when you build Osmo tier X, you link one executable that talks to UHD, you link another executable that talks to X-Trix and you link another one that talks to the USRP. And I think it's fine. I mean, in the end, we're not talking about the 200 megabyte large executable but a very small binary. So I think it's okay that this way we don't need to introduce now big infrastructural changes. So we just, it's just linking different object files and we create one binary for each target. I think that's perfect. Yeah, that can work.


Just early on. This is not me. I do have some vague archery skills, but I'm probably not as good as he is My wife thinks I actually look a lot more like this guy He restores things in the UK apparently some people think I'm him and I am I've been working for a global insurance company JLT for the last 12 years My last day with him is on Monday actually, which is a bit scary in doing that, I've done a lot of different roles and one of them has been Putting together a UI style guide, which is something I've been working on more recently And that's the basis of why I'm here in front of you today Before we get into that though This thing here is a stair ramp combination, which a lot of people call a strap This is going back Rico took us back to the early 90s before I'm going back to the 1960s If anyone was the live back then then they're a lot older than I am Arthur Erikson designed this as part of Robson Square in Vancouver and the concept of this was universal design so that The requirements to to meet everybody's needs were built into the basic architecture Rather than something that's added on and as an exception This is a very famous Design the strap and it's there's lots of replicas around the world This is the first time that was built in the early 70s This is a really complicated poster that explains what universal design is and If I didn't like you I'd stick this on there, but I'll make it a lot simpler The principles are Designs need to be equitable. They need to be able to they need to be used by people with diverse abilities So no matter what? Disadvantages you may have coming in You'll still be able to interact with something Design should be flexible It should be able to be used in a variety of ways according to preference If I'm a left-hander should I not be able to use scissors or maybe you can design some scissors that work with both Should be simple and intuitive The design should make sense without requiring a manual Now this this is something that gets raised quite often we always talk about making designs intuitive in Practice it's not that straightforward when we talk about touch designs We say touch you I was really intuitive you can pick it up and it just works everyone knows what to do But it's not the case the first iPhone shipped with a manual explaining how to pick up the phone and tap it because people Didn't really know what to do. There is a lot of research behind it But a lot of our behaviors that we think are intuitive are really just us adjusting to our environment So always needs to be taken into account Your intuitive design for ten years from now won't be the same for the one that's around right now Design should be perceptible If you can't see it, it doesn't exist With young babies it takes them eight months before they achieve off object permanence, which is when you go like this They realize that you're still the same person there As adults and when we're interacting with something if we can't see that it's there We don't know it's there so Don't hide anything from from anyone and perceptible of course varies according to the different Requirements we've covered before being equitable and flexible If someone is Unable to use their legs then you need to allow them to use a wheelchair or something along those lines Design should be tolerant. Now. I've seen videos of people crying when they get an error message in a web browser you need to be aware of that when you're actually creating something that your Decisions as a programmer or a designer actually have a really direct impact on people's emotions and what we need to do is try to anticipate where people will fail and Ease them through the process so that they don't feel like they're doing a bad job when Half the time it's probably just a bad design in the first place Design should be low efforts. You shouldn't have to do gymnastics just to use something any Photoshop users out there if you've Got used to exporting images for save for web that keyboard combination is a nightmare The the guy who actually came up with that Did it almost as an aside because it's like we need to do something there aren't that many keys left no one's really going to use this thing anyway because he cares about the web and Every Photoshop user ever since has just hated the guy he wrote a blog post about it a while ago But forgive him because he didn't mean to Design should be Within the right size and space so appropriate and available regardless of individual abilities If I'm trying to access a train station and I've got a pram I should be able to get there just as easily as if I'm walking Moving on a few years the web came along Accessibility was a bit of an afterthought unfortunately But we realize now that accessibility is integral to what the web needs to do everything we do needs to be accessible at some point or other Joe Landman says he's one of the the members of the government digital services team in the UK Accessibility is separate from user needs because you might survey your clients and say, you know Do you need it to be mobile friendly? Do you need it to? To work on low bandwidth or anything else like that. Do you need it to be accessible? Don't ask that question because it needs to be accessible They may not know they probably won't know But then they'll hire someone who's got a vision impairment and are they able to use their products? Maybe not and you could affect someone's livelihood based on your decisions And the essence of what Joe says here is design or services should be accessible to all this is the crux of Universal design what we do should be available to everyone the internet is exploding around the world, especially as The next one billion users jump on With the mobile internet and it's really important that we actually make our services available to everyone who's there Now through my presentation. I will link to a number of different sites To save you a lot of effort. You can just go to my blog and I've got all the links in there If not, I'll be posting the URLs as I go anyway That's assuming you do actually want to follow along Now this is a UI style guide that I wrote working at JLT quite recently I've spent the last year or so working on this and the reason that we came out with with it was that There are a lot of different products across the company as I've said before JLT is a global insurance company Global means you have software development teams all around the world And each of them has their own idea of what the colors should be within the company logo and things like that Usually that gets handled fairly well when you have a good brand style guide The concept of a style guide and Rico touched on this before with the atomic design Is to actually have a universal reference For all your code all your behavior so anyone anywhere in the world can pick it up and just implement it and get it right You don't have to think about it one of the The keys when we came up with this was to actually make this as good as it could possibly be That's I think that's that's me to an extent. I don't like doing things half-heartedly So we set out a whole list of rules at the start of things that we want to do and They essentially reflect universal design even though I didn't realize it at the time The first rule is no dependencies when you're starting out a new library It's fairly easy to say this because what else have you got behind you? but No dependencies is a lot more complex than that because what I'm really talking about is Things like this bootstrap jQuery sent your touch jQuery UI you name it if it's a front-end library It's going to affect things at some point or other So we immediately got rid of that Ditching jQuery. I found was really hard. This basically what we did I Thought it was going to be bad. I've been writing web things since the 90s So when JavaScript came out it was exciting. So I've been writing it pretty much since language was first put out there JQuery came along and simplified a lot of things because there are a lot of compatibility issues at the time But they're not really there anymore and it was a big revelation for me to get rid of jQuery And actually move on to jQuery list code again. It's a whole lot lighter You don't have to load 67k worth of a library on someone's browser just to execute something and in the end All your code is really fast as well.  It's fantastic The essence of this goes down to what Marche here in board says Programmers credo. We do things not because they are easy, but because we think they were going to be easy There were hiccups I had to basically learn how to write JavaScript again because If you've ever done any hiring and so on says they know how to write JavaScript usually they mean they know jQuery and the they're not the same The dom has come a long way since jQuery first came in and you're missing out on a few things if you don't go native Practically speaking element query selector and query selector all take care of most of what jQuery does for you anyway The next and the big thing was adopting aria roles I'd always tried to make my code accessible over the years because I knew accessibility was an important thing But I'd never really tackled a UI library like this before actually getting into complex components So I thought it was really important to Embrace aria, which is the w3 standard on accessibility and make sure that we implemented those roles as well as possible Now aria roles and properties. They're basically an extension on top of html That glue everything together So if we saw with Ruko's talk about how having really smartly named classes Structures your CSS well aria roles actually extend html semantics to set a little bit more Just to give have that meaning that wouldn't otherwise be there if you've got a tab control or a Auto select or something along those lines The key thing with this and the reason that we have the no dependencies first is as Hayden Pickering says You can't have CSS or JavaScript without how html so you have to get your html right first If you're using something that's generated this can be hard But that's we're having a really solid CSS naming scheme helps you immensely I've integrated this library into old SharePoint and it worked So if you're having trouble with it, then don't be afraid if you can get SharePoint to do something you can do pretty much anything This is how I used to write Modifiers so this is using block element modifier or Ben We've got our global tab and the actual tab element Then down below is the selected state for that element. That's what we used to do Getting into aria roles. It actually changed things a bit because you can actually select on the aria states It actually that you're doing something directly with the element not on the classes This strictly speaking is no longer them and the way that I use them is to take the essence of it and then extend it Just to ease off the class congestion that can happen with them So strictly speaking if you are using them, you probably wouldn't do this But this is actually better. I find because it makes a lot more sense Even your JavaScript is a lot more readable as well Here you can see without knowing too much that I'm sending the selected state when I first got into this I got really over zealous and decided that These are your states are awesome. I can just write global selectors for them and Global in CSS is a bad thing. So writing Hidden true display none means that every time you've got something with our hidden true doesn't show What could be so bad about that? The problem is when you want to animate something then you can't just hide it immediately So that didn't really work So I quickly learn the errors my ways and Had a more sensible scoping naming scheme Once you get into Documentation, it's actually not too bad Reading w3c documentation is frightening at the best of times, but the Aria authoring practices guide is actually really helpful because it gets straight into Examples of what you can actually do which is really rare for a w3c thing So you can look directly on how they implement different roles and get an idea of how it's actually meant to work Unfortunately things aren't perfect. So there are other people's work out there hate and pickering. It's got a whole lot of our examples as well That can be a lot clearer than w3c ones. I Did find some of the examples in the area But linked from the area site didn't actually implement the roles correctly, which is a bit strange So I don't know who checked them But just do a bit of searching around you can get some really good Groundwork for what you're trying to do Speaking of which when I first had had to do a hierarchical tree picker I Found Leah veruse awesome, please which is as awesome as it suggests It doesn't quite do what I needed to do But it gave me a lot of the groundwork I needed to get started It's what we had was a really complex hierarchical structure and we needed a quick way of people to select a Particular node within that structure It's a UI nightmare. We've had tons of variations of this over the years until we came up with this I'll just jump to a demo to show you how it works The big problem with this though is there are no area rules for this There's a tree navigation view and there's an auto complete But there isn't something that does both so you need to read within the lines and Once you get into the rhythm of it the area roles make a lot of sense. I'll just show you what this actually does This is a live code demo, which makes me extremely nervous We don't need to see the code Everything's fine This is a really early prototype So when you're looking at how ugly it looks then forgive me if I'm typing in normally I can select things based on My what I've entered I can also use my arrow keys and select things I've not got that working right. I haven't Like I said, this is a crude demo I'll get the keyboard now later on but Combining the two made it really easy to work out what we needed to do one of the strange things with this is you still got focus on the Text input as you're able to navigate through the tree and as you type it filters accordingly But there is there are no guidelines for this. So you really need to go on your own to work it out Skip through those. Okay The next rule is trying to make things obvious and this is a lot of universal design right here Needs to be simple and intuitive perceptible low effort right size and space Text sizing is the first one if you can read this then you're doing really really well and There's not really in that much to say about text sizing Alan It's usually not as good as it could be. I can make it a bit better. It's like you can read that alright, but They bump it up a bit more than it makes a lot more sense and the problem that we have here is We sit at these beautiful screens all day Designing this stuff the people who are using it are not us They're a cricket umpires who use our things and we know they can't see anything So you need to actually accommodate for every user that's out there In essence what you really need to do is bump your font sizes up a couple of points Maybe just 16 point as your baseline you will get some Hostility if you try to do this on a transactional site But it actually works quite well most of what I've found is that you get just change resistance Everyone's used to seeing something in 12 point. They'll complain if it's 10. I'll complain if it's 14 Once you change it to what it is they'll get used to it in a couple of weeks and I'll be fine With some transactional sections you do need to adjust the font sizes according to what data you need to display on the screen That's okay, but just make your baseline that little bit better and your users will thank you for it in the past We used to have Really small interaction elements because when you're using a mouse you can hit a really small target on the screen This study shows that object size can have a very direct influence on the perceived weight of things It's talking about physical things, but it still applies to virtual screens that are designed on the screen How big an element is Determines how likely someone is to interact with it if you have interactable elements such as buttons You need to make them big enough for someone to actually interact with them So the basic rule of this with mouse and keyboard was there for a long time That something needs to be a big enough click target that you can actually reach it 10 years ago pocket super computers became mainstream and The rules changed a bit because the difference between a fine cursor and a finger is quite significant So we had to change we actually had concrete targets here that gave us a better idea of what we needed to aim for and We know what humans are like because we can measure ourselves every human fingers pad size is 10 millimeters So when you're tapping on something you've got 10 millimeters that you can actually work with That's a whole lot bigger than a mouse cursor We can generally hit targets as small as seven millimeters Once you actually take into account screen resolutions and the like You're basically looking at a minimum of 24 pixels By 24 of any given thing that you want someone to interact with Google's old standard is 22 by 22 they've increased that to 24 But this is the minimum the ideal is probably around 36 pixels In order to actually make sure people can tap it at all The thing I found with this though is even after you've done all your measurements You need to test things in a browser. You'll notice with material guidelines for spacing There are clear spaces between each element as well That's just as important as making sure something's big enough to interact with Because when you get onto a real device and you're there with your your clumsy thumb or something like that then How are you using it's going to be a bit different from when you're designing this in a mouse and keyboard situation So testing on devices really useful for this if you're talking about color contrast then Something like it in a Shahara plate like this would come into a lot of people's minds This is to test for color color blindness and the key part of an issue higher plate is that The contrast between the green and the orange hues here is not great Which makes it really hard to see if you're colorblind you can't really work out what's going on If they adjust the contrast color blindness I know you'd still be able to work out what's happening and that's really what you need to know with color blindness the W3C has put together a standard that you need to aim for and they measure the difference between the The contrast of between the text and the background of any given scenario So you might have light text on dark or dark on light or whatever it is But basically you need for something that's less than 20 points in size. You need minimum four to one Contrast ratio if it's greater than 20 you need to aim for a minimum of three to one How you do this is the hard thing I've looked thoroughly in the past and I haven't yet found anything I can give to designers to say hey Just run your designs through this and you'll make sure the colors are going to be contrast friendly Some tools that we're out there in the past don't work anymore. It's a bit of a mess Fortunately on the browser in the things. It's a bit better This is a plug-in for Firefox, which immediately luckily the W3C site actually passes all this that's good But it shows you each element that's on the screen and shows you whether it passes the The contrast tests are not relevant to the size There are similar plug-ins in every other browser that you can think about as well I highly recommend doing this as soon as you actually get someone else's design and have a look at it Run it through this color contrast analyzer and you'll see right away if something needs to be fixed This can be really bad When you have to tell a client that the color of their main logo isn't actually accessible and You need to change it. It's painful But yeah, you have to deal with it sooner or later if you don't then people just can't read what you're doing so make the choice one of the complex things with this is when you have complex background images and This is a site that actually lets you test that out I've found over the years that you get used to it basically so if I'm looking at someone's design I can usually tell if it's going to throw an error or not in the contrast analyzer Until you get to that point you need to use tools like this and even still I don't trust myself because human perceptions are not exactly stable So this shows that the dark blue over on the left and the white is okay But when you're moving over the text doesn't actually work anymore Once again, it's down to the programming end to test this out You could throw this to a designer to get them to test their designs But it's quite ugly at the moment. You still need to have this conversation for its work one of the key things to remember with color contrast is It's not really about People who have vision problems necessarily It's about especially these days with mobile devices using that device in a particular situation If I'm out on my my phone in bright sunlight my contrast is not going to be as good Even here with a projector projectors have notoriously bad color So everything we've got off on the screen is a lot harder for you to perceive than it is on my really nice display here There's never a situation where you can assume that there's not a contrast problem. It's going to pop up sooner or later Because we're using We're using websites and applications everywhere these days It's not just in a locked room in the basement anymore because we're human We don't do anything right Having really strict contrast ratios don't exactly work Even though this is the recommendation from the W3C. It's a good starting point, but it's not everything Now the team at Shopify the UX team actually looked into this because they had the designers complaining I've had this myself. Well, I'll say that it looks okay to me and Here you are telling me this tool says it's not that clearly the tools at fault The computers bad not me always the computers fault In this situation, it's actually true to an extent Humans don't perceive colors in any equal measure We see a lot more green spectrum than we do of any other color because that's how we've biologically evolved What it means in practice is that objectively the Color on the left the black on the red is a whole lot clearer there in the one on the right Actually, that's left and right. Sorry the white on the the red is Is meant that doesn't actually fail the contrast, but it's actually easier to read Pretty close depends on what screen you're looking at and the like but this is where the maths don't actually work anymore and The maths get a whole lot more complex, which is not so great when you're talking about design things The last thing you want to do is talk to a designer and say you need to learn this formula You'll probably get thrown out But all this really basically tells you is There's a lot more to it than basic contrast. This is from a 1992 book on highway designs on signs The signage on highways has to be legible. There's just no way that you can get away with it You can put something up on the web and no one will notice and it's alright If you get a sign that someone can't read and there's an accident someone dies. You're responsible for that. That's not so good and This formula actually shows that our perception is correct At least in so far as the text we think is more legible genuinely is once you take into account some other factors Putting the obvious bits together I'll talk about buttons for a bit because buttons get murdered often and deserve a bit more love When Apple introduced iOS 7 they scrapped all the The touchy-feely, you know make it look like a real-life objects concept and went through the flat design That's pretty much everywhere Microsoft introduced this first with Metro Which is now called something else because they lost the rights for that But Apple were the ones who got the device out. They made everyone actually pay attention Metro actually works really well because the borders between everything are really Really clear whereas in iOS 7 they're not I Don't know how big the tap targets are down the bottom. I have some idea. This is it's a bit of a gray area Because it does depend on where objects are on the screen and how you interact with them so you can Change the rules a little bit, but generally speaking. This is not a great idea and Google followed suit. They copied apples copying of Microsoft to copied it from someone else This is from the material guidelines The first button here the floating action button. It's got a nice shadow on it It's pretty clear to see that I might actually interact with that The raised button in the middle. That's got a slight shadow You can still looks like I'm going to do something the one on the end. What on earth is that? How How do I even know where my fingers meant to go or my mouse? How what's the border of it? What do I need to do? What's the hover state going to be like? I've got no idea. This is in the current standards and you will often get this where someone will say Well Google did it so it must be okay, but it's not it's really not This is an example from materials design guidelines, it's a coincidence that it's Australian I didn't read this in any way On the left is their example Left is their example of what is good On the right is their example of what is bad. I completely disagree with it They've made it quite garish that you could tone down the shadows a bit on the On the buttons that have them, but at least you can actually see what you meant to interact with This is a really bad UI trend. We do know better and we should do better than that what you really need to end up with and is Something along the lines of this This is from the US government design standards, which is currently in writing You can really clearly see how big each element is You know that it's going to be something significant because it has a stark contrast for the background The text is big enough to be legible. It has animated Interaction states so when I hover over if I focus it on it I can actually see them interacting with the element This is where you need to be anything less than this you're making it hard to use Apple have learned their ways with iOS 10 They're getting a lot closer to this kind of thing, but the backlash is there I mean, this is still really getting back to what Microsoft did with Metro all those years ago They've really had it right in the first place. Just when it got copied the the message got a bit lost along the way But the essence of this is actually providing appropriate feedback if I push against the door I know how heavy the door is just for an weight of it. If I interact with something on a computer I don't have that physical thing yet Haptic feedback is still a bit of a work in progress We need to give some kind of visual clue to people that something is going on and that's where this is absolutely crucial keyboard access This is one of those things where earlier on I said we do things because they we think they're going to be easy and Then just not Keyboard access is probably the most important part of accessibility because Great, you've got a mouse to do a lot of things. But what happens if you don't? what if you're you're blind and need to use a brow keyboard or Countless other reasons that you may not be able to use a mouse Even for user convenience enabling keyboard access makes a big difference because using a mouse or time all the time can add a bit of a strain If you're not set up in a perfect economic way and very few people ever are It's not that bad. I thought it was going to be more of a nightmare than it is in practice There are only a few keys that you actually need to support and They are tab enter space and the arrow keys That's only a few keys. It's not that terrible to think about The spec for it is really good as well The W3 the specularia spec actually goes into the detail of what happens when you press each key If someone wrote this as a software spec for you when you received it You'd be over the moon for the detail that goes into it. It's really good So of all the ugly W3C things that are all standard specs generally anywhere This is one of the better ones that's out there It can get confusing trying to work out what's going on which is where examples make a lot of sense and they link to them Sometimes it just takes a bit of playing to work out exactly how The key is interacted with each other trying to remember the different focus states takes a bit of effort It's a bit like playing with animation the first time It's a lot easier than it sounds when you first get into it But once you get things right it makes a lot of sense Starting out with keyboard nav the first thing I actually got stuck into was tabs. I thought how hard can tabs be? Tabs are a lot harder than you would think Fortunately, I mean the first thing I do is basically put into Google tabs Accessible and that's what you should do. Just add area or accessible to your search and it will just Make everyone in the world a whole lot happier Remy sharps tabs came up quite prominently and he's done a lot of work on Looking through the history of tabs on the web how poorly they've been executed and how we can actually do things, right? He set down some ground rules of what he wanted to achieve and He got most of the things right at first he was using jQuery, but then he got rid of that because you don't need jQuery to do tabs There are a few other little bits and pieces, but I took from that and turned it into this Which is I've written a blog post about this as well This is basically a fully accessible working Demo time Tab and it's a tab so it's not going to be the most exciting thing you've ever seen before I'll try to make it interesting somehow Using normal mouse I can just interact you can this is free for concept again So don't pretend these colors are anywhere in production or near it Um That's great. I can select the different tabs if I start using Keyboard I can select them as well So here I can select my tabs based on what I'm doing on the keyboard One of the things that's often missing with tabs is state and a lot of things on the web is you we lack state You refresh the browser and it's like I've forgotten everything about you I'm just going to refresh that and it's remembered There's the storage API that's out there. It's been out there for years. It's really well supported All you need to do is throw a few values into it and you've got something that works You might question what that's got to do with accessibility, but accessibility is Really about design and making things work properly Irrespective of people's needs or requirements Making a tab that refreshes and remembers which tab you've got highlighted is something that should just happen Because it does in other environments on the web. We say that's too hard. It's not going to do it But it's not that hard So a little bit of effort we can actually make these things happen Since my demos work on in the skip through One barrier I ran into with keys was Trying to catch keyboards a keyboard events And I thought having written JavaScript for almost as long as the language has been around I thought I knew keyboard events really well, but I didn't There's the standard w3c way of capturing a key which is vent key and That returns something like up arrow returns a string description of what the thing is enter space something along those lines Unfortunately browser support isn't complete Chrome supports it as of version 51 We're up to version 53 now. I think so it's only recent I 11 and higher do the edge does as well, but 10 and lower don't Safari doesn't support this at all. Although since Chrome support it now, then I assume that Apple will deem it worth copying Basically you need to support the old way which is char code and that returns an ASCII key And If you want to get over an older you need to do this JavaScript is an awesome language because you can just do this in one line Which is fantastic if I have an event dot key Then I'll grab that value if I don't just give me the char code if I don't they give me the key code This captures everything use a switch statement and You're done You'll notice with the non-standard string in the middle This is IE's non-standard interpretation of how things are meant to be because they did theirs before the spec was written properly and Naturally Microsoft can't do anything right exactly the first time around Such credit for them are trying in the first place, but they haven't updated it unfortunately So at this point I need to show a kitten slide every time present something Everything's perfect, which is great My last point which I've touched on already is go with the flow Accessibility is making sure you don't break things that are already there and This is one of the things if you ever work with Disney then The first thing they tell you is you do not touch the mouse Whatever you do you can change the colors in the background you do whatever else you want to do do not touch the mouse For us on the web the mouse is the browser We have our expectations of how we're going to interact with the browser the back button should work The forward button should work. I should be able to refresh it and this is going to happen. It shouldn't be that hard These are the things in the principles of universal design that we need to actually take into account I've already showed you that demo on that I'll finish on this point There's a company oxo that makes consumer products Pealers for example and they were founded in 1990 by Sam father when he saw his arthritic wife trying to use Apeela and she was having trouble So he spent quite a bit of time prototyping you can see all the different versions He went through to get to the final product to make a peeler that actually worked for her because he thought Why can't so on who's got arthritis use a peeler? The end result is far superior than the peelers that were there before and Oxo exists as a brand not because they make things that adhere to universal design, but because they're products good and There are a lot of sticks I could throw at you and say how you might get sued if you don't make something Accessible and so on I could do that, but I'm not going to the carrots are much more enticing If you make your products accessible then you make them better You make them better for everyone that uses them not just the ones who absolutely need them You will be able to find stuff Also, yeah, you know, thanks for a great talk sir You spoke a lot of methods to make things accessible my I have a slightly different question. What have you found any methods to make? Developers designers more, you know how create more empathy towards Users who need, you know, accessible interfaces because I see that like hugely missing Is there anything that you've come across to make that happen? yeah, I've done a lot of work on forms design in the past and If you show someone a video of someone crying when they get an error message, they will change their ways It takes education basically Videos are really good at this There's an Apple engineer who is working on the Apple watch and when you see she's blind and has been from birth when you see her Actually able to do things on her own. It's extraordinary They're countless videos out there You see someone who's got a hearing aid for the first time and if you're not crying by the end of it There's something wrong with you an accessibility That's that's almost the stick level of things that I didn't really get into But that's what accessibility is is about turning spent Personally, I think it's just good practice to do it anyway, but yeah, that's where it can really make a difference if someone's unmoved by Just doing things well then show them a crying child I'm asking a question from the person who's being the bill angle and If they ask you what's the percentage extra that you might have to invest in making it accessible Am I clear in my question? Yeah, so how much extra work is it to make it? Though it should be inclusive of the design process itself, but for someone who has not embraced the process said that yeah the automatic question Well, that's where the stick arguments come in Understand the emotion part but from a business angle when they start out They would probably looking at the money that's into it. Yeah. Well, the money that's into is not getting sued. That's really important The money that's into it is if you adopt these practices at the right stage, which is immediately I've found it actually made my coding practices better I've been a much more efficient programmer by adopting the ARIA standards That's something I touched on earlier where the the ARIA states make a lot of sense selected hidden, etc You don't get those interaction states on normal HTML elements, but you do with ARIA So it makes your code better. It makes you more efficient means that you'll get your product out Really doesn't make any difference. It doesn't add any overhead. Would you have numbers from your experience like this probably I mean You can say related to say at the end it would have cost us so much if you had not done it earlier But it's not a big number to think of say a 10% or a 20% extra effort It takes to be more conscious about these things But it shouldn't take any extra the risk is when you're adopting third-party components. I mentioned bootstrap. I hate bootstrap Bootstrap things if it works well, it would be awesome, but it just doesn't they They try but they just don't get things right and they're their goal is not the same as ours It is really tough when using third-party components relying on them and a lot of developers do I maintain and have done for a long time that it's much easier to write your own code rather than customize someone else's The problem is getting the talent to actually pull that off Yeah, unfortunately, we don't have more time. Please take all your questions to him offline. Thank you You can reach me on Twitter My blog and the slides will be up on slide share later on. Thank you


have you noticed that entrepreneurship is not easy? If it were easy, then everyone who was an entrepreneur or many people would be successful by now, and they would be continually successful forever. But as you might know, if you've been on the journey, it is a lot of ups and downs. And the more you try things, which is what you need to do to reach your potential, let me say that again, to reach your potential as an entrepreneur, you have to try a lot of different things, things that you don't know if it's going to work. And so in this short video, I'm going to share with you a resilience process that I've needed to do myself many times to bounce back from setbacks because, well, as an experienced entrepreneur, I have tried a lot more things than most people, and I probably have failed, so-called, more often than some of you, maybe most of you. So when I was in a discouraged state, this word came to me, breathe. Now I took a few deep breaths when I heard that, you know, my mind. But then I got curious, what else breathe could mean? And over the coming days, I created this acronym for this resilience process, and I hope you will give it a try or borrow any part of it, make it your own, share it with others, whatever you want to do, I hope this is helpful. So breathe seven letters, each one stands for one part of the process. So let's get going on this. B stands for breathe. So the very simple first part is just when you're discouraged, when you are feeling down, confused, frustrated, sad, whatever it is, just take a few quick deep breaths.  So B stands for breathe, just a few gentle, deep breaths. The next letter R stands for rest. So take about 15 to 20 minutes to rest. Don't do anything else. You know, don't try to do things when you feel down, when you feel discouraged or negative.  So rest, give it a break, at least 15 minutes. I don't say not too long, you know, don't rest for days, and walla in discouragement, but just rest for 15 minutes, 20 minutes, 25 minutes. I like to take naps, and that helps me a lot, even if I don't fall asleep, I don't fall asleep, most of my naps, but at least lay down, relax, feel maybe some kind of healing energy from the earth or from from my divine source, however you want to imagine it. So R stands for rest. Take a break. Don't do anything else. And then after the rest, the next letter is E. E stands for extract the good. In every situation, no matter how discouraged or down you feel, there is something good in that situation.  I did something and nobody responded, or can you appreciate something about what you did? Of course you can. There is always some goodness you did, something you were willing to try to say, well, I'm glad, at least I tried that. Something you did, you can appreciate, or maybe something you learned from that experience. That was, okay, next time, I'm not going to do that. I'm going to do something else. Some good has come from the situation, whether something you did, you can appreciate, or something you learned. So extract the good. That's what E stands for. Extract the good. Okay. A stands for ask for guidance. If you believe there is an invisible source of guidance around you, within you, ask that guidance, pray, journal, do whatever asking helps you, and just sincerely ask, I'm feeling discouraged right now, and I would like some encouragement, and I would like some guidance on what some good next steps are. Make a sincere ask of your invisible source if you believe in that, and then next, ask visible sources of guidance. So you might have a friend you can go to, a supportive colleague, a coach, a community of people that you trust and that are responsive towards you, or some kind of Facebook group, or something like that. Go and ask either, okay, so my recommendation is ask at least three people. So promise you'll do this because sometimes you'll need to ask three people to get one person who saw your message and was able to respond quick enough to be really helpful. So ask three people or ask a group of people and let them know, you know, I'm feeling discouraged right now. Maybe you could share just a little bit about your setback and to say, do you have any encouragement for me or any guidance for me? Anything you want to share is great. Either way, thank you for being a supportive person in my life or supportive community, just like that. So ask for guidance. That's A. The next one is T. T stands for trust.  So trust that's coming to you. It is and trust that better days are coming. Better days are coming. I really believe this 100% that we are all, our souls are somehow magically mysteriously on a trajectory towards ultimate bliss, total knowledge, total love, total connection and understanding. I believe that's our souls are on an inevitable path towards ultimate bliss and we can't screw it up no matter how much we've so-called fail. We cannot screw it up. It's just this process is way more powerful than our free will. You know, we have free will within a certain bounds, but then our soul's journey towards ultimate bliss is inevitable. It's happening. So trust that better days are coming to you. Next letter H stands for help someone, because when we are feeling down and especially when we're in a negative spiral, essentially it's continually focusing on our small selves and our problems and our situation that it's always very, very focused on ourselves. And it's hard to hear. I know it's true, but it's also hopefully easy to hear that the easy way to out of that is to focus on helping somebody else. And the simplest way of doing it these days, I'll tell you the simplest way, go on social media, take, take 10 minutes, set a 10 minute timer so that you don't do it too long, and then go on social media and comment on two or three posts and comment in a supportive, appreciative way, because you know when you receive comments, you get uplifted too, right? Especially when a comment is supportive and appreciative. You get uplifted, even though you might not write that person back, even though you might not let them know, you still feel uplifted. So do the same thing for two or three other people just in a 10 minute time window, comment supportively, appreciatively on two or three posts, simplest way to go and help someone these days.  And then finally, E stands for experiment again. Now it's time to get back into action. Don't wallow too long, don't procrastinate or think you have to rest for two weeks. No, you can bounce back relatively quickly, maybe not 15 minutes, but this process of this whole thing might take you about half an hour or 45 minutes or an hour or whatever and maybe take half a day, that's okay. But go and experiment again, try something again, try something small again, make a social media post, announce something small or something, do something simple to get out there again, experimenting in your business. So I hope this is helpful. I hope you'll give it a try, borrow the process, modify it to yourself. If you use it, let me know how it goes, or if you have your own resilience process that works really well for you, you can also comment below and maybe help someone else out. So thank you so much for joining me in this worldwide community called the entrepreneurship community. We're all in this together. We all need to support each other. So thank you for being here and I'll see you next time. Thanks again.


Here we get the dozers in front of each in quite a different direction. To make it pretty good progress, first recording that was in hometown. Division A, Division B is in rush field but not doing a whole lot. Firing kits drops off the pitch. Okay, so to get some resources in there. The first priority will be supporting the dozers up top. We do have recourse from the crews in the canyon bottom. If we could give them a drop as available, it will allow them to start working on the dozers. Two helicopters working right in front of those crews on that side. If I could, we'll have a problem. They move one of the helicopters over onto the right flank. They're trying to establish the way up the hill there. I'm just going to stay here on that mech and I'll get your hands full. I want to keep all the aviation resources into your control right now. We'll keep the radio traffic down and you know the priorities. Okay, just on a level. Okay, that sounds great. Nick, I've got a division seat out in front of a division trolley on Cranon. He's up on the point here. I think I see him. He's got the engine with him. It's just a matter of getting out there and getting in. It's going to probably hit into the next three inches. It's not doing a whole lot. Okay, John, good work for me. Thank you. Yeah, I'll work myself down. Not sure to seek from the bottom of the canyon and follow the hoseway. Okay, I'll be very sure. Dozer 3 on 10. Down, I am. Dozer 3 is 3 on 10. Yeah, keep your heads up. It kind of works its way at the bottom of this. This drain is down way down below you there. Backing out, finding some air. Copy, Jay. High-five down if you want. High-five is up there. You can just command down and find the division seat. Air attack, I see. Dozer 3, I see. Yeah, go ahead for Dozer 3. Dozer 3, find yourself a good safety island back up on top of the ridge. It's going to come up in a few minutes. Dozer 3, copy. You've got 40 with you. 41 down the way. I'm going to work my way into the block. You've got to be in the block. Those are 40 division seats. 247, 727, okay. Those are 40 up on top. That's high-five, high-five good. Dozer 3, come on down. If you see any hose-fests on the line, we'll just bring them in. Back down, we will show up. Dozer 3, Dozer 10 and 3. Yeah, go ahead. Yeah, we'll pull them up over here to the north. Yeah, I'm sitting in the block. Jamie, you got good eyes on me? I look okay. You're fine. I'm herosable. 2555, division B. We're up to about 50 feet. There's 200 feet an inch and a half. You can grab that on your way down also. Okay, we'll look for it. Thank you. No problem.