Luis Díaz
Fablab Leon
Francisco Gonzalez-Quintial
Fablab Deusto
Borja Lanza
Fablab Leon
Jose Real
Fablab UE
Victoria Retana
Fablab Madrid CEU
María Santisteban
Fablab Madrid CEU
Marta Verde
Fablab UE

Mc Nulty Machine


This week assignment was about making a machine, including the end effector. First, we had to build the passive parts and operate the machine manually, and then, we had to automate it.

Four different FabLabs decided to get together in Leon in order for us to do the MTM machine. The group members were:

FabLab León: (Borja J. Lanza, Luis Díaz)

FabLab Deusto: (Francisco González-Quintial)

FabLab UE: (Jose Real Cambas, Marta Verde)

FabLab Madrid-CEU: (María Victoria Retana Díaz, María Santisteban)

For the machine design we thought about all the different possibilities that we had in terms of building the machine and once we had all the documentation, we decided to build a hotwire cutting machine as it is very useful to have in a FabLab.

We based our work on the information given by Nadya. We also studied how different hotwire cutting machines built last year worked, such as the one made by FabLab Puebla and FabLab Singapore for the purpose of making our very own vision of the machine gathering the best of each one.

Our machine is designed to work with three axes of motion, one of which can also rotate.

It is also designed to be portable and it can be kept in a suitcase.

We divided the work in two parts:

The construction and assembly of the different parts of the machine made by Francisco González-Quintial, Jose Real Cambas, María Victoria Retana and María Santisteban.

The programming and electronics made by Luis Diaz, Borja J. Lanza and Marta Verde.

Luis Diaz

MachineBuilding_v4 from Marta Verde on Vimeo.

Dividing the work

The group was very well balanced with 4 students with architecture skills that focus in designing and building the structure the machine, and other 2 more students and me with the goal to make the electronics work and program the machine.

The Idea

As we focused on the machines that were done last year at Fablab Puebla, Fablab Amsterdam, Fablab Singapore, and Fablab Rome we made a list with the main issues that we thought were important in order to improve our machine or at least try:

Design a hot wire support which strength could be regulated/modified easily.
Design a stronger frame.
Detailed instructions for building and replicating the machine.
Grasshopper module for importing and previewing the final cut.
Open Sound Remote System.
Finish in two days of work.

You can see our project slide.

Designing the Machine

As we wanted our machine to be portable one of the main concerns was how we were going to keep our machine in a suitcase and we came to the conclusion that each module should be a separate part of our final model hooked together in an easy, quick and simple way. We designed a suitcase that it is a suitcase but also it is the base for the machine, the supports looks like folders and inside the suitcase are the modules, one of them it doesn´t have a motor inside so we can keep the boards and the cables inside this one.

So we did some sketches of how we wanted our suitcase to be and the different parts that conform our machine in order to reach the desired model: we wanted our machine to be practical.

Reinforcement of the structural frame.

It was a minor problem. The frame was easily strengthen adding a horizontal beam, so the frame obtained is really strong and quite static. This modification changes the original structural concept from two cantilever beams to a rigid frame built with two pillars and one horizontal beam. Besides the horizontal beam could be used to get inside the electronically control of the machine and the place to put it on the power source. In order to improve the structural behavior of the machine we decided to use 3 mm MDF board instead of cardboard. Here the main problem was the maximum dimension of the laser cutting machine available which allowed only a dimension cutting surface of 600.300 mm. We reviewed the original Puebla design files.

The modules

Modularity of the machine was another address and in this way the concept of the design focused on using equal dimension modules. So the same prism volume is used to solve the Z-axis ( pillars ) the horizontal one and the beam as well.

Connection pieces

We design the connection piece between the base and the respective modules of the vertical axes, that is to say the supports to the modules This piece would support the different structural efforts. Therefore this part would be anchored in some way to the base so that it was not necessary to assemble the piece whenever we wanted to use our machine.

It was designed from the beginning to be printed in PLA with the makerbot replicator 2 but the printer started giving problems: the printing time lasted too long, so we did a test and in the future we will change the supports because it will be more rigid. We did the test using 0,3 h in order to know if the piece worked but for the final one we will use 0,2h 220º and without raft nor supports. The piece also has a hole in the back for the motor cables. We had to redesign it in order to be printed with the laser cut machine.

Connection piece

Piezaverdebuena by msantisteban on Sketchfab

Clamp design

The clamp design had several times, but came to the conclusion that "less is more" and made as simple as possible: a screw embedded in a parallelepiped, two modified nuts and two washers make up the final piece. In addition, to hold the alligator a simple specific piece attached to the inner box platform was created. It was printed all in Makerbot Replicator 2 pistachio, resulting in a simple and functional part. In the future it will add a spring to move the boxes the Z axis separately.

Rotatory piece

Baserot by msantisteban on Sketchfab

Wire Fastening

Fastening by msantisteban on Sketchfab

The screw

Screw by msantisteban on Sketchfab

Operation Machine System

Foldable and Portable

We also wanted the machine to be foldable, so we designed a suitcase that it is a suitcase but also it is the base to the machine, the supports looks like folders and inside the suitcase are the modules, one of them it doesn´t have a motor inside so we can keep the boards and the cables inside this one. We didn't have enough time to finish the suitcase so I draw the 3d modelling in Autocad to show how it works. As we did't have time to finish it in Leon Maria and Victoria decided to finish it in Madrid and later send it to Leon.

Final design

We have used a parametric model in order to get a better vision about the whole model and its operating. Besides we are trying to trace a parametric model of the surface that the machine cuts, in this way we can relate the CAD model and the operating computing system of the machine through such a graphic interface. (WIP)

Closed Suitcase

Closed Suitcase by msantisteban on Sketchfab

Opened Suitcase

Opened Suitcase by msantisteban on Sketchfab

Assembled Machine

Assembled Machine by msantisteban on Sketchfab

Detailed intsructions for building and replicating

How to make a hot wire machine

Programming the Machine

Installing Python and PyGestalt

We installed all the Python and Gestalt libraries needed, in the macbook the Fablab owns. Some of this work was done in the previous week in the assignment of programming the Attiny44 boards. Everything related of Python were installed and updated, like library Pyserial, and Gestalt python libraries.

We were aimed to use the last year´s machine kits, so first we tried to made that Leonidas painting machine work. The wiring was quite a mess for identify the connections, because they didn´t follow a proper color code. We studied how the Gestalt modules work to start the process. We have never used a regulable power supply before, so at the first try we weren´t feeding the modules properly.

We checked that everything was fine. The most important the Gestalt node boards that are the heart of this assignment. The ISP cable was acknowledged by the computer, and start trying to communicate with the boards. We edited the make file to start trying to upload code to them, with the FabUsbTiny we got the info of the boards, but just connecting the 5v of the usb cable. We also start learning about the variable power source we have in the fab, as the motors need 12v to move. We connect, the gestalt nodes together and start trying to run the examples and how the connections works. We didn't get any results. After some troubleshooting, We prefered to wait for next day as Luis Diaz that has more skills in electronics that me and Marta arrive and helps to solve it.

Programming the Gestalt Nodes

When we first run from Pygestalt examples, we were able to connect to serial but then the LEDs wont start to blink and ask for identification on the bus.

We wanted to discard a problem with the firmware and practise with programming firmware into the avr from different OSs. So we had two firmwares available 086­005a.hex and 086­ 005a_boot.hex and we were seeing that different labs used different hexes selected as the “working ones”. And after a while having problems also after flashing (rewriting fuses then burning the firm... test, nothing) I decided to disconnect everything and start fresh re- checking connections, power supply and firmwares.

That’s when we discovered a cable on the wrong position that gave us hope. So we plugged everything right, flashed all four (by that time labeled) nodes and started single testing each one of them. To our surprise two of them (#1 and #4) worked but the other two didn’t and showed a message on the console “RUNNING IN BOOTLOADER MODE” while the working ones showed “NOW RUNNING IN APPLICATION MODE”. So we reflashed boards #2 and #3 with 086­005a_boot.hex, repeated the process and everything worked. We run the for every board and motor and discovered that one of the motors was vibrating when stopped, so we discarded that the board was the fault, and changed the motor as we only needed 3 motors with an axis.

The next step was to get all four motors working and then check on the power consumption and see what power supply was needed once we install a dedicated power supply. The consumption will depend on the load, weight to move and speed. At speed 2, and without any foam on the plate, the consumption was around 0.88 A which seems very low and gives us room to use a 5A supply for all motors and nichrome wire.

The Code

Now the electronics were set up, we focused on getting an simple code to be able to test the cutting before leaving León. There were some documentation foam cutting machines from last year that we’ve been following during the weekend. But we wanted to start in the middle from scratch to a fully working version for a very similar machine. So we picked example from pygestalt htmaa machine example. Since we can still work on the code and improve it, and even for distributed programming while we were there, we set up a git repo at gitlab, but not git.fabacademy, but Later we realized that we have to have it on the fabacademy archive.

Remote Control

We have created a Graphical User Interface in Python with the help of the wxpython library. This GUI allow users to import files to view coordinates in terminal. before sending to the machine for cutting. With the Grasshopper module made by Paco Gonzalez, you can preview a cut and export in a cvs file that can be imported inside the GUI, all in a simple and graphical way. Also import and scale dat files of airfoil models. You can plot a preview inside the GUI. Adjust Y and Z axis from inside the GUI. Control the GUI from a remote tablet or smartphone with OSC commands, (You can start the cut and adjust the jog)