Introduction: Open Indirect Ophthalmoscope (OIO)

OIO(OWL) is an idea conceived in Srujana Innovation Centre at the L V Prasad Eye Institute, Hyderabad, India. It is an open source retinal image capturing device with dynamic diabetic retinopathy grading system. It aims at capturing good quality retinal images using an affordable device, mainly to help make, identification of Diabetic Retinopathy accessible to all and hence prevent cases of "avoidable blindness".

Diabetes is the new epidemic in the world population. Currently there are over 422 million people worldwide suffering from diabetes. Diabetic Retinopathy is a complication caused due to diabetes and 28.5% diabetes patients suffer from Diabetic Retinopathy. 50% of diabetics are unaware about the risk of losing their vision. The number of cases of diabetic retinopathy increased from 4 million in 2000 to 7.69 million in 2010 in US alone. Early detection and Treatment can help prevent loss of vision in most cases.

Detection of Diabetic Retinopathy, requires expensive devices for Retinal Imaging , even the cheapest of them costing more than $9000 each. This makes good quality eye care, expensive and inaccessible to the less privileged.

Step 1: Components


1 x 20 Dioptre disposable lens

2 x Front end mirrors 50x50x3 mm

1 x Raspberry pi 3 Model B

1 x Pi IR 5MP Camera (M12 lens mount)

1 x 12mm FL M12 lens

1 x WaveShare 5 inch Touchscreen LCD for raspberry pi

1 x HDMI Adapter

1 x 16GB Micro SD card (class 10)

1 x 13,000 mAh power bank with dual power output (1.0A, 2.0A) of DC 5V

2 x 3 Watt Luxeon LED

2 x 2N222 Transistors

2 x 270 ohm resistor

2 x 10 ohm resistor

1 x 6.8k resistor

1 x 10k resistor

2 x Male to female header(a 10 pin will do)

1 x Male to male headers (2 pins)

2 x Slide switches

1 x Tactile Switch

6 x 2 pin connectors Male/ Female

2 x USB to Micro USB cables


SLS/ FDM 3D printer

  • Suggested material for SLS: Nylon PA-12
  • Suggested material on FDM: Black PLA
  • Medical grade Flex material for FDM

Laser cutter

  • Material - 4mm thick Black Acrylic Sheet

Nuts and bolts

  • 30 - M2x8mm Allen bolt and nut
  • 8 - M2x16mm Allen bolt and nut
  • 4 - M2x4mm Screws
  • 4 - M2x4mm Grub screws
  • Metal rod: 6mm dia x 122mm length
  • Allen keys


  • Soldering station
  • Heat shrinks of all sizes

Glue gun and adhesives

Matte black spray paint

Step 2: 3D Printing, Laser Cutting and Post Processing

The SLS parts (yellow and grey) are outsourced to a Rapid Prototyping Center. We also printed the same model using ultimaker 2 with black PLA. The inner parts for both the models are printed using an FDM printer.

Extract all the files from the zip file named 3d prints and start printing one by one as discussed below. All the files are in stl file formats so use meshmixer for viewing them.

Extract the zip file named CAD files, it contains all CAD files of the components that are present in the OIO.


It has the outer cover that holds the whole device. For a good finish go for SLS printing. It can be done on FDM as well but due to sliding parts inside the device it might get struck with poor surface finish and high dimensional tolerances.

Eyepiece lining

The Eyepiece lining has to be a soft part so that after testing patients it can be cleaned with alcohol swabs. Use flex material on an FDM printer to print the Eyepiece lining.

Post processing
The SLS parts were painted with the color code #fbf0d0 for the Eyepiece and Front piece and #646464 is used for the middle casing.

Inside Optical Box

This consists of holders that hold the mirrors and lens in place. LED's support is also present which fixes the LED's at desired plane ( horizontally/vertically) with respect to camera. The hood covers the excess light coming from the LED's that directly falls on the other mirror. After printing the LED holder and hood apply matte black paint.

LCD, PCB holders

Print the holders with optimum layer heights.

Gears and Rack

Print all gears and 2 racks along with the stoppers and knobs.

LCD screen

The screen comes with 4 supports to get screwed onto a platform. Cut of the supports using an acrylic cutter. Print the LCD holder.

Step 3: Testing the Raspberry Pi

Writing the SD card

Download the OIO image file. Unzip and place it in a folder. Download Win32DiskImager and Install it on your PC and run it. Then Insert fresh SD Card (Format if used earlier) and then run Win32DiskImager.exe. It should find your SD Card drive or if not select it. Select the file '#.img' image file. Burn the image file named "OWL Prime.IMG".

Once it completes you are ready to go, insert your SD card into the Raspberry Pi.

Test Running the R-Pi and Screen

Mount the SD card onto R-Pi and connect the screen to it with the HDMI adapter. Also connect the camera to the R-Pi. Power the R-Pi and Screen separately with 5V DC adapters having power output greater than 1.0 A . Take a USB cable and connect the touch of the screen to the USB of R-Pi.

Boot up the R-Pi. After it boots up you will be able to see OIO logo. Check for touch using a stylus and press "Touch To Proceed". After that it pop's up a keypad, enter a number and press "send". It will enable the R-Pi camera. Check the GUI by pressing "click" wait for some time and then press "grade". It should show a random number on top right of the screen.

IN some cases after grading it might show "Internal server error" then its nothing but the device is not connected to the internet. Follow this tutorial for automatically connecting to your WiFI.

Step 4: Assembling the Optics Box

Take the laser cut parts. The top and bottom sheets are alike. So choose one as the bottom and start assembling the 3d printed parts one by one as shown in the pictures. Assemble both sheets side by side so that later we can just sandwich the mirrors and lens in between. As all parts are symmetrical it's easy to assembly them. Look at the optics box assembly file on meshmixer before assembling to get the overview.

Start with fixing the lens holder on the bottom sheet. The cut portion of the holder should come towards the central groove as shown in the pictures. Place the sheet on a flat surface and place the lens holder in the front groove. Apply a thin layer of glue with a glue gun on the edges as shown in the picture.

Do this on the top sheet as well. For the mirrors they all are similar so fix them into their grooves and apply glue on edges. If you notice the optics box assembly it consists of temporary joints so that we can tweak into the box whenever we face some focusing issue with the camera and also holds the setup very intact.

Handling the Optics

Wear disposable plastic gloves while handling the optics. Hold them in between the thumb finger and the index finger at their edges.

On the bottom sheet holders place the lens in the lens holder such that the tapered surfaces mate one another. Remove the protective layer from the mirrors before installation. Orient the front reflective surfaces of one mirror towards the lens and other mirror's reflective surface facing this. Place them carefully in their holders.

Now sandwich the lens and mirrors with the top sheet. Secure the setup by gently pressing at top and bottom.

Take the the two side holders and fix them at the sides. Take the back cover and fix it. The whole box will stay in place because of the fittings. See that the hole at the back plate comes at the empty space. The whole assembly can be best visualized in the 3D cad model.

Fixing the LED's

Take the back sheet. Orient the LED holder with the holes on the back sheet then pass M2x16mm bolts through each hole. Hold it there like that.

There would be extra 4 holes that are for the wires to pass. Take a 2 pin female connector. On the top holes pass the red and black wires through each one. Place a LED on the slot provided on the LED holder with + end near to the red terminal of the connector.

Solder the wire ends with the LED terminals. Do the same for the second LED. Insulate the wires using heat shrinks.

Fixing the Camera

Camera comes with a standard 3.6mm focal length lens. Remove it by simply rotating the lens and replace it with a 12mm focal length lens. Camera comes on the back sheet and it also holds the LED holder.

On the opposite side hold the laser cut spacers onto the bolts. Now pass the camera on the bolts with the orientation shown in the CAD assembly of optics box. Secure the camera by screwing the nuts.

Take care of the CSI cable while assembling the camera.

Place the matte finish HOOD on the LED holder.

Final Assembly

After fixing the LEDs and camera with the hood snap the back sheet back in place with correct camera orientation (Refer to the CAD assembly).

You will find some connectors Now hold the nuts carefully in the T shaped grooves with the help of tweezers. Hold the allen bolt with the allen key and screw it tightly. Follow this method and screw all 4 joints. Coming to the front part follow the same method and fix all 8 joints with bolt and nuts.

The optics box is assembled.

Step 5: Electronics

Print the PCB using the Gerber files. Once done start assembling the PCB with components.

PCB Assembly

Cut 2, 7 pins from the 10 pin male female header and place it on the rail that falls directly onto the Raspberry Pi GPIO Pins. Remember the pins of the R-Pi are male headers. Once this is done, solder each node separately and carefully. Ensure that there is no extra solder blob.

Take the transistors and find the EBC terminals then place them at their respective nodes and solder them. Place the resistors of the given values and place them at the printed place(270 Ohms to 210E port, 10 Ohms to 10E port, etc). Solder each carefully and cut off the extra metal from the terminal.

Mark the +/- terminals of the 2 pin male connector (assuming on female red wire is + terminal) and place them in the shown manner and solder them to the base (refer the gerber files and the assembled PCB image).

Take the 2 pin male header and solder them to the LED ports on the PCB.

Raspberry Pi Hardware Modification

For touch we need to access the USB port of R-Pi. So require to pass a wire from the USB port to the screen touch input. We can take away the huge wires by just cutting the USB cable and re wiring the cables to the ports of any USB on R-Pi.

Power port of the R-Pi can be shorted to a 2 pin female connector that goes on to the PCB.

Working with the Power Bank

Rip open the power bank. There should be 5 cells. Take out the batteries and desolder them such that they form pair of 2 cells. Desolder the power bank PCB as well and mark the +/- terminals (Use multimeter to find the terminals). Take away the extra battery. The pairs are to be parallely connected to one another.

Place the batteries inside the middle casing at extreme ends. Take pair of wires and measure the length of the wire that has to connect both the pairs. Cut the wires as shown in the picture so that they won't come in between the battery holders and casing.

Now solder 2 wires to the two ends of the battery (all are connected parallel) and solder the other ends to the power bank PCB.

Mount the power bank PCB to the PCB holder with M2x8mm bolts.

Other Connections

  • Take a short length USB power cable and cut the micro usb end. Take a two pin female connector and solder red wire to the positive end and black wire to the ground in the USB cable. This will be used to power the PCB shield. Lets name it PCB power In
  • Take a slide switch and solder a 2 pin female connector to one side of the switch. Name it Kill Switch
  • Find the open circuit in the tactile switch and solder them to the ends of a female 2 pin connector. Name it Click Switch
  • Take another USB cable and and slit it at the center and cut one strand out of it be it + or - end. Solder the cut terminals to the terminals of one of the slide switch. Also remove the extra plastic at the micro USB end and insulate it with heat shrink. Name this cable Screen power

Step 6: Camera Focusing

Take the R-Pi with SD card mounted and screen along with the HDMI adapter. Mount the PCB onto the R-Pi. Connect the camera CSI cable into the camera port on the R-Pi. Check out the video on camera focusing before going ahead.

In this step we will boot up the device with the power bank. Charge the powerbank fully before testing.

Assemble the Screen, R-pi and the PCB. Now we need to join the connectors with their respective connections. Check the schematic file before joining any thing. Keep the slide switches in off position.Keep the whole optics box near to the Rpi and screen unit. Connect the LED's in their ports. Or else connect them as shown in the pictures one by one.

Recheck the wiring before switching on. Check the orientation of the optics box and the R-Pi unit as shown in the picture. Now power up the PCB by switching on both slide switches.You will see the top LED starts blinking. That means that the connections are proper.

After booting up enter into OIO by pressing "touch to proceed". The top LED Type in a name and start the test. Now you will be able to see the live feed from the camera with the GUI. Check if the camera is centered by look at the position of the lens in the live feed.

If it displays internal server error it means that there is a problem with the CSI cable connecting the camera and R-Pi.

Take out the side sheet of the optics box and remove the hood from the LED holder. Now start rotating the lens till you can see everything in front of the lens in focus (Focus at infinity). Light focuses onto a single point at about 5cms from the lens. You can see this by just placing your hand in front of the lens.

Now bring the fake eye in front of the lens. Center the pupil of the fake eye with the focused light and camera feed. Support the fake eye on a platform when you start seeing the retinal of the fake eye. Fine tune the focus further by just rotating the lens (setup should not move).

After this shutdown the R-Pi and switch off the power inputs.Remove the connections carefully and dettach the assembly. Take the optics box and mount back the hood and close the side sheet.

Step 7: Gear Mechanism

Assembly in the Eyepiece

Pass the road in the hole with the two 28mm gears in between the rectangular casing in the orientation shown in the picture. Fix the knob at the both ends. Push the gears and make them sit on the flat base. On the other side place the stopper and mate the holes and screw it with M2x4mm grub screw.

Keep the 38mm gear adjacent to any one of the 28mm gear and mesh the gears. Secure it with a stopper and grub screw.

Connecting the Racks to the Optics box

Now slide the front portion of the optics box into the eyepiece such that the lens is aligned with the the aperture on the eyepiece. Push it till the front surface of optics box touches the eyepiece.

Keep the eyepiece horizontal and pass the rack on the optics box and slide it with the gear adjacent. Stick the rack on the optics box with a plastic adhesive. Rotate it the other side and do the same.

Cuictures after fixing them with adhesives

Step 8: The Final Assembly

The final assembly should contain only assembly 5 parts (Eyepiece, Middle casing, Optics box, R-Pi and the Front piece)

Mounting the Batteries and Power bank PCB

Keep the whole battery and pcb with PCB support inside middle casing. Place the PCB support onto the bosses such that the charging port comes on the top and flushes with the surface.

Place the middle case such that the PCB support comes on to your left.

Out of 2 pairs of batteries take a pair that is near to the PCB and place it towards your right. Place it horizontally in between the protrusions that are on the walls of the middle casing. Cover it with the battery holder and screw it to the bosses. Do it to the other pair. The cord connecting both the battery pairs can be glued to the ceiling of the casing.

Click Switch Placement

Place the stub that has been printed on to the tactile switch and push it into the switch holder. Screw it to the casing with M2x8mm allen bolt.

Power Switch

In OIO one single switch should switch ON both the slide switches. In 3d printed KILL SWITCH part place the knobs of the switches in such a way that both the knobs are at their extremes and are in switched off position. Now screw them to the holders that are just beside the PCB support. Invert the casing for screwing them.

Final Assembly

  1. Middle Casing
    Slide the optics box inside the middle casing (take care of the orientation).
    Pull out the LED connectors and the CSI cable

  2. Eye Piece
    See the lens placement in the middle casing and place the eye piece on it.
    Slide it into the middle casing.
    The gears and the racks should mesh with each other while sliding in.
    After pushing it into the place, push back the optics box and screw the Eyepiece to the middle casing.
    Now rotate the knob and bring back the optic box to a place where it is touching to the eyepiece.

  3. Front piece
    Place the screen in the slot. Place the LCD holder on top of it and fix the screws.
    Attach the power cord from the power bank to the LCD.
    Shield the R-Pi with the PCB Connect all the wires in to their ports respectively.
    Bring the R-Pi nearer to the LCD (with the CSI cable attached) and attach the touch micro USB.
    Now connect the LCD and the R-Pi with the HDMI connector (check CSI cable while doing).
    Mount the front piece on the middle casing and screw it using M2x16mm bolts.

Check out the assembly videos for a proper understanding.

Step 9: Final Product

Step 10: Results