Machine Design

Introduction

This weeks machine design assignment follows on from the mechanical design assignment from week 9 and aims to connect the mechanical design to controlling hardware and sofware so that a working digital fabrication machine is produced. For the machine design assignemnt my role was to get the firmware and software working so that our cake icing machine could be controlled.

The finished group project for Machine design can be viewed here.

Software

My computer's OS is Windows 7 so any software installations are targeted for that OS. The Gestalt nodes are controlled via Python using the Python serial library and the Gestalt framework for control. It is not recommended to use Python version 3 or above with the Python serial libaries. The python version I installed was 2.7.12. The links below show all the denendencies for this project

After installing Python it is necesary to update the environment path variable to let windows know about the installations

The Python Gestalt framwork was extracted to a folder called pygestalt-master

Using the GitBASH terminal the directory was changed to this folder and the install command

python setup.py install

which installed the various libraries allowing Python scripts to control the Gestalt nodes.

Programming Node firmware

When first out of the box the Gestalt nodes need programmed. To do this I used the FabtinyISP (AKA USBtiny) programmer which had been developed in a previous Fab Academy assignment. The node to be programmed was connected to the Fabnet board via a 10 way ribbon cable. The Fabnet board was powered from a 12V bench supply and this in turn powered the node. Finally the USBtiny was connected to the node via the 6 way ribbon cable

To programme the nodes I followed these steps. Firmware and make file is available in the download part of this page.

All four Gestalt node boards were programmed this way. One thing to note is when programming the 086-005a_boot.hex, twice, on different boards, I got a windows error - unfortunately I didn't record this. This was an intermittent issue and running the programming command again was sucessful.

Testing

After programming, each node was tested by connecting a stepper motor to the node and running a simple Python script (downloads) that prompted the user to enter position coordinates and then stepping the motor to that position. I found I had to use Windows command terminal to run the Python script because if the script was run using GitBASH the Python messages that prompt the user for input only occured after the programme had completed. I created/saved my script in the previously installed pygestalt/examples/machines/htmaa folder and I also had to copy the 086-005a.hex file to that folder. Finally, when testing the boards the Python script creates a test.vmp file in the program directory. I found each time prior to testing a new board I had to delete this file.

Downloads