This project is to build a motorized gimbal mount to convert a laser distance module into a 3d LIDAR.

Public Chat
Similar projects worth following
The idea of this project is to use cheap laser distance modules to create 3D scans of the room. This can be done by rotating the laser distance module on 2 axis with the sensor centered on the junction of those two axis (aka: the sensor is on the center of rotation so it's always at the origin). The main goals of this project are to improve the means that cavers use to survey and map caves as citizen scientists. This device will also be useful for volumetric calculations, detecting changes over time, and may be useful in non-caving fields of study. The black and white header image for this page is an example LIDAR scan made using the Focus3D (more photos in gallery). From these LIDAR captures we are able to see how the cave formed, detect water patterns, identify rocks/mud/debris, and overlay the cave on a surface map.

Cavers are one of the few under-funded groups of people who still do mapping and surveying using old civil engineering tools. In 2016 the most common tools for cave mapping are the notebook, tape measure, and Suunto tandem (compass and clino). Some groups have upgraded to using a DistoX which is a modified laser distance meter with compass and clino readings. And a few of those have upgraded to using a PDA (yes...they still sell these on eBay) or tablet for sketching the map.

A few groups of cavers have begun using LIDAR to map caves. But this costs around $1k per weekend to rent the equipment or $40k+ to purchase the equipment. This price range is far outside of the realm of local citizen scientists.

The idea for the low cost LIDAR Gimbal originated with the Lidar Lite v2. This module costs $115 and is capable of 500 readings/second. For a LIDAR which has a physical range of (270° / 2) x 360° (thanks to Alexander for the correction). It takes 48600 samples to capture a 1° scene. For 1° resolution it should take 1 minutes 37 seconds to make a capture. For a 0.5° resolution it should take 6 minutes and 30 seconds. (The SF-30B has been scrapped because the 10cm readings were not as accurate as I wanted, the sensor was damaged, and the lidarlite3 is much cheaper),

Options for Sensor Include:

LIDAR-Lite 3
Field of View0.2 deg?
Accuracy+/- 2.5cm
Range0 - 40m

plain - 13.61 kB - 06/27/2016 at 11:26


plain - 34.32 kB - 06/24/2016 at 19:56


View all 10 components

  • First Run

    caver.adam08/30/2018 at 03:56 2 comments

    Tried a first run today of the mostly assembled project. 

    Two issues showed up. 

    First, the yaw axis is very jerky. I need to find a better way to turn it on the axis. It's doing too much balancing on the small shaft. 

    Second, about 1/3rd of the way through the scan the LM7805CV overheated. I need to see about adding a heat sink onto that. Otherwise I'll have to re-design the 5V side of the project (medium). Or lower the 18V side of the project to 12V (easy)

  • Getting close

    caver.adam08/24/2018 at 11:56 0 comments

    OpenLidar has made a bunch of progress in the last week. Now the motors are working, the Bluetooth control is working, and the lidar module is taking measurements. 

    Need to get the SD card working (to have somewhere to store data) and then program the basic algorithm for capturing a room. Also need to get the battery box printed (difficulty with the 3d printer currently). 

  • Electronic mock-up

    caver.adam08/11/2018 at 03:29 0 comments

    Put the electronics into headers on a protoboard and put them in the case. I’m concerned that the second board is too close to the motor drivers. I think the motor drivers can’t be placed on headers and will have to be soldered in even for the prototype stage. Unfortunate, but I’ll just have to commit sooner than planned. Also having trouble with the teensy damaging the headers. Looks like I might be going hard soldered quickly. 

  • Updated yaw motor mount works!

    caver.adam08/10/2018 at 06:34 0 comments

    got the 3d printer repaired and printed the new yaw motor mount. Fits like a charm and the worm gear makes a great connection. 

    Next step is to start assembling the circuit and simultaneously finishing the remaining non-functional parts such as the battery box and the lid for the whole case. 

  • Re-designed the yaw motor mount

    caver.adam08/06/2018 at 15:26 0 comments

    Fortunately, I was able to re-design the yaw motor mount. I designed the part originally from the Amazon description of the worm gears that I used...and I messed up the dimensions. Didn't figure it out until I had printed the main box for the project. Fortunately, I left some wiggle-room in the box so that I can just tilt the motor 7 degrees and fix spacing problem. Planning to print/verify the fix tonight. 

  • Delayed again

    caver.adam07/12/2018 at 19:49 0 comments

    Ugh. Took a delay because we were on a 2 week vacation and then got back and got sick. I'm missing this project, but there's no way I'm braving the 90F / 60%RH in the Garage while I'm sick. 

    I seriously want to get these motor shafts replaced and the replacement nema10 mount printed.

  • One small step back.

    caver.adam06/12/2018 at 03:48 0 comments

    Started to assemble and apparently I should've waited for my amazon order of the worm gear to come in so I could measure it...doesn't quite fit. Not a large problem. Should take about an hour to redesign the yaw motor mount and another hour to print it. Should be fixed by the weekend.

    Also having trouble replacing the rod in the stepper motor. Man those pieces are on snug. Need to figure out a better way to get them off. 

  • Hardened Steel is Hard to Cut

    caver.adam06/11/2018 at 13:43 0 comments

    So, it turns out that I don't have a tool capable of cutting 5mm hardened steel rod. Admittedly, most of my tools are for electronics (or basic woodworking and home repair). I've got a family member nearby that will let me use his Dremel.

    Otherwise, I've printed all the body elements required to make a functional skeleton of the open lidar. Once I get the rods cut to length I can retrofit my stepper motor and get the skeleton assembled. Really want to get the skeleton done. I still need to print lids and the battery box, but those won't stop the device from working.

    I still need to finish the new schematic that uses the Teensy 3.5, but the Teensy has so darn many pins that you can practically throw a wire at it from across the room and be plugged into a pin that will work. That's going to make it a lot easier to get a good layout. I've looked at the schematic and it's going to be pretty easy to get a clean layout with the new circuit.

  • First 3D Print

    caver.adam05/31/2018 at 10:58 0 comments

    Set up the printer to print PETG and got the first component off. Still need to dial in the settings because I’m getting a bit of stringing, but the roll motor mount is serviceable. The stringing is making it hard to print more than one part at the same time though.

  • PETG or Nylon?

    caver.adam05/29/2018 at 21:16 0 comments

    Need to figure out what material to use to print the body for the Open Lidar. My printer doesn't have an enclosure, so there's some extra work involved in getting Nylon to work. Guess I'll try PETG to start and if it doesn't work I'll switch to Nylon.

    Still need to make a case for the batteries, but I can design that while I'm waiting for the other prints...

View all 53 project logs

  • 1
    Step 1

    Assembling the Gimbal

    Note: These instructions will soon change. A rough draft for a laser cut version of the project is in works. This will emulate the way that many acrylic 3d printers are made for easy assembly.

    Original gimbal instructions:

    To start with, it is necessary to print out the gimbal vector SVG file that has the dimensions for the project. Make sure to print this file at normal size. To compare this, the large platform is 6 inches. Measure this platform carefully to make sure your printed copy matches that scale. The file was made to match a 12" by 12" sheet of plastic. You may need to use more than 1 sheet of plastic to print the file or you may need to print individual shapes onto pieces of paper. Alternatively, you can simply use the file as a template and hand measure all the pieces. Or you can laser cut the file.

    Next, it is necessary to cut out the plastic pieces to the specifications in the file. The original project was done with a jigsaw. Any sort of cutting method will work.

    Next, drill all the holes that are specified. The first version of the file does not have the drill hole sizes indicated. A tap and drill bit guide will indicate which size holes to use for the screw holes. The motor shaft holes need to be greater than 7mm to prevent friction. To drill motor mount holes print out a nema 17 layout and tape it to the plastic piece to be drilled making sure to center the motor shaft very carefully. Then drill using a 3mm bit.

    After drilling holes I glued pieces together that needed to be glued. This includes the base that connects to the Tripod and the vertical uprights.

    After the glue was set I tapped all holes to the right thread. Then I assembled the device.

    [Need updates but will probably wait until laser cut version of mount is designed]

  • 2
    Step 2

    Setting the Stepper Driver Current

    If possible, it is recommended to wire the stepper driver on a breadboard to set the current before you solder the driver into the project. It is best to solder in the stepper driver to the main board after soldering in the 5V regulator, but before soldering in any of the other components. This way, if you make any mistakes in orientation of the chips you will not burn out any of your sensitive components. Use a multimeter to make sure that there is not any leakage of 12 volts onto any of the 5 volt traces.

    See: Pololu Instructions Link

    See: Instructables Instruction Link

    I am successfully running my motors with a Vref of 0.60V with my 1.2A 15.6 motors on a 12V power supply. This project does not require an exceptional amount of current to function. The yaw motor appears to require at lest 1ms movement time between each eighth step in order for the motor to move when commanded. The pitch motor is currently running with a 250us delay, but I haven't tried less than that yet.

  • 3
    Step 3

    Setting up the bluetooth module

    Tools: TTL (or FTDI) cable, TinySine Bluetooth Module, computer with usb port, serial monitor

    First things first, the bluetooth module comes with a default BAUD rate of 9600. Yeah, that's not going to do. So lets speed things up.

    To start this we begin by wiring the bluetooth module to our USB to TTL converter (I'm using an FTDI converter that also programs the Trinket Pro). The wiring is VCC->VCC, GND->GND, TX->TX, RX->RX. Seems obvious, but this is NOT how we will hook it up to the Arduino later.

    Next, plug the USB cable in and the bluetooth module should start flashing.

    Open a serial monitor program (I'm using the one built into the Arduino software) and make sure the port is set to the right one. For the settings the BAUD rate needs to be 9600 and the monitor needs to be set to "No line ending".

    Send the "AT" command to see if it is working. The module should reply "OK".

    Send "AT+BAUD?" to see the current BAUD rate. It should return a "2" which corresponds to 9600 [from the datasheet].

    Send "AT+BAUD6" to change the BAUD rate to 38400. Re-power the module for the settings to take effect. You can use "AT+RESET".

    Set your serial monitor to 38400! Otherwise you won't be able to talk to the module anymore. (Note: I had to set the rate of my serial monitor, close the window, and re-open the window).

    Send "AT" and make sure it responds back "OK".

    If you want to set a BLE password or change the EDR password you can do that now too.

    EDR: "AT-PINEmypassword"

    BLE: "AT-PINBmypassword"

View all 10 instructions

Enjoy this project?



caverjohn wrote 01/04/2017 at 16:29 point

Hi Adam, I stumbled across your project while googling "Lidar-Lite v3".  I just received one of those sensors yesterday. I hope to someday use it build a scanner for cave mapping similar to your design. I'm also a caver in the Louisville area (NSS40959RL). I'm very impressed with your work on this project.

  Are you sure? yes | no

Alexander wrote 07/13/2016 at 16:23 point

It is also, as globe. We have latitude and longitude.

By rotating to 360 deg of motor1 we get parallel. Trajectory of point is circle. By upping motor2 to 10 deg, we get increase of latitude by 10deg  and had another circle. So by changing from -90 to +90 of motor 2 and full 360 deg rotate of motor1 we get all sphere.

  Are you sure? yes | no

caver.adam wrote 07/13/2016 at 17:30 point

Ah. Thanks! Oops! My flow chart had me taking the same point twice! You're a lifesaver.

  Are you sure? yes | no

Alexander wrote 07/13/2016 at 13:12 point

Hello, from Russian caver . I am think you mistake: "is capable of 500 readings/second. For a LIDAR which has a physical range of 270° x 360° it takes 97,200 samples to capture a scene"

You must take 360 deg  to 180 deg range for full 360 sphere, so 64800 samples and 130 sec for 1 deg resolution.

  Are you sure? yes | no

caver.adam wrote 07/13/2016 at 14:10 point

My 270 degree figure comes from the fact that I can't shoot through the base of the LIDAR to view the ground. Ideally I would want to capture 360x360 degrees.

But this does bring up an interesting point. For instance, when the sensor is pointed straight up (in the direction the base motor points) the device will be pointing at the same point as in the previous 270 degree scan of the carriage.  This means we will have 360*resolution measurements of the same point. Similarly, the closer we are to the poles, the closer together the scan points will be. This is something that can be worked on later to decrease scan times. I've also considered using a variable scan resolution based on distance. 

  Are you sure? yes | no

caver.adam wrote 07/13/2016 at 14:11 point

If I'm confused, please feel free to shoot me a diagram. Thanks!

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates