Week 9

 Mechanical Design & Machine Design

Final Project


Make a machine, including the end effector, build the passive parts and operate it manually.

Fablab CEPT Group Page


Well For Machine Design We Thought on Following Two Ideas


1) first ideas was to replicate the 'machine' known as TARS / CASE as seen in the hollywood movie Interstellar.


2) second ideas was to make A XYZ Machine Which could be basically a 3D printer with some mode.


Me been having an interest in Light Painting As a Hobby Decided to Play with it.


Thus We came Up With This Idea Of Making a Machine Which will do Light Painting .


The Project Was Named


 by Siddharth Arya


The Project is Documented in on The LAB  Website

Project Explanation

  • So The Way this work is.
  • We Mount an led at Center of the Head of A XY system and Draw a Shape.
  • To Draw the Light Turns on.
  • Next the light goes one step in Z axis and the shape is drawn again.

How Light Painting Works

  • so light painting is a photo taken during A longer Duration
  • The shutter of the Camera Will stay open for longer duration.
  • Every movement of light during this duration is traced as a path as multiple frame merges to form one single image



In  out Case what we needed to do is Slice a 3D Object into its outline for each layer and then draw each layer


so What we end up is like a xy plotter which Moves to Z direction after every drawing until all frames are completed.

My contributions for machine design

Project Breakdown

So To make this project happen we following are the Task that needed to be done

1) the Mechanical Design of the XY Z system

2) Figuring out how to Generate Gcode what will Draw in XY and then move to Z

( we waned only the outline of the shape and only a single path.)

3) The Electronics and Programming this this the part I was suppose to Take care of Individually considering which was a complex Task Then i earlier thought.

Generating Gcode

First and Formost i did was to understand what is Gcode and how it works

Me alone With Arpi Maheshwari were exploring Options to do so using Rhino Software.


We got The Plugin called Slikworm which this this task very well.


Next i opened following site http://nraynaud.github.io/webgcode/

and Explored what each line of Gcode do and what is the Command What can be incuded in Gcode that will make the LED on and Off on Before Moving To Z axis


Understanding Work flow.

Firmware :

We chose to use RAMPS Shield  V1.4 along with Arduino Mega.

Following was our Decision Flow with selection of Hardware and Software Architecture:


Initially we wanted to use Grbl

1) Identifying Hardware we can Make or We have at lab already


Decision:  As we had RAMPS v1.4 Shield available easily at a shop, we decide to first try it and start experimenting as soon as possible.


Firmware: As we Understand Firmware is the Mediator of the Control Circuit for any such project. Firmware takes the G-Code instruction in Text form Via Serial Communication and control the Stepper Motors  accordingly.


Attached is the list of existing options with firmware:



On doing a quick search online we realize that following Three

are the most famous and feature Rich  firmware.



Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. Does not control extruders.


Grbl was our first choice as it fits our requirements. We loaded it on the RAMPs



It's a nearly complete rewrite (80%) of the well known Sprinter firmware. While rewriting it to simplify it for future improvements and to improve the speed, I added tons of remarks and documentation, helping everyone, who wants to change it a bit.



Marlin is firmware for RepRap single-processor electronics, supporting RAMPS, RAMBo, Ultimaker, BQ, and several other Arduino-based 3D printers. It supports printing over USB or from SD cards with folders, and uses lookahead trajectory planning. Marlin is licensed under the GNU GPL v3 or later. It is based on Sprinter firmware, licensed under GPL v2 or later. The most active developers of Marlin are currently (January 2016) thinkyhead, AnHardt, ErikZalm, daid, boelle, Wackerbarth, bkubicek, and Wurstnase, with many others contributing patches.



We Chose the firmware first and then chose the Host software (Gcode Sender) accordingly.




Serial Communication:

Serial communication is used for all long-haul communication and most computer networks, where the cost of cable and synchronization difficulties make parallel communication impractical. Serial computer buses are becoming more common even at shorter distances, as improved signal integrity and transmission speeds in newer serial technologies have begun to outweigh the parallel bus's advantage of simplicity (no need for serializer and deserializer, or SerDes) and to outstrip its disadvantages (clock skew, interconnect density). The migration from PCI to PCI Express is an example.


Baud Rate:

The baud rate is the rate at which information is transferred in a communication channel. In the serial port context, "9600 baud" means that the serial port is capable of transferring a maximum of 9600 bits per second.


 Relevant terminology for this week project:

Fixing A Mechanical Issue.

In the picture above we are trying to solve the Problem with the belt and the pulley  .


The Groves of the Gear Were not getting properly aligned with the belt this was because the belt was very stiff then the sample we planed for.


Solution was to Change the Diameter of the Pulley and the Grove Width as well.




Following is the summary of the issues we faced during this project:


1. The threaded screw mechanism that we had chosen did not give us desired speed. But we required the LED to move very quickly for  Light printing , so we decided to combine threaded rod system with belt-pulley system so that atleast we have speed in vertical plane.


2. Motor is hanging and Gravity is causing vibration on it, hence we need to work out a better positioning of our motor.


3. We had a hard time figuring out way to get on of Control out of the Grbl board.

Future Development Opportunities

  1. Making It Lighter and stable should be the goal, we had used gravity to make the Y axis stand it should stand on its own Rail over the top.

    The Marked Green area has the Weight of the Steeper and is Vibrating This is because missing the rails on top.

  2. Giving control over the DSLR to automatically start and stop ( the DSLR stays in Bulb Mode and thus can be controlled externally )

  3. Adding RGB light control and Able to have that command connected to GCODE in Some Ways.

  4. A lighter Model can be made out of Aluminum Extruder Rails. This will allow a Bigger size of The same and we can paint in much larger area.

  5. Most Importantly Always Prototype X and Y axis first and make it working.
    This way its easy to debug.

  6. Lastly will Use Ball Bearings for all Shaft Endings.

Fablab CEPT Group Page


  1. I Understood how GCODE  commands a little bit until now I Have never explored is with so detail
  2. Learned about MTM and Multi Axis Machines
  3. Learned the Working With 3D printer Firmwares.