How Does This Rocket Know Where It Is? Active Control Flight Computer - Building DIAMOND-X Part 3
Vložit
- čas přidán 10. 07. 2024
- This flight computer is the brains of DIAMOND-X, and does guidance, navigation, and control. I built these flight computers specifically for actively controlled rockets, and they are the most compact circuit boards I've ever designed. Let's talk about all the chips on these, how I came up with the requirements for the computers, and a little about the flight software.
#aerospace #avionics #rocketry #rockets #pcb #software
In the US, there are no specific legal restrictions on actively controlling a model rocket! If you would like to get started in active control, the r/Rocketry discord is a great place to get started and to learn active control from the experts. Make sure you check your local laws if outside the US, and always keep safety the #1 priority at launches.
PCB Design Resources:
Phil's Lab:
/ @philslab
Altium Academy:
/ @altiumacademy
NOTE: I am not planning a release of any documents related to CAD, PCBs or software.
Chapters:
0:00 Intro
0:24 Project Overview
1:50 Flight Computer Deep Dive
8:44 Requirements Definition
10:11 Flight Software
16:50 What's Next?
Dreams:
Music by Bensound.com/royalty-free-music
License code: OO4AORYDGTZOJBVA
Evolution:
Music I use: Bensound
License code: GYPUSTIIZZLRXJXN
This guy is driving a mini space program all by himself. Thats fking cool dude
A private arms race
I know, I wish he'd offer up the files for sale.
@@ryanreedgibson ask him. Pretty sure it's illegal, but nobody needs to know
So cool - great work dude!
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.
We did it Resdit
I opened the comment section to write this
thank you, i only opened this video for this comment. I will now close it before the missile finds out where i am
I only came for this comment.
He was asking for this.
This is very, very cool - great job! Thanks also for the shout-out :)
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.
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!
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.
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.
I can't be open-source because of ITAR limitations.
@@AnotherByteData I can participate on that
@@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?
@@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.
Love the engineering on this channel.
What a world we live in where I can learn about building guided rockets on the internet.
for real🙏🦅🚬🇺🇸🇺🇸🇺🇸
All the technology you've incorporated into this rocket is truly inspiring! I absolutely love it!
This series has been so cool to watch. This is the kind of inspiring content the people NEED! You're THE PEOPLES' HERO!!
This is one of the coolest channels on CZcams.
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!
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 :)
Great work! Kudos for calling out the part numbers
Avionics is such a cool field! Thanks for sharing all the technical details!
You decided to self teach yourself and then you go ahead to make THAT!
Great work dude🔥🔥
This man deserves way more views
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.
alwase incredible, your a source of inspiration for me
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.
thank you for the inspiring content! keep it up!
Amazing work thanks for sharing!
Awesome!
Incredible work, I am very impressed by this rocket brain
Cool explanation, your requirements are very interesting!
AMAZING JOB !
Well done! I particularly like the hardware👍
Thanks for sharing, very nice project
Just Awesome dude 👌
Amazing video! Love the deep dive into code.
Would love to hear some of the learnings from PCB designing and manufacturing.
I would love a video on the telemetry system! I am doing something similar and would love to see your approach.
+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.
Would love to see more about your ground station!
holy f, that is seriously impressive man
super cool
mirco usb, still holdin on in 2024. Great breakdown!
Love you're videos. Any suggestions for a noob to electronics on how to select the components and getting started and building guidance systems?
good job, keep it
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.
awesome
Cool stuff
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.
Yeah...
Go to jail.
Do not pass GO.
Forfeit *ALL* 'human rights' and go straight to Guantanamo Bay.
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
@@abdullahahmed7781 also a good idea.
@@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.
Really amazing! do next one about telemetry!
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
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?
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.
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).
@@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...
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?
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?
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 !
Shoutout to all the launch towers out there that got absolutely wrecked when launching their rocket babies.
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.
Cool stuff! What type of connectors do you use? You say MOLEX, but which one?
Very cool! 😮 What Technology stack do you use for the Ground Telemetry Station / Application?
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?
wow.
Do you have a git repo where we can see the flight code?
Would love to see one about Matlab / Simulink part
I would definitely like a video on telemetry system
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 😊
really cool, do you sell the board and other pats? Or the whole design?
In short -Excelent project, 1000x super
Is your pc board assembly done outside...or do you do it?
The 8 times rotation matrix = ∞ joke is a good one :D
yo man any chance on sharing the files, datasheets and general documents on the flight computer PCB's ?
What CAD do you use for the PCB design?
It's interesting how similarly you code is structured to rudimentary game engines
What type of onboard camera's do you use?
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!
Please video only about communication between rocket and ground station
Hi ! very nice project. What class of engine are you using? What is the propulsion duration?
you can reprogram guidance software to hit any aircraft nearby promoting rocket into missile
❤
Very interesting, why didn't you use a scheduler like FreeRTOS to manage the functions?
The missile knows where it is at all times. It knows this because it knows where it isn't.
I couldn't help myself.
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.
Very cool project! Is there a reason you used the FFC & Pinheader connection, instead of a mezzanine connector?
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.
what is the reason to use memory flash and SD card? when should use one and when should use another? thanks
didn,t know you could load teensy bootloader on new chip MK66FN2M0VLQ, that nice to know
Wow, well done
Is there any coming videos for the Matlab Simulation???
That should be the next video in the build series, all of the ground testing and simulations done before flight!
@@LafayetteSystemshaven’t watched the rest of your older vids but did you use rocket candy for fuel
homie just did a homebrew raytheon knife missile
Wow. That is a serious project for a well sized team of PhD and seasoned professionals.
in the time domain well positioned. thats click worthy
If I had to guess, I'd think it knows where it is because it knows where it isn't.
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.
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)
So fcking cooooool!!! So fascinating stuff main, I wish I could do such cool stuff
Beeing Nicolaus Copernicus is extremly hard nowadys. Nicolaus Copernicus. A lot of thinks to learn in each area.
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?
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.
@@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.
I was sure i would find a "missle knows where it is by knowing where it isn't" comment 😂
Hi, i wanna knwo how you did to learn pcb design ?
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?
Dude you are fucking amazing, and here i am csnt even fuse the accel and gyro to get the right angle.
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?
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.
@@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!!!
In how many iterations have you developed this?
I have a whole bunch dji phantom 3 advanced parts you may be interested in 😊
You mentioned you are restricted under export controls. Do you work with at an aerospace company? Otherwise why would your personal project be export controlled?
Pretty good privacy was a private project . Still it was not allowed to be exported with long keys. So the author exported the source. Then in other countries you could edit the const int max key length
16:18 We report the error code 1202 or 1201 (see apollo landing) 😉
why you did not used FPGA instead of CPU ?
Could you comment on the component costs of all the electronics components -- especially all the specialized sensors?
probably about a hundred dollars
@@ulyu7071 I believe some of the specialized sensors can be expensive, but I would be curious about the cost of components used here.
The meme 😂
Hello guys, I want to be able of do this by my own, as this guy is doing.
I have write some baremetal firmware in my stm32, so I know about programming, and also I have studied informatic, so I know about how computers work.
But, if I want to build this, I guess I have to learn about electronics and pcb design, right?