How Does This Rocket Know Where It Is? Active Control Flight Computer - Building DIAMOND-X Part 3

Поділитися
Вставка
  • Опубліковано 25 лис 2024

КОМЕНТАРІ • 212

  • @lorecamp4163
    @lorecamp4163 8 місяців тому +558

    The missile knows where it is at all times. He knows it because he knows where it isn't. By subtracting where it is from where it is not, or where it is not from where it is (whichever is greater), you get a difference, or deviation. The guidance subsystem uses deviations to generate corrective commands to guide the missile from a position it is in to a position it is not, and upon arriving at a position it was not in, it now is. Consequently, the position he is now in is the position he was not, and it follows that the position he was now in is the position he is not.

    • @morbloe4559
      @morbloe4559 8 місяців тому +14

      We did it Resdit

    • @g45sp4
      @g45sp4 8 місяців тому +45

      I opened the comment section to write this

    • @comments_very_nice
      @comments_very_nice 8 місяців тому +41

      thank you, i only opened this video for this comment. I will now close it before the missile finds out where i am

    • @Toleich
      @Toleich 8 місяців тому +9

      I only came for this comment.

    • @gac9603
      @gac9603 8 місяців тому +4

      He was asking for this.

  • @BPSspace
    @BPSspace 8 місяців тому +203

    So cool - great work dude!

  • @jorsanflo
    @jorsanflo 8 місяців тому +216

    This guy is driving a mini space program all by himself. Thats fking cool dude

    • @lapserdak24
      @lapserdak24 8 місяців тому +13

      A private arms race

    • @ryanreedgibson
      @ryanreedgibson 8 місяців тому +1

      I know, I wish he'd offer up the files for sale.

    • @lapserdak24
      @lapserdak24 8 місяців тому +2

      @@ryanreedgibson ask him. Pretty sure it's illegal, but nobody needs to know

  • @PhilsLab
    @PhilsLab 8 місяців тому +30

    This is very, very cool - great job! Thanks also for the shout-out :)

  • @georgekerwood9100
    @georgekerwood9100 8 місяців тому +45

    Great multi-discipline engineering and a high quality video to showcase it, bravo to you! Thanks for the time you've put into sharing your work with others.

  • @kareemashry1
    @kareemashry1 8 місяців тому +47

    For someone who doesn't have an engineering masters, I believe this guy's project is amazing. I hope we can support him to make that project an open source.

    • @AnotherByteData
      @AnotherByteData 8 місяців тому +14

      Totally agree! But even if the didn't want to release it as open-source nothing prevent us from developing something from scratch based on his ideas. He shared many details already, it is more than enough to start a new project. And you can even improve this idea using CAN instead of RS422, etc.

    • @Jazz3006
      @Jazz3006 8 місяців тому +7

      I can't be open-source because of ITAR limitations.

    • @kareemashry1
      @kareemashry1 8 місяців тому +2

      @@AnotherByteData I can participate on that

    • @Tyrone-Ward
      @Tyrone-Ward 8 місяців тому

      ​@@Jazz3006 from an admittedly quick Google search, I couldn't confirm what you're saying. Could you provide more details on what he can't open source this project?

    • @Jazz3006
      @Jazz3006 8 місяців тому +5

      @@Tyrone-Ward you should look up ITAR restrictions and think about what he is effectively developing and why the knowledge of how it all works would be bad in the hands of an enemy.

  • @AnotherByteData
    @AnotherByteData 8 місяців тому +25

    Thank you for this walk through on your rocket technology! Really cool and inspiring. You and BPS are doing a great progress for amateur rocketry!

  • @achuck4321
    @achuck4321 8 місяців тому +12

    Love the engineering on this channel.
    What a world we live in where I can learn about building guided rockets on the internet.

    • @marsh346
      @marsh346 8 місяців тому

      for real🙏🦅🚬🇺🇸🇺🇸🇺🇸

  • @laytonmiller5865
    @laytonmiller5865 8 місяців тому +2

    This series has been so cool to watch. This is the kind of inspiring content the people NEED! You're THE PEOPLES' HERO!!

  • @nerthoss
    @nerthoss 8 місяців тому +4

    All the technology you've incorporated into this rocket is truly inspiring! I absolutely love it!

  • @theonlyari
    @theonlyari 8 місяців тому +8

    You should put a small radar in the front (like an automotive radar). You could use it for guidance or perhaps to trigger the pyro... I mean parachute when it gets to a certain distance... I mean a certain portion of the flight.

    • @mortlet5180
      @mortlet5180 8 місяців тому +1

      Yeah...
      Go to jail.
      Do not pass GO.
      Forfeit *ALL* 'human rights' and go straight to Guantanamo Bay.

    • @abdullahahmed7781
      @abdullahahmed7781 8 місяців тому +4

      radar is good but maybe you want your rocket to give a high five to a heat emitting object (whatever that maybe ;) ) I would be really interested in seeing what a hobby grade IR seeker would look like

    • @theonlyari
      @theonlyari 8 місяців тому

      @@abdullahahmed7781 also a good idea.

    • @bilalbaig8586
      @bilalbaig8586 7 місяців тому +1

      @@abdullahahmed7781 Maybe put up a camera in the front so that the missi... sorry, model rocket can identify peoples and places it does not like and go to them to express its......displeasure.

  • @brandonusa
    @brandonusa 8 місяців тому +12

    I would love a video on the telemetry system! I am doing something similar and would love to see your approach.

    • @perfectlycontent64
      @perfectlycontent64 8 місяців тому +1

      +1.
      Also I don't fully under how the controls are covered by export restrictions. Does that mean the electronic components used for control are covered by ITAR? If he developed the control algorithms independently I presume they wouldn't be covered by export restrictions.

  • @c.harris7823
    @c.harris7823 8 місяців тому +4

    This is one of the coolest channels on UA-cam.

  • @RocketPavitra
    @RocketPavitra 8 місяців тому +3

    You decided to self teach yourself and then you go ahead to make THAT!
    Great work dude🔥🔥

  • @Cristi4n_Ariel
    @Cristi4n_Ariel 8 місяців тому +3

    Avionics is such a cool field! Thanks for sharing all the technical details!

  • @subbot8077
    @subbot8077 6 місяців тому

    This is a multidisciplinary masterpiece! As a student studying mechanical engineering right now, this type of thing is incredibly inspiring. Please keep the content coming! Love your work :)

  • @effi_0075
    @effi_0075 8 місяців тому +3

    This man deserves way more views

  • @guliyevshahriyar
    @guliyevshahriyar 8 місяців тому

    As well as the work, comments and the community feedback is also super showing the importance of the challenge tackled!
    I'd note that, this is a world-class work employing many advanced interfaces from diverse fields. I'd only take notes and enjoy this documentary! Thanks for sharing as many have said. I hope it'll be used for good.
    Congratulations sir, once again.
    Wish you the best!

  • @nihilspace
    @nihilspace 8 місяців тому +2

    Great work! Kudos for calling out the part numbers

  • @2meters2
    @2meters2 8 місяців тому +1

    I've always wanted to build my own rocket with guidance system, but you actually did it ! With creative use of commercial sensor components and MCU, and your boards look great. I can totally see that the control system overall must have been challenging, especially on 3 axes and all within 10 msec. Great piece of work, and I enjoyed watching your presentation. Thanks !
    P.S. I noticed you have a lot of UART communication channels, which take up a lot of hardware, and maybe that could be simplified with a single high speed CAN bus or so. But I admit I don't know the specifics of all your internal com needs.

  • @PrestonStephens
    @PrestonStephens 8 місяців тому +1

    Would love to see more about your ground station!

  • @aaronnewman2
    @aaronnewman2 8 місяців тому

    This is awesome. I am relatively new to electronics, and definitely not ready for a system as complex as this one, but this is nonetheless very inspiring to see. Thank you so much for sharing this. this will help many people (including myself) to learn. Keep up the amazing work.

  • @daCount0
    @daCount0 8 місяців тому

    Incredible work, I am very impressed by this rocket brain

  • @donchaput8278
    @donchaput8278 8 місяців тому +1

    mirco usb, still holdin on in 2024. Great breakdown!

  • @adenwellsmith6908
    @adenwellsmith6908 5 місяців тому

    I've seen one where they had small tabs with a small servo controlling roll. I suspect that can be extended to pitch with say three fins.
    What would be interesting is to have those with top fins, not fins at the rear. The reason is if you have a two stage rocket, you only need the one control system. When the booster is dropped, they are now rear fins for the upper stage.

  • @QuanrumPresence
    @QuanrumPresence 5 місяців тому

    Amazing video! Love the deep dive into code.
    Would love to hear some of the learnings from PCB designing and manufacturing.

  • @Darkimuses
    @Darkimuses 8 місяців тому +1

    alwase incredible, your a source of inspiration for me

  • @Oysteims
    @Oysteims 8 місяців тому +5

    This is super impressive, way cooler than any hobby projects I have done :)
    I have a few suggestions I think will greatly help you out in the long run, however, it might be more hassle short term.
    One is to use a RTOS, like you probably know since you briefly talked about timing.
    I think a RTOS will probably make it easier to use the board for different applications in the future too.
    Another is to use better ecad tool like KiCAD or Altium over Fusion's built in tool.
    You may also want to use a smaller pitch stacking/mezzanine connector instead of a flatflex cable.

    • @someonespotatohmm9513
      @someonespotatohmm9513 7 місяців тому +1

      With intensive vibrations the flexing of the cable is almost a required feature. Means the connector doesn't shake loose or break (whichever comes first).

    • @Oysteims
      @Oysteims 7 місяців тому +1

      @@someonespotatohmm9513 Without going to much into detail I think you will find that stacking mezzanine connector are way more common and reliable than flex ribbon cables in high vibration and shock applications such as aerospace, space, military and high-end industrial systems. A flex cable just flapping around would quickly break in the vibration fixture...

  • @KofiAsare0
    @KofiAsare0 8 місяців тому +1

    Cool explanation, your requirements are very interesting!

  • @NitinVarmaManthena
    @NitinVarmaManthena 8 місяців тому +1

    Love you're videos. Any suggestions for a noob to electronics on how to select the components and getting started and building guidance systems?

  • @max_bro34
    @max_bro34 8 місяців тому

    holy f, that is seriously impressive man

  • @tomtailor7663
    @tomtailor7663 8 місяців тому

    thank you for the inspiring content! keep it up!

  • @floschy_1
    @floschy_1 8 місяців тому

    As a programmer myself I always wonder how things work in code, and if im correct thats the first time for me ive seen rocket flight code :D
    Although you didnt fully explain how everything works it was still very much interesting, especially the mass calculation! Such an obvious requirement for the calculations but never thought that this needs to be calculated/used
    You earned a sub from me, looking forward to more videos

  • @Leos-World
    @Leos-World 8 місяців тому

    Well done! I particularly like the hardware👍

  • @Jim-xg2fe
    @Jim-xg2fe 8 місяців тому

    Thanks for sharing, very nice project

  • @karolissiugzdinis2656
    @karolissiugzdinis2656 8 місяців тому

    Really amazing! do next one about telemetry!

  • @pepegac9999
    @pepegac9999 8 місяців тому +4

    yo man any chance on sharing the files, datasheets and general documents on the flight computer PCB's ?

  • @coudyousi1198
    @coudyousi1198 7 місяців тому

    Oh yes a video about telemetry ! Tt's a subject very often put aside and then forget. What is the components you use, what data you filter and at what frequency you read them ? On ground, what chip again and what sofware, why did you chose this presentation and what command can you actually send to the vehicle ? A looooot of interresting subject to talk about !

  • @Its_stewie
    @Its_stewie 8 місяців тому

    Amazing work thanks for sharing!

  • @Project-Horizon
    @Project-Horizon 8 місяців тому

    Awesome!

  • @charlesspringer4709
    @charlesspringer4709 8 місяців тому

    Fantastic. Really nice code structure and division of work. Look into Clifford Algebra and Geometric Calculus as used in graphics. I think you can eliminate some matrix math.
    I would like to see more about the navigation and how/when initial conditions are set. How is gravity worked in? Like how does it tell g relative to accelerations from the motor?

  • @fishsalt6019
    @fishsalt6019 8 місяців тому

    AMAZING JOB !

  • @ahmedmoustafa6829
    @ahmedmoustafa6829 8 місяців тому +5

    Wow, well done
    Is there any coming videos for the Matlab Simulation???

    • @LafayetteSystems
      @LafayetteSystems  8 місяців тому +8

      That should be the next video in the build series, all of the ground testing and simulations done before flight!

    • @Northrop-Grumman1991
      @Northrop-Grumman1991 8 місяців тому

      @@LafayetteSystemshaven’t watched the rest of your older vids but did you use rocket candy for fuel

  • @atrumluminarium
    @atrumluminarium Місяць тому

    13:44 lol I almost missed the joke you flashed there 😅

  • @thewillderness7852
    @thewillderness7852 8 місяців тому +1

    Very impressive! I would love to see a telemetry follow up video. What RF module are you using for the full duplex (or half duplex?) communication?

  • @wondercorpse
    @wondercorpse 8 місяців тому +1

    Can you please talk more about matlab and HITL modeling, you barely mentioned them but I think for a lot of people it's a sort of dark magic art that would be really interesting to know about.

  • @gingersmurf7057
    @gingersmurf7057 8 місяців тому +3

    Do you have a git repo where we can see the flight code?

  • @szymeqpl8463
    @szymeqpl8463 8 місяців тому +1

    Please video only about communication between rocket and ground station

  • @pp-uf4qo
    @pp-uf4qo 8 місяців тому

    Just Awesome dude 👌

  • @mpreki
    @mpreki 8 місяців тому +3

    How did you learn all of this? Did you go to college? Or did you read a bunch of books and figured the rest out on your own?

  • @abdullaal-bader46
    @abdullaal-bader46 8 місяців тому

    good job, keep it

  • @ThatPawikBoy
    @ThatPawikBoy 8 місяців тому +2

    The missile knows where it is at all times. It knows this because it knows where it isn't.

  • @도둘리-i7k
    @도둘리-i7k 3 місяці тому

    Nice project! I love it.
    May I ask why two accelerometer used?

  • @matinobrajkovic4876
    @matinobrajkovic4876 8 місяців тому

    I would definitely like a video on telemetry system

  • @paxon57
    @paxon57 8 місяців тому

    Would love to see one about Matlab / Simulink part

  • @RocketVlogs
    @RocketVlogs 8 місяців тому +1

    If I had to guess, I'd think it knows where it is because it knows where it isn't.

  • @mikets42
    @mikets42 8 місяців тому

    Wow. That is a serious project for a well sized team of PhD and seasoned professionals.

  • @ArchonLicht
    @ArchonLicht 8 місяців тому

    The 8 times rotation matrix = ∞ joke is a good one :D

  • @user-hk3ej4hk7m
    @user-hk3ej4hk7m 6 місяців тому

    It's interesting how similarly you code is structured to rudimentary game engines

  • @Ruhgtfo
    @Ruhgtfo 2 місяці тому

    Dude 😎 can become CEO on his own.

  • @gustavrsh
    @gustavrsh 4 місяці тому

    Love your project! Have you considered something like freeRTOS? I code my flight computer with it, it's neat because you don't really have fixed frames, different tasks can run at different rates.

  • @s9josh778
    @s9josh778 8 місяців тому +1

    wow.

  • @radovansemansky4618
    @radovansemansky4618 8 місяців тому

    In short -Excelent project, 1000x super

  • @purpleicu_840
    @purpleicu_840 8 місяців тому

    super cool

  • @rickharold7884
    @rickharold7884 8 місяців тому

    Cool stuff

  • @Build_the_Future
    @Build_the_Future 8 місяців тому +1

    can you exspand on the Complinary filters that you use? i'm gessing you avrage the values or what else do you do to clean up the data?

  • @auro1986
    @auro1986 7 місяців тому

    you can reprogram guidance software to hit any aircraft nearby promoting rocket into missile

  • @artashesharutyunyan3693
    @artashesharutyunyan3693 8 місяців тому

    really cool, do you sell the board and other pats? Or the whole design?

  • @neuvedeno1
    @neuvedeno1 3 місяці тому

    Dude, I did control system design, implementation HW, SW as a master thesis but this is a completely different level. Watched your video with an amusement. Wonderful job. How long did it take you from the beginning to get here?

    • @LafayetteSystems
      @LafayetteSystems  3 місяці тому

      It took me about four years to get here. I had some early experiments with active control that worked… ok. Learning all of the aero, guidance and control and PCB design took a while but I’m happy to have made it as far as I have!

  • @garrukapex6693
    @garrukapex6693 8 місяців тому

    Would you be able to do a software release excluding GNC? That’s obviously the most interesting part, but I’m also really interested in your tooling stack and use of HIL for verifying software components before flight. If you have any resources on what you’re using I’d really appreciate it. Thanks!

  • @anonymgris1987
    @anonymgris1987 8 місяців тому

    Very cool! 😮 What Technology stack do you use for the Ground Telemetry Station / Application?

  • @The_1ntern3t
    @The_1ntern3t 6 місяців тому

    Shoutout to all the launch towers out there that got absolutely wrecked when launching their rocket babies.

  • @JeromeDemers
    @JeromeDemers 8 місяців тому

    didn,t know you could load teensy bootloader on new chip MK66FN2M0VLQ, that nice to know

  • @tmeredyk
    @tmeredyk 8 місяців тому

    nice layout. i see your not releasing any docs. i would like to see how you wired your pyro channels. perhaps a teeny part of the schematic? is there feedback to show if the igniters are connected?

  • @maxmustermann9858
    @maxmustermann9858 8 місяців тому +3

    What’s about with the Export Restrictions? There are also Open Source projects available for Rocket Guidance, are those different in terms of which Law they need to comply with?
    So it wouldn’t be possible to Open Source this project later?

    • @LafayetteSystems
      @LafayetteSystems  8 місяців тому +8

      Export control restrictions are intentionally vague and vary country to country. This project probably doesn't fall into the spirit of USML restricted material, but parts of it fit into the letter, so it's better to be safe than sorry. Beyond that, there's a lot of safety procedures that go into active control flights even at this scale, and I'd hate for someone to just download some files, do some 3D printing and get themselves hurt.

    • @maxmustermann9858
      @maxmustermann9858 8 місяців тому +3

      @@LafayetteSystems Yeah that I can understand. I also Plan to do this as a Project in the future, so I don't need the plain code. But Publishing some recourses via you Learned all this stuff would be a great help. Im exited for future Videos!!!

  • @jonathanfulcher602
    @jonathanfulcher602 8 місяців тому +1

    Very cool project! Is there a reason you used the FFC & Pinheader connection, instead of a mezzanine connector?

    • @LafayetteSystems
      @LafayetteSystems  8 місяців тому +1

      Good question! Vibrations are very common in rocket launches, and I was nervous about mezzanine connectors disconnecting, even momentarily during launch. The FFC let’s the two boards move/flex in relation to one another and still be connected. That being said, the 6-pin power connector is rigid anyways so maybe a mezzanine connector would have worked all along.

  • @klyesam4006
    @klyesam4006 8 місяців тому

    The missile knows where it is at all times. It knows this because it knows where it isn't. By subtracting where it is from where it isn't, or where it isn't from where it is (whichever is greater), it obtains a difference, or deviation. The guidance subsystem uses deviations to generate corrective commands to drive the missile from a position where it is to a position where it isn't, and arriving at a position where it wasn't, it now is. Consequently, the position where it is, is now the position that it wasn't, and it follows that the position that it was, is now the position that it isn't.
    In the event that the position that it is in is not the position that it wasn't, the system has acquired a variation, the variation being the difference between where the missile is, and where it wasn't. If variation is considered to be a significant factor, it too may be corrected by the GEA. However, the missile must also know where it was.
    The missile guidance computer scenario works as follows. Because a variation has modified some of the information the missile has obtained, it is not sure just where it is. However, it is sure where it isn't, within reason, and it knows where it was. It now subtracts where it should be from where it wasn't, or vice-versa, and by differentiating this from the algebraic sum of where it shouldn't be, and where it was, it is able to obtain the deviation and its variation, which is called error.

  • @sebastiancikes3304
    @sebastiancikes3304 8 місяців тому

    Very interesting, why didn't you use a scheduler like FreeRTOS to manage the functions?

  • @En1Gm4A
    @En1Gm4A 8 місяців тому

    awesome

  • @paultal
    @paultal 8 місяців тому

    I was sure i would find a "missle knows where it is by knowing where it isn't" comment 😂

  • @Positive_Altitude
    @Positive_Altitude 8 місяців тому

    Cool stuff! What type of connectors do you use? You say MOLEX, but which one?

  • @En1Gm4A
    @En1Gm4A 8 місяців тому

    in the time domain well positioned. thats click worthy

  • @todeilfungo
    @todeilfungo 8 місяців тому

    hi, do you make content exclusively on missiles? if not, can you make a video on how to make a radar? your channel looks serious and it's impossible to find someone making a radar (every "radar" videos contain a tutorial on how to make a sonar)

  • @milholeon1680
    @milholeon1680 8 місяців тому

    Hi ! very nice project. What class of engine are you using? What is the propulsion duration?

  • @Seba_World
    @Seba_World 8 місяців тому

    Beeing Nicolaus Copernicus is extremly hard nowadys. Nicolaus Copernicus. A lot of thinks to learn in each area.

  • @wowtah
    @wowtah 8 місяців тому

    Very cool project!
    Are you using the readSensors serial.prints during flight? If not, you could make a flag to skip the serial prints, to free up some cpu resources during flight 😊

  • @clarkfreeman1573
    @clarkfreeman1573 6 місяців тому

    What CAD do you use for the PCB design?

  • @tariqsingh3747
    @tariqsingh3747 8 місяців тому +2

    Why are multiple IO expanders used? I am not familiar with the MCU in question, but with that many pins I would assume that it would have plenty of peripherals (UARTS and GPIOs mainly for this application). Was it a limitation of the amount of the wires in the flex cable?

    • @LafayetteSystems
      @LafayetteSystems  8 місяців тому +4

      Good question! I could do without any IO expanders, but it would require a 36-pin FFC which is just comically large and it would eat up every last GPIO pin and UART on the MCU (let alone routing all of them to the cable connector). The I/O expanders help cut that down tremendously. All of the really important connections are directly to the flight computer (Servo PWM outputs, pyro arming and fire signals), whereas the non-critical stuff (booster/pad detection, LEDs, pyro continuity) is handled by I/O expanders and polled via I2C. That way, if an I/O expander fails for some reason, it doesn't accidentally fire pyro channels or something bad.

    • @tariqsingh3747
      @tariqsingh3747 8 місяців тому

      @@LafayetteSystems That makes a lot of sense. Using dedicated pins for critical functions is a good idea as well. I don't think there are any better solutions to be honest, without spending tons of money on higher-density connectors. Thanks for your reply.
      On the topic of flight critical hardware, had you considered implementing a 'watchdog' (not the correct term) MCU to monitor the flight state? As in, if there was an issue with your flight firmware, say it got spammed with interrupts or otherwise held up unexpectedly, a backup mcu could force an abort state, or override control to the pyros for example. Obviously, this would also be a failure point, and you would need at least 3 MCUs to have a proper voting system. And I assume that bottom board is already 70-90% full. So I guess its not really practical but I typed it up so I might as well send it :P
      What I mean, I guess, is in terms of redundancy, what choices did you make? Was there anything that would've been beneficial which you had to leave out of the final design?
      You did also mention a video on telemetry, that sounds like a great idea.

  • @vitepvitep3588
    @vitepvitep3588 2 місяці тому

    Dark magic

  • @dextardextar
    @dextardextar 7 місяців тому

    homie just did a homebrew raytheon knife missile

  • @badwolf4469
    @badwolf4469 8 місяців тому

    16:18 We report the error code 1202 or 1201 (see apollo landing) 😉

  • @davidjpage
    @davidjpage 7 місяців тому

    What type of onboard camera's do you use?

  • @TheMono25
    @TheMono25 7 місяців тому

    I have a whole bunch dji phantom 3 advanced parts you may be interested in 😊

  • @captjohnny
    @captjohnny 8 місяців тому

    Is your pc board assembly done outside...or do you do it?

  • @NathanSang-g1h
    @NathanSang-g1h 6 місяців тому

    So fcking cooooool!!! So fascinating stuff main, I wish I could do such cool stuff

  • @rubertgabriel5418
    @rubertgabriel5418 8 місяців тому

    what is the reason to use memory flash and SD card? when should use one and when should use another? thanks

  • @आयुध
    @आयुध 3 місяці тому

    What controller is used in rocket technology?

  • @Alba901
    @Alba901 8 місяців тому +1

    it knows it by substracting it from where it isn't

  • @KingA-cj6ko
    @KingA-cj6ko Місяць тому

    I know it might seem like a dumb question but, what coding language are you using? I'm new to this field and want to learn more

  • @Fnta_discovery
    @Fnta_discovery 8 місяців тому

    Hi, i wanna knwo how you did to learn pcb design ?