Fab Lab Vestmannaeyjar Iceland

Mechanical design-group assignment

Fab Lab Vestmannaeyjar Iceland students


Summary for Machine Design Weeks

Our focus for this assignment was to reinstate and upgrade one of our older milling machine projects. It had been laying there for a long time and nobody was aware of what state it was in. Our job was to bring it back to useful status, and to add a 4th axis so that we can produce round parts such as shaft couplers.

We have four students in our Fab Academy class but of course we had different timetables because of exam period etc. so the tasks were divided like this:

  • Modelling and printing the chuck - Bára and Bergþóra
  • Debugging the current TinyG and ChilliPeppr setup - Bergþóra and Carl
  • Designing and machining new limit switches - Birita
  • Manual control of servo motors - Everyone!🙌
  • Trying to send G-code to the TinyG - Bára and Carl


  • You can find our design files in this *.zip: Design Files

    Where we got to: We managed to send G-code (*.nc files) to the machine and have it air-cutting. We also had manual jog control of the A-axis, however we weren´t able to test G-code with it because Fusion 360 didn´t support exporting it even though we could create a toolpath.




    The G-code that was generated gave us the following error:

    Information: Configuration: TinyG
    Information: Vendor: Synthetos
    Information: Posting intermediate data to 'C:\Users\Notandi\AppData\Local\Fusion 360 CAM\nc\test-spiral-4-ax.nc'
    Error: Failed to post process. See below for details.
    ...
    Code page changed to '1252 (ANSI - Latin I)'
    Start time: Wednesday, May 16, 2018 12:08:01 PM
    Code page changed to '20127 (US-ASCII)'
    Post processor engine: 4.2.1 41887
    Configuration path: C:\Users\Notandi\AppData\Local\Autodesk\webdeploy\production\8b78d7040dfea4f390bf2e76e5fd15ae50511bb0\Applications\CAM360\Data\Posts\tinyg.cps
    Include paths: C:\Users\Notandi\AppData\Local\Autodesk\webdeploy\production\8b78d7040dfea4f390bf2e76e5fd15ae50511bb0\Applications\CAM360\Data\Posts
    Configuration modification date: Saturday, April 28, 2018 11:54:04 PM
    Output path: C:\Users\Notandi\AppData\Local\Fusion 360 CAM\nc\test-spiral-4-ax.nc
    Checksum of intermediate NC data: 1cb055b55c7dc47f6c012873fd83e338
    Checksum of configuration: b851455e2449b00a4c19e1d27de34aa7
    Vendor url: https://www.synthetos.com
    Legal: Copyright (C) 2012-2016 by Autodesk, Inc.
    Generated by: Fusion 360 CAM 2.0.4116
    ...
    Error: Using clearance height for retracts is only possible for 3 axis toolpathes.
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    Error: Failed to invoke 'onOpen' in the post configuration.
    Error: Failed to invoke function 'onOpen'.
    Error: Failed to execute configuration.
    Stop time: Wednesday, May 16, 2018 12:08:01 PM
    Post processing failed.

    Mechanical design - Group assignment


    Mechanical design

    The assignment for the 16th week was a group assignment to design a machine (that includes mechanism, actuation and automation), build the mechanical parts and operate it manually.

    In our lab in Vestmannaeyjar we had a cnc milling machine that some guys made a couple of years ago and for this weeks assignment we wanted to add an attatchment to that to change it into a lathe. The first thing we needed to do was to figure out how the milling machine worked and get that to work.

    The milling machine has 3 stepper motors connected to a TinyG v8, one for each axis and a dc motor used to turn the spindle. We connected the TinyG to a power supply and to a computer with a USB B. Then we used Universal G-code to controll the milling machine. The dc motor wasn't connected to the TinyG since that is only for the servo motors so we connected it to a 12v power supply to get that running.

    To hold the things we want to mill we are going to make a 4 jaw chuck. To understand the mechanisms of the chuck we found a model of it online and printed that out.

    Then we started making our own self centering 4 jaw chuck in Fusion 360. The top and the middle part both have the same 4 jaw slot design but it is mirrored on one part (the curve of the slots is the same as the curve of the outsides edges of the part). When you put those two parts together you can align it so that the end of each slot on the middle part is located directly beneath the end of the slot on the top part. That is where the lugs go, and if you rotate it the lugs move to the center of the part which tighthens the grip on the part we're milling. The bottom part and the middle part fit together to make it easier to turn it. On the top of the bottom part there is a guide for the lugs. The outside of the bottom and the top part has a knurling.

    Here is some of the notes we made while designing the chuck.

    Here is the top part:

    Here is the middle part:

    Here is the bottom part:

    We had to do a bunch of prints of each part, both because we were changing the design between prints and also because we had to play around with the settings of the 3D Printer

    Then we created a coupler for the motor.

    Then we started working on the limit switches for the milling machine so that it would know where to stop and not crash at the end of the axes. We found information on the placement of the limit switches and more here

    Machine design - Group assignment


    Machine design

    The assignment for this week was also a group assignment. It was to actuate and automate our machine.

    When all the parts for the chuck were ready we assembled it and attached it to the motor with the coupler we made.

    To get the motor to turn we followed the instructions on The TinyG Wiki . We started with connecting the motor to the TinyG making sure to have the wires that are connected to the same coil connected to the same winding pair (A1-A2 and B1-B2). You can often see what wires are pairs from the colours of the wires. Green connects to winding A1, Black to A2, Red to B1 and Blue to B2. But to make sure they are correctly connected or if the wires are different colours you can use a multimeter to see which ones are pairs.

    When we had connected the motor we connected it to a 12 volt power supply, negative to GND and postitive to +Vmot and to a computer with a USB B. Then we downloaded the FTDI Drivers and Coolterm There are also instruction on how to use Coolterm on the TinyG Wiki Page but these are the settings for that.

    To see if we got any response from the TinyG we started by pressing the space bar, enter and then we wrote g1 f400 x50. In that command g1 stands for the speed of the movement, f400 stands for the the speed of the feed rate (how fast the command is sent) and x50 for the axis (x,y,z,a, etc) and the position of the spindle on the axis. We tried changing the last part of the command to see if we could get the other axes to move. To get our new motor to move we just had to write a50 instead of x50.

    When we had gotten the Coolterm to work we wanted to use Chilipeppr. First we needed to connect to the serial port. There are a few ways you can use Chilipeppr, you can control it manually with the Jog control buttons, import g code, png images, svg files and more.