Esp32 360° Lidar
The project is a low-cost, fast 360° LiDAR scanner based on an ESP32. A TF-Luna LiDAR measures distances, while a NEMA17 stepper motor via a TMC2209 rotates the sensor evenly at 50–80 RPM. The goal of the project is to create a precise, flexible, and expandable 2D scanning platform serves as a basis for robotics, mapping, or research applications.
Created by
ben
Tier 2
7 views
2 followers
Iamalive 🚀
requested changes for Esp32 360° Lidar ago
Great idea! However your project seems to be missing a few parts - please fully read https://blueprint.hackclub.com/about/submission-guidelines and add the missing parts!
ben
added to the journal ago
Tested new prototype
I’ve since revised the mechanical design to include internal cable management for the slipring and overhauled most of the software. It is now in full working order.

ben
submitted Esp32 360° Lidar for ship review ago
ben
added to the journal ago
Made prototype PCB
I made an prototype PCB. I planned using a Esp32 C3 super mini but it's single core performance was not enough so I replaced it with a Esp32 S3 supermini. The PCB uses the Esp32, a Tmc2209 and a Gy91 IMU. I also worked on the Arduino code and on the plotting python program.

ben
added to the journal ago
First test
I put together some quick test code to validate the data, and it does work. The overall code quality is still very rough, highly unoptimized, and missing several basic features, but the initial test results look promising. The tests were run at around 60 RPM. It also ran at speeds up to 500 RPM, although precision dropped significantly at that point. Since communication with the TMC2209 is still not working, these tests were done using 1/8 microstepping instead of 1/32, so there’s likely a lot of room for improvement in terms of precision.

ben
added to the journal ago
Built prototype v0.3.0
3D printed v0.3.0, assembled it and threw together some quick test code. It worked for a bit but the TMC2209 didnt want to communicate over 1-wire UART to set the microstepping right. Eventually the TMC2209 released the magic smoke.


ben
added to the journal ago
v0.3.0 CAD design
Completely revised/new CAD design from v0.2.0
Added timing belts and more precise bearings. Removed As5600 and magnetic coupler. Added modular mount for diffent sensors

Version with added mounts for TFluna lidar and slipring

ben
added to the journal ago
v0.2.4 Prototype
Improved, completely revised version compared to v0.1.0
Rotary axis powered by NEMA 17 23 mm stepper motor over an O-ring. Slip ring placed in the middle and AS5600 magnetic encoder connected over an over-engineered magnetic coupler. Fixed several off tolerances.


ben
started Esp32 360° Lidar ago
12/22/2025 11:06 AM - v0.2.4 Prototype
Improved, completely revised version compared to v0.1.0
Rotary axis powered by NEMA 17 23 mm stepper motor over an O-ring. Slip ring placed in the middle and AS5600 magnetic encoder connected over an over-engineered magnetic coupler. Fixed several off tolerances.


12/22/2025 11:17 AM - v0.3.0 CAD design
Completely revised/new CAD design from v0.2.0
Added timing belts and more precise bearings. Removed As5600 and magnetic coupler. Added modular mount for diffent sensors

Version with added mounts for TFluna lidar and slipring

12/22/2025 4 PM - Built prototype v0.3.0
3D printed v0.3.0, assembled it and threw together some quick test code. It worked for a bit but the TMC2209 didnt want to communicate over 1-wire UART to set the microstepping right. Eventually the TMC2209 released the magic smoke.


12/23/2025 - First test
I put together some quick test code to validate the data, and it does work. The overall code quality is still very rough, highly unoptimized, and missing several basic features, but the initial test results look promising. The tests were run at around 60 RPM. It also ran at speeds up to 500 RPM, although precision dropped significantly at that point. Since communication with the TMC2209 is still not working, these tests were done using 1/8 microstepping instead of 1/32, so there’s likely a lot of room for improvement in terms of precision.

12/31/2025 - Made prototype PCB
I made an prototype PCB. I planned using a Esp32 C3 super mini but it's single core performance was not enough so I replaced it with a Esp32 S3 supermini. The PCB uses the Esp32, a Tmc2209 and a Gy91 IMU. I also worked on the Arduino code and on the plotting python program.

1/25/2026 - Tested new prototype
I’ve since revised the mechanical design to include internal cable management for the slipring and overhauled most of the software. It is now in full working order.
