Skip to content

My Final Project

This page tracks the development of my final project idea as it evolves through the Fab Academy programme.

Weekly Progress

Week 1

The Week 1 assignment was to plan and sketch a potential final project.

Final Project Image

Autonomous pen plotter that draws line drawings on an unlimited surface with a pen of your choice. The robot knows its own position by scanning the environment with its camera eyes, so it can draw very precisely. As a hobby sewist, I want to use this little robot to copy sewing patterns, or as a weekend sumi-e painter, I want to copy my draft onto a very large paper with a water-erasable pen.

Week 2

The Week 2 assignment was to model a possible final project in 3D CAD.

After some research, I selected two 28BYJ-48 stepping motors. For my robot camera eyes, I picked the OV2640 module as it seems to go well with ESP32 microcontrollers. I skipped the servo and microcontroller for the time being.

3D CAD of my final project

Week 6

The Week 6 assignment was to design an electronics board.

Our instructor Tamiya-san recommended the dual H-bridge IC DRV8421 for motor control. The microcontroller in the lab inventory is the XIAO RP2040, though for the final project I may switch to another board in the XIAO series depending on the processing requirements.

The next step is to refine the board dimensions to fit within the CAD model of the robot body.

Electronics Design

Week 7

Suddenly it occurred to me that an autonomous portrait drawing robot is also possible.

Another idea Portrait drawing robot that recognizes a human face with its camera eyes, converts the image to line-drawing paths with its microcontroller, and draws portraits with its robot arms.

Reference SCARA draw bot projects

Week 8

On week 8, I milled the board the board

Week 10

On Week 10, my board with two dual H-bridge ICs successfully drove two stepping motors and a servo.

Two stepper motors and servo running simultaneously

Week 11

I replaced the micro controller on board with XIAO ESP32S3 Sense and developed a system to capture images with the OV3660 camera sensor and serve them over a local Wi-Fi network.

Week 11 still shot

With advice from Tamiya-san, I also researched the face recognition system provided by Seeed SenseCraft with my board and XIAO ESP32S3 Sense and OV3660. This will be one of the key technologies to realize the portrait drawing by the robot.

Face recognition

Week 12

I decided to go with the portrait-drawing robot with SCARA arms and camera eyes. Here is my plan.

System Diagram

The portrait drawing robot integrates camera vision, on-device AI, path planning, and mechanical actuation into a single pipeline.

I need to find out if the XIAO can handle all the procedure on-device, or if it needs a connection to a remote computer.

graph TD
    A["OV3660 Camera"] --> C

    subgraph XIAO["XIAO ESP32S3 Sense"]
        C["Face Detection\n(SenseCraft AI)"] --> D["Crop & Grayscale\nFace Region"]
        D --> E["Edge Detection\n& Vectorization"]
        E --> F["Line Path\nGeneration"]
        F --> G["SCARA Inverse\nKinematics"]
    end

    G --> H["Three-Servo PCB"]
    H --> S1["Servo 1\nElbow one"]
    H --> S2["Servo 2\nElbow two"]
    H --> S3["Servo 3\nPen Lift"]
    S1 & S2 & S3 --> ARM["SCARA Arm"]
    ARM --> OUT["Portrait on Paper"]

    style XIAO fill:none,stroke:#333,stroke-width:1px

Tasks

# Task Description
1 PCB design Design a three-servo driver board (XIAO ESP32S3 Sense + 3× servo headers + power)
2 PCB fabrication Mill and solder the three-servo board
3 SCARA CAD Design robot body and arms in Fusion 360; export for 3D print or laser cut
4 Mechanical assembly Assemble SCARA arm with three servos and pen mount
5 Face recognition Develop / validate face detection pipeline on XIAO ESP32S3 Sense with OV3660 using SenseCraft
6 Image-to-path conversion Process detected face image: edge detection → vector paths → ordered stroke list
7 Inverse kinematics Implement SCARA IK to convert (x, y) path coordinates to servo angles
8 Integration Connect vision pipeline → IK → servo control end-to-end
9 Calibration & tuning Tune drawing speed, pen pressure, and path quality
10 Video & presentation Record 1-minute demo video; prepare final presentation slides

Schedule

Week Dates Goal
Week 13 Apr 14 – Apr 18 Three-servo PCB design
Week 14 Apr 21 – Apr 25 PCB fabrication (mill & solder); SCARA CAD
Week 15 Apr 28 – May 2 Mechanical assembly; servo wiring & basic motion test
Week 16 May 6 System integration and MicroPython portrait pipeline
Week 17 May 12 – May 16 Image-to-path conversion (edge detection & vectorization)
Week 18 May 19 – May 23 SCARA inverse kinematics & servo control
Week 19 May 26 – May 30 Full integration & calibration
Week 20 Jun 1 – Jun 7 1-minute video and presentation preparation
Final Jun 8 Final project presentation

Week 15

On Week 15, I built the “brain” of the portrait robot: an app running on the XIAO ESP32S3 Sense that captures an image with the OV3660 camera, detects the face on-device using esp-dl’s HumanFaceDetect model, and turns it into a list of portrait strokes. The XIAO also acts as the web server, so I can see the live camera, the detected face box, and the generated portrait path on a browser dashboard over Wi-Fi — no PC in the loop. This confirmed that the XIAO can handle the vision and path-generation parts of the pipeline on-device. Next I will design a dedicated serial servo board and connect the strokes to the SCARA arm.

Week 15 still shot

See Week 15 for details.

Week 16

On Week 16, I documented the system integration plan for the final project and made an important simplification. Instead of continuing with a large ESP-IDF/C++ prototype that was difficult for me to understand and modify, I moved the current development path to a MicroPython version on the XIAO ESP32S3 Sense.

The integrated plan now uses the XIAO, original OV3660 camera, ST7735S TFT, GPIO2 freeze button, a MicroPython symbolic portrait pipeline, a 65 mm fivebar drawing path, and FeeTech SCS0009 serial bus servos. I also decided that SD card storage is optional/debug-only because TFT + SD on shared SPI was unstable, and that the URT-1 servo board is the first safe actuator interface before attempting a smaller custom board.

The first complete version for the 8 June 2026 presentation will focus on this core loop:

camera preview
-> button freeze
-> symbolic portrait path
-> fivebar conversion
-> serial servo drawing

Week 16 system diagram

See Week 16 for the full system integration documentation.

Week17

On week 17 I proceed to make 5 bar link mechanism work. And made the new PCB design to drive three servos via FE-URT-1.