Group Assignment : Velichappaadu (വെളിച്ചപ്പാട്)¶
Objectives¶
- design a machine that includes mechanism+actuation+automation+application
- build the mechanical parts and operate it manually
- document the group project and your individual contribution
- actuate and automate your machine
- document the group project and your individual contribution
Presentation¶
Presentation Slide¶
Presentation Video¶
Brainstorming¶
Even though we planned for 1 day to brainstorm, we ended up spending 2 days brainstorming different concepts for a machine. We wanted it to be fun as this would make it easy to present in a 1 min video.
We thought of many ideas we thought of before finalising a design.
We finally decide on making An automatic light painting machine..
Velichappaad (വെളിച്ചപ്പാട്)¶
The idea:
“A machine to automate light painting”.
Light painting is a photographic technique where you move a light source while taking a long-exposure photograph to make beautiful light trails.
Here are some references of various light painting photographs.
To help convey and understand the idea better amongst us, we did some light painting in our lab.
Project Planning¶
After we finalized the idea we divided the tasks and duties of each member.
- Mechanical Design - Tom, Noel
- Overall Design - Akash, Namita
- Electronics- Akash, Ancy
- Fabrication- Revi
- Programming- Ashish, Noel
- Project Planning- Akash, Revi
- Ancy-Testing
- Documentation- Noel
- UI & Path planning- Ashish, Namita
- Video editing- Abin
- Assembly- All
- BOM & Component sourcing- Akash, Ancy
This is our tentative project plan:
We make daily updates regarding the tasks completed and the the agenda for the day to discuss and distribute work accordingly.
The Design¶
We wanted to paint in free space. To do so the machine would resemble an open frame where the light trails will be plotted within it. This is will help to capture the background as well. A module with the lights in it will be embedded on to the mount . These lights can be controlled via a software in which we can give inputs for making whatever design we would like to paint. A camera will be setup to capture these trails and click the photograph. We would like to design the machine in such a way that it can easily replicate in any Fablab facility.
Mechanism - Akash¶
We debated between using a polargraph design or a Core XY mechanism, but we ended up choosing the Core XY mechanism since
- It is more stable
- We have larger pool of references toreal life examples to rely on while building the machine
- We can reduce moment of inertia using this design.
Bill of Materials - Ancy¶
Mechanical Design - Akash¶
Our rough design would look something like this
We started to make CAD models of the parts of the mechanism with the task lead by Akash. The basic framework of it was created. Some minor adjustments are made according to the constraints we faced.
LED End Effector¶
PCB Design - Namita¶
We had to make a PCB for the addressable LEDs and also an eclosure for so that it can be easily taken out for recharging/any maintanence. The PCB was primarily designed to understand how the light trails could be made in different configurations.The PCB designing is lead by Namita and the enclosure locking system is being designed by Thomas and Noel.
The lights were arranged in way that we could increase the brushstroke by turning on different rows of the lights. WS2812B Leds were used for this project. We used the ESP32C6 miccrocontroller to control the LEDs through Wifi. two lithium battteries are provided after calculating the battery consumption.
The 7 WS2812B Leds are supposed to control the stroke size of the leds. It would offer 3 brush sizes to control the width of the stroke of light painting.
The LED PCB would be wirelessly controlled by another ESP32 C6 using ESP NOW
Mount Design - Noel & Tom¶
The plan was to make a removable mount to make it easy to charge via USB C connection provided by the Xiao ESP32 C6.
We had to figure out a way to attach the belts without the fasteners and be able to easily remove it without disassembling the whole body. To do this we went through a number of iterations for the lock mechanism.
To make it easily removable, we used a push-and-slide lock mechanism.
Unfortunately, at the end, the mount design had to be discarded since the uneven weight distribution and imablances in tension forces among the belts caused the LED mount to spin around its axis whenever the stepper motors moved it around.
Fabrication - Revi¶
Electronics - Ashish¶
Programming - Ashish¶
Firmware is a type of software permanently programmed into a hardware device to control its functions. Unlike general software applications that run on operating systems, firmware operates at a lower level and communicates directly with the hardware. In microcontroller-based systems, such as those used in embedded electronics or CNC machines, firmware is essential—it interprets commands, manages timing and logic, and interacts with physical components like sensors, motors, and communication interfaces.
Grbl_ESP32 is a firmware project that adapts the popular open-source Grbl CNC control software to run on the ESP32 microcontroller. It interprets G-code commands—standard instructions used in CNC machining—to generate precise step signals that drive stepper motors along the machine’s axes. In addition to core Grbl functions like motion control and parameter handling, Grbl_ESP32 leverages the ESP32’s built-in Wi-Fi and Bluetooth to enable wireless G-code transmission, machine status monitoring, and remote configuration.
We already had a CoreXY machine in our lab called the LUNA Plotter, so we used it for testing the firmware. GRBL was chosen as the firmware, and we needed to add custom commands to the G-code to control the LED—turning it ON and OFF and changing its color. Ashish had already tested the ESP-NOW communication protocol, so we also wanted to test it with this setup.
We initially tested the motor rotation through the firmware, which worked successfully. Next, we proceeded to test the CoreXY system. Using firmware, we moved the end effector in both positive and negative X and Y directions. We then focused on implementing homing with a limit switch. After some effort, we successfully tested the homing functionality. Finally, we tested the overall concept by feeding a G-code and running the machine. The resulting output is shown below.
Since high speed was required, we conducted tests on the machine using various feed rates and acceleration values. Through these trials, we determined the optimal settings: a feed rate of 12,000 mm/min, an acceleration of 6,000 mm/s² , and 160 steps/mm. The formula used to calculate the steps per millimeter is provided below.
Motor steps per revolution = 200 steps
Micro stepping factor = 32 (1/32 micro stepping)
Pulley teeth count = 20 teeth
Belt pitch (distance between teeth) = 2 mm (GT2 belt)