PCB ‐ Design Decisions & Revisions - RoboFEIatWork/electronics GitHub Wiki
🔄 PCB - Design Decisions & Revisions
During the development and assembly of the main PCB, several design decisions had to be reconsidered based on real-world testing, hardware limitations, and time constraints. This section documents the unused circuits, lessons learned, and improvements planned for future versions.
❌ Unused or Removed Circuits
By inspecting the schematic, it’s possible to identify multiple circuits that were ultimately not used or later removed during assembly.
🛠️ Operational Amplifier Circuit
Originally, we included op-amps to amplify the PWM signals from the ESP32, based on the assumption that the motor drivers required a 0–5V signal.
However, after further research and testing, we found that:
- The driver accepts both 0–3.3V and 0–5V PWM signals.
- The ESP32 outputs PWM at 3.3V by default.
- The op-amp circuit introduced instability and added unnecessary complexity.
✅ Conclusion: The op-amp stage was removed, and the drivers now receive PWM directly from the ESP32 (3.3V logic).
⚙️ Modular Approach over Full Integration
The original design aimed to fully embed all modules (step-down converters, communication interfaces, LIDAR control, etc.) into the PCB to save space and reduce wiring.
However, we found this approach was:
- Hard to debug, due to lack of modularity
- Difficult to assemble, given our equipment limitations
- Unreliable, since embedded modules introduced more soldering points and risk of failure
✅ Conclusion: Step-down converters and other modules remain external for easier maintenance and testing.
🔌 LIDAR Integration
Initially, the LIDAR was supposed to be powered and read through the PCB via ESP32. However, this proved to be:
- Unstable due to power consumption
- Complex to implement serial communication through ESP32 in real time
✅ Conclusion: The LIDAR is now connected directly to the computer via USB, simplifying power and communication.
💡 LED Control
The PCB includes circuits for LED control, but they are currently not in use, as they are not essential for the robot’s operation.
⚠️ Planned: To implement in the future once critical systems are stable.
🔋 Second Battery Removal
Originally, we planned a second battery dedicated to powering the ESP32. However, given that the ESP32s:
- Are mounted externally via modules,
- Require USB connection for ROS2 communication,
It became redundant to power them separately.
✅ Conclusion: The ESP32s are now powered directly via USB from the computer.
🧩 USB Hub Implementation
As more devices were connected directly to the PC (two ESP32s, LIDAR, cameras), we faced a USB port limitation (only 3 available). To solve this:
- We added an externally powered USB hub
- Powered it using a 24V → 12V step-down converter on the robot
✅ Result: Stable USB connections without overloading the PC ports.
🧠 Future Improvements
🔄 Short-Term (Next Iteration)
- Redesign the PCB to remove unused circuits
- Optimize layout to reduce size and improve airflow
- Improve connector interface for the motor drivers (current setup has contact reliability issues)
🚀 Long-Term Vision
- Replace ESP32 with a custom FPGA to centralize control and feedback
- Integrate step-down converters and communication transceivers in a more robust and compact layout
- Possibly implement plug-and-play expansion headers for modular peripherals
📘 All design decisions are documented here to help other teams avoid similar issues and accelerate development.