Final Project Documentation

Automated Perler Bead Color Sorting Machine

This is where I will start defining my final project idea and start to get used to the documentation process.

"Automated Color-Sorting Machine for Perler Beads"

Project summary

Mixed Perler beads are fed through a funnel onto a servo-driven turntable. A TCS34725 RGB sensor reads each bead; a second servo rotates a chute to sort red, green, yellow, and blue into separate bins. An ESP32 XIAO C3 runs detection firmware and optional Wi-Fi web control (machineRunning).

Presentation media

Final presentation files in the website root directory:

Final project summary slide

System integration

Mechanical (3D-printed funnel/disc + laser-cut frame) + electronics (custom KiCad PCB, XIAO ESP32-C3, TCS34725, dual servos) + firmware (color classification → servo angles → feed cycle). Documented in Electronics and Week 16.

Documentation sections

Use the pages below to document research, design, fabrication, electronics, and the bill of materials for this project.

Click any card below to open the full documentation page — Research, Design, Electronics, and Materials are all linked and ready to view.

The results of my final project

Sorting accuracy

I evaluated sorting using the protocol from Week 18: calibrate the TCS34725 with five beads per color, then run a mixed batch of 60 beads (20 each of red, green, yellow). After each run I counted correct vs. incorrect beads in every bin.

Test run Beads correct Total beads Accuracy Notes
Run 1 (indoor, stable light) 49 60 82% Red reliable; 3 green/yellow swaps
Run 2 (indoor, stable light) 47 60 78% Yellow misclassified as green/red in 4 cases
Run 3 (window light on sensor) 42 60 70% Ambient light shifted RGB readings
Average 46 60 77%

Throughput: A full 60-bead batch took about 22–26 minutes per run (~2–3 beads/minute) — slower than the 1–2 beads/second target in the Week 18 plan, mainly because Servo2 must finish rotating before the next bead is released.

What worked / what didn't

What worked:

  • ESP32-C3 communicates reliably with the TCS34725 over I²C.
  • Servo1 advances the turntable; Servo2 routes beads into separate bins.
  • Red, green, and yellow beads are sorted automatically in controlled lighting.
  • Wi-Fi web interface (machineRunning) lets me start and stop the machine from a phone.
  • 3D-printed funnel/chute and laser-cut chassis hold up after repeated test runs.

What didn't work (yet):

  • Color detection is sensitive to ambient light and sensor height — readings drift when sunlight hits the bench.
  • Similar hues (yellow vs. green, orange vs. red) are sometimes misclassified.
  • SG90 servos occasionally jitter, which can drop a bead before the chute is aligned.
  • Sorting speed is too slow for practical bulk sorting of a full mixed bag of beads.
  • Power supply is not yet optimized for running two servos under continuous load.

More detail on open questions is in Week 19.

Bill of materials & costs

Full itemized BOM with quantities, estimated prices (¥), and purchase links: Materials — Bill of Materials. Core purchased parts total approximately ¥138; with lab-supplied filament, laser-cut wood, and PCB blanks the overall project cost is about ¥150–160. A shorter cost summary is also in Week 18.

Project timeline

Planned schedule (from Week 19); dates shifted slightly as mechanical fit and firmware debugging took longer than expected.

Time Planned activities Status
May 11 – May 16 3D design, printing, and mechanical assembly Done — funnel, disc, ramp printed and fitted
May 17 – May 23 Program Servo1 & Servo2; connect ESP32 + TCS34725; test color detection Done — basic color read and servo mapping working
May 24 – May 31 Improve reliability and power supply Partial — servos stable indoors; power still needs work
June 1 – June 3 Wi-Fi monitoring and sorting algorithm optimization Done — web start/stop; RGB thresholds tuned
June 4 – June 7 Final testing and presentation materials Done — 60-bead accuracy runs + summary slide
June 8 – June 10 Summary slide and ~1 min demo video Done — presentation.png, presentation.mp4

License

This project is licensed under the MIT LicenseMIT License.

    You are free to:

  • Share — copy and redistribute the material in any medium or format
  • Adapt — remix, transform, and build upon the material Under the following terms:
  • Attribution — You must give appropriate credit, provide a link to the license, and indicate if changes were made
  • NonCommercial — You may not use the material for commercial purposes
  • ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license
Creative Commons license Creative Commons license details

    Acknowledgments

  • Fab Academy - Neil, all the instructors, and fellow students
  • Instructors - My local instructor (Matthew) and global instructor (Lambert) at FAB Academy 2026 for tutorials and feedback
  • Fellow students at FAB Chaihuo - Tim, Meia, Alison, Sunny, Jerry, Maggie, Jenny, Guannan, Dolphin, John, Henry, Ruili
  • Chaihuo Makerspace — thanks to all the Chaihuo members & managers: Chris, Yumi, Jovan, Dumpling, Dean, Aaron, Xiaotong, Bianca, Ethan, Namas

  • Instructors - My local instructor (Matthew) and global instructor (Lambert) at FAB Academy 2026 for tutorials and feedback
  • Fellow students at FAB Chaihuo - Guannan,Jenny, Emily,Tim, Meia, Alison, Sunny, Jerry, Dolphin, John, Henry, Ruili.
  • License: Creative Commons Attribution-NonCommercial. Source code and design files hosted in this GitLab repository (no external file hosting).