User Tools

Site Tools


The Open Hardware Project

In the beginning DAVID-laserscanner was designed to scan simply using a line laser, a webcam and a reference scanning corner. You can get scans with a surprising precision simply scanning by hand, so always keep in mind that you have this option. You do not need additional hardware, but it might help to increase speed, accuracy and to complete jobs that you can not do by freehand scanning.

These pages are an attempt to gather and construct Open Hardware useful for your scanning setup. “Open Hardware” means that it should be possible for a person with little skill to rebuild this or that with simple parts available all over the world. “Hardware” for DAVID means electronics, mechanics and optical devices useful to build an automated 3D scanner.

You freely may use the technical designs, expand or modify them as you like. But remember the disclaimer (at bottom): You use this on your own risk. For the designers of these things, it would be a great help if you'd give some feedback. To do this please post a few lines in the DAVID-forum (

As this is a WIKI page, this is always work in progress.


Controlling your system with ARDUINO

Where to get parts

Arduino is an open hardware project itself You can build such a microcontroller by yourself from single parts, as well as to buy it. You may even produce a clone of the board commercially. So you can get different duinos (as e.g the Freeduino, Boarduino…). For it is widely spread in different DIY projects (interesting: 3D printer Reprap; or a Mocap suite at: there are tons of example codes in the www. It uses an easy to learn programming interface based on the freeware Processing.

Another module used in this design is the Easydriver v.3. This is open hardware as well, commercially produced by Sparkfun.

All other stuff you should get of your local electronics distributor. (A potentiometer, some resistors, a MOS maybe a CREE high power LED…)

Way of function

This design is based on the idea of keeping the dialog between the computer (DAVID) and the controller as simple as possible. For this communication the microcontroller listens to a serial COM port (which is indicated in the Windows device manager). So when, some day, DAVID might send this or that character to that port, the microcontroller will execute preset actions (stored in its firmware) such as going to an initial position, running a scanning circle (laser on, motion, laser off, motion back), turning a turntable, and more. This way it will be easy to use. To modify these action, you will have to alter the controller's firmware on your computer and upload it to Arduino.

Since all essential actions are stored on the controller, you may also use the device as a standalone without a computer. Physically pushing a button on the device will start the actions as well. This way you have the option of using the controller together with a videocam to capture the 3D data without a computer and postprocess them using the DAVID video grabber. It controls two stepper motors: one moves the beam and another turns a turntable.

List of functions:

- go to initial position ( when computer sends “i” or button is doubleclicked, endswitch)

- do a scanning circle ( laser on - travel - laser off - travel back; when computer sends “g” or button is clicked)

- stop the scanning circle ( laser off and go back to initial position; when computer sends “s” or button is clicked during circle)

- turn the turntable at a preset degree (when computer sends “t”)

- switch photolight on and off (when computer sends “l” or “d”)

- set the speed of lasermotion using a potentiometer on the board


(test phase: the parts that drive the Cree LED and the voltage reduction to 3.3V are not tested yet)


Circuit on a breadboard


Arduino Code

the_open_hardware_project.txt · Last modified: 2014/06/06 18:38 (external edit)