Sardauscan Sub-30$ Opensource 3d Laser Scanner




Introduction: Sardauscan Sub-30$ Opensource 3d Laser Scanner

Sardauscan is a open source Sub 30$ 3D laser scanner that you can easely print yourself.

Even 12$ if you already have a hercule HD twist.

Basicaly you just need a arduino nano, 1 to 4 line laser and a micro geared stepper (28BYJ-48).

no external power needed. just 2 free usb port on your pc : one for the webcam the other for the rest.

no complex assembly. just screw where there are holes ;)

no complex electronic. : just plug the 28BYJ controler to your arduino, plug 1 to 4+ lasers, edit the firmware configuration.h to set the pins you have used.

that's all

Bill of material:

Bunch of M3 (16 and 20 mm)
Bunch of M4 (12 ans 20 mm)

1x chinese Arduino nano (chinese copy, 4$)

1x chinese Stepper Motor and controler (5$)

1-4x Line laser (2.5$ piece)

1x Hercule HD twist (15$)

20x20 profile ( can be printed : for exemple , or you can use wood or whathever you want)

optional 3x 4mm roller (0.3$ piece)

total 26.5$ (1 laser) to 35$ (4 lasers)

2020 lengths of my build (but you can use whatever length you want, just make sure the camera can see all the scan area)

2x 140mm

1x 120mm

1x 250mm

The software Is written in C# and allow you to compose your Scan task by drag and drop.

For exemple the recommended Process (at this time of the code) for a scan

“Scan” => “IrQ filter” => “merge laser” (if you use more than one laser) => "surface smooth" => “(Build Mesh) by interpolation “ => “Save STL”.

But if you are not satisfied with the build-in processing task, or if you prefer use another heavy but powerful software to work with your point clouds like meslab or other,

you can just “Scan” => “Save Ply” and import them in your preferred application.

While the software come with a building support of the Sardauscan hardware, and usb camera.

but you can easely write your own Hardware proxy via plugins.

You can event build your own task to insert in your scan process (soon).

Printed parts :

Source Code : (still in developpement but it works)



    • Creative Misuse Contest

      Creative Misuse Contest
    • Tiny Home Contest

      Tiny Home Contest
    • Fix It! Contest

      Fix It! Contest

    24 Discussions

    Hello Sardau,

    I'm going to build the scanner. The parts have just arrived, but I haven't printed the structure yet.

    What is the minimum distance to the webcam and lasers for a scan?
    If the center of the turn table is at 220mm from the webcam, one can scan objects up to 350mm in diameter without issues?

    I'm planning to scan some helmets! :)

    Thanks for this great project!!


    Hi Sardau,

    I have built your 3d scanner and have gotten decent scans and calibrations but I'm having a problem with the scanned image looking like someone is grabbing the top of the model and pulling up, creating an almost cone shape of the scan plate and making the model have a kind of upward curve to it. I have tried playing with the numbers in the build dimensions but I can't seem to find the cause.

    Any help would be great.

    1 reply

    I'm not sure to understand (do you have pictures ?).
    make sure

    you don't have blinking or natural light in the background: can cause errors.
    your camera and your laser are perfectly straight, (no tilt,yaw,..)

    Hi Sardau,
    I have 4-wire bipolar stepper motor and the stepstick A4988 (1 step wire, 1 direction wire). I have also 1/100 gear in my construction. I have problem with rotation ratio in program. My 1 turn of the table is 100 turns of the motor. What should I change and where to make it work with Your program? I tried to change HALFSTEP values, REVOLUTION STEPS and STEP_BY_MINMOVE values. And I cannot achieve proper functionallity (90 deg turning table in Sardauscan - 90 deg table turned). I tried to change REVOLUTION STEPS to value wich I assume in my case should be there - 200*100=20000, but it didnt work also. Do You have any ideas?

    Sardau, We are getting ready to build your scanner. Can you tell us if you printed the turntable or just bought it somewhere? Also, is the turntable supposed to be attached to the axle in some manner? Or did you leave it loose for any reason? Very excited to get started! Thank you for everything!

    2 replies


    in my case the turn table is a round ikea mirror of 20cm diameter painted in balck mat.

    the part "table_Axle.stl" (or "table_Axle_minimal.stl") is glued in the center of the mirror.

    but you can find "all in one" table

    Sardau, we built the scanner and got everything working properly through the software. However I am having no luck at all calibrating the laser image. Can you offer some guidance on how to adjust the "Threshold", "Min. Width", and "Max Width" to get a constant line? I realize it is going to be different for every object and material. Are there environmental issues that need to be taken into account (i.e. background, lighting, etc.)?


    I have arduino UNO board and it doesnąt response on serial commands. After I open serial monitor and tzpe there "Sardauscan" it should response "yes", but it doesn't. Sketch is compiliing fine. Does anybody have same problem? It doesn't communicate with sarduscan application.

    In compiling I have only this warning:


    In file included from C:\Users\Misia\Desktop\STEPSTICK ARDUINO PROBA\2\Sardauscan-master\FirmWare\FirmWare.ino:1:0:

    sketch\SerialCommand.h:51:2: warning: #warning "Warning: Building SerialCommand without SoftwareSerial Support" [-Wcpp]

    #warning "Warning: Building SerialCommand without SoftwareSerial Support"


    sketch\SerialCommand.h:60:0: warning: "SERIALCOMMAND_HARDWAREONLY" redefined



    sketch\SerialCommand.h:47:0: note: this is the location of the previous definition



    In file included from sketch\SerialCommand.cpp:26:0:

    sketch\SerialCommand.h:51:2: warning: #warning "Warning: Building SerialCommand without SoftwareSerial Support" [-Wcpp]

    #warning "Warning: Building SerialCommand without SoftwareSerial Support"


    sketch\SerialCommand.h:60:0: warning: "SERIALCOMMAND_HARDWAREONLY" redefined



    sketch\SerialCommand.h:47:0: note: this is the location of the previous definition


    Thank you for these interesting project. I am an old linux fan and tried to install the windows software in an win10 vm. I 'm not able to register the dll's. There are alkways errors in the process. Perhaps anybody can give me some hints.

    Thank you

    hi, i do not have the merge lasers option, or is it replaced by 'laser' ?

    1 reply

    yes, since i've reduce the task name length to laser


    2 years ago

    Also be sure to see a red steady line in the tune laser tab, play with the laser delay. I find out that 20-30 is working pretty good. Sry for my english.


    2 years ago

    For those who cannot run the quick scan in the matrix, you have to increase the calibration precision in settings.

    Hello and thanks for all the advice
    I have a problem with the software
    after all calibration steps (table, lasers and cam) that everything works correctly soft
    not allow me to run the automantica scansion
    run all the steps three times but does not allow me to run
    thanks for your attention and I hope in a solution
    Thank you

    1 reply

    what do you mean by "not allow you" ?

    did you top icons are all blue ( if one red, click on it to connect to the hardware)

    did you drag the scan task (and others) to the right column and press the "play button" at the bottom ?

    Hi I cant get the turntable to move. I have connected as you advise ( pins 2,3,4,5) to the stepper controller but nothing, none of the leds flash, no movement. I tried the change in the configuration.h but no help there. I have tested the stepper with simple code and it works fine. Everything else works fine. Again if I try moving the turntable in the turntable section it says its working but nothing actually happens. Also I translated the french user guide to english using google if anyone needs it - thanks

    2 replies

    with the link it is better ;)

    Hey there
    After solving the programming that I thank you advice
    I have another problem
    when I run the program three red icones go to the cam and blue lasers work
    While the icon is blue engine does not work
    if you can give me more information or a way to solve the problem prune
    check wiring 3 times and replace the motor with its own controler the laimantacion is 5 v as Arduino
    Thanks and sorry for the inconvenience

    1 reply