Bravo my friend! I was in medical school in the 1970’s when the first CT scanner was developed by the engineering branch of EMI Limited in London, England. They were better known at the time as one of the four largest music publishing companies in the world. I believe at one time they owned the rights to the entire Beatles catalogue. I spent 41 years doing general surgery and, without a doubt, the CT scanner was the most useful of all the technologies in my medical toolbox. Originally it was only able to perform brain imaging and the scans were quite pixelated but, of course, the technology rapidly improved and eventually it was applied to all parts of the body. In the space of about a decade, “exploratory laparotomy” (opening a patient’s abdomen to find out what was causing pain, infection, obstruction, bleeding, etc.) became nearly obsolete. Currently a surgeon generally knows a lot about what he/she will find before the patient ever reaches the operating room allowing for careful preplanning of the procedure. I recall many exploratory surgeries early in my career where there were at least a half dozen possibilities going in. Surgeons had to essentially be ready for almost any eventuality. This forced a very rapid assessment, diagnosis and treatment plan while the surgery was in progress. This was exciting to say the least but also very stressful. It is rare nowadays to be in that sort of situation, though it still sometimes occurs when a patient’s condition is too unstable even to perform a brief CT scan. Excellent work young man. When I read the title of your video, I thought perhaps you misunderstood the complex nature of the reconstruction algorithm. Turns out I was the one trying to keep up with your explanations and logic. Sir Godfrey Hounsfield shared the Nobel Prize for his work in developing computed axial tomography, perhaps one day you might help invent some new technology to make the world a better place. I’m rooting for you.
@@Smytjf11 These radiation levels aren't really that dangerous unless you sit in front of it for extended periods of time. If anyone knows how to use these components they also know not to stay next to them while operating.
@@gregorymalchuk272 they are mostly proprietary and sold with the scanner by companies like GE, Siemens, Toshiba, etc. most are about the size of a home refrigerator though I don’t know if most of that is taken up by memory modules. That’s why I was skeptical that the RUclipsr could perform the spatial reconstructions using a laptop, but he proved me wrong. What’s more, this was just his initial attempt. He could refine this significantly using an old microwave oven with rotating platform as was suggested by another commenter.
I often wonder what the limits of of what we could make if you got all the RUclips science nerds together with a moderate budget. I bet that not much would be off the table. Great video!
@@chemistryofquestionablequa6252 Nah, build a fusion reactor!! (The fact that nobody has built one sucessfully, ever, might be a challenge though). Or improve on the old Soviet Radioisotope thermoelectric generators, that were portable (kinda).
Absolutely incredible that this works as well as it does. After working 4 decades in control systems, I would recommend programming at least one more additional button on your remote - an E-Stop (emergency stop) button to instantly halt the x-ray and high voltage power supply, should someone (or possibly a pet) enter into the area unexpectedly. Impressive that you researched this so completely. Well done!
I fix CT scanners for a living. This is pretty darn cool!! When you started out, I was trying to figure out how you were going to make all of that rotate around your “patient.” You simply rotated your “patient” itself. Well done! You need to get into this business!!
Excellent. I've not watched all of it carefully so you may have addressed it. Be careful to not overheat the tube. They are normally submerged in oil and temp controlled. And buy yourself a digital dose meter. Don't mess around with xrays and cancer.
Your beeper code does not give enough time for LOW. It does HIGH for a second, goes to LOW and immediately back to HIGH. What you need is another pause after the LOW.
even better is to just use PWM. the atmega's default clocks put all of the PWM frequencies in the human audible range, so you can just set PWM to 50% duty cycle, wait one second, then turn it back off. no need for a loop. example from memory: (it's been a minute since i touched an arduino so double check the syntax lol) // i believe this is one of the PWM pins, and i think it's in the low kHz range int beeperPin = 6; pinMode(beeperPin, OUTPUT); // beeper on. this is 127 of 255, so 50% duty cycle square wave. (and it's 255 because it's 8-bit, and that includes 0, so it's 256 total) analogWrite(beeperPin, 127); // let it beep for one second delay(1000); // beeper off analogWrite(beeperPin, 0);
While not medical grade, it still demonstrates the working principle and actually extremely useful for imaging internal structures of all sorts of things!!
Really nice job! Your sense of humor is so awesome 😅 I am a medical engineer (BA and MA degree) and it really reminds me of all that nice experiments during study. Keep it up! Maybe medical engineering is also the right choice for you 😊 For the next upgrade, you could possibly use a raspberry pi and place a fixed camera on a rig. You could then just export full reconstructed datasets
The piezo buzzer not staying on for the specified time is because you need to delay after setting the pin to low, otherwise the code loops then immediately sets the pin high again, not giving any time to stay off, if you want a period of 1 second high and low then you can do that but if you want a total interval as 1 second so time it takes for the buzzer to go on and off then repeat, you would delay for 500 ms after setting pin 2 high and then after setting pin 2 low delay for another 500ms. Feel free to tweak these values to achieve what you’re looking for. May i recommend HIGH for 1000ms & LOW for 500ms
The nerd glasses - - absolutely awesome. Dang, we need thousands of more STEM kids like this, instead of the vast majority of kids his age staring at their cellphones all day and night.
This is a great idea for making your own X-ray inspection equipment; welding, solder balls on BGA components, failure analysis, etc.. It was smart to use the remote control to keep away from the X-rays! If you don't know Matlab, it's not that bad. You can use Octave and get up to speed with Matlab for free (nearly the same). Python also has LOTS of tools, but Matlab is great for doing this vector math in real time though.
Just like Matlab has Simuling, Octave has Scilabs. They're a LOT of tools to get things done at a high leve, very fast. It's like how Python has a lot of tools out there to use for free.
Python has a lot of modules for medical engineering, image reconstruction, signal analysis etc. And all for free. I used it a lot at university (studied medical engineering).
Protip man, build a little lead or steel vault for that thing to protect yourself AND remove background radiation that is noising up your image. Then get yourself a survey meter and make sure you are keeping exposure outside the vault to 5mr/Hr or less.
I’m not going to lie, most of this video confused the hell out of me, but this is actually amazing. I’d love to see what else you come up with, could be saving lives man🙏🏻
man all you gotta do is build a nice rig that keeps the scanner actually true with what its looking at and this thing is already good enough for a lot of scanning projects, still impressive what a cardboard box can do
7:25 It's probably been mentioned but the issue with the buzzer staying on is that it turns off at the end of the loop cycle, but then immediately starts the cycle over turning itself back on. doing something like "buzzer on, wait 500ms, buzzer off, wait 500ms" would produce something similar to what you want.
I’m an electrical engineering student and this is the type of tomfoolery shenanigans I signed up for. Oddly enough, I too am guilty of searching for old ultrasound and X-ray machines, and yeah they’re all out of my student budget. Thanks so much for sharing I might consider doing a version of this project for my signals and systems class and maybe get into signal processing more. I’m really interested in ultrasonic levitation and phased arrays for the purpose of capturing mosquitos and other small insects 🐜 muahaha
Incredible! I wonder how much more accurate it would be with tiny increments like 0.4 degrees per image. How much radiation do they emit? I wonder how long before it would “damage” a person. I’m also imagining if you built a slow revolving almost circular train track, you could have the hardware rotate very slowly and work well. If you had a vertical track on a wall, a patient could stand against a wall while it moved up in 1ft increments and revolved slowly. Obviously very slow and crazy work to develop but it would make ct machines an affordable household appliance.
THANK YOU!!!! Now I understand the difference between CAT/CT and MRI; before your production I thought these were similar systems. Was I ever wrong, thanks again!
Great video. I have some code suggestions though. Note: this is not in any way intended to be a roast. First, as you are in a very agressive enviroment where you can get random bit-flips, you should add a watchdog timer to the code. This is on the hardware where if a function isn't called for too long it assumes the MCU crashed and it will reboot it where you can re-initialize all of the outputs into a safe state. Second, your code is very slow (as in one loop will take many minutes) because you have a lot of blocking code (a delay(1000) will have the execution sit there until it is finished with that line). This makes it difficult to react to any other inputs you may want to add later (like a cancel button). Instead, you should have something more like this pseudo code: #include //real code, needed for watchdog setup( wdt_enable(WDTO_2S); // Real code, Enable the watchdog with a timeout of 2 seconds ) loop( wdt_reset(); // Real code, Reset the watchdog if this isn't called before 2 seconds then the arduino will reset itself if(startButtonPushed || motionRunning){ //see if the enable button has been pushed or if the program is already running if(!motionRunning){ //check to see if motion is already running to initialize the running variables (pushing the start button again doesn't do anything) startTime=millis(); //read current time motionRunning=true; //tell the program it is running angleStep=360/destiredResolution; //save a variable so the program knows when it is done currentAngle=0; //reset this counter } } if(millis()-startTime>=1000){ //here is where it gets good. The arduino is running the main loop as fast as it can (many thousands of times per second), this checks to see if one second has passed, if it has then it will do stuff takePicture(); //call function to tell camera to take a picture moveTable(); //start table motion startTime=millis(); //record new time currentAngle=currentAngle+angleStep; //update table rotation position if(currentAngle>=360){ //check to see if a full rotation has completed, if it has, shut down the program motionRunning=false; } } if(stopButtonPushed){ //having non-blocking code allows a stop button to be constantly checked motionRunning=false; } } If you have any more questions I can help out and would even be willing to make something that actually compiles. Keep up the good work.
Very ingenious setup :) This is what I imagine raw unfettered experimenting with simple means should be. Nicely done, but please remember that Xrays are not a trivial thing ! Always take the necessary precautions. I'm curious how far you'll take the concept :)
hence, why he was across the yard. BTW, I helped build a general medical scanning facility once, the Xray and CT scanner rooms were lined in lead along the sides. the MRI room was lined in copper sheeting
I am actually working on the same thing but a bit more refined 😅 also made a tool in Matlab that outputs a full CTscan file (stacked png) or pointcloud from the scans :) If you want to give that a try leave me a comment.
@@PyrotechnicalScience i will get back to this in a few days, catched corona 😅 i already had a look and want to recompile the newest version before i send it to you
That was friggin' mint! Well done with a budget. I'd say you got better than $200 of image quality as that looks about as good as some airport scanners. lol
You are so smart at such a young age. Great project and very good concept. I've wanted to do a home made xray for a long time. This seems to have all the ingredients I need and extra great stuff. Love the info about reconstruction of the 3d object
After hearing about the Therac-25 story, I would never want to mess with X-ray equipment. Especially if you're relying on a wimpy arduino as your control board.
Random idea: an Ionizing Radiation Detector peripheral for the original GameBoy. The more cost effective you can make it, the better. You could collaborate with “The Thought Emporium” and/or “stacksmashing”.
I believe you need a delay (1000) or so after the digitalwrite(2, LOW); statement. After the digitalwrite(2, LOW) you are immediately going back to writing it high again. Wonderful video
Hmmm you’re onto something there! I could lead shield it then replace the old electronics with my own, I’ll definitely probably try that in the future!
@@PyrotechnicalScience the microwave motor would have to be a non standard one. The motors that I have found inside the microwaves take a random direction when they are turned on.
You've got your beep in a loop so its going to happen 45 times. It seems to be 'staying on' because there is no delay between the switching off and the switching on. It goes on, waits for a second, goes off, then it changes the value of 'i' and does a check, once that check is done it instantly goes back to the 'switch on' instruction. The time it takes to switch back on is imperceptibly short. It will perceptibly stay on for 45 seconds and then turn off and continue the rest of the code.
Yep this is the reason. I was going to post this exact thing but then I saw this. Set another delay after the LOW or it has zero delay and just stays on all the time.(or set the delay before the HIGH ... I personally don't do anything before the HIGH :) )
Absolutely Awesome ! Superb project, very well done ! Don't take any crap about the arduino code - if it works, it's good. Sure it could be better, so could we all.
Hmm curious how the crazy phone image AI that they use to improve the image interferes/helps. If it’s possible to find an app that turns off some of the magic would be good to compare. During scientific things it’s best to remove as much of the magic and apply it later, especially because it can vary from shot to shot. Also if you add a counter or something that was visible in the image it would help to map the particular degrees of a shot. Probably the best move is to integrate it with a Pi or something so you can correlate the shots with the actual data on rotation.
Great job! One thing, it's probably much harder and slightly questionable regarding safety, but if you manage to run the tube at full power (not sure how many kV you are using) you can probably record video directly of the intensifying screen, then you just do a pretty quick 360spin and then extract the frames, are you using long exposure for the pictures? Excellent video, and sorry if it's something you already considered hahahaha
What do you think about building a scanner with an array of electronic sensors like those used by Peter Jansen? it can allow you to detect a weak signal directly, with higher sensitivity and much faster. The original "openCT 2" (can be found on 'hackaday') has a pretty low resolution, but signal-to-noize ratio is pretty impressive.
Great video! From the point of view of en electronic engineer what you've done is very cool but also I don't see any disclaimer - explanation about X-ray safety. I'm pretty sure that you know risks of ionizing radiation expoasure and extremely high voltage but must consider that viewers might not know it! I'm sorry to bother about safety but I think it is very important, expecially for the most unexperienced viewers, and since you are giving the information (through the video) it is your responsability. Hope I've pass the message without being too much annoying, peace :)
Being technically competent at such a young age is great, you have serious future potential. Since you can produce X-Rays might I suggest an application other than imagery. Try to develop a receiver antenna that would convert X-Rays back into electricity similar to a solar panel converting photons into electricity. Space travel has a problem with cosmic rays penetrating the space ship and damaging the astronauts, like being under constant X-Ray bombardment, current shielding is insufficient. Astronauts during Apollo missions kept seeing flashes of light even when their eyes were closed, those were cosmic rays hitting their bodies. If you can convert X-Rays into useful electricity before they penetrate the ship that would save astronauts lives & produce power for Plasma engines. It is worth the research. X-Rays are different frequency than gamma rays but the approach should be similar. Gamma rays also come from nuclear waste, an antenna encasing nuclear waste would become a battery that last for centuries and worth a Nobel Prize.
Fantastic project! Is the number of slices tied to the number of original shots, or is it just down to how the data is processed? (I imagine there’s a relationship in terms of useful depth resolution, but probably not a direct one, given multiple other variables.)
Very cool. MATLAB is good and is very well documented so any problems you have can usually be resolved by doing a google search. Also, going into the deep end is always a learning experience, MATLAB might be worth it if you do simulations or data analysis.
Looking at your code. You have the alert in another for loop. So it's going to execute the alert 45 times before it's stops. Instead write a conditional statement at the end of the first for loop that checks the iterator. Such as "if( i == 45) { ALERT:); } That way it only runs when the cycles completes and only alerts once.
Great video. 🎉🎉 But I have a question. Why do you scan the object 360 degrees? Isn't 180 degree of rotation enough? 0° and 180° images should be just mirror images. What am I missing?
the constant beep thing you have in your code happens because you turn the beeper on, wait 1 second turn it of and repeat this 45 times in a loop, it shoud beep for about 45 seconds
this guy seems less likely to get killed IMO, he seemed to be standing in the right place anyways. is it me, or does that Mammography Xray tube look like it was made on the cheap as well?
6:52 Your problem with the code was not just asking ChatGPT to give you Arduino code, then describe your project and the pins being used. 😆 Welcome to "programming" in 2023.
I enjoyed the shit out of this video. Please keep it up and continue refining your coding skills. I bet you could get this process to come out very smooth.
oh my gosh dude this is awesome. im only slightly jealous cause ive had a simillar idea for a while now but ive gotten distracted by other projects im working on
Somebody probably answered this, but in your buzzer loop you need another delay after writing LOW to create off-time. Because it's a loop, it's going straight from digitalWrite(LOW) to digitalWrite(HIGH) without a delay. Original script: for(i = 0; i < 45: i++) { digitalWrite(2, HIGH); delay(1000); digitalWrite(2, LOW); //delay(1000);
Awesome project! Can you provide some details about the X-ray source, such as the high voltage magnitude and the current (mA) that the tube draws? I have experience repairing dental X-ray machines, and so I have a good understanding of the circuitry and how it functions. Do you have a link to your construction details that you can share with others who might want to duplicate this project? THANKS!
this would be really cool to reverse engineer and properly generate a boardview of logicboards where only schematics are currently available. nice job guy.
If you do make this into a nice "product", it would be cool if you could explore the potential legality of selling such device, and what if any permits would be required by a potential owner to buy and operate.
i got 3d catscan on my hip, i asked the tec guy for raw data said i was trying to 3d print my bone got a cd with all the raw data had to run it through a program and got it converted to .stl
Bravo my friend! I was in medical school in the 1970’s when the first CT scanner was developed by the engineering branch of EMI Limited in London, England. They were better known at the time as one of the four largest music publishing companies in the world. I believe at one time they owned the rights to the entire Beatles catalogue. I spent 41 years doing general surgery and, without a doubt, the CT scanner was the most useful of all the technologies in my medical toolbox. Originally it was only able to perform brain imaging and the scans were quite pixelated but, of course, the technology rapidly improved and eventually it was applied to all parts of the body. In the space of about a decade, “exploratory laparotomy” (opening a patient’s abdomen to find out what was causing pain, infection, obstruction, bleeding, etc.) became nearly obsolete. Currently a surgeon generally knows a lot about what he/she will find before the patient ever reaches the operating room allowing for careful preplanning of the procedure. I recall many exploratory surgeries early in my career where there were at least a half dozen possibilities going in. Surgeons had to essentially be ready for almost any eventuality. This forced a very rapid assessment, diagnosis and treatment plan while the surgery was in progress. This was exciting to say the least but also very stressful. It is rare nowadays to be in that sort of situation, though it still sometimes occurs when a patient’s condition is too unstable even to perform a brief CT scan. Excellent work young man. When I read the title of your video, I thought perhaps you misunderstood the complex nature of the reconstruction algorithm. Turns out I was the one trying to keep up with your explanations and logic. Sir Godfrey Hounsfield shared the Nobel Prize for his work in developing computed axial tomography, perhaps one day you might help invent some new technology to make the world a better place. I’m rooting for you.
What kind of computers were they using to collate the x-ray scans and render a graphical result?
Should I not be feeling like I'm watching a kid play with a live grenade?
@@gregorymalchuk272 I believe it was DEC computer and the output was to a dot matrix printer. I had one done of my head at John Hopkins in 1974.
@@Smytjf11 These radiation levels aren't really that dangerous unless you sit in front of it for extended periods of time. If anyone knows how to use these components they also know not to stay next to them while operating.
@@gregorymalchuk272 they are mostly proprietary and sold with the scanner by companies like GE, Siemens, Toshiba, etc. most are about the size of a home refrigerator though I don’t know if most of that is taken up by memory modules. That’s why I was skeptical that the RUclipsr could perform the spatial reconstructions using a laptop, but he proved me wrong. What’s more, this was just his initial attempt. He could refine this significantly using an old microwave oven with rotating platform as was suggested by another commenter.
I often wonder what the limits of of what we could make if you got all the RUclips science nerds together with a moderate budget. I bet that not much would be off the table. Great video!
We’d at least have the capabilities of a small university.
@@PyrotechnicalScience we'd be a massive security threat, lol. You just know that Cody would want to build a nuke.
@@chemistryofquestionablequa6252 lol I was just thinking that! Our biggest challenge would be government intervention 🤣
@@chemistryofquestionablequa6252 Nah, build a fusion reactor!! (The fact that nobody has built one sucessfully, ever, might be a challenge though). Or improve on the old Soviet Radioisotope thermoelectric generators, that were portable (kinda).
@@simonwatson5299 those things are kinda terrifying, mostly because there are some just rotting away in Siberia.
Absolutely incredible that this works as well as it does. After working 4 decades in control systems, I would recommend programming at least one more additional button on your remote - an E-Stop (emergency stop) button to instantly halt the x-ray and high voltage power supply, should someone (or possibly a pet) enter into the area unexpectedly. Impressive that you researched this so completely. Well done!
I fix CT scanners for a living. This is pretty darn cool!! When you started out, I was trying to figure out how you were going to make all of that rotate around your “patient.” You simply rotated your “patient” itself. Well done! You need to get into this business!!
Excellent.
I've not watched all of it carefully so you may have addressed it.
Be careful to not overheat the tube. They are normally submerged in oil and temp controlled.
And buy yourself a digital dose meter. Don't mess around with xrays and cancer.
Your beeper code does not give enough time for LOW. It does HIGH for a second, goes to LOW and immediately back to HIGH. What you need is another pause after the LOW.
Well done.
need to hold HIGH and LOW through prolonged increments.
for(int i = 0; i < 45; i++)
{
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
delay(1000); // this is what you were missing
}
even better is to just use PWM. the atmega's default clocks put all of the PWM frequencies in the human audible range, so you can just set PWM to 50% duty cycle, wait one second, then turn it back off. no need for a loop. example from memory: (it's been a minute since i touched an arduino so double check the syntax lol)
// i believe this is one of the PWM pins, and i think it's in the low kHz range
int beeperPin = 6;
pinMode(beeperPin, OUTPUT);
// beeper on. this is 127 of 255, so 50% duty cycle square wave. (and it's 255 because it's 8-bit, and that includes 0, so it's 256 total)
analogWrite(beeperPin, 127);
// let it beep for one second
delay(1000);
// beeper off
analogWrite(beeperPin, 0);
I still have hope in humanity and our future because of smart and curious creators/engineers like him. Good job dude.
While not medical grade, it still demonstrates the working principle and actually extremely useful for imaging internal structures of all sorts of things!!
Really nice job! Your sense of humor is so awesome 😅
I am a medical engineer (BA and MA degree) and it really reminds me of all that nice experiments during study.
Keep it up! Maybe medical engineering is also the right choice for you 😊
For the next upgrade, you could possibly use a raspberry pi and place a fixed camera on a rig. You could then just export full reconstructed datasets
The piezo buzzer not staying on for the specified time is because you need to delay after setting the pin to low, otherwise the code loops then immediately sets the pin high again, not giving any time to stay off, if you want a period of 1 second high and low then you can do that but if you want a total interval as 1 second so time it takes for the buzzer to go on and off then repeat, you would delay for 500 ms after setting pin 2 high and then after setting pin 2 low delay for another 500ms.
Feel free to tweak these values to achieve what you’re looking for.
May i recommend HIGH for 1000ms & LOW for 500ms
It’s mad impressive that this is actually functional, good job!! Thanks for documenting and explaining your discoveries
Impressive! If you are doing this much do not forget radiation safety!
Sweet, been waiting for this video. Great job and results.
The nerd glasses - - absolutely awesome. Dang, we need thousands of more STEM kids like this, instead of the vast majority of kids his age staring at their cellphones all day and night.
This is a great idea for making your own X-ray inspection equipment; welding, solder balls on BGA components, failure analysis, etc..
It was smart to use the remote control to keep away from the X-rays!
If you don't know Matlab, it's not that bad. You can use Octave and get up to speed with Matlab for free (nearly the same).
Python also has LOTS of tools, but Matlab is great for doing this vector math in real time though.
Just like Matlab has Simuling, Octave has Scilabs. They're a LOT of tools to get things done at a high leve, very fast. It's like how Python has a lot of tools out there to use for free.
Python has a lot of modules for medical engineering, image reconstruction, signal analysis etc. And all for free.
I used it a lot at university (studied medical engineering).
Protip man, build a little lead or steel vault for that thing to protect yourself AND remove background radiation that is noising up your image.
Then get yourself a survey meter and make sure you are keeping exposure outside the vault to 5mr/Hr or less.
Honestly I didn't expect much but my expectations have been blown away
I’d be careful about that direction of the x-rays since you’re not using proper shielding. It’d be terrible to give cancer to your neighbours..
I’m not going to lie, most of this video confused the hell out of me, but this is actually amazing. I’d love to see what else you come up with, could be saving lives man🙏🏻
dude, seriously impressive.
man all you gotta do is build a nice rig that keeps the scanner actually true with what its looking at and this thing is already good enough for a lot of scanning projects, still impressive what a cardboard box can do
Arduino needs to sponsor this man
7:25 It's probably been mentioned but the issue with the buzzer staying on is that it turns off at the end of the loop cycle, but then immediately starts the cycle over turning itself back on. doing something like "buzzer on, wait 500ms, buzzer off, wait 500ms" would produce something similar to what you want.
Amazing work. You're lucky to get a high voltage power supply that works for $60. I've been in the market for one for years.
Made it didn’t buy it, that’s why it’s so cheap
@@PyrotechnicalScience I just discovered your channel. Knowing you built that I'm starting to think I found my new favorite channel. Fantastic job.
I’m an electrical engineering student and this is the type of tomfoolery shenanigans I signed up for. Oddly enough, I too am guilty of searching for old ultrasound and X-ray machines, and yeah they’re all out of my student budget. Thanks so much for sharing
I might consider doing a version of this project for my signals and systems class and maybe get into signal processing more. I’m really interested in ultrasonic levitation and phased arrays for the purpose of capturing mosquitos and other small insects 🐜 muahaha
Someone found a damn use for those crappy buttons on the Roku remote!
Incredible! I wonder how much more accurate it would be with tiny increments like 0.4 degrees per image. How much radiation do they emit? I wonder how long before it would “damage” a person. I’m also imagining if you built a slow revolving almost circular train track, you could have the hardware rotate very slowly and work well. If you had a vertical track on a wall, a patient could stand against a wall while it moved up in 1ft increments and revolved slowly. Obviously very slow and crazy work to develop but it would make ct machines an affordable household appliance.
THANK YOU!!!! Now I understand the difference between CAT/CT and MRI; before your production I thought these were similar systems. Was I ever wrong, thanks again!
Great video. I have some code suggestions though. Note: this is not in any way intended to be a roast.
First, as you are in a very agressive enviroment where you can get random bit-flips, you should add a watchdog timer to the code. This is on the hardware where if a function isn't called for too long it assumes the MCU crashed and it will reboot it where you can re-initialize all of the outputs into a safe state.
Second, your code is very slow (as in one loop will take many minutes) because you have a lot of blocking code (a delay(1000) will have the execution sit there until it is finished with that line). This makes it difficult to react to any other inputs you may want to add later (like a cancel button). Instead, you should have something more like this pseudo code:
#include //real code, needed for watchdog
setup(
wdt_enable(WDTO_2S); // Real code, Enable the watchdog with a timeout of 2 seconds
)
loop(
wdt_reset(); // Real code, Reset the watchdog if this isn't called before 2 seconds then the arduino will reset itself
if(startButtonPushed || motionRunning){ //see if the enable button has been pushed or if the program is already running
if(!motionRunning){ //check to see if motion is already running to initialize the running variables (pushing the start button again doesn't do anything)
startTime=millis(); //read current time
motionRunning=true; //tell the program it is running
angleStep=360/destiredResolution; //save a variable so the program knows when it is done
currentAngle=0; //reset this counter
}
}
if(millis()-startTime>=1000){ //here is where it gets good. The arduino is running the main loop as fast as it can (many thousands of times per second), this checks to see if one second has passed, if it has then it will do stuff
takePicture(); //call function to tell camera to take a picture
moveTable(); //start table motion
startTime=millis(); //record new time
currentAngle=currentAngle+angleStep; //update table rotation position
if(currentAngle>=360){ //check to see if a full rotation has completed, if it has, shut down the program
motionRunning=false;
}
}
if(stopButtonPushed){ //having non-blocking code allows a stop button to be constantly checked
motionRunning=false;
}
}
If you have any more questions I can help out and would even be willing to make something that actually compiles. Keep up the good work.
Anyone else trying to look at their sealed trading cards? 😂
Damn this is really cool! Also props for using a remote control system unlike some other youtubers... Well done, really inspiring!
StyroPyro comes to mind.
That dude would tickle the dragon with a flat bladed screwdriver
@@davidconner-shover51 🤣
Very ingenious setup :) This is what I imagine raw unfettered experimenting with simple means should be. Nicely done, but please remember that Xrays are not a trivial thing ! Always take the necessary precautions. I'm curious how far you'll take the concept :)
hence, why he was across the yard.
BTW, I helped build a general medical scanning facility once, the Xray and CT scanner rooms were lined in lead along the sides.
the MRI room was lined in copper sheeting
This is going to be absolutely golden info for after the apocalypse. Thanks man. Good stuff!
This is great wow. Question what about radiation cell damage from exposure to x-rays is there shielding etc?
That'd be dope to compare sieverts to a modern x-ray machine
I am actually working on the same thing but a bit more refined 😅 also made a tool in Matlab that outputs a full CTscan file (stacked png) or pointcloud from the scans :) If you want to give that a try leave me a comment.
Oh most definitely! You can email me or discord!
@@PyrotechnicalScience i will get back to this in a few days, catched corona 😅 i already had a look and want to recompile the newest version before i send it to you
I can just imagine handing the doc a CT scan file made from a homemade CT machine of my broken arm. lol
That was friggin' mint! Well done with a budget. I'd say you got better than $200 of image quality as that looks about as good as some airport scanners. lol
Помню в сериале девяностых Вэлари Айронс Протэкшен показывали такой. За 30 лет ничего не поменялось.
You are so smart at such a young age. Great project and very good concept. I've wanted to do a home made xray for a long time. This seems to have all the ingredients I need and extra great stuff. Love the info about reconstruction of the 3d object
Nice job! What a cool project. Always wondered how that back projection worked on imaging like this.
oh for that loop at the end it's going low then immediately back high when the loop starts again, add another wait in the loop
After hearing about the Therac-25 story, I would never want to mess with X-ray equipment. Especially if you're relying on a wimpy arduino as your control board.
Random idea: an Ionizing Radiation Detector peripheral for the original GameBoy. The more cost effective you can make it, the better.
You could collaborate with “The Thought Emporium” and/or “stacksmashing”.
I believe you need a delay (1000) or so after the digitalwrite(2, LOW); statement. After the digitalwrite(2, LOW) you are immediately going back to writing it high again.
Wonderful video
your skillset is deadly 🔥🔥🔥
cool project
It kinda blows my mind it's still cheaper to build a CT scanner than get a CT scan here in the US 😂
We're the only country with a privatized for-profit healthcare system. :(
When I was in school my science fair project was a bi-carb volcano. Kids these days are so much more advanced.
Love the shielding being used, or not in this case.
"still in the game" 🗿🗿
I think it’ll be really cool to repurpose an old microwave machine to do this. Since it’s already got a turning table and stuff.
Hmmm you’re onto something there! I could lead shield it then replace the old electronics with my own, I’ll definitely probably try that in the future!
@@PyrotechnicalScience yep, super excited to see it.
@@PyrotechnicalScience the microwave motor would have to be a non standard one. The motors that I have found inside the microwaves take a random direction when they are turned on.
@@Charlie8food I’d just replace it with a stepper motor
I love the evil mad scientist energy!
You've got your beep in a loop so its going to happen 45 times. It seems to be 'staying on' because there is no delay between the switching off and the switching on. It goes on, waits for a second, goes off, then it changes the value of 'i' and does a check, once that check is done it instantly goes back to the 'switch on' instruction. The time it takes to switch back on is imperceptibly short. It will perceptibly stay on for 45 seconds and then turn off and continue the rest of the code.
Yep this is the reason. I was going to post this exact thing but then I saw this. Set another delay after the LOW or it has zero delay and just stays on all the time.(or set the delay before the HIGH ... I personally don't do anything before the HIGH :) )
Ok guy, I have DIY tattooed on me but this fella earned it, this is hardcore DIY.
Absolutely Awesome !
Superb project, very well done !
Don't take any crap about the arduino code - if it works, it's good.
Sure it could be better, so could we all.
Okay I had no clue they went as low as 39k, that's scary
Hmm curious how the crazy phone image AI that they use to improve the image interferes/helps. If it’s possible to find an app that turns off some of the magic would be good to compare. During scientific things it’s best to remove as much of the magic and apply it later, especially because it can vary from shot to shot.
Also if you add a counter or something that was visible in the image it would help to map the particular degrees of a shot. Probably the best move is to integrate it with a Pi or something so you can correlate the shots with the actual data on rotation.
Here comes the Arduino kit.. THERE IT IS!!!
Great job! One thing, it's probably much harder and slightly questionable regarding safety, but if you manage to run the tube at full power (not sure how many kV you are using) you can probably record video directly of the intensifying screen, then you just do a pretty quick 360spin and then extract the frames, are you using long exposure for the pictures? Excellent video, and sorry if it's something you already considered hahahaha
6:40 Still way better than the software written for the Therac-25 😂
Nice project bro
What do you think about building a scanner with an array of electronic sensors like those used by Peter Jansen? it can allow you to detect a weak signal directly, with higher sensitivity and much faster. The original "openCT 2" (can be found on 'hackaday') has a pretty low resolution, but signal-to-noize ratio is pretty impressive.
Awesome ! - hate to be your neighbor however - the x-rays
Great video! From the point of view of en electronic engineer what you've done is very cool but also I don't see any disclaimer - explanation about X-ray safety. I'm pretty sure that you know risks of ionizing radiation expoasure and extremely high voltage but must consider that viewers might not know it! I'm sorry to bother about safety but I think it is very important, expecially for the most unexperienced viewers, and since you are giving the information (through the video) it is your responsability.
Hope I've pass the message without being too much annoying, peace :)
👆 this!!!
Being technically competent at such a young age is great, you have serious future potential. Since you can produce X-Rays might I suggest an application other than imagery. Try to develop a receiver antenna that would convert X-Rays back into electricity similar to a solar panel converting photons into electricity. Space travel has a problem with cosmic rays penetrating the space ship and damaging the astronauts, like being under constant X-Ray bombardment, current shielding is insufficient. Astronauts during Apollo missions kept seeing flashes of light even when their eyes were closed, those were cosmic rays hitting their bodies. If you can convert X-Rays into useful electricity before they penetrate the ship that would save astronauts lives & produce power for Plasma engines. It is worth the research. X-Rays are different frequency than gamma rays but the approach should be similar. Gamma rays also come from nuclear waste, an antenna encasing nuclear waste would become a battery that last for centuries and worth a Nobel Prize.
Fantastic project!
Is the number of slices tied to the number of original shots, or is it just down to how the data is processed? (I imagine there’s a relationship in terms of useful depth resolution, but probably not a direct one, given multiple other variables.)
Very cool. MATLAB is good and is very well documented so any problems you have can usually be resolved by doing a google search. Also, going into the deep end is always a learning experience, MATLAB might be worth it if you do simulations or data analysis.
See if chat got can upgrade your code for you?! Could be a neat quick video!
this is the best most dangerous thing i'v ever seen
Young William Osman vibes haha
Bring this to open sauce.
Holy smokes! This channel is going places!
You have the voice of an airline pilot. But if I saw you stroll out of the cockpit I would probably shit myself.
Hello, you have a beautiful mind. Keep posting videos
😍
Looking at your code. You have the alert in another for loop. So it's going to execute the alert 45 times before it's stops. Instead write a conditional statement at the end of the first for loop that checks the iterator. Such as "if( i == 45) {
ALERT:);
}
That way it only runs when the cycles completes and only alerts once.
Great video. 🎉🎉
But I have a question. Why do you scan the object 360 degrees? Isn't 180 degree of rotation enough? 0° and 180° images should be just mirror images. What am I missing?
Next up? Here Kitty, Kitty! Just kidding, I know, NO living things must be home scanned. Great video!
the constant beep thing you have in your code happens because you turn the beeper on, wait 1 second turn it of and repeat this 45 times in a loop, it shoud beep for about 45 seconds
Enjoyed your video. Have you considered doing video on x-ray fluorescense spectroscopy?
This is all so interesting, and love the technical detail. Subbed here!
A fucking CBCT?!? Fucking incredible!
styropyro has a successor it seems.
seriously, this shit is crazy. Impressive, but crazy
this guy seems less likely to get killed IMO, he seemed to be standing in the right place anyways.
is it me, or does that Mammography Xray tube look like it was made on the cheap as well?
6:52 Your problem with the code was not just asking ChatGPT to give you Arduino code, then describe your project and the pins being used. 😆
Welcome to "programming" in 2023.
I enjoyed the shit out of this video. Please keep it up and continue refining your coding skills. I bet you could get this process to come out very smooth.
you should build a mini MRI next
So..... Ebay? Or what? Where did you get a working x-ray tube and HV power supply for under $200?
eBay for the tube and I built the power supply myself
oh my gosh dude this is awesome. im only slightly jealous cause ive had a simillar idea for a while now but ive gotten distracted by other projects im working on
Very cool project!! But if my doctor pulls out a setup like this I am running! lol
Thanks to you I'm going around offering free cat scans to cats
I am surprised how little concern you have about safety. I would not want to be someone living nearby.
Really enjoyed your set of videos on X-rays. Thanks. Subscribed. Cheers.
Somebody probably answered this, but in your buzzer loop you need another delay after writing LOW to create off-time. Because it's a loop, it's going straight from digitalWrite(LOW) to digitalWrite(HIGH) without a delay.
Original script:
for(i = 0; i < 45: i++) {
digitalWrite(2, HIGH);
delay(1000);
digitalWrite(2, LOW);
//delay(1000);
Awesome project! Can you provide some details about the X-ray source, such as the high voltage magnitude and the current (mA) that the tube draws? I have experience repairing dental X-ray machines, and so I have a good understanding of the circuitry and how it functions. Do you have a link to your construction details that you can share with others who might want to duplicate this project? THANKS!
this would be really cool to reverse engineer and properly generate a boardview of logicboards where only schematics are currently available. nice job guy.
If it's more than one layer it's mostly impossible. Cooper is normally used as beam filter in Xray machines.
Nice job, this is great. Stay safe with it.
Now I wanna see you make the thing that spins really fast 😂
Bravo for the execution and the presentation!
you need to add a delay for the beep because the statement is still true so it will instantly turn back on @7:34
If you do make this into a nice "product", it would be cool if you could explore the potential legality of selling such device, and what if any permits would be required by a potential owner to buy and operate.
i got 3d catscan on my hip, i asked the tec guy for raw data said i was trying to 3d print my bone
got a cd with all the raw data had to run it through a program and got it converted to .stl
I love this, but be very careful when using X-ray tubes!
Very nice project. Would it also be possible to build an MRI scanner? I don't like to expose my body too much to X-Ray. MRI is the way to go I.m.o.
Does your Patreon have step by step instructions and parts to order to build this?