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

3D Slicer for visualization and volume rendering


  1. 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.

  2. 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

  3. 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.

  4. 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!

  5. California, oo1oo !

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

  7. Are you still thinking about doing the mass spectrometer project?

  8. 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.

  9. 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/

  10. Where did you get the bearing?

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

  12. 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.

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

  14. Hi Ben:

    This is a very interesting project. If you have time, I would like to discuss this project with you. Thank you in advance for your help. Cheers! Frank

  15. Hello Ben,
    Can you share image data?
    I need it to check my Algorithm Reconstruction.

  16. Hi Ben. Could you share the raw image also? Thanks.