Tuesday, January 8, 2013

DIY X-ray CT scanner controlled by an Arduino


I built a CT scanner from an x-ray tube that I bought on eBay, a stepper motor, a large ring bearing, and an Arduino. I used a phosphor screen and my camera to capture x-ray shadow images of a frozen chicken, while the Arduino and stepper motor rotated the chicken by 8 degrees between shots. The resulting 45 images were combined via filtered back projection to create a 3D volume reconstruction of the chicken.

Software used:

Panasonic SilkyPix (for .RW2 development)

Adobe Bridge/Photoshop for image perspective correction

Cygwin/Octave for filtered backprojection

Cone Beam Computed Tomography algorithm
http://www.mathworks.com/matlabcentral/fileexchange/35548-3d-cone-beam-ct-cbct-projection-backprojection-fdk-mlem-reconstruction-codes-for-matlab-students

3D Slicer for visualization and volume rendering
http://www.slicer.org/

13 comments:

adnbr said...

Nice job, this looks great! I've wanted to do this for a while but I have a feeling the power supply is going to give me trouble the moment I attempt it.

Could you try using a mirror at a 45° angle behind the phosphor screen? It would probably simplify the post production on the images as well and would probably lead to a more accurate end result as pixels are not being resized/stretched/squashed during the de-skew process.

Anonymous said...

Hey Ben i can help you with the camera remote control !
I make a reverse enginiring of a canon ir remote and i write a simple funtion for the arduino. You need just a 940nm ir led !
Here it is: pastebin.com/UHaJsHuT

Anonymous said...

just a reminder that radiation (xray) sources are regulated by the federal government and the state of California. Also the state of California requires registration of xray systems (http://www.cdph.ca.gov/pubsforms/forms/CtrldForms/rh2261.pdf) and your local health department may perform an inspection to verify safe operation.

James Newton said...

The stepper motor driver used is a Linistepper if anyone wanted to know. This is an open source (hardware design and firmware code fully documented and available on the web site) microstepping driver for unipolar motors at up to 35 volts and 2 or 3 amps. Ben has it set for 1 amp/phase and it looks like 1/6 micro-steps. Kits are also available, which is what Ben has, and I'm trying to figure out how I failed to notice his name when I shipped the order!

Anonymous said...

California, oo1oo !

Anonymous said...

Ben, What type of xray tube and how much was it? What did the total project costs run you? Time?

Anonymous said...

Are you still thinking about doing the mass spectrometer project?

Ben Krasnow said...

Anonymous, the X-ray tube is meant for PCB inspection -- 50KV @ 1mA nearly continuous -- $300 with power suppply on eBay. I've spent 50-100 hours on X-ray projects in general. Much of time was spent designing and building the backscatter detector.

Yes, a mass spec is doable and very cool.



Anonymous said...

An affordable Mass Spec would invaluable to a DIY Bio guy like me. Here is another similar effort for a thermocycler I am going to try and build http://www.instructables.com/id/Arduino-PCR-thermal-cycler-for-under-85/

Unknown said...

Where did you get the bearing?

Ben Krasnow said...

Unknown, I bought it on eBay. Search for "lazy susan bearing"

Anonymous said...

A similar device is used as a TV spinner if that helps.
Also a possible workaround is to harvest the cylinder assemblies from dead VCRs and use those ?

Re. X-rays, have you considered using a pyrolytic graphite shield for the screen?
This should take out all the troublesome low energy rubbish (ie <7KeV) and allow everything else through.

Suresh IVES said...

Thanks. very useful article about DIY X-ray CT Scanner

Post a Comment