Folks have been waiting a long time for someone to post the plans of a working LiDAR. Is it really going to happen?
A team at Hackaday.io is working this issue. Their objectives:
1. Design a simple LiDAR module that is relatively easy to understand.
2. Use as many COTS (commercial-off-the-shelf) electronic components as possible.
3. The software must be easy to modify without a complicated IDE.
4. Mechanical parts must be 3D printable.
5. Optical components must be available at a reasonable price.
The Unruly is a time-of-flight LiDAR that uses a pulsed laser diode (PLD) to generate a flash of light, an avalanche photodiode (APD) to detect the return signals and a high speed timer (TDC) to measure the return time. So far:
- The measuring range can be adjusted to over 100m on natural surfaces and 250m on reflective surfaces, outdoors in bright sunlight.
- The resolution can be configured down to 1 cm.
- The measuring rate is up to 1000 readings per second or maybe more
- And more
The Unruly use of open source hardware: ItsyBitsy M4 Express
The Unruly uses existing open source hardware as a starting point, the Adafruit ItsyBitsy M4 Express. This is a small microcontroller board with a SAMD51 processor, extra flash memory and almost nothing else. Why, you are asking, have you chosen such a basic controller board to manage the complicated hardware of a LiDAR? Well, my wife likes how small it is and it has a cute name. Of course it helps that the SAMD51 runs at 120MHz and has a bunch of really interesting peripherals.
The Unruly use of open source software: CircuitPython
Another reason for choosing the ItsyBitsy M4 Express board is that it can run a version of the programming language Python called CircuitPython. This is by far the least likely language to be used in a high speed embedded system, especially one that needs to work at the speed of light. Python is an interpreted, high level language that manages variables and memory in a vague, non-specific way. There are only a few APIs and these do stuff that is no use to a LiDAR.
But CircuitPython is easy to write, easy to read and can be programmed without an IDE by using a basic text editor. This seems like a good enough reason to use it.