Introduction: 3D Printed 8" GOTO Telescope.

About: A passionate make of things. I spend my time developing new ideas and looking for ways to improve old ones!

Design Intent.

Design a Telescope which can be printed using a machine with a build volume of 300 x 200 x 300*. Make the design adaptable to different diameter and focal length primary mirrors. Keep the parts count low. Design in GOTO functions and ensure it is simple to build.


  • 8" f/4 Primary Mirror.
  • 8 Megapixel Raspberry Pi Camera.
  • GPS with GOTO Capabilities.
  • OnStep Guidance 7 Control.
  • STM32 Microcontroller with ESP8226 Smart Hand Controller.
  • 99:1 Stepper Motor with 5:1 Final-Drive Printed Gears.
  • Extrusion Based Structural Components.
  • Carbon Fibre Printed Parts (PLA will work just fine though).


The entire Telescope has been designed in Fusion 360 and can be downloaded from here | Sub-Assemblies are available to download separately and are linked throughout the Instructable. STLs can be downloaded too.


I know nothing about Astronomy and even less about Astrophotography. There's nothing like jumping in at the deep-end!

Other 3D Printed Telescopes.

If you would like to make and print your own telescope have a look at the PiKon Telescope. While it is much simpler to make and does not have any GOTO features the basic functions are very much the same. TelescopePrime is another scope similar to Pikon.

A step on from the PiKon & Telescope Prime is the Ultrascope from the Open Space Agency. This is a larger scope and has tracking capabilities but still lacks any GOTO functions.

If you have a telescope but simply want to have a go at low cost Astrophotography I wrote another instrcutable using the Raspberry Pi Zero & Raspberry Pi Camera.

More recently on the Arduino Blog is a GoTo Mount for a DSLR.

Control Electronics.

I originally chose rDUINO Scope for the guiding electronics and GOTO functions. I did run into problems getting it to work correctly with my setup and unfortunately had to move onto an alternative, OnStep. However I have left in my work with rDUINO Scope as I still think it is a great system and I am sure other, more competent people than I, will have better luck.

*My original design used a 6" mirror, which does fit on a 300x200x300 printer. However I went to an 8" for the larger light gathering capabilities, and I had access to a larger volume printer.

A little bit of history.

So this is my first telescope, even though I published The Micro Scope in February 2021. I have been sitting on this instructable for over two years. There are a few reasons or this, the biggest of which is that I couldn't get the mirror to align to the camera, I blame this entirely on my inexperience.

Mix my inexperience in with COVID and a lack of time to experiement this design was abandonded and work started on The Micro Scope.

Not all is bad though. I learnt a huge amount designing and building this telescope. I will pick it up again in the future, although I expect with a completely new design. The primary mirror is still very good and I do want to use it.

Anyway, I thought someone might find it helpful if I post this instructible, even if it didn't quite go to plan. Hopefully there is something for everyone to learn within. Enjoy.

Step 1: General Hardware & Tools.

Each sub-assembly has a pdf Section-View Drawing which has a complete bill-of-materials. However a rough guide on the major parts is listed below.

Parts & Components.

Tools & Equipment.

* Affiliate links.

Step 2: 3D Printing STLs - ToolChanger.

Most parts are printed on E3D's ToolChanger. The large parts (Mirror and Camera Housings) are printed on an upgraded Creality CR10 5S* fitted with E3D's Super Volcano and HT Bed.

*Affiliate Links.

Step 3: Thread-Tapping 3D Printed Parts.

Threading holes into plastic is not easy, but if it is done correctly you can get very good results. The biggest problem is caused by friction which melts the plastic parts. Taking your time and not rushing things is the way forward.

Required Tools.

Take your time, rushing will mean the holes are damaged and you will have to reprint the part and start again. Also remember to check the depth of each hole so you do not go too deep.

  1. Begin by using the Drill-Taps. They have a drill at the front to cut the hole to the correct size before the threads begin to be cut.
  2. Only go approximately 1/2 way down the hole with the Drill-Tap.
  3. Pause for 5 - 10 minutes. This will allow any heat to dissipate.
  4. Careful back the tap out from the hole.
  5. Wait a further 5 minutes.
  6. Finish off the hole with the spiral tap, remembering to pause to allow heat to dissipate.
  7. Clean up the holes with the Counter Sink Bit.
  8. Check the thread has worked.

* Affiliate Links.

Step 4: The Primary Mirror Sub-Assembly.

The 8" f/4 Primary Mirror will be installed during Final Assembly. There are plenty of other focal lengths and diameter primary mirrors available. Simply edit the design files to adjust the diameter to match the mirror. If you would like to use a longer focal length Primary Mirror all you need to do is to get a longer length of 60x60 extrusion to match the mirror. Simples.

The housing uses a three-point bracket capable of adjusting the plane of the mirror. Three spring-loaded counter-sunk screws hold the bracket in the housing and by tightening or loosening the screws the angle of the main mirror is altered. Three grub-screws are then tightened onto the backet to lock the mirror in position. The intent is to have the mirror perfectly square to the main extrusion and then align the RPi camera to match the plane of the main mirror.

The channel down the back of the Mirror Housing is there should you wish to install any sensors.

View and download the Primary Mirror CAD from |

Step 5: The Camera Housing Sub-Assembly.

There are four choices for the official Raspberry Pi Camera. There are plenty of other possible cameras which will work, one will simply need to adapt the design to match the camera you have chosen.

  • Raspberry Pi Camera V1 5 Megapixels
  • Raspberry Pi Camera V1 Noir 5 Megapixels
  • Raspberry Pi Camera V2 8 Megapixels
  • Raspberry Pi Camera V2 Noir 8 Megapixels

The camera need to be adjustable to align to the focal point of the main mirror. In a similar way to the main mirror, three grub-screws adjust the plan of the camera. By adjusthte plane of the camera we can square the camera's CCD to be square with the main extrusion and parallel to the main mirror. Aditionally three screws move the camera in X & Y to position the CCD centrally to the mirror.

This process is called collimation and will be performed during final assembly.

You will need to remove the lens from the Raspberry Pi Camera as the camer's CCD uses the focal point of the main mirror and not that of the screwed-in lens.

View and download the Camera Housing CAD from |

Step 6: The Auto-Focus Sub-Assembly.

The Raspberry Pi has Raspbian Stretch Lite as it's base OS. Installed on top is the Open Astronomy INDI Library (GitHub).

The auto-focus moves the Camera Housing Sub-Assembly back and forth along a set of linear rails. The movement of the auto-focus is controlled directly by a stepper driver on the control electronics, and the INDI driver on the Raspberry Pi. Ultimate control comes via the Astronomy package Kstars, which will be covered later on in this guide.

A large part of the Auto-Focus is assembled during the Final Assembly Step further on in this guide.

You'll need the following parts.

1 x Raspberry Pi 3 B+*.

1 x Adafruit's Perma-Proto Hat*.

1 x 12V to 5V 3A Buck Converter*.

1 x DRV8825 Stepper Driver*.

1 x 2-Pin Screw Terminal*.

When setting up the Raspberry Pi make sure to use the full INDI install instructions from the GitHub page and not what is linked from their website.

The full software configuration will be detailed further on in the build.

View and download the Auto-Focus CAD from |

* Affiliate Links.

Step 7: The Declination Sub-Assembly.

Declination (dec, δ) is one of the two angles that locate a point on the celestial sphere in the equatorial coordinate system, the other being hour angle. Declination's angle is measured north or south of the celestial equator, along the hour circle passing through the point in question. In short Declination is Up & Down in relation to the horizon.

A geared stepper motor with a 99.05:1 reduction gearbox drives a 5:1 geartrain which in turn moves the telescope mirror assembly up and down. A large diameter mainbearing ensures smooth movement of the dec.

In the centre is a Slip Ring. A slip ring is an electromechanical device that allows the transmission of power and electrical signals from a stationary to a rotating structure. In short you can have power and signals go though a coupling which can continuously rotate without the risk of cable being twisted and caught up.

I am using the slip ring to pass power to the Raspberry Pi and power to the auto-focus stepper motor. This requires six wires in total, two power (negative, positive) for the RPi and four stepper motor cables ( two phases with a positive and negative for each).

The Declination Sub-Assembly mounts to the Right Assention Sub-Assembly.

View and download the Declination CAD from |

Step 8: The Right Ascension Sub-Assembly.

Right ascension (RA, α) is the angular distance of a particular point measured eastward along the celestial equator from the Sun at the March equinox to the (hour circle of the) point above the earth in question. The left and right movement of the telescope.

A similar geared stepper motor to the dec, with a matching 99.05:1 reduction gearbox drives a 5:1 geartrain moves the telescope mirror assembly left and right. Anoth large diameter mainbearing ensures smooth movement of the RA.

Another slip ring resides in the centre of the RA. This time is has enough connections for the RPI, the auto-focus stepper motor and the dec stepper motor. A total of ten wires.

Sidereal time is a timekeeping system that astronomers use to locate celestial objects. Using sidereal time, it is possible to easily point a telescope to the proper coordinates in the night sky. Briefly, sidereal time is a "time scale that is based on Earth's rate of rotation measured relative to the fixed stars".

Sidereal is loosely translated to the time required for a single rotation of the Earth. It is the lowest speed that the telescope needs to travel in RA and it is the speed at which the telescope tracks distant objects in the sky. It equates to one full rotation of the telescope and is 23.9344696 hours.

To calculate the steps for a single rotation of the telescope.

200 (motor steps per revolution) x 99.05 (gearbox reduction) x 5 (final drive) * 16 (microstepping) = ‭1,584,800‬ steps

To calculate the steps per second for a single rotation in a single sidereal day.

360 x 60 x 60 = ‭1,296,000‬ arcseconds (1 full rotation).

1,296,000 (arcseconds) / 1,584,800 (microsteps) = ‭0.8177‬ steps per arcsecond.

23.9344(sidereal hours) x 60 x 60 = ‭86,164.09056‬ seconds in a day.

1,296,000 / ‭86,164.0905 = ‭15.0410 steps per second to match the speed of rotation of the earth, sidereal time.

The lower the steps per second the smoother the tracking motion will be. However this can have implications for the maximum slewing speed. Additionally as we are using the same stepper motor and gearing for the Declination we can attain similar tracking speeds there too. However this is not necessary and we could use a different system for tracking the dec.

The Right Ascension Sub-Assembly mounts to the Polar Axis Sub-Assemly.

View and download the Right Ascension CAD from |

Step 9: The Polar Axis Sub-Assembly.

Polar alignment is the process of accurately aligning the polar axis of your mount with the north (or south) celestial pole. The polar axis does not move when you move the telescope. Simply put, you need to make sure that your telescope mount is rotating on the exact same angle the sky turns on. Positioning the Polar Axis in a North / South alignment and adjusting the angle to point at Polaris, the North Star, is a quick and easy way to perform your Polar Alignment.

The Polar Axis needs to be adjusted depenging whaere you are on the Earth. The angle at which the Polar Axis is set is measured using the Latitude of your current position. My current latitude is 51.6668° N. The polar Axis

I have used a Hot-Glue Gun to fix the four M16 Half-Nuts in place. Once fully assembled the Telescope will be detached from the Tripod using these four bolts and I do not want the nuts to come free inside the casing.

The Polar Axis Sub-Assemly mounts to the Tripod Sub Assembly.

View and download the Polar Axis CAD from |

Step 10: The Tripod Sub-Assembly.

View and download the Tripod CAD From |

Step 11: The Counter-Weight.

The Counter-Weight Ballast sits at the end of an aluminium tube. The telescope RA has an M16 bolt sticking out the back for the Counter-Weight tube, the tube needs an M16 thread. Boring and tapping the tube was done on a lathe.

To find the correct mass for the ballast I built up the telescope. The tube was fitted and a bucket holding lead bars was hung from the tube to find the balance point. The telescope was carefully balance on a length of 40mm extrusion to finely tune the weight. After balancing the mass is removed and weighed.

The required ~2.25kg ballast has been sourced from the Tub Of Despair. A Counter-Weight Ballast was made in CAD, the parts printed and filled with the correct weight. Two printed Stops secure the ballast to the tube.

Required Parts.

View and download the Counter-Weight CAD from |

* Affiliate Links.

Step 12: RDUINO Scope - Hand Controller.

I'll be using the fantastic rDUINO Scope to give the Telescope it's GOTO capabilities. The rDUINo Scope is a self-contain fully open source telescope control system and has been featured on Hackaday. I am using Khairey Nouhe's fork of the software which enables the use of Adafruit's 3.5" SPI TFT.

rDUINO Scope is available as fully-assembled or part-assembled PCB kit. However in this case I have decided to build my own and fit it all into a 3D Printed case. To do this I, you, will need the following.

Required Hardware.

You'll also need various cable & wires.

View and download the Hand-Held Controller CAD from |

* Affiliate Links.

Step 13: RDUINO Scope - PCB & Electronics.

Khairey Nouhe includes a modified wiring datasheet as part of his fork.

I have split the design of the electronics into three sections.

  1. Arduino Due, DRV8825, Prototype PCB.
  2. LCD, Joystick, Buzzer, Day / Night Switch.
  3. RTC, Bluetooth, DHT22, GPS.

Part 1 is a single block and includes headers for the other 2 sections. Part 2 plus into the Prototype on Pins 1-20 at the back of the PCB. Part 3 plug onto headers at the front of the PCB.

I have covered all the sensor in Kaptop tape to help mitigate the chances of short circuits.

Step 14: RDUINO Scope - Assembly.

Print out the required parts.

  • 1 x Hand Control Case Front.stl
  • 1 x Hand Control Case Centre.stl
  • 1 x Hand Control Case Back.stl
  • 1 x GPS Antenna Case Top.stl
  • 1 x GPS Antenna Case Base.stl

I recommend a Hardened 0.4 Nozzle and XT-CF20 with a 0.25mm Layer height.

Go slowly and don't rush.

I began with the GPS Antenna, check the orientation when installing so you get the best signal strength and aid lock acquisition. The LCD should fit perfectly into the front panel. The Joystick may made need to be adjusted during the assembly process to give the best fit in the front panel.

Try to label as much as possible as you will have to take it apart at some point. Also remember to flash the Arduino Due with the rDUINO Scope firmware before installing the Due.

Refer to rDUINO Scope documentation on how to compile and flash the firmware.

You will also need to set the vref for the two DRV8825 Stepper Drivers. For guideance read this blog update on

Test the controller before final assembly!

Step 15: RDUINO Scope - Power On.

I connected a PSU to the controller and turned on the power. You will most likely need to go outside to get a lock with the GPS.

It is possible to skip through to the main menu to check the function of the other devices.Remember to test the Day / Night switch on the back.

Step 16: RDUINO Scope - Control Cable.

The Control Cable connects the Hand Controller to the Stepper Motors in the Telescope and to power.

Required Hardware.

Printed Parts.

  • 2 x Cable Strain Relief Bottom.stl
  • 2 x Cable Strain Relief Top.stl

Print the 4 parts with a 0.4mm nozzle and 0.15 layer height.

* Affiliate Links.

Step 17: RDUINO Scope - Full Telescope Assembly.

Starting with the Camera Sub-Assembly the Telescope is built up onto the tripod.

Remember to balance using the counter weight!

Step 18: RDUINO Scope - Power on & Testing.

Everything powers up and the GPS locks on. However there is some bad jittering from the motors. I posted to the rUINDO Scope Facebook Group and was pointed towards the joystick causing issues.

After replacing the joystck, and using different stepper motors connected outside of the telescope itself, I was still getting the same problems.

This is way outside of my knowledge base, both in software and Electronics. However someone else hooked it up to an analyser to see what is going on. It appears that the controller is throwing out random steps.

Unfortunately I don't have the talent to debug it and I expect the problem is likely to do with my implemenation rather than rDUNIO Scope. So I'm going to have to have look at other options.....

Step 19: OnStep - Smart Hand Controller (SHC).

OnStep is a computerised GOTO system for stepper motor equipped mounts. It was designed, from the beginning, as a more or less general purpose system and provisions were made in the firmware to allow for use on a variety of mounts including Equatorial (GEM, Fork, etc.) and Alt/Az (Dobsonian, etc.) It uses an LX200 like computer command set with a few extensions to suit hand-controller-less operation.

There are several possible options available to get OnStep running and the FAQ lists advantages of each. I chose the STM32 Blue Pill as it fitted my needs with the use of three stepper motors and an optional hand controller. On top of that they are available as kits from Dave Schwartz.

I began with the Smart Hand Controller. The instructions are very clear and having bought the full kit I didn't need to buy any extra parts. All that was required was to print a case.

The standard case is more of a box type affair and well I wanted something a little more bespoke. My goal was to make it as compact as possible.

Note that OnStep does not require the use of a Hand Controller and it will function fine without one.

View and download the SHC CAD from |

Step 20: OnStep - STM32.

The main control electronics now reside on a separate PCB to the Hand Controller. The version I have chosen for this installation is the STM32F103 Blue Pill. Again I have bought a Dave Schwartz Kit. The kits leaves out the modules, which I have sourced from the internet. I originally chose DRV8825 Stepper Drivers but later changed to TMC2100. Optionally OnStep recommend TMC2130, but I didn't have those to hand.

Both Dave Schwartz and OnStep provide detailed build and installation instructions and you should use those guides when building the kits. Included is detailed instructions on flashing the firmware.

I have modified the Polar Axis End Cap to hold the PCB and required switches & inputs. All the assemblies have been updated with the changes.

Step 21: OnStep - ReWiring.

The version of OnStep I have built has an onboard focuser for the camera. This and a few other features requires that the wiring be changed.

You'll notice I have made a few modifications since the original STM32 build. I have added a BME280 sensor and added a Run / Flash switch so that I don't have to dismantle the telescope to update the firmware.

Step 22: OnStep - Assembly & Power On.

Having completed all the rewiring and updated the electronics to use OnStep I reassembled the Telescope and powered on the system to test it works.

The smarter among you will notice that I have the RA & DEC controls the wrong way around. Apart from that it looks to work pretty well! I'll fix the RA & DEC and move onto fully assembling the telescope and test the auto-focuser and power delivery to the Raspberry Pi.

Step 23: Power Consumption & Battery.

I've hooked the Telescope up to at DC Switching Power Supply. As I intend to use a 12V SLA battery I've set the supply to 12v. I know the battery will technically be a slightly higher voltage and I did some basic testing of the electronics and they are fine with some minor fluctuations in the input voltage.

Power Consumption.

  • 0.34A After initial power-on.
  • 0.94A RA / DEC motors energised.
  • 1.19A During RA / DEC slewing.
  • 1.27A During RA / DEC slewing & focus motor moving.

I'm going to base calculations on a power draw of 1.5A at 12v (18W), that should give a good margin of error and plenty of spare battery capacity too.

The question now is how long do I want to run the Telescope for and I think 6 hours is a reasonable time.

According to my calculations a 12V 7.5Ah battery should last about 5 hours. Given that we are unlikely to run at full power that should be just about right. Luckily there are plenty of 12V 7.5Ah SLA* batteries available.

*Affiliate Links.

Step 24: BONUS! - Guider Scope.

After playing around with Kstars and getting the software up and running (covered in the next steps) I saw the option for a Guider. I did try using the same camera for both the CCD input and the Guider input, however it does not work as the guider would need to keep taking photos for guiding when the CCD camera is taking longer exposure images for observation.

After doing some digging online it looks like a small refractor monocular is the usual way to do this. I have found a 51mm F7.2 lens set on eBay and designed a Guider Scope around those lenses and a USB Logitech C270 Webcam. I have to use USB as the Raspberry Pi only has a single camera slot.

Logitech C270 Webcam*

Optical Glass Achromatic Objective Lens Concave & Convex Lens*

The C270 is dismantled and as with the RPi camera, the lens is removed. I actually went a little further and removed the lens from it's housing, drilled it out, and then used it to help hold the camera in the new printed case.

The two scope lenses fit into a flexible housing and are secured in place with a locking ring. The Guide Scope is in two parts so the camera can be focused. Three thumb screws keep in in place. I have another six thumb screws holding the tube in the brackets. The scope will need to be aligned to the main optics and the thumb screws aid with this, I recommend using Nylon thumb screws if you can get them.

I also took the opportunity to install the GPS used in the rDUINO Scope onto the Raspberry Pi. There is a helpful guide here |

You'll need to setup INDI server to make use of the GPS.

View and download the Guider Scope CAD from |

*Affiliate Links.

Step 25: Telescope Software Configuration & Setup.

The Instrument Neutral Distributed Interface (INDI) is a protocol designed for astronomical equipment control. The wire protocol can be implemented under any language and operating system. The primary implementation of INDI protocol is the INDI Library. It is a cross-platform software package designed for automation & control of astronomical instruments. It supports a wide variety of mounts, cameras (CCD, CMOS, DSLRs..etc), focusers , domes, filter wheels..etc, and it has the capability to support virtually any device.

I have a network cable connected to the Raspberry Pi during this process. This means all configurations can be done remotely via SSH. To do this effectively enable SSH before putting the SD card into the RPi.

Check all wired connections and power on the Telescope.

Setting up OnStep.

  1. Connect to the ONSTEP ssid and open the web interface (
  2. Open the WiFi tab.
  3. Change the AP SSID & Password to what you want.
  4. Upload the settings.

Setting up the Raspberry Pi.

  1. Download and install the latest version of Rasbian lite onto your SD Card (Enable SSH).
  2. Configure the RPi to connect to the OnStep AP SSID (raspi-config).
  3. Install the INDI library from the INDI Github (The OnStep Module is installed by default).
  4. Install 3rd-Party Driver INDI-Webcam.
  5. Install INDI Web Manager (GitHub for further instructions).
  6. Disable the Camera LED.
  7. Shutdown the RPi.

Checking the connections.

  1. Power off the system.
  2. Wait 10 seconds.
  3. Power the system back up again.
  4. Check OnStep's AP SSID is active.
  5. SSH into the RPi.
  6. Check the network interfaces and that wlan0 is connected (ifconfig).

Step 26: Computer Software Configuration & Setup.

KStars is free, open source, cross-platform Astronomy Software. It provides an accurate graphical simulation of the night sky, from any location on Earth, at any date and time. The display includes up to 100 million stars, 13,000 deep-sky objects,all 8 planets, the Sun and Moon, and thousands of comets, asteroids, supernovae, and satellites. For students and teachers, it supports adjustable simulation speeds in order to view phenomena that happen over long timescales, the KStars Astrocalculator to predict conjunctions, and many common astronomical calculations.

Ekos is an advanced cross-platform (Windows, OSX, Linux) observatory control and automation tool with particular focus on Astrophotography. It is based on a modular extensible framework to perform common astrophotography tasks. This includes highly accurate GOTOs using astrometry solver, ability to measure and correct polar alignment errors , auto-focus & auto-guide capabilities, and capture of single or stack of images with filter wheel support. Ekos is shipped with KStars.

I have a Pine64 Pinebook Pro Laptop that I am using for the Telescope.

  1. Install INDI (install from source).
  2. Install KStars (install from source).
  3. Launch KStars.
  4. Open Ekos (Ctrl-K).

The latest version of OnStep (3) supports direct control via WiFi. This means no wires or cables from the RPi at the front and the OnStep Electronics. There is a single power wire that goes from the battery to the Telescope. Everything is wireless!

After opening Ekos you'll need to make a new profile. I've imagintively title the new profile 'Telescope'. The important parts at getting the correct IP adress and setting up the Mount, CCD and Guider. There's no need to input anything for the Foucs as that is part of OnStep and Ekos / INDI will configure that for you.

Save the profile, then click the Start button. This will open the INDI Control Panel where you should see the four tabs for the installed INDI drivers. Run through each tab and adjust the settigns as you see fit. As a tip remember to have the INDI Webcam and V4L2 CCD ports set differently (I found the USB camera was on /dev/Video0 and the RPi camera at /dev/Video2).

After completing the tab, click Close and you'll be presented with the EKos panel again, notice the additional tabs. If everything has worked you'll be able to get a preview of the two cameras and have manual control of the telescope mount.

Step 27: Collimation - Align the Optics.

I failed.

Due to my lack of knowledge, and bad design in the optical path I have been unable to align the primary mirror and camera. The consequences of this that failure results in no image on the camera. I couldn't see any image and therefore couldn't focus the camera.

The primary mirror is going to be reused in a future telescope, I'll be using the Raspberry Pi HQ Camera and design with better alignment features. I'll also have all the experience from The Micro Scope too!

Step 28: Improvements & Afterthoughts.


  • Change to a StereoPi for dual Pi Cameras and Raspberry Pi Compute Module. Stereoscopic Astrophotography?

General improvements.

  • Weight reduction.
  • Increase gearing.
  • Double-Raced bearings to take out the play.

Reduce Backlash.

  • Upgrading the 1:5 printed gear set by replacing it with a toothed belt drive.
  • Use high precision geared stepper motors.

Higher Performance Camera.

  • Upgrade to a better suited CCD/CMOS camera.
Explore Science Challenge

First Prize in the
Explore Science Challenge