Key Components

  1. Raspberry Pi 3: Acts as the main controller, interfacing with other components through a Quad UART USB module. It also handles programming and debugging via SPI and JTAG interfaces.
  2. ToF PCB: This is the heart of the optical transceiver, hosting both the transmitter (laser) and the receiver (photo detector).
  3. FPGA Board: An Olimex FPGA board, running a softcore RiscV CPU, handles signal processing, including histogram measurements and time-to-digital conversion.
  4. Opto-Mechanics: The system is mounted on a 2-axis gimbal, allowing for 360-degree scanning. Focusing optics ensure that the laser beam and receiver are aligned correctly for accurate measurements.

Detailed Breakdown

Transmitter

The transmitter utilizes a high-speed infrared laser at 850nm, driven by a custom pulse generation circuit. The pulse duration can be toggled between short (nanoseconds) and long modes using NAND logic gates. Amplification is handled by an RF amplifier, which ensures the laser emits powerful, clean pulses.

Receiver

The receiver is equipped with either an Avalanche Photodiode (APD) or a Silicon Photomultiplier (SiPM), both offering different advantages in sensitivity and response time. The incoming signals are processed through a Transimpedance Amplifier (TIA) and a Low Noise Amplifier (LNA) to ensure minimal noise and maximum signal clarity.

Calibration and Error Correction

To ensure accuracy, the system includes calibration routines. Signal characterization is used to understand the exact timing of signal arrival, and corrections are made for potential errors like "walking error," where signal strength variations can lead to timing inaccuracies.

Optics

The optics were designed with a focus on minimizing divergence and ensuring a tight field of view. This required precise alignment of the laser and receiver, a task made challenging by the system's modular design and the tight tolerances required for accurate measurement.

Mechanics and Motor Control

The system's mechanics include a gimbal with stepper motors, allowing for precise control of the laser's orientation. Backlash in the gears was corrected through software, ensuring accurate position tracking.

FPGA and Signal Processing

The FPGA is tasked with time-to-digital conversion, a critical function for measuring the time between the laser pulse emission and the signal return. This involves complex signal processing algorithms, implemented in FPGA logic and controlled via a custom Python framework.

Results and Future Work

The project successfully produced a 3D point cloud of a room, demonstrating the system's capability to perform precise, real-time scanning. However, there are still areas for improvement, including a higher peak power on the laser and enhancements to the optical alignment process.

Conclusion

This project exemplifies the power of combining educational goals with real-world engineering challenges. The resulting LiDAR system, while not a commercial product, serves as a robust platform for further research and development in optical communication, signal processing, and embedded systems design.

Whether for educational purposes or as a stepping stone to more advanced projects, the lessons learned here are invaluable.