Picroscope: Low-Cost Interactive Microscope





Introduction: Picroscope: Low-Cost Interactive Microscope

Raspberry Pi Contest 2017

First Prize in the
Raspberry Pi Contest 2017

Hello and Welcome!

My name is Picroscope. I am an affordable, DIY, RPi-powered microscope that allows you to create and interact with your very own micro-world. I am a great hands-on project for someone who is interested in bio-technology and the worlds of microbiology, optics, or DIY electronics. I can be built by pretty much anyone, regardless of age or skill-level. Whether you are a middle schooler looking for a cool science project, a high school student in a biology class, a maker in your garage, or even a scientist doing experiments in biophysics, my goal is to help you better understand the microscopic world that surrounds you. With the help of a few electronic components and a 3-D Printer, I can be built within a day and a 60 dollar budget!

If you have gotten this far, then that means you are interested in making one of me! Yeah! Let's get started!

Step 1: Materials and Costs ($)

The Microbiology of the Picroscope brings life to your Micro-World:

Microscope Slides and Cover Slips(6.78 USD)

★ Clear Single-Sided Tape

The Optics of the Picroscope magnify your Micro-World:

CCTV Lens(3.25 USD)

CCTV Lens Lock Ring(1.25 USD)

The Electronics of the Picroscope take you to your Micro-World:

Laptop or Desktop Computer with Mac OS or Windows*

*Windows requires PuttySoftware and WinSCP Software, while Mac uses the pre-installed Terminal program

Raspberry Pi Zero W(10.00 USD) - LIMITED TIME DEAL: Micro-center has 5 USD Pi Zero W!

ANDArducam - Raspberry Pi Camera(16.99 USD)


RaspPi Zero W Camera Pack with 8MP RaspPi Camera(44.95 USD)

GPIO Male Header(.95 USD)

8+ GB SD Card(6.98 USD)

120 Pack of Jumper Wires(6.98 USD) - Found in Makerspaces - *You won't use all 120, but it never hurts to have spare, cheap jumper wires!

Scissors OR Wire Stripper/Cutter(6.98 USD)

20 Pack of 100 Ohm Resistors(0.95 USD)

Diffused LED(0.50 USD) - Buy a couple extra for backup, if possible

Micro USB(2.99 USD) - Found in Most Homes

Soldering Iron Kit(9.85 USD) - Found in Makerspaces

The 3-D Printed Parts of the Picroscope support your Micro-World:

★ 3-D Printed Structural Components(8-12 USD) - Zip File in Step 2

***IMPORTANT: Purchase all materials before building! Also, carefully read each step for more specific information on materials.

Step 2: 3-D Printing

1. Download the STL_FIles.zip on your computer and unzip the files into a folder.

2. Print the Parts using your own 3-D Printer OR use one of the trusted online 3-D Printing Services listed below.

3. IMPORTANT: Use the following list to know how many of each part you need to print:

  1. Base = 1 Part
  2. Base+Top_Stops = 8 Parts
  3. Big_Slide_Tray = 2 Parts
  4. Cam_Fasteners = 2 Parts
  5. Cam+Lens_Holder = 1 Part
  6. Lens_Remover = 1 Part
  7. Small_Slide_Tray = 2 Parts
  8. Structural_Walls = 2 Parts

Suggested Online 3-D Printing Services

Trusted Service used by me - Maker Tree 3-D:

1. Visit https://www.makertree3d.com/ on your computer.

2. Create an account on Maker Tree 3D.

3. Log in to your account.

4. Click 3-D Printing Services and select Upload Files for 3D Printing.

5. Upload all the STL files from your unzipped folder.

6. Change the quantities of each part based on the IMPORTANT step #3.

7. You can choose between PLA or ABS for your material. Although PLA is cheaper, ABS is sturdier and provides extra support. Either material will work for your picroscope, but if your budget allows then choose ABS.

8. Parts cans be shipped for under $10 and within 3-5 business days when you choose standard shipping.

Trusted Service (Includes International Shipping Services) - 3-D Hubs:

1. Visit https://www.3dhubs.com/ on your computer.

2. Create an account on 3D Hubs. If you have a student email, then use the email for your account and get 25% off of your order.

3. Log in to your account.

4. Click Order Custom Parts and Select 3-D Printing.

5. Upload all the STL files from your unzipped folder.

6. Change the quantities of each part based on the IMPORTANT step #3.

7. You can choose between PLA or ABS for your material. Although PLA is cheaper, ABS is sturdier and provides extra support. Either material will work for your picroscope, but if your budget allows then choose ABS.

8. Parts cans be shipped for under $10 and within 3-5 business days when you choose standard shipping.

Step 3: Raspberry Pi Zero W Setup

***Remember to have all your Electronic Parts before continuing...

There are multiple ways to set up the Raspberry Pi Zero W. Some require certain materials, while others don't. I have provided some of my favorite websites for setting up the mini computer based on certain materials you may or may not have. Choose the one that's best for you.

Best Beginner Guide to Pi Zero W:


*This guide provides all the basics about Pi Zero W, including an introduction on the hardware and the OS (Operating System) setup. NOTE: If you do not have access to a computer monitor and and a mini-to-HDMI cable, then read up to "Installing the OS"

Best Headless (No Access to a Computer Monitor) Setup Guide to Pi Zero W:


*This website gives you a great guide on how to set up the OS without needing a monitor. NOTE: This website requires you to have a Mac OS. If you have Windows, then use this website: https://core-electronics.com.au/tutorials/raspberr...

Best Headless and Offline (No Wifi Connection) Setup Guide to Pi Zero W:


*This website (also made by desertbot.io) gives you a guide on how to hack your way into setting up the OS without needing a monitor or even a wifi connection. NOTE: This website also requires you to have a Mac OS.


Note down your Pi Zero W's hostname, login username and password after setting it up because we will use it to remote login into the Pi Zero W. If you don't change either any of this information, then remember that the default hostname and login password is raspberrypi and the default login username is pi.

Step 4: Setup Software Interface

1. Power the Pi Zero W using the Micro-USB Cable.

2. SSH (Remote Login) into the Raspberry Pi using your laptop:

For Windows Putty:

  1. Enter [HOSTNAME].local for the Host Name, click on the SSH button for Connection Type, and hit Open.
  2. Enter your login username and password when prompted.

For Mac Terminal:

  1. Enter this command into the Terminalssh [USERNAME]@[HOSTNAME].local
  2. Enter your password when prompted.

***NOTE: The following step will take ~10 hours to complete. It will be a long time. So, when you get to step 3.9., then be ready to wait... a lot. But, on the bright side, you'll be given some time to do some productive things. For example, you can go ahead and catchup on your Netflix shows, watch the entire Star Wars Saga, or even work ahead in this Instructables. The choice is yours. Whatever it may be, I hope you have fun!

3. Enter following commands to setup OpenCV (Computer Vision) in the CLI (Command Line Interface) on SSH:

**Note: If at anytime the CLI prompts you "Do you want to continue? ", then enter y

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev vim pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy python-pip libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

***Images show that I have made a parent directory that contains the cloned opencv directory, but I have discarded that from the steps to make things a bit easier...

git clone https://github.com/opencv/opencv.git
cd opencv/
mkdir build
cd build/
sudo make install

4. Download and Unzip the picroscope.zip folder on your laptop. Then, transfer the folder to Pi Zero W:

For Windows WinSCP: *Picture 6

  1. Enter [HOSTNAME].local for the Host Name, type your login username and password when prompted, select SFTP for File Protocol, and click Login.
  2. Find and drag the folder from your laptop's drive on the left of the program to the right, which is where your home directory is for the Pi Zero W.

For Mac Terminal: *Picture 7

  1. Click on the plus sign of your Terminal to make a new tab/session.
  2. Enter the command sftp [USERNAME]@[HOSTNAME].local
  3. Enter your password when prompted.
  4. Figure out the location path of your folder on your laptop and enter the command pwd in the ssh tab of your terminal to figure out the home directory path of your Pi Zero W. Copy these paths when prompted in the next step.
  5. Enter the command put -r [PATH2FOLDER-Laptop] [PATH2HOME-PiZeroW]

5. Enter following commands to check if OpenCV works and if you can use it in Python: *Picture 8



import cv2

If you get an error, then please troubleshoot using the internet. If all else fails, please post below on the forum so the Instructables community and I can try to help.

If you have no errors, then OpenCV works! YEAH! You can enter the following command to close the Python CLI:


You can finally power down your Pi Zero W with this command:

sudo shutdown now

Disconnect the USB cable from the Pi Zero W.

Step 5: Add the Magnification Optics

***Remember to have all your 3-D Printed and Optical Parts before continuing onto this step...

1. Gather the 3-D Printed Camera and CCTV Lens Holder (Cam+Lens Holder), the CCTV Lens, and the Lock Ring. *Picture 1

2. Orient the CCTV Lens so that the smaller lens is facing upward. *Picture 2

3. Insert the oriented CCTV Lens into the cylindrical hole of the Lens Holder.

4. Carefully push the CCTV Lens through the circular opening in the Lens Holder. *Picture 3

5. Set the Lock Ring on top of the CCTV Lens. *Picture 4

6. Screw the Lock Ring half-way into the CCTV Lens. *Picture 5

7. Carefully pull the CCTV Lens down until the Lock Ring attaches to the top of the Lens Holder. *Picture 6

Step 6: Build the Structure

1. Gather the LED Illumination Base, the 2 Structural Walls, and 4 of the 8 large fasteners. *Picture 1

2. Place the LED Illumination Base flat on top of the workbench. *Picture 2

3. Choose one of the structural walls and place the thicker of the two right-angle hinges (highlighted on *Picture 1) on top of the base so the holes align with any two of the four base holes.

4. Fasten the structural wall into the base using two of the fasteners.

5. Repeat Steps 3-4 for the second wall. *Picture 3

6. Gather the Camera+Lens Holder with the CCTV Lens and the other 4 large fasteners. *Picture 4

7. Align the Camera+Lens Holder on top of the structural walls top hinges so the CCTV Lens faces the base.

8. Fasten the Holder onto the Walls using the large fasteners. *Picture 5

Put the Structure aside, while we setup the Raspberry Pi and Camera.

Step 7: Camera Setup

Optical Adjustment of Camera:

  1. Use the 3-D Printed Lens Remover to unscrew the lens on the Camera. *Picture 1 and 2
  2. Carefully remove the hot mirror glass filter in the Camera. *Picture 3
  3. Store the lens and glass filter in a safe and dry storage unit (i.e. plastic bag).

Connecting the Camera to Pi Zero W:

  1. Gather the Camera, Raspberry Pi Zero W, and CSI Cable. *Picture 4
  2. Open the Camera's CSI Port, as well as the Raspberry Pi's CSI Port. *Picture 5
  3. Connect the two ends of the CSI Cable to the CSI Ports based on their sizes. *Picture 6
  4. Close the CSI Ports.

Step 8: Setup Camera Interface on Pi Zero W

1. Power the Pi Zero W using the Micro-USB Cable.

2. SSH into the Pi Zero W, as usual (Step 3 for reference)

3. Follow the commands to enable the camera interface on the Pi Zero W:

  1. Enter sudo raspi-config in the CLI
  2. Select "5 Interfacing Options"
  3. Select "P1 Camera"
  4. Select "Yes" when asked if the camera should be enabled
  5. Select "Yes" when asked to reboot the Pi Zero W

4. SSH into the Pi Zero W, once again

5. Run commands to download python's interface with the camera and easy-to-use server:

sudo pip install picamera
sudo pip install Flask

7. Follow these steps and commands to test if the camera is working:

cd picroscope
python LiveStream.py
  1. Open up a web browser and enter the following into the URL bar: [HOSTNAME].local:5000
  2. You should be able to see a live stream of your camera. The live stream will be blurry because the camera has no lens, but don't worry about that. Your camera is fully functional for the Picroscope! YEAH!

8. Shutdown the Pi Zero W and disconnect both the Micro-USB and CSI Cables.

Step 9: Final Hardware Setup (Ready... Set... Solder!)

***If you are UNDER 16 years old, PLEASE solder with adult supervision!

Soldering Header Pins to Pi Zero W:

  1. Gather your Pi Zero W, Soldering Kit, and GPIO Male Header Pins.
  2. Place the shorter end of the Header Pins through the front of the Pi Zero W. *Picture 1
  3. Carefully solder the 40 pins with your soldering iron kit. If you have never soldered before, I suggest that you take a look at this awesome guide (includes a great video for beginners): https://learn.sparkfun.com. *Picture 2
  4. Keep your soldering iron for next step. However, disconnect it if you don't have the next setup's materials.

LED Illumination Setup (UPDATE: Wire Stripping and Soldering now required):

  1. Gather 2 Female-to-Female Jumper Wires, Pi Zero W, one 100-Ohm Resistor, one Diffused LED. *Picture 3
  2. Remove the jumper wire connector with scissors and strip one end of each jumper wire using scissors or a wire stripper. *Picture 4
  3. Solder one Jumper Wire to the short lead of the Diffused LED.
  4. Solder the Resistor to the long lead of the Diffused LED and the other end of the Resistor to the second stripped wire.
  5. Connect the Jumper Wire that is soldered to the short lead of the LED to Pin 6 on the Pi Zero W. *Picture 7 for reference
  6. Cleanup after you are done soldering. The soldering equipment is no longer necessary.
  7. Power the Pi Zero W with the Micro-USB.
  8. Connect the other Jumper Wire to Pin 2 on the Pi Zero W. The LED should light up! YEAH!
  9. Disconnect the Jumper Wires connected to the Pi Zero W and the Micro-USB.
  10. Keep all these materials for the final setup.

Final Setup:

  1. Now, gather your 3-D Printed Structure, Camera, CSI Cable, Camera Fasteners, Small Slide Trays and Big Slide Trays.
  2. Place the Camera on top of the Camera+Lens Holder and secure it with the Camera Fasteners. *Picture 8
  3. Mount the Pi Zero W onto one of the structural walls using the 40 pin hole array on the walls. *Picture 9
  4. Connect the CSI Cable to the Camera and the Pi Zero W. *Picture 10
  5. Insert either the Small or Big Slide Trays into the slits of the structural walls.
  6. Finally, Connect the Jumper Wires and LED back to the Raspberry Pi Zero W. Place the LED in the Pin Holder on the Illumination Base. *Picture 11

CONGRATULATIONS! You have built your Picroscope! Take a picture of it and Post Below!

Step 10: Making Your Picroscopic World

1. Power the Pi Zero W using the Micro-USB Cable.

2. SSH into the Pi Zero W.

3. Gather one of the Microscope Slides and place a very small object on the slide, such as a strand of hair.

4. Place a piece of tape on the object so that it is secured onto the slide. This helps with focusing the object.

4. Slide the Microscope Slide through the Trays on your Picroscope.

5. Follow these commands to test if the Picroscope is working:

  1. Enter: cd picroscope
  2. Enter: python LiveStream.py
  3. Adjust the focus of your image by carefully turning the CCTV Lens either clockwise or counter-clockwise. *Picture 1

6. You can now see the microscopic (4x) image of your hair strand! Try other microscopic objects or even living things, such as small bugs.

*Remember to be careful when handling the Picroscope and, more importantly, have fun!

Step 11: Future Plans

Building a Microscopic Living-World

★ Pipettes and Euglena Gracilis (10.75): https://www.carolina.com/protozoa/euglena-phototax...

★ Petroleum Jelly (2.40): https://www.amazon.com/Vktech-Graduated-Pipettes-...

★ Double Sided Clear Tape

★ Sharpie

*Instructions will be up soon regrading how to build your very own, interactive Euglena World. Until then, read up on the amazing phototactic abilities of the Euglena: http://eol.org/pages/11704/overview

Above, I have added a couple of NEW videos to give a glimpse of what you will be able to do in the future!

Step 12: Shout Outs and Collaboration

Thank you so much to the Riedel-Kruse Lab at Stanford University! Without their support and mentorship, I would have never been able to conceptualize, design, and build this awesome project! Check out all their cool interactive bio-tech research here: https://web.stanford.edu/group/riedel-kruse/index....

Thank You and Shout Outs:

--- Thank you to Professor Ingmar Riedel-Kruse for allowing me to work in your lab this summer!

--- Thank you to Honesty for being an AMAZING mentor and friend. You were always there to guide me while also allowing me to come up with my own designs and answers to problems.

--- Thank you to Peter for being another AWESOME mentor and friend.

--- Thank you to All the members at the Riedel-Kruse Lab for helping me with specific and technical issues.

--- S/O and Huge Thanks to my family for always encouraging and supporting me!

If you are interested in collaborating with me, please post below on the forum! Also, please hit the favorite button and don't forget to vote for me!

Follow me on Twitter @RiksEddy to see what else I'm making!!

Best Wishes for your future endeavors,




  • Epilog Challenge 9

    Epilog Challenge 9
  • First Time Author Contest 2018

    First Time Author Contest 2018
  • Sew Warm Contest 2018

    Sew Warm Contest 2018

We have a be nice policy.
Please be positive and constructive.




The amount of magnification you managed to achieve is very impressive, well done! I also like the fact that your design doesn't require a lot of material to print.

Just one question, I see you're using OpenCV why exactly is that? Aren't you basically just doing live streaming?

Hey magkopian, thank you so much for your comments and appreciation! To answer your question, I am using OpenCV to not only live stream but also to bring more intelligence to the microscope. The OpenCV, in the euglena application, can track each individual euglena and I look forward to maybe even using image recognition algorithms so the Raspberry Pi can tell the user any sample that is being streamed in the microscope. Although some other live streaming libraries are lighter-weight and more time-efficient, the OpenCV library provides an easy way for me to improve upon the software side of the project.

Congratulations on a really useful detailed design. My comment is that the user will not be able to find a good guide to identifying species in freshwater, because there is none published in english. However, the german guide is so profusely illustrated that you can use it without being fluent in german. It is in print and readily available on Amazon etc.: Das Leben im Wassertropfen by Streble and Krauter, 10th edition Kosmos Press.ISBN No. 978-3-440-11966-2. I am a biologist with no financial interest in this book, but I have used it for years to teach students.

Here are some guides for microscopy.

This is from an amateur science site, but I've found it very usefull:

Here is a useful dichotomous key for algae:

Some other government publications mostly on algae that I've found over the years. Sometimes too technical or detailed:





Also, you can usually find an expert to hwlp with ID on the Foldscope (the origami microscope) group on iNaturalist wildlife logging site: https://www.inaturalist.org/projects/foldscope

Thank you for sharing allthose resources.

I actually got to meet the foldscope team at Stanford! They have amazing work that is being led by Prof. Manu Prakash. I look forward to using the iNaturalist website...

Your project is amazing!

I loved to look under the microscope when I was a teenager. But there was no internet that time.

only 4x zoom? I was hoping for more. Isn't there better affordable lens set available?