[014] IcoBoard Software Defined Radio Project - Hardware

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] hi and welcome back to the open tech lab in this video we're going to be messing around once more with the IEEE cobalt now those of you who've seen my previous video will know all about it basically it's a plug in hat board for the Raspberry Pi as you can see here and it features the lattice ice 40 FPGA now the lattice ice 40 is of particular interest to me on this channel because it's the first FPGA ever to have a completely open source synthesis tool chain now on my previous video I did all kinds of experiments and demonstrations of the sorts of things that it's possible to do with this board and if you'd like to know more about what an fpga is and how to use this I recommend you go and check that out first but in this video I've got a little project plan to try and take this board a little bit further and see what we can do with it and so I've ordered from Aliexpress a couple of these little digital-to-analog convertibles and these are pretty cheap they cost $25 but to me they look quite promising they have two little analog devices so chips on them one for the digital to analog outputs and one for the analog to digital inputs and they each have quite a bit of bandwidth and moderately respectable sample rate so I think these boards might offer us some interesting possibilities if I can get the FPGA to drive them successfully so I'm quite excited about this little project it should be quite interesting as usual everything I'm gonna do in this video is going to be done completely with open source and we have a little bit of building to do so we better go ahead and get started now my reason for building this device is that I'm interested in using it for software-defined radio applications now to achieve this I need to find myself a nice fast analog to digital converter board it doesn't need to have ever so much resolution eight bits should be enough but it does need to be nice and fast to give us enough bandwidth now I was curious about what was available at a low costs I was searching around on Aliexpress and eventually I came upon this search term FPGA ad which spat out a few interesting products and as we can see as we scroll down here you can see there are a variety of different boards different prices different sample rates and different bit debts but I eventually came upon this range of boards one two and three and there's a few others of these around and these are if we take a closer look at them little ad boards but they also have a digital-to-analog converter as well and at the heart of this board we have two analogue devices chips and 89 708 125 mega samples per second DAC and then 80 90 to 80 30 32 mega samples per second ADC so nice fast converters on this board and also it's nice having that transmit capable capability in addition to the receive capability should be really helpful for doing some various RF projects so that's why I went ahead and ordered this board it seems really appealing now as we scroll down through this page you can see there's quite a lot of information listed here lots of photos pin out and scrolling down a bit further we've got the frequency response and information about the filter and so on but I was looking for some more official information like a datasheet from the manufacturer and typically I find with Aliexpress sellers they don't really often link through to the actual manufacturer at the board so you have to do a bit of Chinese sleuthing to try and figure out where it came from now the first thing that popped out to me was this little bit of text on the boards where it says hae-jin dot org and I was curious about this so I typed that in and as you can see this Chinese language website popped up and if we feed that into Google Translate we can translate it into English and as you can see it seems to be the forum for this board so it's people talking about fpga technology and so on and we get this company name our links along the top which rings a bell because if we look at some of the other project products listed on aliexpress they have of Airlink written on them also so that's one thing and the other thing is I noticed the model number in some places the aan 108 coming up so I really want to try and find a data sheet for the a links an 108 now I was trying to find the official website for our links and if you search for Alex on Google you won't get anything particularly relevant in the first couple of results and that's because Google tends to penalize websites the not in English it will tend to only show English language results and it seems to be quite a popular English name for other companies that have nothing to do with this FPGA board which is why I turned to buy do in this these cases now Baidu is a Chinese language search engine very popular in China and of course that's a good place to try and find some hidden Chinese information and if we type Alex into Baidu the first search result we get is a link to a link CN which is the official website of the a links company now I was completely aware of unaware of these guys they seem to be a manufacturer of various fpga boards and if we have a look at their product lineup they have all kinds of different fpga development boards and they seem to be rather like a competitor to digital interacting but in the the chinese space which is really really cool now one thing i noticed was that if as i'm clicking around here i I noticed the term black gold listed quite a lot on this site so I was curious about the meaning of that term and if we type black gold into Google Translate here and translate it into Chinese it gives us these two characters which exactly corresponds to these two characters here so it seems like their whole brand is black gold and all their boards have black black solder resist and gold pads so that seems to be their brand but what's really cool is that this term black gold in Chinese is said hae-jin hence why the forum for a links is hey jean org I guess that's why they chose makes sense now as I'm searching around in this website if I use Google Translate helps get it into English we can go into the peripheral module section of the website click on the adda module hoping to find a whole list of products and lots of information about them and there's nothing in fact there's nothing about any of the modules listed on their site here so I don't know if there's a current issue with their website or if they removed all the products from it for for some reason I really don't know why so at this point I'm not doing that well with my datasheet so one other thing to try is to try just searching on the hae-jin forum for any information about the aan 108 so if I just search for that and yeah there's no results in there either so I really don't know if it's gonna be possible to find the datasheet so far I'm out of luck but this wasn't a complete waste of time I feel like I learned quite a lot about the board and where it came from and that one thing that's really interesting to me some of the products that Airlink creates so I was having a look around on Taobao Taobao is a Chinese trading sites useful for buying things from China unfortunately you can't buy any of these products in the Western world the sellers on Taobao don't ship to the west you'll need a re shipper if you really want something from Taobao which is a whole nother story but just looking through their products various sellers selling on Taobao you can see there are a few different boards as have some really powerful looking ones which may be worth acquiring at some point in the future and if we click into this top one here I'm really interested in the peripherals of this board so if we buy the luxury pack for three thousand rim B what do we get if we scroll down we get this binocular camera module a couple of different analog to digital converters here and a TFT screen so it seems like Alex create a large variety of really cool preferable modules in this 40 pin point one inch header format which is really exciting I'm really interested in these and I've been searching around and these aren't the only peripherals so I found a couple more for example this gigabit ethernet phy in forty pin point one inch head are really really cool that's really fast I'd be certainly interested in acquiring one of these at some points if I can do some FPGA Gigabit Ethernet it would be really interesting for a future product and that's a really low price as well so must look into that at some point in the future so let's take a little look at what we have on this board so on the DAC side we've got the 89 708 DAC now this back has a differential output which means that two versions of the output signal are being sent out one positive and one inverted and so the output the signal is converted into this network of passives here and there are two mirror images of this network one for the positive and one for the negative output and so the true output of the DAC is the difference between the positive and the negative now the network here is a low pass filter which is an anti-aliasing filter and this is used to remove any unwelcome products of the conversion any high frequency spurious tones that shouldn't be there these are all filtered off by this LC network so that we just have the fundamental tones that we want then this differential signal is fed into this a DAT 56 op-amp and this is being used to convert the differential signal back into a single-ended signal and then we have a second a DAT 56 op-amp just over here and this is used to drive the outputs we have a little twiddle e the potentiometer here that's used to control the gain of the outputs and also this op-amp is being used to do a level shift because the output of this board is minus 5 volts to plus 5 volts full-scale about is 10 volts peak-to-peak whereas the output of the DAC is from 0 to 3.3 volts so we need to do this at mapping of that one voltage range into the final output voltage range then on the a 2 D side we have a bit of input protection here and we've got a couple more inputs used to basically do the reverse of that process to convert that 10 volts peak-to-peak output to the 3.3 volts peak-to-peak that's needed by the ADC which is the ad 9208 then there's not much else on this board apart from power supply we've got a 3.3 regulator here that powers both the DAC in the ADC and then over here we have an MC 3406 t3 which is a switching regulator and with the help of this inductor in these capacitors here it generates the negative rail for the output so on the supply side we have +5 volts coming in through the connector but because we need to be able to generate a minus 5 volt output as well we need to generate that minus 5 volt supply rail which that output or PAMP needs and hence why we have this switching regulator which is able to generate that inverted output and that's basically everything we have on this board now in order to get the ico board and the ice for t FPGA working together with the converter board we're going to need to link them together somehow and to help us do that the ico board has these four flat flex connectors which i've spoken about in my previous video so we need to make some kind of adapter that the converter board can plug into over here and then we can connect that to the ribbon cable and through to the connectors now interestingly the connector on the converter board here only has 34 pins compared to the other hand links peripherals which have 40 pins so I guess they didn't need the full complement of 40 and decided to save a bit of money by making the connector narrower here but whatever adapter I come up with I'd like for it to be compatible with the other Alyx boards because I might want to use those with the ico board in future but that should be no problem to do so my plan is to lay out a little PCB here with the point one inch header that I can plug the converter board into and then have a little flat flex connector that the ribbon cable can plug into on this end and that will plug through to the i/o board so here we are in kicad and you can see I've got my schematic here and it's pretty simple we have our 51 pin flat flex connector here we have our 40 pin point one inch header for the expansion board and we have an extra 10 pin point one inch header which i've used for putting through some spare connections so not all the i/os that are routed through on the flat flex connector can go through to the 40 pin header because there are not enough pins so the extra three iOS put on this two by five header here and also the peripherals require a 5 volt inputs and this 5 volt input is not available on the flat flex connector there's no 5 volts on the flat flex and so for that reason the 5 volt input is on this extra point one inch header also and that is basically everything in this cinematic apart from these two test points down here now these are a bit of a work about for an oddity of kicad in that I want a couple of mounting holes on my board and I want these mounting holes to be through-hole plated and I want that through-hole plating to be bonded to the ground plane and for this reason I've added a 1 pin passive component to the board in the form of this test point so these two test points are not really test points they're actually representative of the mounting holes so our design is pretty simple now one thing to note is that if you're thinking of designing your own pause expansion board for the ico boards watch out for the pin numbering because pin 1 this end of the flat flex connector is pin 51 at the ico board end and similarly pin 51 at this end is pin 1 at the i/o board so it's very easy to end up getting the pin numbering reversed now fortunately the guys who designed the ico board had the good sense to make the power wiring on the flat flex Americal so even if you do get the numbers back to front at least you won't have reverse voltage going into your peripheral board because it's not possible the the power pins are all symmetrical with one another which is very very fortunate but even so you don't want to get your numbers reversed you need to make sure they're the right way around so do take care with that now kicad is definitely my go-to PCB layout tool but it has a couple of user interface oddities which are actively being worked on and i think they will certainly improve within the coming months and years but for now for anyone who's thinking of getting into kicad layout I'll point out a couple of things in the schematic editor once we've captured our design we need to assign part numbers to all the parts which I've already done here to do that we click on this button and this annotate schematic dialog allows us to go through and automatically give the appropriate numbers to all the symbols that we've laid down otherwise we would just have P question mark J question mark J question mark and so on for all the resistors and capacitors and everything else on the board here so once we've given everything part numbers we then need to click on this button cryptic button it's not in the menu but you do need to click on this button run cvpcb to associate components and footprints which is extremely important so in kicad the way it works is that we have all these symbols on our board and then we need to associate the physical components which we're going to lay down on the PCB so for example with our 2 by 10 pin a 2 by 5 pin point one inch header that's just a generic to point a by five connector we need to go in and say this is going to be a male header it's gonna be straight not right angle and it's gonna be a point one inch header and so on and so on for all of these things for the two test points we need to say that these are going to be a 1 pin component which is a sort of generic hole in the PCB which I'm gonna be using for a mounting hole now one thing that was a problem with this board is that there is no support in the libraries at the moment for the 51 pin flat flex connectors that I need there are no schematic symbols in the library for 51 pin double row components and there's no support for any compatible connector in the library either so I had to extend library to add support for both these things and add the symbol in and go and also design the footprint which is going on the PCB which took me a bit of time to sort out and I'll talk about that a bit more in a moment anyway once all the parts are associated with the footprints we can export the netlist so we click on this button here and this pops up and we need to export in pcbnew formats and this is going to export a file containing all the net connections between all the pins on our devices and the footprints that we've selected so let's click generate and save and now we're ready to import this into our PCB layout so here I am inside PCB new which is the kicad PCB layout editor so the first thing I need to do is click the netlist button and we'll import the netlist that we'll just we just generated from this path here so if we load that in and here you can see I've got a bunch of footprints or lying on top of each other so if I just separate these out a bit you can see we've got the footprint of the flat flex here the footprints of the 40 pin header and two mounting holes now no longer on top of each other so you can see these footprints are here in the layout and they're connected together by these white lines these are the rat's nest lines and they're to indicate how these two pins these pins are going to need to be connected together in order for the layouts to conform to the schematic so what I need to do next is exactly position all these parts to a good position that I want them to be and draw an edge cut line around the outside of the PCB and then I can go ahead and track up and connect all these pads together as they should be connected so here we have my final design for the board and I'm quite satisfied with it so what you're seeing here is the point one inch headers one and two and the flat flex connector and the mounting holes and the edge cuts and so on now I calculated the location of all these things numerically and inputted the coordinates to get these things exactly where I wanted them to be I didn't really want to leave that kind of thing up to chance so having those things inputted precisely into kicad is really nice to know that the mechanical shape of this board is exactly what it needs to be and then with all that stuff lady and I just went in and linked all the tracks up now fortunately I was able to link almost everything up on the top copper of this board which is really nice to have and it means that on the backside there's practically nothing there at all apart from this big flooded copper zone and a couple of wires that didn't quite fit onto the top layer a couple of power wires had to go on the bottom layer here but apart from that it's just one giant copper fill which is fantastic now before I move on I just want to share a couple more tips about kicad PCB layout the first is the design rules you really need to set these up these define the track width and the via drill and the clearance for the tracks and what you do is you define different classes of nett different classes of wire so in this design I've got two classes one is default and that includes all the signal wires in this thing and then the power wires are pretty similar but they're a bit thicker and the via drills are a bit wider to increase the current handling capacity and then you go down here and assign all the different nets in your design to the different classes and the benefits of doing that is that it means that you have one centralized location that defines the the thickness of the wires and so on which makes it a lot simpler and you can just go and change these values if you need to rather than having to manually change every wire in the design if you needed to change that for any reason so that's the design rules the second thing I want to point out that threw me for a bit of a loop when I first started using kicad is the poured copper now there is this add filled zones tool here and you just click on it and it asks you to pick a zone and you pick a zone and then you start drawing and you get this hatching shape coming out but you don't see the the filled poured copper appearing on the board and it doesn't actually get created until you go in here and click on the design rules check with the ladybird button and do the design rules check and it checks your design and will tell you if you've got any clearance violations or anything's wired up wrong of course in the error messages but also the side effects of doing this is filling out the poured copper and then suddenly the poured copper zone will appear properly which well I didn't figure that out I needed to find this and it took me a while so hopefully if you hear this you'll remember s and you won't have the same problem now before we move on we can have a quick play with the 3d layout view in kicad and as you can see it's looking gorgeous I love playing with this thing you can see a whole design see how it's going to be laid out make sure that it all fits together properly feels great now if as you see the connectors here these two point one inch headers were included in the standard library of kicad so I didn't have to do anything to get these to appear however because the footprint for the molex connector the flat flex connector in the middle is a custom footprint I had to go and also model the 3d model of the flat flex connector from from the mechanical drawings which took a little bit of effort but in my opinion it's well worth it it helps build confidence that the design is laid out the way I want it to be and it looks great now zooming in here you can really see how very very small the pins on this flat flex connector really are and this presents quite a challenge in terms of how this connector is going to be soldered onto the board so I've decided that the best way forward for this is to bite the bullet and do some reflow soldiering with solder paste so not only will we need to order the PCB but we'll also need to order a stencil for the solder paste here so for this job I'm going to be using ash Park the open source hardware park to produce my PCBs and they're a great service a lot of people are using OSH Park so all I have to do is drop my PCB file or into this little box I don't have to mess around with Gerber's or anything like that I can just drop the kicad files directly in which is really really nice and then those files will upload and it goes away for a couple of seconds and then it comes back with a quote and they stare saying it'll will be able to produce three of these little boards for a mere seven dollars 25 which is an absolute bargain so I can put that order in and then for the stencil for the flat flex connector here I'm going to be using ash stencils now our stencils despite having the very similar name to OSH park for the PCBs they're actually separate people a separate company but as it happens they also provide a very very low cost very efficient service so I've heard so I'm gonna be ordering a smallish stainless steel stencil and by the looks things that's going to cost me between ten and fifteen dollars again absolute bargain so I'm gonna get that submitted also and hopefully they'll have it cut and sent back to me within a few days now as I mentioned I found an issue with the kicad library in that it has no support for the 51 pin flat flex connector that I want to use and the support is missing from the symbols library schematic symbols from the footprints library and from the 3d models library so all three have something missing there so I decided that I needed to build up the models for these things so that I could make my own board and I figured that if I was going to do that work I might as well make it's good enough to send upstream so that other people can use this component also and I decided to also integrate the whole series into the ins of the kicad library so that we don't end up with the library growing in piecemeal and this turned out to be a lot more work than I expected it to be it shouldn't have been particularly hard but I ran into some various pitfalls which I'll explain so that you can avoid them if you're thinking of doing the same thing so I would say the most successful aspect of this little project was my usage of scripts to generate all the different component parts and as I found it does make things a lot easier when you want to add a whole series of components to the library because all you have to do is generate an algorithm that can make a single component and then you can use a batch processing approach to generate all the components in a single operation which makes things a lot easier it would certainly be extremely laborious to input all of these parts manually in the visual editor it will become extremely tedious and it will be really really hard to keep everything nice and uniform because inevitably mistakes would creep in and all that kind of thing and it becomes very difficult to make changes if you see something that you thought was correct and later discovered it wasn't it's very hard to go back and change the things you did in the visual editor and very very tedious so scripts really really make things a lot easier and I don't think I would have been able to get this series into the library if I hadn't done it this way because they have a the high standards for allowing things into the library now back in the bad old days the kicad library used to be a nasty mishmash of all kinds of different components all drawn with different styles and rules but in the modern age we now have the kicad library convention document the KLC which is the set of rules which the library maintainer czar using to validate that submissions are in conformity with the rest of the library and so the quality of the library has improved greatly but if you're new to working with kicad library and making submissions it can certainly be quite frustrating trying to make a submission and get everything right because it's quite hard to know everything that's in this document on the first pass because there's quite a lot here so there those high standards are there to ensure quality but it does take a certain amount of tenacity to get those submissions accepted now if you make a push to the github repository make a pull request there are some automated scripts that will automatically tell you if you've got any of these things wrong and that helps a little bit but there will also be a bit of back-and-forth getting your submission reviewed correctly and ultimately it's all for the good of the library to make sure that everything is as good as it can be so that others can benefit from having a high-quality library to use now some of the issues I ran into were related to a lack of understanding of the established practices for submitting to the library and other issues I had were just down to bad luck and one of these is that the kicad library has recently undergone major restructuring changes to improve it so previously all the different component libraries were in separate github repositories for example this connectors molex doc pretty just contained footprints for molex connectors which was the way things were done and there were dozens and dozens of different git repositories for all the different categories of components whereas now these have all been unified into a single library which is a great improvement of the way the library is structured but unfortunately I was trying to hit this target just as it was moving away which made things more difficult now one thing that would have saved me a lot of time is I'd asked a question in advance from the kicad library maintainer x' because as it turns out my feedback from them happens way too late to save me from making all kinds of mistakes so the way it transpired as I went away and made a library submission as best I could and uploaded it onto github and made a pull request and then I found out a whole load of really vital information that I do it just wasn't aware of and if I'd known that in advance they were save me a whole load of rework and this happened several times over before I actually figured how my library submissions had to be done and it was particularly bad for the 3d models and as it turned out in the end there was a repository hidden away that I wasn't aware of where there was a whole framework of scripts for generating the 3d models for all the different molex connectors and so rather than doing all this abortive work that I ended up doing in different ways I would have just been able to use the framework of scripts that was already available and that would have saved me a whole load of reinventing the wheel so if you're planning to make a submission to the kicad library be aware of the forum try and talk to people in advance it will save you a lot of time now previously it was possible to use open s CAD to make the 3d models for the library which is what I used at first due to my own familiarity with the language however in the modern age it's no longer possible to use open s CAD for this task because step files are needed with every submission which open s can't cannot export and the reason for this without going into too much detail is that open s can thinks about 3d objects in terms of 3d triangle meshes whereas step files contain a mechanical description of a 3d object which is rather a different thing and it's not something that open s CAD is capable of handling and therefore we need an alternative ways to generate our models and given that I only use open source software on this channel the main alternative available is free cat now it was certainly quite annoying having to redo all my models once again in free cab but it wasn't all bad because I learned a few new things made a few interesting discoveries about the various plugins and workbenches that are available to help ease this process perhaps the best discovery of all was about the CAD query programming language which is something that I've been hoping to find for quite a while now the reason I mention this is that I'd previously did a video comparing free can't I open s CAD and free CAD as I explained it is this visual way of making CAD models whereas open s CAD is a programmers approach and I discussed how I liked the open s CAD language I found it in some ways a bit easier to do my modeling as a programming language than doing it the viz the visual way which is a bit counterintuitive but that's just my opinion and the problem though is that I discovered that the open s CAD language has certain limitations to it and I was hoping in that video that it would be nice to have a way of using something like open s CAD with the Freak add geometry engine which is a lot more powerful and it would be nice to have a programming environment with all the benefits of open s CAD but built on top of the free CAD open cascade engine and it turns out that that is exactly what CAD query is so if we look at the code here for word that model on the other side you can see a little bit of CAD query language here in the middle and I'm not going to go into too much detail about this it would get off on a bit of sidetrack but basically just to say that the cab query programming language is Python based so if you know Python you'll have no problem getting into it and I find it overall a slightly less elegant programming language than open s CAD overall but oh but it is certainly a lot more powerful in what it can do particularly when it comes to things like organic curves and sweeps and lofts and so on which open s CAD is simply not capable of producing it this time so I'm very glad I found out about that and it might be worth me doing a tutorial on CAD query sometime in the future so at the end of all this I finally have my submission included in the kicad library and that includes the schematic symbols the footprints for the pads and the 3d models and the connectors and it took me way longer than I was hoping it took me several weeks worth of evenings which is very very frustrating in the end it shouldn't have been this difficult it was partly my fault but I got through it and you can use these connectors in your own project if you want to however just as a nice little kick in the teeth at the end of this project I discovered that while I've been going through all this effort of figuring how to get these connectors included in the library molex had decided to retire the whole series so I think you might still be able to get one or two of these connectors but the whole series is end-of-life figures so I've been waiting a few days and everything I ordered has been delivered so I've got my PCBs I've got my stencil I've got a few stickers thrown in for luck and I've even got this handy plastic card for a solder spreader now if we take a closer look at these boards you can see they're looking absolutely fantastic they've got aa spark signature purple solder resist looking gorgeous these silkscreen is looking crystal sharp on both sides really nice and the main thing that I love most of all is the gold plated enig finished pads and the benefit of the gold plate is in ink finishing is that it is completely flat it provides a much flatter surface than hot-air solder levelling and so this board really lends itself to reflow soldering which is kind of come in really handy but the first thing we need to do is remove the remnants of these breakaways where the board was broken out the panel and to do that just a needle file will do the job and you can pick up a set of these on gearbest for just a couple of dollars okay so now we're going to apply the solder paste and you can pick up a couple of tubes to the solder paste for a couple of dollars on banggood now just be aware that you will need something to push the solder paste out of the syringe it does not come with a plunger so I recommend looking around on Aliexpress or wherever to try and find something that you can use to push it out you could use a simple plunger although it'll be a bit difficult to get enough pressure to push it out there are also electric plungers that you can get to push these out and they're also various handguns that can be used for pushing the paste out but I actually just 3d printed one and that's one of the nice things about having 3d printer also be aware that the syringe does not come with any kind of a nozzle so you'll need to order a few of these nozzles as well so that you've got something to squirt the pace through now for anyone who hasn't seen solder paste up close before I've put a little blob of it under the microscope and as you can see it consists of millions of tiny solder balls suspended in a clear flux gel now for this experiment I've chosen to use old-fashioned lead tin solder because I think it's gonna be easier to work with and I think it will flow better however the lead is really nasty and toxic you don't want to get it on your skin you certainly don't want to ingest it there's no safe amount that you can take into your body and it causes brain damage so you should treat it with care which can be rather tricky because it gets everywhere and when it dries it's really sticky and nasty and it's now on impossible to get it out of your clothes so I certainly recommend getting some latex gloves you also need a plan for how you're going to dispose of it safely when you're done with it so I would say that most of the time it's probably preferable to use lead-free Wragge compliant paste instead now as an optional extra off stencils will sell you these plastic laser-cut corner pieces which I've taped down to the desk and you can see they're holding my board in place okay so now we're ready to apply the solder paste so I'm gonna bring in the stencil here and position it as precisely as I possibly can now I'm gonna put a bit of tape on just to keep this in position but I'm also going to be applying pressure okay so now I'm gonna come in with the syringe and why there's some solder paste and I find that as I push the plunger in on this thing it builds a bit a bit of pressure which causes the sort of paste to slowly oozed out so you've got to be careful that you don't end up over pressurizing this thing because you'll end up wasting a whole load of solder in a big puddle big blob when you take the gun and put it down but that's looking pretty good okay but it's quite an excess of solder paste I didn't really need that much but never mind so now I'm going to use the spatula just to spread that on and remove the listen make sure it's properly applied to all the holes I reckon that's looking pretty good right so now I have to do tricky part which is to very carefully remove the stencil vertically try and minimize the amount that I sponge everything together it's not looking perfect but we'll go with it and see how it turns out hopefully the solder resist will cause the solder paste to head towards the pads and away from the gaps between the pads so now we have the hardest part of all I need to bring the connector in and I really don't have very steady hands so this is gonna be tricky I need to bring it down and just land it really really precisely into position that could be better but it could be worse so now I'm just gonna try and slide this exactly where it's good to me and that's actually looking pretty good to me that's looking not bad in terms of positioning not bad at all let's see how that works out now in order to perform the reflow there are some quite low-cost tools available that can do the job for example this Gore deck 863 available from gearbest it's a soldiering station and it has a nice little heat bed on top and this could be used to heat up the board and melt the solder or if you're handling a larger number of boards and you need something a little bit more professional there is this t9 62 infrared reflow oven available for 232 dollars on Aliexpress and this device allows you to program in the temperature profile of the solji'll using x' and then it will take the boards in the drawer and you can make it go through the correct cycle for the reflow so these are some options that are pretty low cost but I'm planning something a little bit more basic still so here's my reflow setup and it's pretty primitive and very low cost so what I have here is a frying pan and inside the frying pan I've capped and taped the board down to prevent it moving from moving around and then I'm going to heat the frying pan up with this Payne camping stove now if you're planning to do this I certainly don't recommend you use a camping stove indoors it's not particularly safe you'd be much better off with a portable electric cooker or a portable electric hot plate of some kind but I'm just doing this based on what I can throw together and I'm gonna try and take care to keep this as safe as possible so what I'm gonna do is I'm going to heat up the board inside the frying pan hopefully it'll get up to a temperature where the solder paste will melt and I also have a thermocouple probe taped to the board also which is being read out by my unity UT 61c multimeter here and then I also have that connected off to the PC through the serial port and I'm going to be using Sig rock to make a graph of the temperature so that we can keep track and try and compare it to the data sheet for this solder paste now in order to receive the temperature from the multimeter we're going to be using Sig rock now I've spoken many times before outside rock and its support for logic analyzers but it also has extensive support for many other kinds of lab tools including data logging devices and multimeters such as this one now to receive the temperature we can use Sig rock CLI so I've got this command here ready to go we're going to be using the UT 61 C driver in serial mode and I've specified the connector that's the serial port is connected into in my PC and I'm going to be logging the output continuously so if we go ahead and run this command it takes a second start and then it will start logging all the values that the multimeter is sending so if I put my fingertips around the probe you can see the temperature comes up to my body temperature there and it's coming out nicely now in this case I'd rather use instead Sig Rock meter now Cigarette meter is an unreleased application in the Sig Rock Suites which will allow us to plot the output on a rolling graph so if I kill Sig rock CLI here and then we just need to make a few adjustments to the arguments for cigarette meter running cigarette meter there and we don't need the continuous option so now if we go ahead and run that takes a second to start and you can see the graphical application has popped up we've got a nice graph here and we're getting a live plot of the values that are being sent by the multimeter so if I heat the probe up with my finger you can see we're getting a nice rolling plot of the temperature and we can specify how many seconds of buffering we have how many seconds of history so we can have it set so a short period like this for 30 seconds or a bit longer for a process which we need to watch for a longer period of time now Cigarette meter is nothing particularly fancy but in my mind it doesn't really need to be so really I see no reason why cigarette meter couldn't get an official release right now I certainly hope it does so let's light the gas up so the PCB is heating up and we're almost at the melting point now there will be some discrepancy between the reading on cigarette meter and the true temperature of the solder paste and that's simply because my thermocouple probe is not thermally bonded to the PCB so there's probably a little bit of an air gap there now I can see that it's beginning to go on the end pin oh yeah it's really beginning to flow now there we go that's flowing nicely going along the edge there that's looking great now when I see this it always reminds me of the t1000 off terminator as the metal flows around fantastic okay so let's turn the gas off and let the whole thing cool down now looking at the results under the microscope you can see the results are not quite perfect that I wanted to dry joints and a couple of solder bridges but that's nothing that can't be fixed if I just bring the soldering iron in here and just melt this out and as a final touch I just need to use the toothbrush and a bit of alcohol spray to remove the flux residue and any solder paste balls that might be still hanging around so just inspecting the results of the process up close and it's looking pretty good to me I'm pretty impressed with how this has turned out especially considering the low budget way in which this was applied and if you couldn't tell already this is actually the first time I've applied solder paste in this way in the home environments and I'm really pleased with the results now of course it wasn't perfect the leakage of the solder through the stencil is a problem so I think in future what I'm going to try and do is cool down the solder paste now of course it wouldn't be ideal to put the solder paste in the fridge I think with food but perhaps if I were to put it in a sealed bag and then put it on ice for a while that would do the job of making it a bit more viscous but otherwise I could not be happier with the results so here we have it I've got not one but two of my adaptor boards and I've soldered in the point one each headers I've plugged in the converter boards I've plugged in the ribbon cables and the power wiring and it's all looking nicely assembled it's looking great now the only problem I've got here is that in its current state it's really going to be unstable sculling around on the desk like this so I think this is a good excuse for me to make one of my trademark 3d printed mounting frames so here is my finished design and just like last time I've done the design work in open s CAD and the reason for that is that I didn't actually find out about CAD query until after I done quite a lot of the work on this design already so I continued with open s CAD in this case but I'm going to be looking for a project to improve my CAD query skills on sometime in the future anyway as you can see I've gone to a bit of effort to model the various boards and I think this helps it's nice to see everything and how it fits together it gives a bit of confidence that the 3d layout is correct I got a third part the STL model of the Raspberry Pi and this is imported just over here and then I've modeled the D to a a to D boards in a very simplistic way and also I've made a model of the adapter boards that I've put in the middle here and it's all looking great now if I comment out these boards we can see the frame itself and I'm really pleased with how this works worked out this time the code is much better structured than it was previously and as you can see the frame in the middle here consists of this outer frame with a bit of reinforcement and then the various mounting holes around the surf for the various boards and then the feet and so on and the way this worked out was that this whole frame is made of three fundamental units the outer outline of the frame the pillars that's the board's are screwed into and the feet and the way this works is that I made all of these parts parameterize abul so that they can be reused so for example the outline of the frame is seen here around the outside with that certain width and thickness but also this web this reinforcement web around here is the same thing but a little bit taller and a little bit narrower so that we get that same shape but we can get a t-shaped cross-section around the outside and in the same way I've made it so that these pillars are parameterised as well they are actually parameterised in terms of the top width the bottom width so they can be formed into cones and also the number of vertices the resolution of the cylinders is also parameterised and an example of where this is used to some extreme effect is with the webbing that you see round here and in amongst these individual pillars this is there to support and strengthen them and the way I did it was to make a version of the pillar where the width at the bottom is 200 millimeters or so and at the top it's zero so that we get a cone and then set the number of vertices to four so that we get a nice pyramid and the way this works out is that if I intersect these pyramids with a version of the frame outline here what we're left with is just these triangular webbing supports here and that's how these are designs so it's nice to be able to reuse a single series of component parts over and over rather than having to redefine the same set of geometry multiple times I'm really pleased with it and it's worked out very nicely the whole thing is just 280 lines of code in total and if you want to have a play with it you can find all the source code and a lot of other information about this video in the show notes so here we have it I've got the project all mounted up and assembled in the frame and I'm really pleased with how this is turned out I think this is looking fantastic so now we're ready to try turning it on and testing it out so here we have it the demo rig is all up and running and as you can see I'm just using one of the a 2d d2a boards to begin with the other one I'll try out later so this is just a simple test to see if this thing is working correctly so I've got my MHS 5200 a signal generator this is a nice low-cost entry level signal generator if you're interested in picking one up it's chinese-made and I've configured it to put out a 1 megahertz sine wave tone which is being fed into the HD input and then this analog signal is being converted into digital parallel form and it's flowing through the ribbon cable here and into the FPGA and then I've configured the FPGA with a very very simple hardware design that's just doing a simple loop back and the data that's coming out of the A to D converter is being directly fed back into the D to a converter to convert it back to analog and this signal is then flowing through this network of filters here and then it's being sent out through the detail out put coaxial connector here through this coaxial cable and into channel one of the oscilloscope and one thing to note of course is that the output here is 50 ohms terminated hence why you see this T piece here and this has a 50 ohms terminator on it also and of course the reason for this is that if you don't properly terminate the coaxial cable here you will probably get some nasty transmission line reflection effects and typically oscilloscope ports are not terminated this has a 1 mega ohm impedance so we need to put the Terminator on the end to make sure that's done correctly anyway as you can see why 1 megahertz tone is flowing after the signal generator making its way all the way through the board to the FPGA and back out again and making its way into the oscilloscope and you can see we're reading a 1 megahertz tone on the screen so in the very simplest sense this is working but let's try putting some different signal into it and see what we can discover about how it's working currently now if we take a closer look at the scope screen you'll probably notice if you're looking carefully that the signal quality isn't exactly ideal and so if we look closely here you can see there's a series of stair-step like artifacts in the output and there's a reason for this and that reason is the two chips the A to D and the D to a are not exactly matched in their sample rate so the ADC has a 32 mega samples per second maximum sample rate and the D 2 a has a much higher sample rate of over a hundred mega samples per second and so unfortunately at this time I'm kind of under clocking the D 2 a so we're not seeing the D 2 a at its maximum sampling rate and the thing is that with a d 2 a you need an anti-aliasing filter to remove those stair steps in the outputs and the the anti-aliasing filter on the board has been designed for you to run the D to a converter add a hundred mega samples per second it's designed sample rate and so at the moment we're seeing an aliasing effect on the output because the Nyquist frequency that the D to a converter is producing is nowhere near high enough to actually be properly attenuated by the filter and so we're seeing these aliasing effects just because we're running the D to a converter way too slow so the remedy for this is to take that 32 mega samples per second data coming from the ADC on the inputs and up sample it's inside the FPGA to 100 mega samples per second and that would involve interpolating the data points with something like a sinc filter for example and that would do the job of filling in the gaps between the samples that the ADC is giving us to give us a nice smooth curve and the spare steps would then be really really close together and they will be close enough so that the anti-aliasing filter on the output would remove them entirely so next let's try boosting the input frequency and see what happens so here we are at 4 mega Hertz 5 6 and you can see the aliasing effects are getting ever more dominance 10 megahertz 11 12 13 now we are approaching 16 megahertz now this frequency is significant because this frequency is exactly half the sample rate that we're running the ADC at this is the so-called Nyquist frequency and at this frequency every other sample is a peak or a trough so long as the phase of the sampling and the input signal exactly aligned and you can see sometimes we're getting these smaller amplitude captures and this occurs as the phase of the ADC and the phase of the digital to analog converter go in and out so sometimes it ends up that the ADC is aligned with these zero crossings of the inputs and sometimes it ends up that the ADC is aligned with the peaks and the troughs at the maximum amplitude but as you can see we're getting this sine wave here and this is the maximum frequency that the ADC is capable of capturing and if we try and boost the input frequency still further you can see an interesting effect occurs where do you see past all the aliasing stair-step problems you can see the frequency is now actually descending and it's going down and down and down until we get the signal generator to its maximum output frequency at 25 megahertz but you can see we're seeing a frequency quite a lot lower than 25 megahertz and the reason for that is that we have an alias version of the input image here the signal that we're capturing is now being subsampled which means that we're not seeing the true sine wave fundamental now we're seeing a version of it which is kind of like a reflection around the Nyquist frequency now most a DC's avoid this problem by having a filter on the input which makes sure that by the time you have a signal that's at or above the Nyquist frequency that frequency is complete tone is completely filtered down so that it we wouldn't see anything we would just see a flatline and as you approach the Nyquist frequency that's a signal would roll away however this board the detail a 2d board that we're using doesn't have an input image rejection filter is what it's called and so what we're seeing is this sub sampled version of the input signal which is kind of a problem and kind of not so one of the benefits of having the board be designed this way is that it means that if you want to use this sub sampling effect to capture out-of-band signals you certainly can do it can be useful in some cases to be able to capture these signals in this way know the frequency is not a reflection of the true frequency directly but it can be quite useful still to get a sub sampled version of the input frequency or for example you can attach an input filter of your own external to the HD board to make sure that you're not accepting any tone into the A to D that you don't truly want because one of the issues that's going to happen when we try and connect this to a real input device to try and capture something real for example some RF signal is that if we have an input circuit that's producing some noise mixed in with a signal that we care about not only will we see the noise going from 0 to 16 megahertz but we'll also see the noise going from 16 megahertz way up through the spectrum which is going to be a major problem we'll end up with several versions of the noise superimposed on top of each other so if we want to use the a to the board to capture any real RF signal with we're also going to need some kind of filtering to make sure we reject any range of the RF spectrum that we don't want otherwise it's all just going to get superimposed on top of the signal that we care about which would be a problem so if you're new to this topic of sampling Theory the Nyquist frequency aliasing anti-aliasing filters sub sampling and all the various matters relating to analog conversion it really isn't possible to properly describe these things in a five-minute segment but this video is getting quite long already so I think I'm just gonna leave it here for this video but there's a lot more to say about these things so if they are new to you keep them in the back of your minds there's plenty more information to follow up with online and I'm going to be covering this in quite a lot more detail in future videos so the next step for this project is that now we've covered the hardware side and got it up and working we need to do a bit more on the software side so that we can get the data streamed from the FPGA into the Raspberry Pi or into a PC so that we can do some software-defined radio stuff do some signal processing on a CPU something like that those are the next steps as projects we've got a bit of code to write and once I've done that there'll be lots of interesting opportunities for all kinds of experiments well that just about wraps it up for this video I hope you found it really interesting as you can see we've covered a lot of ground with this little rig we've done a lot with it but also we've just scratched the surface and there's certainly a lot more to be done get the project finished and start doing some interesting experiments with it see what it can do and I'm really looking forward to covering that and it's going to be the subject of a lot of future videos now unfortunately I have some rather sad news to share with you some of you may know I've been living and working in Colorado in the United States for the last few years and I've recently found out that I'm potentially going to need to move back to the UK my home country and as many of you know it's no easy job to move house and it's particularly difficult when you're moving internationally so I can see that soaking up a lot of my time and it's gonna take all my equipment away and I'm gonna lose the space I'm working in right now but hopefully with a bit of time I'll get everything back to normal I've got a few things to take care of I'm potentially gonna need to find some work to move into and once all that's done hopefully I'll find a space I can use for a lab and get everything all my equipment back and get it all set up the way I like it and then I'll be able to continue making videos about this and all kinds of other things now in the meantime I'm hoping to keep the channel going I have a few ideas for things I can do in the absence of a full set up that I've got here I think I could do a few more things focused on screencasts there's a few bits of things on the software side that I'd like to try out and talk about I think that would be quite interesting I think I'd like to do a few fundamentals videos which might be worth doing quite interesting hopefully for you but if there's any thing that you think would be particularly interesting for me to cover in the interim you know just let me know in the comments down below I'll be very interested to hear what you think and I just want to say thank you everyone for watching the channel and particularly a big thank you to all the people who are supporting the channel on patreon I really appreciate your support it really helps the channel grown helps me do what I'm doing and also if you enjoyed the video give it a big thumbs up leave your comments down below I love hearing from you guys it's really great so hopefully I'll see you all very very soon hopefully not too long on the open tech lab see you soon you
Info
Channel: OpenTechLab
Views: 50,348
Rating: 4.9332891 out of 5
Keywords: sdr, software defined radio, alinx, an108, raspberrypi, rpi, kicad, freecad, openscad, cadquery, open source, free software, electronics
Id: seHwp0WN1oU
Channel Id: undefined
Length: 61min 10sec (3670 seconds)
Published: Wed Feb 21 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.