Final project : management

Thanks to the week assignments preceding this project development, I already have a few working prototypes for some of the components. This lets me take a break before starting the project, and answer a few questions to improve my planning.

What tasks have been completed, and what tasks remain?

I already have working prototypes for:

  • Stepper motor control: during the Mechanical design and machine design week, I presented StepNode, a new type of distributed controller for stepper motors. I intend to repurpose those controllers to be used in this machine. The only difference is the absence of of a USB cable to the PC, I decided that all UART signals will come from the ESP32 itself.
  • ESP32-cam module wifi server: the ESP32-cam is a great module that offers wifi and an OV2640 camera. I already tested the web server provided by Espressif, and can confirm that the image quality will be enough for this project.

What remains to be done:

  • Structure: all wooden parts need to be CNC’d, especially the main arc motion. This is the base for motion system I presented during the Applications and implications week.
  • Additional electronics:: I want analog control for the LED ring, and I think I can simply add one dedicated node to my StepNode chain. I also need to interface this chain with the ESP32, and this can be done through a simplified version of the USBNode, without the USB port and SAMD11C.
  • 3D printing: the carriage holding the ESP32 needs to be carefully designed with bearings and a stepper motor rolling on a rake. The simplest option is to design a 3D printed part holding everything together, and I feel that several iterations will be needed to get the right amount of friction. Additionally, the gear on the stepper is very small and needs to be 3D printed with an SLA printer.
  • Software: I need to design a web server model that can handle requests from the PC such as moving to an angle (theta, phi), adjust the LED and take a picture.

What has worked? What hasn’t?

At this stage, the StepNode distributed control for the steppers was successful, and the ESP32 web server can provide good quality images with simple http requests.

However, mechanical tests showed the arc motion system is difficult to achieve. The main issue is the shape of the rake and the gear; it’s difficult to get a good fit without too much friction. In multiple trials, the motor started skipping because of the friction. I need to optimize this, as I don’t have time to buy a stronger stepper motor for that purpose.

What questions need to be resolved?

The main questions are:

  • Can I achieve a reliable arc motion system without skipping step?
  • Is the angular resolution of the machine high enough, and is it repeatable?
  • Can I get good quality 3D reconstruction from photogrammetry software from images taken with an OV2640 sensor?
  • Is the LED lighting sufficient, and should the background pixels be detected and marked in order to get successful scans?

What will happen when?

To plan ahead each task in its own context, an efficient tool is a Gantt chart. It shows you the timeline of the project, and the dependencies of each task. For instance, tasks can be worked on in parallel if there is no dependency, allowing a smoother workflow without interruption.

Having just completed the Mechanical design and machine design week, I have around 1 month left to complete the project. I start working on 3rd of June, and intend to present my project on the 1st of July. Here is a simplified Gantt chart of those 4 weeks to come:

While I can’t guarantee I will be able to follow this schedule perfectly, it helps me organize each construction step and milestone. Notice that the CAD comes first, and that I allocate a long time slot for the electronics, as it can be made independently of the structural components of the machine.

I plan to have two main CNC sessions: one for the arc motion system, and another for the platform. After the first session, I need to 3D print the carriage holding the camera and test the arc motion system. After completing the platform, I need a few 3D printed parts that will hold everything together.

For the last week, I plan to work on the software and video/photo editing for the final presentation.

What have you learned?

At the completion of this project, I learned:

  • Designing my own distributed stepper motor control system, including the SMD design of every node.
  • Making large functional wooden parts with the CNC. The arc motion system was especially tricky to design, and I am glad every part fell nicely into place.
  • Web server design, including http requests and the client side with Python’s requests library.
  • Shooting an image sequence automatically and reconstructing objects in 3D using photogrammetry.


You can read about the development of the project on the dedicated page.