 And now I have to announce our speaker for the session. Everyone likes to tinker with electronics, I think at least everyone who is here in the room. And it becomes harder and harder because a few years ago you did soldering of through the whole components and everything was easy and things got smaller and smaller and now you need a microscope and strange and extremely costly equipment to build things and it's hard for a hacker front to keep up, we have to keep pushing the limits and our speaker Hunz will tell you how to keep pushing the limits. So please give a warm welcome to Hunz. Well, hello everyone. So let's push the limits together and we also need to push the tempo a bit because it's quite a lot of content and that's why I might skip some details but you can read them later on the slides once you need them. So more sophisticated with yourself electronics, why do we need this or why do we want this? Whether professional electronics obviously get more and more sophisticated and we need to keep up. You can do really great stuff nowadays even with do it yourself. For example, you can build high speed FPGA boards with more than one gigabytes per second RAM throughput. You can use those as software defined radios and logic analyzers you can build on your own. You can build custom networking equipment for example, ARM based routers with gigabit ethernet interfaces and so on. Now what are the challenges for do it yourself projects? Well, one point of course is that the ICs we nowadays have get more advanced and mostly they don't have leads anymore. So if you look at your batch, there's the ARM controller on this and it doesn't have leads. You cannot solder it with a soldering iron any longer. This is a ball grid array package. It has tiny solder balls underneath the package and you need an oven or something like this for. And this is done because it saves precious PCB space. You need those PCB space in the cell phones of course and in other devices as well. So you can pack more IOs per space. Now it's similar for QFN packages. These are very small and you cannot easily use a soldering iron for those. So this of course is a challenge the chips themselves. Then there's bots with four or more layers. We need those due to the high number of signals. Otherwise we cannot access all the signals that we need. We need other soldering techniques and this often means reflow soldering. We need also high mechanical precision for the assembly because the mechanical tolerances are quite narrow and we have to work very precisely. We also have faster buses and interfaces. For example DDR buses and PCI Express for example, HDMI and so on. These are fast signals and the layout is much more demanding for those of course. The professionals have expensive software for this and we also need better software or more time to compensate for this. And we also need more know-how or you would need more know-how if you don't have expensive software. In this talk I'll give some general hints first. Then we'll have a look at soldering options with solder paste and how to assemble a board. We'll have a look at high speed buses and interfaces. Then we'll have a look at mighty layer boards. First we need to understand a bit why we, what are important things we need when designing a multi-layer board. And afterwards we'll have a brief look at design software. Most of you probably already using EGLE. So some general hints first. It's generally a good idea to make a tiny test boards for risky parts of your design. For example, if you want to try your first DDR memory, it's not wise to build a real complex board around this if you don't know if this will work. So make a tiny design, just test the complex part first. And you might want to patch some signals later so this means outer layers are better of course than you can, you should use electrolys nickel gold finish for the boards because you really need this for fine pitch and BGAs because the other option is hell hot air leveling. This is basically solder that is shoved across the board with hot air and this is a rather uneven surface and this is bad for BGAs and fine pitch of course because some balls might still hang in the air then. We need a higher soldering temperature for PB3. Usually it's 237 degrees Celsius and the maximum temperature for most of the chips is 260 degrees. So we have a rather narrow margin there and yeah. Then another thing is some people do the BGAs just with flux and without soldering paste. I tried this a few times and it worked four times but it didn't work for one board. So I'm no longer using that. I'm using solder paste for BGAs now. It's still possible to fix those boards with hot air but I think with paste it's better. Then the popcorn effect is something you need to consider. The thing is humidity from the room will get into the chips if you leave them in the open and once you heat those chips the water will boil and vapor will be created and it will blow your package like popcorn and that's why you get expensive or complex chips like BGAs and sealed pouches. There's desiccant and indicator paper in there and you can reseal those pouches with adhesive tape after you put the chips back in and the desiccant and usually this is fine and you can see if it's not fine by looking at the indicator paper then you have to bake the chips. Here's a simple test board I created just for DDR2 RAM and an FPGA here you can see the DDR2 RAM and the FPGA. I also added an HDMI connector which I connected to the FPGA. Apart from that, there's Tatek chip, some GPIOs and voltage regulators, more wires than necessary. But yeah, I tested it and it did work with 800 MHz although the FPGA was only rated for 600. So yeah, this was a success and I continued. For the soldering you have basically three options. The first option is using a reflow oven. A lot of people are using modified pizza ovens there but you need more heat and temperature control for this because the pizza ovens don't have sufficient heating power by themselves. Then you can order cheap reflow ovens from China. We'll have a look at that but you need to modify those ovens because they are cheap. And a problem with reflow soldering is that you have black surfaces on the ICs usually and also on the connectors and they absorb more infrared radiation from the quartz lamps and why the metal surfaces mostly reflect this heat. And because of this, the temperature on the PCB varies with the location and it gets reflected at those points where we actually need them and the chips heat up more. That's not good but yeah, we have to deal with that. Hot air gun with a hot plate is also an option. There are cheap hot air guns available and the problem is you do not know if the boils underneath the BGA already melted. And with larger copper areas it's also difficult to get sufficient heat in just from the air so you need a preheater. And for preheating you can simply use a hot plate, a normal cooking plate and set them to 100, 220, 150 might also be okay. Degree Celsius, just check it all the time with an infrared thermometer on the PCB surface and you can also solder this way. Waper phase is a really great thing but you need a special liquid which boils at exactly the soldering temperature. It's a really good heat transfer because the PCB rests in the vapor phase and is not immersed in the liquid. So overheating the ICs is very difficult but if it really does get too hot very bad things will happen because hydrofluoric acid will be produced and you don't want that in your house. So you should look this up if you really want to go this way. There are DIY projects. The liquid is very expensive but you have to buy a liter or so in the beginning or half a liter but this will be sufficient for quite a lot of runs. You also should use a high pot so the vapor doesn't get out of it. So when we use the reflow oven a real reflow oven, the cheapest one usually is the T962 from China. It has a very small holding capacity. It's about one Euro board or so but it has very high heating power compared to the place and this is often a problem with the pizza ovens. There's an arm 7 controller in it which isn't read protected so you can simply dump the firmware. I did this and I reverse engineered it because it made the boards too hot and yeah, I did a test run first and this board was completely unusable afterwards. So I wrote my own firmware and the temperature controller is implemented on a PC. It's just connected to the oven using a 3.3 volts RS232 and there are just a few comments for heating and running the fan and reading the temperature. The host code is Daniel Lua. This is rather easy to adapt and you can also easily add new temperature profiles. It's a tiny firmware. You can run it completely from the RAM so you do not have to erase the original firmware and yeah, I put the code online so you can have a look at it. The problem is the documentation is missing right now. Yeah, but I'll try to add it later if you need it before you can simply ask me. So when using the T962 oven you should replace the masking tapes that's used in it with capton tape because the masking tape isn't heat resistant and it will smell a lot. Then for my alternative firmware you need pin headers for RXN2X obviously, ATX obviously. You need external reset and boot buttons so you can access the boot loader and you should also add pull-up resistors for the triacs because those triacs turn on the fan and the heating and those will be on while you're in the boot loader if you don't add those pull-ups. Then I'm using screw nuts as spacers for the PCB so the PCB rests on those spacers and it gets a bit better temperature profile there because at the bottom there's not sufficient heat here. I also measure the temperature directly on the PCB. You can see the sensor here. This is a K-type sensor and it's placed here directly on the PCB and those K-type sensors, they are very well suited for high temperatures and you should do some test runs first because it won't work out of the box. You need some time and patience. There's more projects regarding this and there's also some documentation. Some is in German, there's probably English one on the net as well. So I already, did you show you this photo? Here you can see the cable coming out of the oven with a serial USB cable attached. Here's the board resting on the screw nuts and this is an interesting thing. These are the waves that you use for the reflow profile. This is actually a wave for Xilinx FPGAs and unfortunately the description is in German so the red one is the temperature that we want. The green one is the temperature of the PCB and the blue one is the air temperature. So you can see that the air temperature first is a lot higher or a bit higher than the PCB and at about 160 degrees that changes. The air temperature actually then is quite a bit lower than the PCB temperature and that's why we want to measure the PCB temperature. The oven by itself just measures the air temperature with two sensors so you can simply rewire one and put it on the PCB. For those reflow ovens you want to use solder paste. The solder paste you put on the pads of the SMD parts. A solder paste under the microscope looks like this and there are tiny solder balls embedded in flux and you also need a stencil for fine pitch FPGAs. A stencil is basically a stainless steel mask with openings in it and you force the solder paste through those openings and it gets on the pads and it stays there. Then some board houses offer free stencils for your boards and others don't and sometimes it's cheaper to just order a dummy single layer board with a free stencil than ordering expensive stencil from another board house. This is what it looks like when dealing with soldering paste so here you can see the stencil. It's placed here above a PCB which I already had beneath it. Here's some masking tape I used to fix those things. Here is the soldering paste and here you can see some fixing parts. For fixing the board it must be really tight and those fixing parts you can order from the web or you can make them yourselves. I just ordered them from Better Layout. Those are the PCB pool people. It's not very expensive and the good thing about this is that it's made from normal PCBs so the height of this already matches your PCB then and you can simply align it then. Then you put some solder paste here and with this you smear it across the stencil and afterwards it'll be on all the pads and you can place your components. You need to fix this stuff really firmly so you don't move the stencil around while printing and the fixing kits already mentioned that. You need to stir the paste really good and before using it and you should keep it in the refrigerator it will be good for about one year. If a tiny paste droplet covers two adjacent pads this is not always a problem. Sometimes you can just ignore this and you need some sort of feeling for this. It's a bit hard to describe. But usually if it's just a tiny amount it's not a problem because it will flow to where it's needed and where it should be. Cleaning this stencil is a lot more difficult than one might imagine because the solder paste is quite sticky and I tried ethanol and isopropanol but the best thing I found with household chemicals is lighter fluid and there are some special cleaning fluids available as well but lighter fluid really works very well. You can also use this to clean the PCB if you messed up the print somehow and you can then start over. You can also clean the components usually. You should wear a lab coat because this rather messy paste and we'll get everywhere and getting this out of your clothes again is quite a challenge. When you place and align the parts this is often a challenge as well. You should start by placing the most challenging parts. These are obviously BGAs and QFMs and do the easy parts later. This way if you mess up with the challenging parts you cannot easily fix this and you need to remove everything and clean it and start over again. So that's why you wanna do the most challenging parts first because then you can start over with a minimal time overhead. When designing your board you should place a rectangle around the chip in the silk screen of the board for BGAs and QFMs because that way the initial alignment is much more easy. And yeah well then you can use a tweezer for picking and placing the chips. Vacuum tweezers, you should only use those with electric pumps because the other ones will lose their vacuum in about 10 seconds and the chip will drop somewhere. Then gently place the chip on the solder paste and then you can still align it a bit. After aligning it carefully inspect it. I usually use an off the shelf magnifying glass and inspect it from different sides and different angles so that it really matches the alignment in the silk screen very well. With QFMs you can also have a look at the pads from the outside. And once you're satisfied with this you should push it slightly down because that way if you move the board around it'll stay in place. I did a tiny placement helper for Eagle. This is hacked together. Yeah and it's done in Lua, it needs Lua XML and LGI is Lua G-Object Introspection so it's a wrapper for all the G-Lip and G-Objects and GTK. And that makes it quite different to use on Windows. I don't think anyone has now to this day successfully used LGI on Windows. I don't know about with X. The code you can get here. The usage is rather simple. You just invoke it with the board as an argument. It's easy to use once you manage to install the required things and it basically translates the Eagle XML calls to Kyro calls. It requires quite some RAM because it uses one Kyro surface in RGB 32 bit per layer because Kyro doesn't offer indexed palettes as far as I've seen. But, well, what's nowadays hardware is doable. It looks like this. Here you can see the board and here you can see the elements. You can switch to the layers tab and turn off layers, individual layers and there are shortcuts for top and bottom and so on. You can scroll around here and switch to the values. It also shows the values down here and it highlights all the places where this component should be placed. You can also mirror along the X or epsilon axis because it's useful if you turn the board around and wanna place the bottom side. Okay, then high-speed buses and interfaces. The next challenge, we need a good signal integrity for high-speed signals and this is a challenge because of two things. The first thing is we need length matching so if you have several signals that should arrive at more or less the same time at the receiver, you need to do length matching. That means the tracks on the PCB need to be about the same length so that the signals arrive at more or less the same time. Here an interesting thing is that the propagation speed or the propagation delay depends on the dielectric constant, the epsilon R of the insulator. This is basically the FR4 on board and here's a rule of thumb that it takes about six picoseconds for a signal to travel one millimeter on top or bottom or seven picoseconds per millimeter on the inner layers. So the signals in the inner layers are approximately 20% slower than on top and bottom and this is something you need to consider when doing the length matching. Eagle does not respect that and it doesn't consider wires either so wires are usually 1.6 millimeters and if you use the length matching tool in Eagle it doesn't add to the length of wires. Another thing is usually you wanna place the termination resistors after the last receiver and with Eagle you cannot measure the track length between two chips, you can just see the complete track length. But what you need actually is the distance from the center to the receiver. So if the lines continue to the termination resistors you don't wanna measure this. Another thing is that you need characteristic impedance for the transmission lines and for this you need special multi-layer stack ups and you need to design the width of those PCB tracks depending on your multi-layer stack up. There's a length matching tool for Eagle which I did, it looks like this. You can basically give it to the names of two ICs or two connectors or something like that and one parameter and it gives you the time those signals need between those two elements. It's also Lua and it needs Lua XML but it doesn't have a graphical user interface so it should be fine on Windows too. It's work in progress and again there's no documentation yet there's a conflict file you need to edit, you have to place the propagation delay and speed there and such things. And then you simply invoke the script with Interactive Lua interpreter and then you can call the functions. The first function you need is loading the board, the Eagle board and the second function is this get signal delays, you can either use this without the time parameter then it will adjust the metric distance between the signals by this 20% factor as needed. And this is good if the spec, so the spec usually says you have to do the length matching for 1.5 millimeters let's say. That way you can use this to check the length matching but usually the better thing is to just do the time delay and this you can do with the time parameter. This BGA workshop is called BGA workshop for a reason because there is a lot of other stuff in there. For example, some BGA fan out helping functions and so on, there's really a lot of functions which I have not documented and yeah, you can try to understand them. It's would be too much for this right here but you can also ask me of course. So when we talk about the characteristic impedance, the high speed signals traveled through a conductor like a wave they get reflected if the end isn't properly terminated and the reflected signal adds to the next signal basically and yeah, this messes things completely up. So you need to calculate the geometry of the transmission line to match this characteristic impedance that's needed and you need proper termination then and you might remember this from 10 base two where you have those 50 ohms termination resistors at the ends of the quartz cables. Yeah, when we deal with transmission lines we have to consider a few more details. One point is the termination, I mentioned that briefly and the other thing is the slew rate. You can simulate transmission lines and you can design transmission lines for a given impedance. We also need to consider multi-layer stackups for the transmission lines. We'll see about this later. Termination schemes for the transmission lines are mostly on di-termination for point-to-point connections like LVDS, termination may be needed if you have a multi-point connector. So one transmitter and several receivers, steps you should avoid because you'll get reflections at the ends of the steps and termination should always be placed after the last IC. There's bit in termination that's called on-dite termination in DDR2 and DDR3. So this makes things a bit easier but they're only there for the data buses because the data buses are just point-to-point and clock and address lines, also the control lines, they are point-to-multipoint. So those need extra termination usually but sometimes you can get around this by reducing the clock frequency. This way the signals won't get any better but they have more time to settle before the clock edge comes in. It's a bit hard to, yeah. Here you can see this. Here we have the, here we have this signal, it's a bit, yeah, it's not perfectly rectangular. So if we pull it in the length, we have more time for the signal to settle before the next edge. But usually you cannot simply reduce the frequency of a transmission to improve the signal quality. So the signal quality doesn't change. You can only change the errors that might be produced. The thing is reducing the frequency doesn't reduce the slew rate. And the slew rate is actually the time for the signal to go high or to go low again. And these parts always have higher frequency portions than your base frequency of a transmission. You can see the spectrum of a square wave on the web. And the thing is we need short or fast slew rates for high frequencies because otherwise the signal doesn't reach high or low state in time again. There are some more details on the web. You can look them up. The slew rate you can get from the data sheets and for professional tools there are also IBIS files. These are text files. They also contain waveform data for those signals coming out of the output buffer of this chip while driving a certain transmission line. You can read them with a text editor. You can pass them with your scripts and they can be used to simulate and analyze signal integrity with a given transmission line and a given termination. You can read those easily and you can use scripts to extract the waveform data and plot it in Knooplot for example. Then you can simulate transmission lines with Spice. Spice is an electronic simulation engine but it doesn't come with a user interface. There is a free as in VR user interface from linear technologies. It's called a T-Spice. You can download it here even without registration. There are Windows and there were six versions available. The Windows version you can also use with wine and you can find tutorials for this on the web. There are two open source projects for using IBIS data together with Spice. Those are here. I haven't tried them yet. I just mentioned them here because you might wanna give them a try. You can simulate transmission lines in LT-Spice. First you need a pulse voltage source. It has rise time and a fall time or you can use a time value text file for this source and this PWL file you could generate from an IBIS file. So here you can see this is how LT-Spice looks like. You have, here you have your schematics and here we have the voltage source. It's connected to ground here and here it's connected to the transmission line. Then we have a virtual oscilloscope and we can click anywhere here and inspect this in the graph here. So green shows the signal coming out of the voltage source and pink here shows the signal at the end of the transmission line here. The transmission line is called T-Line in LT-Spice. You can add those here with an add component symbol. You need to set two parameters for a transmission line. One is the electrical length. It's called TD and it's usually sufficient to simulate the longest line of a bus because this will be the worst case. You also have to add the characteristic impedance that sets C0 and those are, you can see here. So we have 120 picoseconds for this transmission line and it's 50 ohms and here we can see the parameters for the voltage source. 200 picoseconds rise and 200 picoseconds fall time, 1.8 volts and so on. You also need to add the input buffer and termination if there's any. The capacitance of the input buffer is important. You need to look this up in the data sheet. Here we can see the capacitance for the input buffer of an actual DDR2 RAM and this is also a very interesting thing. If you increase this capacitance, the signal gets worse very fast. So when you wanna measure this line with your oscilloscope, you will add some capacitance here and you will mess your signal up completely unless you have a good high frequency probe. But I won't cover measuring those things here because this is too difficult to do it yourself usually and it's too costly. Then if you have on die termination, you can also add this resistor here or if you have parallel termination, this is basically the termination resistor. If you don't have any termination, it's usually one mega ohm. In AT-SPICE, you need to use the MAC for MIGA. If you write simply an M, it'll be milli. Yeah, so this happens if you have no termination on this line and it looks quite obscure and this is because it travels back and forth and again and it adds to the new signal and yeah. And this is with a slight mismatch. So we have 75 ohms transmission line and 50 ohms termination and yeah. This is with 100 ohms. So the characteristic impedance doesn't need to be spot on. The signal actually gets worse as the mismatch grows. The specifications often allow plus minus 20% for the impedance, but of course we try to hit the impedance as good as possible. When designing transmission lines, we need to consider this. And transmission line, you always need a lower impedance reference plane that could be either ground or the voltage sublight. Ground is usually better because it has less noise. You can see three transmission lines. This is the first one is a strip line. It's for inner layers. The second one is the micro strip for outer layers and the last one is a co-planar waveguide that can be used for analog signals, but it's not good for buses because it takes up quite some space because you need additional reference things here. Well, this is actually a ground-backed co-planar waveguide. Micro strips, you have a coated micro strip if you add solder mask above it. And for strip lines, there's the option to do an asymmetric or offset strip line if these two heights aren't the same. Now the characteristic impedance depends mostly on the width of the conductor. So by increasing the width of the conductor, you lower the characteristic impedance. The next thing is the height above the reference plane. By decreasing the height, you can also lower the characteristic impedance, but this depends on your multi-layer stackup. There's a dielectric constant of the insulator which affects the characteristic impedance but it doesn't have such a high influence. So the epsilon R is usually 4.2. I'll come back to this later. Differential transmission lines are edge coupled, so there's capacitive coupling between those lines and they are often used for Ethernet, PCI Express, T-Lilata, and so on. They are more robust to noise and they are driven with inverse polarity and that's why they are more robust to noise. The receiver only utilizes the difference between the positive and the negative conductor and noise usually couples into both lines more or less with the same amount so the difference doesn't change. And you need a differential impedance then and this is usually two times the single-ended impedance. There are more details here, you can read this. And for the differential impedance depends on the impedance of the individual lines of the single-ended impedance and by lowering the single impedance you also lower the differential impedance. The distance between those conductors if you reduce it you'll get a lower differential impedance as well usually you have 100 ohms differential impedance. The trapezoid shape you see here is due to edge back during the production. The edge back is usually equal to the copper height so if you have 35 micrometers the upper width is 35 micrometers less than the lower width. This affects differential pairs more than single-ended pairs because it affects the coupling here. The epsilon R for FF4 boards is frequency dependent usually 4.2 is a good value and the effect of a slide mismatch here isn't very high. The next thing is that microstrips here mix of solder mask and FF4 epsilon R. You can see this here, there's the solder mask and also there's the air above this. And here are some example values for the solder mask coating so you have 42 micrometers for example above the PCB and less above the conductors. You can calculate the width, the height and the characteristic impedance. There are approximation equations for this, JavaScripts, you can Google them and see where all you can use. KeyCAD has a built-in calculator for that, you can simply use this one. But if you want to be more precise there are field solvers. There's an open source 2D solver and this solver actually takes such pictures. These pictures are input for the solver and it takes Windows bitmap files, it doesn't have a graphical user interface, it's just a console tool and it takes a wide depending on the size of the image. There's also MDTLC, this is free as in beer. A Windows graphical user interface with a built-in ATLC backend. It uses an older ATLC version though but it's rather easy to use and it also works in wine. ATLC, I already did show you the pictures, it can calculate the signal propagation speed, the signal end and the differential impedance. It has some console tools for generating those bitmaps and you can of course create your own graphics using GT graphics for example. That's what I did, I'll show this. And you need the red for P and blue for N conductor and green for reference conductors. You can use other colors then for insulators and so on. You just need to read the documentation. The only thing here is the ratio between the height and the width and so on, the actual scale doesn't matter as long as it's fine grained enough. For example, one pixel for five micrometers is a good thing. Larger images might be more accurate than but you also take more CPU time. My tools are still working in progress and I want to rewrite them because I'm no longer happy with how I added new stuff without restructuring them. There's lower code again but no documentation yet and it's in the same repository. There's a config file where some multi-layer stackup definitions are in there and the required impendences at the end of this file. You need to edit these and you can run it again in an interactive session and it will print out the results using the approximation questions, the equations. It will also generate a visualization of the stackup and then you can use this function to invoke ATLC to generate and BMPs and run ATLC. It will take a bit more time but then it's for the fine grained tuning. It needs LuaGD for the graphics and it also needs convert for image magic because LuaGD doesn't produce the right data format. The unitary millimeters and the layer ID you need to set this to the signal layer corresponding to the configuration file and for example here we wanna do a project we name PCI Express and we'll use layer two and we'll try width 0.25 and spacing 0.25. So here this S again is the spacing for differential lines. With multi-layer stackups is the next thing. There's the height between the layers and this depends on the multi-layer stackup. We need to choose a multi-layer stackup which gives us good heights and the custom stackups are too expensive. We cannot use those in do-it-yourself projects and this means we need to choose our PCB house which has a suitable pool process and pool process means they use projects from many different customers and yeah. You need to ensure that your PCB manufacturer won't use another stackup for your pool order. So talk to your PCB house before your design and before production and for controlled impedance you don't need this as well. Now there's a thing called controlled impedance. You can order this and then it will show you really huge prices. Don't use that. It's for project other manufacturer guarantees a certain characteristic impedance. This is quite expensive and it's not in the pool and we can do without this. With multi-layer stackups you usually want to use top and bottom for signals as long as possible. That means the adjacent layers should be reference layers. You can see this here. We have a reference layer here and the outer layer is used for signals. Then by putting voltage supply and ground planes close together you create a really good capacitor for high frequency. This is something you can see here. We have the voltage here and ground there and we have a really good capacitor and the thing is you need this layer stacks need to be symmetric. That means if you put a solid plane here you also need to put one here. Otherwise it'll come to problems once the PCB gets produced. With less than eight layers the height is usually very high and this leads to rather large track widths for the typical characteristic impedance of 50 ohms. This might lead to spade issues during routing and we need to make some trade-offs for example, slight mismatches for the impedances or we need non-adjusted voltage supply and ground layers. You can see this here, the ground and the voltage supply layer are completely on the opposite side so there's really no capacitor there. But yeah, we need to make trade-offs. Here are some examples you can use. This one is a pool stack up from PCB pool six layer and this one is the pool stack up from Word Direct six layers again and here is an eight layer pool stack up from Eurocircuit. Also here you can find a slide with some PCB manufacturers. They are mostly European, Germanians especially. Some of these have, for example, Eurocircuit. You can directly see and choose the stack up you want. It'll give you expensive prices for the non-pool stack ups but if you choose the pool stack up, they will use this one. With other manufacturers, you should check this before that they really use this pool stack up. When doing BGAs, you usually wanna use dog bone breakouts. That means you divide the chip in four quadrants and add the wires for those parts facing to the edges of those quadrants. And this way you can see there is some cross in the middle where no wires are and you can use some, you can place some 402 capacitors in here and this works well with pitches of 0.8 millimeters and more, the pitches, the distance between the center of one pad and the center of the next pad. Also you should cover the wires with solder stop. This is explained here how to do this in EGLE. Minor clearance violations are usually not a problem. For example, I produced this one here with this clearance where the bought house only can guarantee this clearance. And you can say it's on my risk and produce it and it usually works. Design software, EGLE I already mentioned, there's a hobbyist version for up to six layers. Another cool thing about EGLE is that they use XML board files. Those are easy to read, understand and modify. You can use software to do this. In Lua you can simply convert it to Lua tables. Those are nested and later you can write those tables out as XML board files again. KeyCAD is free and open source and it's really great. Just make sure to use the Diva version, not the stable one because there are lots of new features in the Diva version. Save often and make backups because it's the Diva version. The layout engine is very powerful. You can push and shove. That means you can add a track and it will push the other tracks away. This is great for BGAs and more complex projects. There's a bit in Python interpreter and the board files are text files. Those are easy to read, understand and modify. There's also a bit in 3D viewer. The conclusion of all this is that's a lack of extensive professional software can be compensated for with three and open source software, custom tools and knowledge and high motivation. You can produce a great PCBs by choosing the right pool process and you can use this for very advanced projects. Reflow soldering is also something that can be done without expensive equipment. It needs some experiments and patience. So the further strategy is to invoke Hacker spaces for the soldering, for example, and to improve the software for the impedance matching and so on and to collaborate on such projects. If you have more questions, I think we do have 10 minutes left for the questions. And I'm also available in the Königlich-Bayerischen Amtsvillage here and you can also call me via deck. You just have to dial hunts, yeah. And so I'll say we start with questions. So thank you very much for that interesting talk. Your applause. I actually think that was quite a lot of pushing with a lot of physical background and knowledge you will need and not only soldering. And so building your own tools is actually quite cool and I think for sure there will be some questions here. So if you have questions, please come to the microphone in front of you and ask your question to the microphone. We still have 10 minutes for questions, please. Most newer BGAs have a pin spacing of 0.5 millimeters. Did you see any vendor that can produce the required blind rears? You need laser drill between the uppermost wires for that. Well, there are a lot of houses that can produce it, but they won't do it in the pool. So you have to pay them a rather large amount of money and then they will do it. I think this will change in the future because it is more and more necessary. So if we today we think about six layers, multi layers, we haven't had this in pools in about two years before. So I'm certain there will be some steps towards this, but it's not here right now. Thank you. So the next question, please. That's a comprehension question, where you talked about pool stack up. Yes. As I understand that the different layers are pretty much identical. So I don't quite get the point where you have to be careful about what is the pool stack up and what is not. Would you elaborate on that? The thing is, here you can see some pool stack ups. This one is a pool stack up from PCB pool and this one is one from, it's the same stack up I think, but those build ups actually differ from the board house to board house. So I don't think this is correct what I wrote here because this is, yeah, I don't think this one is right. And the next thing is, once those, you need to really tell them to use the stack up they wrote on their webpage because sometimes the manufacturers, if they have a customer paying for a custom stack up and they have some place left on this board, they will put your project on this too and produce it with the wrong stack up for you. And for example, PCB pool sometimes uses a six layer stack up when you ordered a four layer board and it just won't use two of those layers and but it obviously it will mess up your stack up. And that would use problems with impotence within the stack up. Because the height will change. Okay, we have to be a bit of load balancing for this question. So the next two questions, please go to this microphone over there. Just less a question, they're more a small hint. If you can get a hold of a German university email address the commercial package Altium is actually available for around a hundred euros here and compared to Eagle and Keycard, it's at least worth a try, I think. Maybe in addition to the previous question, the guys from Altium realized that everyone is pirating their software and they decided to release a free version which is called CircuitMaker. It's currently in open beta. You can already download it if you sign up at the CircuitMaker website, circuitmaker.com. And it looks pretty good actually. It doesn't have any layer or component restrictions like the free version of Eagle has. Now to come to my question, well, question, remark actually, you mentioned the trick of creating a rectangle around packages of ICs to facilitate the alignment but I want to remark that for many Chinese manufacturers the alignment of the silkscreen layer is not always so perfect. And I already had a few instances where I indeed used the alignment of the silkscreen and unfortunately the silkscreen was a bit off and I didn't notice until the ball grid array switched one row of balls which is almost incorrectable. Yeah, there's some trick. You can look through the balls if you hold it against the light and then you will see if they are slightly moved against the paste but this only works as long as there are no other chips. Thank you for an interesting presentation. So we have still four minutes left for questions so the next question please to your microphone on the right hand side. I have a question about soldering. Do you have any suggestions for a double-sided soldering process with using a reflow oven? No, usually I do it that way that I put all complex components like BGAs on one side and I use the second side only for components which I can do with hot air or the normal soldering iron. Then I place one side in the oven and then I do the second side and for example with paste on a hot plate and with hot air this works well or with a soldering iron. Okay, we have time for another question or maybe another two questions please. Thank you for the talk. Have you considered ultrasonic cleaners for stencil cleaning? Well, you should then use something else than water I would say because it might not, yeah, it depends on the paste if it's water-solvable, I would say. But the lighter fluid really does the trick for me and there's also another trick you can use. You can add round corners for those pads. You can adjust that in Eagle and in some other boards too where the corners won't be perfectly 90 degrees angles but they will be rounded and this way in the corners there will be less soldering paste left afterwards. You can clean it better that way. Okay, I think we still have time for one more question. Yeah, it's just one thing about solder paste. Maybe I missed it but what I learned about solder paste is that it absorbs moisture. So if you have old solder paste you might end up with a garbled design because the moisture drives out the solder paste from the pad during soldering. So you should temper, you just make the paste on your design then put all the components and temper it at 80 degrees, half an hour in an oven and it's dry and then you can safely reflow solder without having sparks of solder coming out. Yeah, well, the tempering is, you mean during not the popcorn effect but for a normal, well, normally you don't need this with the solder paste available today so there are different waves that are recommended by manufacturers and there are also some waves that use some sort of plateau here with about 100 degrees. But I usually, so if you have different chips and every chip has another wave you should use you obviously have to decide which one you use and if the FPGA costs 50 bucks I'll use the one from the FPGA and it does the trick for all the other chips as well for me, so. All right, thank you. So maybe one more question, do we have any questions left? I don't see anyone standing on the microphones here so please give a big round of applause to Hans for this very cool talk. Thank you, thank you very much.