Skip to content

OpenScan Mini with Polarizer Module



The OpenScan Mini is a compact desktop 3D scanner capable of scanning objects up to ~8-10 cm with an accuracy of up to 0.02 mm. The frame can be fully 3d printed, and all other components are off-the-shelf parts. You should be able to source all parts locally, or chose to support the OpenScan project by ordering (some) parts through Currently, the following cameras can be used without any additional modifications: Arducam IMX519 16MP & autofocus, Pi Camera v2 8MP and Pi Camera v1.3 5MP, where the Arducam IMX519 has to be considered the gold standard (for now :)

Bill of material (BOM)

  • 24x M3x8 screws
  • 1x M3x12 screw
  • 1x Pi Shield
  • 1x Nema 17 (>40Ncm)
  • 1x Nema 17 (>13Ncm)
  • 1x Raspberry Pi 3B+ or 4 (any)
  • 1x Micro SD Card (>16GB)
  • 1x Camera Ribbon Cable 50cm
  • 1x Ringlight
  • 1x Camera Module IMX519 (alternatively Pi Camera V2 or V1.3)
  • 2x M2x6 Nylon Screw
  • 2x M2x6 Nylon Standoff
  • 2x M2 Nuts
  • (2x M2x12 Nylon Screw if you use the Pi Camera module)
  • 1x Polarizer module

3d printed parts:

  • Frontplate
  • Base
  • Rotor
  • small gear
  • backplate
  • object holders (4 sizes)

3D Printing

Get the printable .stl (and design) files here.


  • you will need a print bed of at least 200x200mm
  • depending on your printer's capabilities (and your risk aversion), all parts can be fitted onto one build plate of min. 220x210mm
  • printing all parts can be done in under 17h (tested on Prusa MK3S+ using default Draft profile)


  • support: only for 07_polarizer_b
  • layer-height: 0.2-0.3 mm
  • print speed: depends on your printer's calibration


  • COLOR - main Frame: Please use a material without visible particles or structure. Avoid transparent materials
  • COLOR - 07_polarizer_a: translucent/natural
  • COLOR - 07_polarizer_b: any non-translucent material (like PETG black, Prusament Galaxy Black)
  • PLA is totally fine, since there is not a lot of mechanical strength needed
  • PETG, ABS, ASA can be used for increased temperature resistance in warm environments


Frontplate + Pi-Shield

  • 1x Frontplate (3d print)
  • 1x Pi Shield
  • 4x M3x8

01 Front Plate

Mount the Pi Shield to the front plate using four M3x8mm screws


Base + Rotor

  • 1x Base (3d print)
  • 1x Rotor (3d print)
  • lubricant and/or sandpaper (optional)


Insert the rotor into the base and make sure, that the rotor can slide freely! (It might require some sanding and/or lubrication)


Mounting the Turntable Motor

  • 1x Base + Rotor
  • 1x Nema17 small
  • 4x M3x8 screws

Make sure to mount the small stepper motor (Turntable) first. The motor connector should face to the left.


Mounting the Rotor Motor

  • 1x small gear (3d print)
  • 1x Nema17 large
  • 4x M3x8 screw

Press the small gear onto the shaft of the larger stepper motor.


Mount the stepper motor with four M3x8 screws like shown below. Move the large ring a couple of times to make sure, that the gears fit. Again, the motor connector should face to the left.


Mounting the Raspberry Pi

Insert the Micro SD card into the slot of the Raspberry Pi.

Mount the Raspberry Pi with four M3x8 screws. Make sure not to overtighten the screws, which might bend and damage the board. Note, that the Raspberry Pi's screw holes are a tight fit for those M3 screws.


Preparing the camera cable

  • 1x camera ribbon cable (50cm)

Insert the camera ribbon cable through the two slots (red arrows). Make sure that the metal plating of the cable is facing the stepper motor (yellow circle). Take care not to create sharp bends as this might damage the cable.


Continue through the next slot (again the metal plating should be facing away from you):


Insert the camera ribbon cable into the socket. The metal plating should be facing away from the USB/Ethernet ports (yellow circle). Gently push down on the socket clamp to close it (dark part that likes to break).


Preparing the Ringlight Module

There are three different variants for mounting the ringlight module: mounting the Arducam or Pi Camera on the ringlight and mounting the ringlight directly onto the rotor arm, or assembling the ringlight and Arducam with the help of the slide-in mount (available soon). Please scroll to the correct section for your hardware.

IMPORTANT: Make sure to follow the right setup for your camera module:

Ringlight Variant: Arducam IMX519 16mp with Autofocus and plastic screws

  • 1x Ringlight PCB
  • 1x Arducam IMX519 16mp camera module
  • 2x M2x6 screws
  • 2x M2x6 standoffs
  • 2x M2 nuts

See the sequence of the parts:


Make sure that the lens is properly centered (looking at the ringlight from the front as shown in the right image):


Ringlight Variant: Pi Camera v2.1 or v1.3

  • 1x Ringlight PCB
  • Pi Camera v2.1 or v1.3 module
  • 2x M2x12 screws
  • 2x spacer
  • 2x M2 nuts

See the sequence of the parts:



Mounting and connecting the Ringlight Module

  • 1x Ringlight Module
  • 1x 50cm ringlight power cable (3P JST XH)
  • 4x M3x8 screws

Mount the ringlight module using 4 M3x8mm bolts as indicated by the red arrows: image

Connect the camera ribbon cable with the camera. The Metal plating is facing down (yellow circle). Connect the 50cm ringlight cable with 3P JST connectors to the Ringlight (red arrow):


Guide the ringlight cable as indicated by the yellow circles:


Ringlight Variant: Arducam IMX519 16mp with the slide-in mount

  • 1× Ringlight PCB
  • 1× Arducam IMX519 16MP camera module
  • OpenScan slide-in mount
  • lid for the OpenScan slide-in mount
  • 4× M3×12 screws

Start by sliding the camera module into the mount as pictured below until it snaps in place. Take care that the small black camera cable slides cleanly into the recess (left side in the image).

01insert 02slide

Flip the mount and check that the lens sits as pictured: 03check

Place two of the M3×12 screws as pictured: 04place-screws

Slide the ringlight module onto the screws and press it into its recess in the mount: 05place-ringlight

Check that the lens is centered so it doesn't touch the edge of the ringlight PCB. Otherwise it might get damaged during focussing! If necessary adjust its position in the rails.

Insert the camera ribbon cable through the aperture in the mount: 07place-mount

Place the remaining two M3×12 screws and tighten them until the mount sits snugly on the rotor arm: 08tighten-screws

Look on the sides and check that there is no gap and the PCB is not visible anymore: 09check-tightness

Pull some length of cable upwards to give yourself some slack. Connect the cable to the camera module as pictured. The metal contacts need to face towards the camera's PCB: 10connect-cable

Pull the cable down again, so as little length of cable as possible remains inside, but make sure the cable is not under tension. Place the lid onto the mount and push it in: 11close-lid

Don't forget to connect the pink ringlight cable: 12connect-ringlight-cable

Guide the ringlight cable as indicated by the yellow circles:


Connecting the Pi Shield

  • 1x Frontplate with Pi Shield
  • 2x stepper motor cable

Connect the stepper motor cables to the Pi Shield and the corresponding stepper motors (see labels bellow):


  • (1) Turntable (small Nema 17)
  • (2) Rotor (large Nema 17)
  • (3) ST XH 3P (from ringlight module, see previous step)

Mounting the Frontplate

  • 1x M3x12 screw
  • 1x frontplate with Pi Shield
  • 1x base/rotor

Mount the frontplate to the base. Make sure that the pin headers of the Raspberry Pi and the Pi shield are properly aligned (yellow circle):


Use the M3 screw to connect the frontplate to the base:


Mounting the Backplate

  • 4x M3x8 screws
  • base/rotor
  • backplate (3d print)

Make sure the ringlight cable is sitting in the guide slot (yellow circle). Use the 4 M3x8 screws to mount the backplate (red arrows):


Mounting the Diffuser/Polarizer

  • OpenScan Mini
  • Polarizer Module

The Polarizer module can be easily mounted by clicking it onto the rotor: image

The polarizer module consists of two printed parts. It is very important that the smaller printed part (yellow circle) is not translucent in order to block all light. There are two pieces of linear polarizer foil. The smaller piece (15x11mm) was inserted into the slot (red arrow). The larger piece (75x66mm) is covering the whole front area except for the middle (red arrow). It is absolutely crucial that those two pieces are oriented perpendicularly against each other. The polarizer will greatly improve the results by filtering almost all direct reflections. image

Starting the device for the first time

Plug in a 12V (min. 2A power supply) and start the device.

Continue with this guide, which shows the initial setup of the firmware and some general tips & tricks