mechanical design

For the machine assignment we decided to make a PCB milling machine. Our first approach was to study and understanding others “DIY PCB machines”. After understanding the concept behind the machine and learn how we could make it possible we began to sketch ideas.

Our fablab has the Roland SRM-20, this machine uses the platform as Y axis and the drill for the Z and  X  axis. We studied also some 3D printers where the extruder moves in X, Y and Z axis.  With those examples in mind we agreed that we would leave give the drill only the Z axis and make a platform for both X and Y axis.

Our approach was inspired by Ilan E. Moyer’s CORE XY project. CoreXY's layout put the motors, the largest source of inertia on a DIY-grade stage, in a stationary position. This permits rapid accelerations with a simple approach.

diagrams taken from CORE XY website

For the MTM presentation we would design only the CORE- XY platform. Having a Core XY platform would allow us to evolve it in many MTM such as the PCB miller, drawing core xy or even core xy 3D printer.

Another feature of our MTM is that we will use recycling parts from other obsolete machines here at the fablab to save costs. We had to identify which elements were useful and how to make them work. For example we have a motor from a broken 3D printer... to make it useful we had to find out which model of motor was and how it was built to make it operable.

testing a recycled parts

3D printed parts

All of our team would design and model every part of the CORE XY platform in order to understand 3D printed joints. To maximize our work we used Fusion 360 and made a collaborative file.

First prototype of the CORE XY machine

After a try and error calibration phase we started to evolve every joint of our MTM.

assembly

mechanical design result

We forgot to double check each axis belt circulation. We took from granted  the initial position of all pulleys without taking in mind that every 3D printed joint changed during the design process.  We had a small error so instead of redoing all we added an additional pulley point to fix it (for this version).

.STL FILES

machine design

In first instance we planned to use an Arduino Mega 2560 + RAMPS + CoreXY to control the machine's motion, but this setup needs some tunning before implementation:


First, the GRBL firmware supports officially only Arduino UNO, although you can modify the firmware to the Mega 2560 board.


Second, we needed to setup the GRBL firmware to support the CoreXY motion system (opposed to the independant axis motion supported by the official firmware). This option is actually available in the official firmware, although it has some considerations such as that the step size should be the same in both motors used (basically they have to be the same motors). This point was the easy one.


Third, the modified firmware (to work with the Mega 2560 in the official repo) isn't suited to use RAMPS, so we had to look for some RAMPS + Mega 2560 project with a GRBL firmware to find the proper Pin Mapping setup (the 2560 Pin Mapping doesn't consider any RAMPS). We actually found that project, but didn't got into the pin mapping modification stage.


On the other hand, we had to deal with the firmware compilation process: the official repo have its corresponding Makefile to setup all the modifications mentioned above, and we actually got to compile them with no issues BUT we didn't got the Arduino Mega 2560 to answer to the GRBL commands and, in this "debugging" process, we burnt 1 driver, 2 RAMPS boards and 1 Arduino Mega 2560 ...


In short, our problem was that we were compiling the firmware straight from the source files (it seemed that all the necessary parts were there) but this was what was producing this no-communication misbehavior. We skipped the instructions on how to compile a modified firmware using the Arduino IDE (because we wanted to compile by hand!). After using this method we got the firmware to work properly, but at this point we were with no Arduino Mega nor RAMPS, so we finally used an Arduino UNO with other drivers (show on the images).

GRBL Github

.HEX file

.tap file

Fab lab Santiago - Fab Academy 2016