GESTALT MODULE
Gestalt node is a small electronic control board that can be easily networked and connects via Fabnet USB to your computer and to the steppers. It looks like it is not yet commercially available but you could make it yourself if you are experienced with electronics (Gestalt Node GitHub) . Some forums suggest that this setup could be replaced by Arduino, stepper motor drivers and GRBL combination.
Another page with more information is by James Coleman and Nadia Peak ([m] MTM) here. And Machine Making Notes here from take some notes.
GESTALT NODE CONTENTS
The physical layer we're using here is called Fabnet (described here) . Fabnet is essentially an RS-485 bus with a few additional signals. Fabnet has evolved a little bit since the web page above was published; the latest pinout for a Fabnet header looks like this:
FTDI CABLE
FTDI cable provided is a little different than the other FTDI cables we've been using; it is an RS-485 version. Fabnet page here or eagle files down page.
This board will also provide power to the network. All of the nodes have a regulator and are getting power from the line marked "high" on the board. Nadya's notes mention that this should be 12V, which was determined by the specs of the stepper motors. In Providence we're just using our bench supply; make sure you have a supply that can provide at least a couple of amps.
download the pygestalt code from Ilan Moyer in web page (https://github.com/imoyer) or dowload files down page.
PYTHON
1. INSTALL PYTHON ON WINDOWS v. 2.7
a. To install Python on Windows, download the installer from http://www.python.org/getit/ . v.2, because Gestalt was buit in it.
b. Once Python is installed, you will find a new Program Group on your Start menu. However, we are going to make a change to Windows to allow you to use Python from the Command Prompt. You will need this to be able to install PySerial.
c. Add something to the PATH environment variable.
d. To do this, you need to go to the Windows Control panel and find the System Properties control. Then click on the button labelled “Environment Variables” and in the window that pops-up select “Path” in the bottom section (System Variables). Click “Edit” and then at the end of the “Variable Value” without deleting any of the text already there, add the text: ";C:\Python" Don't forget the ";" before the new bit!. Otherwise is create a variable "Path"and add the text ";C:\Python" in end.
e. To test that it worked okay, start a new Command Prompt (DOS Prompt) and enter the command “python”. You should see something like this:
2. INSTALL PYSERIAL
2.1. Whatever your operating system, download the .tar.gz install package for PySerial from pypi.python.org . If you are using windows you need to uncompress this into a folder with winrar or you may need to download a tool such as 7-zip (http://www.7-zip.org/).
2.2. Install from unnziped folder.
2.3. Use cmd comand (administrator mode) or cygwin for install pyserial.
2.3.1. With cygwin, change in to your pyseial folder directory. Use cygdrive, cd, to change directory.
2.3.2. write "python setup.py install" and wait.
2.4. Install pygestalt-master here well as before. write "python setup.py install" on pygestalt-master folder. You can copy with right button in explorer and past the direction with right button too.
Obs: I tried to install pyserial, but get a error with version 3.6. I unistalled and installed v. 2.7 and work it!
3. PYTHON CODE
3.1. Open file using the Python editor 'IDLE” which is available from the Python program group on your start menu.
To program the code in Gestalt, at the moment and time, it is not possible do it in windows. I will use Raspberry Pi for to program gestalt. Follow mi tutorial in Week 16 INTERFACE APPLICATION PROGRAMMING.
RASPBERRY AND GESTALT
1. Download pygestalt files fron Nadya page here
2. Download 086-005 files fron Moyer page here
3. Change user to super user and install pyserial
a. apt-get install pyserial
4. Enter with terminal in pygestalt folder and install with: "python setup.py install"
5. Install AVRdude lib
5.1. sudo apt-get install avrdude
6. Modify in 086-005 folder two archives:
6.1. MAKEFILE
6.2.1. Change GESTALT_DIR and Programmer avrisp by usbtiny
# GESTALT FIRMWARE MAKEFILE
# REVISED: 3/1/2013
# REVISED: 10/18/2013: added -networkedGestalt lib, now compiles bootloader correctly
# Ilan Moyer and Nadya Peek
# www.pygestalt.org
#Change filename as appropriate. Note: assumes .cpp
GESTALT_DIR = ../pygestalt/gsArduino>
MCU = atmega328p
FREQ = 18432000
#bootloader
#PROJECT = 086-005a_boot
#ADDRESS = 0x7000
#GESTALT_DEFS = -DstandardGestalt -Dbootloader -DsingleStepper -Dgestalt328 -DnetworkedGestalt
#application program, uncomment if you want to use this instead.
PROJECT = 086-005a
ADDRESS = 0x0000
GESTALT_DEFS = -DstandardGestalt -DnetworkedGestalt -DsingleStepper -Dgestalt328
#----INNER WORKINGS BEGIN HERE----
GESTALT_FILE = $(GESTALT_DIR)/gestalt.cpp
LDSECTION = --section-start=.text=$(ADDRESS)
SOURCES = $(PROJECT).cpp $(GESTALT_FILE)
CFLAGS = -g -Wall -Os -mmcu=$(MCU) -DF_CPU=$(FREQ) -I$(GESTALT_DIR) $(GESTALT_DEFS)
LDFLAGS = -Wl,$(LDSECTION)
all: $(PROJECT).hex clean
$(PROJECT).o: $(SOURCES)
avr-g++ $(CFLAGS) -c -Wall $(SOURCES)
$(PROJECT).elf: $(PROJECT).o
avr-g++ $(CFLAGS) $(LDFLAGS) gestalt.o -o $@ $^
$(PROJECT).hex: $(PROJECT).elf
avr-objcopy -j .text -j .data -O ihex $< $@
clean:
rm -rf *.o *.elf
####
# load program code
####
# note: if you only have the 328 instead of the 328p, just compile for 328
# and load with the -p m328 flag. You'll need to add 328 to your avrdude.
program-usbtiny -fuses:
avrdude -c usbtiny -P usb -p m328p -U efuse:w:0x5:m -F
#note that only first 3 bits can be set
avrdude -c usbtiny -P usb -p m328p -U hfuse:w:0xD8:m -F
avrdude -c usbtiny -P usb -p m328p -U lfuse:w:0xEF:m -F
program-usbtiny :
# uncomment to program bootloader
# avrdude -e -c usbtiny -P usb -p m328p -U flash:w:086-005a_boot.hex
# uncomment to program application
avrdude -e -c usbtiny -P usb -p m328p -U flash:w:086-005a.hex
6.2. In pygestalt\examples\machines\htmaa Folder, edit single-node.py
6.2.1. In line 25, edit: ...115200, interfaceType = 'ftdi', portName = 'COM6')) COM6 is port where is your FTDI cable.
7. In mode SU (Super User) "sudo su" go to 086-005 folder
7.1. Write: sudo make -f Makefile program-usbtiny
GESTALT NODE
After the program, I have a problem, my Gestalt Node can't move. I ask for this but I can't move it.
I am trying solve it!
DOWNLOAD
All files Download