Open Source RoboticsRobots, software & learning

OpenSimpleLidar

Based on published sources · Not tested by us ·

License: MIT, MIT (author code); bundled ST library under MCD-ST Liberty V2, MIT (root); BSD header on ROS node files derived from xv_11_laser_driver · Details by part

Overview

DIY triangulation scanning laser rangefinder (STM32F030, TSL1401CL line sensor, 780 nm laser, slip-ring head) rated by its author at 5 scans/s, 2-degree steps and up to 4 m; a sensor component for robots, not a robot. [S001] [S004] [S010]

OpenSimpleLidar is not a robot. It is an open-hardware 2D scanning rangefinder that a mobile robot could use in place of a purchased LiDAR. Its author reports 5 scans per second, 180 measurements per rotation (2-degree steps), a 4 m maximum distance and roughly 3–5 cm accuracy at 3 m depending on surface colour. These are the author's figures, not catalog measurements. [S001]

Specifications

DetailDescription
TypeRotating triangulation laser rangefinder: main PCB with laser and lens spins on a slip ring, belt-driven by a small DC motor (sensor component).
Reported by source [S001] [S004] [S010] · Checked 2026-10-05
Intended usersElectronics builders comfortable with SMD soldering, optical alignment and STM32 programming
Editorial assessment [S005] [S010] [S011] · Checked 2026-10-05
AssemblyWiki pages cover main-PCB electronics, optics, programming and first tests, scanning head, laser alignment and focusing, and calibration.
Reported by source [S010] [S011] [S012] · Checked 2026-10-05
CalibrationPer-device coefficients (Coeff A/B; a_coef/b_coef in the ROS launch file) from a video-guided calibration.
Reported by source [S008] [S009] [S012] · Checked 2026-10-05
Operating systemNot known
Computer neededA host reads scans over UART (USB-UART converter during alignment); the ROS 1 node publishes scans on the host.
Reported by source [S008] [S011] · Checked 2026-10-05

3D preview

Preview not available yet. Design-source links are available. A configuration-matched assembly and its file-level reuse scope have not yet been reviewed for a hosted preview.

Assembly and use

How it works and what you build

The main board carries a 780 nm laser diode, an M12 lens, a TSL1401CL linear image sensor and an STM32F030 microcontroller, and measures distance by triangulation. The board spins on a slip ring, driven by a small 3 V motor and belt, with an RPI-352 sensor reading an encoder ring. Printed STL holders and DXF base-plate and encoder-ring outlines make up the mechanics. [S001] [S004] [S010] [S013]

The wiki splits the build into populating the main board, fitting the optics, programming and first tests, assembling the scanning head, laser alignment and focusing, and calibration. Alignment uses test firmware, a USB-UART converter and a PC capture utility to find and sharpen the laser peak; a badly printed laser holder may need filing. Calibration produces per-device coefficients that must be entered in the ROS launch file. The calibration procedure itself is a linked video that was not reviewed. [S008] [S010] [S011] [S012]

Which files are tested

This matters before ordering boards. The PCB notes say the author did not test CommonPCB v1.1M, v1.2, v1.2M or MainPCB v1.1. Editable Altium projects exist only for those three CommonPCB variants, all carrying that warning; the split MainPCB v1.0 with MotorPCB v1.0, which the notes do not flag as untested, comes as Gerbers and schematic images. Firmware is STM32 C code with IAR 7.50 projects and prebuilt HEX files. ROS support is a ROS 1 node adapted from xv_11_laser_driver. Repository files were reviewed at release v1.1 from October 2021; later default-branch changes are not covered. The wiki guidance was retrieved separately and the alignment page was edited in May 2026, so its match to the v1.1 files was not verified. [S002] [S005] [S006] [S008] [S011]

Cost scope

The spreadsheet totals 29.17, or 23.17 without the optional 780 nm interference filter, and says delivery is excluded. The README describes this as under $30. The PCB line is the price of a 10-board order, the motor pulley has no price, and small SMD parts, printed parts, the USB-UART converter and a programmer are not itemized. Price dates are not stated. [S001] [S004]

Licenses and safety

The repository's LICENSE is MIT. Bundled STMicroelectronics peripheral-library files carry the MCD-ST Liberty V2 license instead, and the ROS parser file carries a BSD header from its original authors. The wiki pages show no license. The firmware notes warn that the test2_capture_image build keeps the IR laser on most of the time and is more dangerous for eyes. Nothing was built, aligned, calibrated or range-tested for this profile. [S003] [S006] [S007] [S008]

Cost

VersionPrice
OpenSimpleLidar TotalBOM component prices (release v1.1 spreadsheet)USD 23.17 [S001] [S004]
Parts estimate

eBay, Taobao, AliExpress and JLCPCB examples; destination unspecified · Checked 2026-10-05

IncludedLaser diode, M12 lens and lens holder; Optional 780 nm interference filter (upper bound only); Main PCB order (price for 10 boards); TSL1401CL sensor and STM32F030F4P6 MCU; Slip ring, 3 V motor, bearing, encoder sensor and belt
Not includedDelivery (stated in the sheet); Motor pulley (no price; can come from a DVD drive); Small SMD parts and regulator not itemized in TotalBOM; Printed or cut plastic parts; USB-UART converter, programmer and tools
StockSupplier links and prices not re-checked; dates not stated.
Delivery and taxSheet states delivery is excluded; taxes not stated.
Price details

Lower bound excludes the optional interference filter; upper bound is the spreadsheet SUM total. Currency is not labeled in the sheet; the README says components cost less than $30. Price dates not stated; PCB price is for 10 boards.

eBay, Taobao, AliExpress and JLCPCB examples; destination unspecified · Checked 2026-10-05 · Quantity 1

Unitemized SMD parts, plastic parts, USB-UART converter, programmer, host robot or PC.

Source files and licenses

Complete open sensor package (mechanics, PCB, firmware, ROS node, BOM) under an MIT root license with separately licensed vendor and derived files; included as a sensor component in category other, not as a complete robot. Partial because several board revisions are untested by the author and the wiki carries no license.

LayerAvailability / license
mechanical designavailable · MIT
Four STL parts and DXF base plate and encoder ring; no parametric CAD identified. Root MIT license applies as declared; purchased lens, slip ring, bearing and motor are not covered. [S003] [S013]
electronicsavailable · MIT
Altium projects (SchDoc/PcbDoc) for CommonPCB v1.1M, v1.2 and v1.2M, which the author says were not tested; the tested split MainPCB v1.0 has Gerbers and schematic images only. Gerbers and PCB BOM spreadsheets for each variant. [S003] [S005]
firmwareavailable · MIT (author code); bundled ST library under MCD-ST Liberty V2
STM32 C source with IAR projects and prebuilt HEX files. Bundled StdPeriph files carry STMicroelectronics terms, separate from the root MIT license. test2 omits the library and points to test1. [S003] [S006] [S007]
softwareavailable · MIT (root); BSD header on ROS node files derived from xv_11_laser_driver
ROS 1 node and PC utilities; the scan utility is published with source, the raw-capture tool is a prebuilt executable. [S003] [S008] [S009]
documentationavailable · License not fully assessed
README is in the MIT-licensed repository; the separate wiki pages show no license in the inspected text. Calibration instructions are a linked video that was not reviewed. [S001] [S003] [S010] [S011] [S012]

Sensor hardware and firmware; no learned models.

No dataset is distributed with the selected release.

References

Links identify the documentation and revisions used in this profile. Access dates record when each source was retrieved.

  1. S001 · Ilia Samokhin (iliasam)
    OpenSimpleLidar README
    Accessed 2026-10-05 · README.md at release v1.1 (b9e5e821971be54b083016067ac54c679cf76682)
    Source notes

    Stated scan rate, angular resolution, range, accuracy, component cost claim and triangulation method.

  2. S002 · Ilia Samokhin (iliasam)
    Release and repository metadata
    Accessed 2026-10-05 · Release v1.1 (2021-10-09), commit b9e5e821971be54b083016067ac54c679cf76682; GitHub API fields
    Source notes

    Latest stable release, commit, archive checksum, later default-branch push date and dated popularity.

  3. S003 · Ilia Samokhin (iliasam)
    Repository license
    Accessed 2026-10-05 · LICENSE
    Source notes

    MIT License, copyright 2019 Ilia Samokhin.

  4. S004 · Ilia Samokhin (iliasam)
    Total bill of materials spreadsheet
    Accessed 2026-10-05 · TotalBOM.xlsx, sheet 1 cell values
    Source notes

    Itemized component prices, totals with and without the optional filter, and delivery exclusion.

  5. S005 · Ilia Samokhin (iliasam)
    PCB README and board notes
    Accessed 2026-10-05 · PCB/README.md, board Readme files and PCB folder inventory
    Source notes

    Board variants, author test status, dimensions and file formats (Altium projects, Gerbers, schematic images, PCB BOMs).

  6. S006 · Ilia Samokhin (iliasam)
    Firmware README and source header
    Accessed 2026-10-05 · Firmware/README.md, Firmware/test2_capture_image/README.md, main.c header
    Source notes

    Firmware projects, IAR 7.50 build route, prebuilt HEX files and laser-safety warning.

  7. S007 · STMicroelectronics (bundled in upstream repository)
    Bundled STMicroelectronics peripheral library notice
    Accessed 2026-10-05 · StdPeriphLib source file header
    Source notes

    Vendor library under MCD-ST Liberty SW License Agreement V2.

  8. S008 · Ilia Samokhin (iliasam)
    ROS node notes and source header
    Accessed 2026-10-05 · ROS/Readme.txt, ROS/roomba_lidar/manifest.xml, src/lidar_parser.cpp header
    Source notes

    ROS 1 node derived from xv_11_laser_driver with BSD header; per-device calibration coefficients required.

  9. S009 · Ilia Samokhin (iliasam)
    PC utilities README
    Accessed 2026-10-05 · PC_utility/README.md
    Source notes

    Raw-capture and scan-display utilities, calibration values and source publication note.

  10. S010 · Ilia Samokhin (iliasam)
    Project wiki home
    Accessed 2026-10-05 · Wiki page snapshot sha256 321727ab5724
    Source notes

    Component breakdown of scanning head and base, and list of assembly pages.

  11. S011 · Ilia Samokhin (iliasam)
    Wiki: laser alignment and focusing
    Accessed 2026-10-05 · Wiki page snapshot sha256 8ce9bd2d2568 (page edited May 23, 2026)
    Source notes

    Alignment procedure using test firmware, a USB-UART converter and the raw-capture utility.

  12. S012 · Ilia Samokhin (iliasam)
    Wiki: lidar calibration
    Accessed 2026-10-05 · Wiki page snapshot sha256 24e9451a755a
    Source notes

    Calibration is the final assembly step; coefficients feed the ROS node; procedure is in a linked video.

  13. S013 · Ilia Samokhin (iliasam)
    Mechanics file inventory
    Accessed 2026-10-05 · Mechanics/ archive inventory
    Source notes

    STL holders and plates plus DXF base plate and encoder ring.

Research and review details

Source research only; no installation, physical build, calibration or test performed. Performance figures are author-reported. No affiliate links.

Profile edited 2026-10-05 · Sources checked 2026-10-05 · Next review target 2026-11-05

Revision: Release v1.1 (published 2021-10-09), commit b9e5e821971be54b083016067ac54c679cf76682. The default branch was pushed later (2025-07-22); those changes are not covered.. Combined hardware and software repository activity recorded 2025-07-22 [S002]

Correction guidance · Discussion is not enabled · Profile format 0.7.0-draft.5

Change history

2026-10-05 — Initial intake profile from release v1.1 sources (Growbotics lead verified against upstream).