Sunday, January 13, 2019

What's better... Skeinforge or CuraEngine?

This is a quick comparison of a deprecated slicer called Skeinforge and another slicer called Cura. Cura is a popular slicer and host that is currently updated.

My understanding is that the CuraEngine is based on a fork of Skeinforge. It's primary improvement is speed. Skeinforge has been the slowest slicer I have encountered, and I have tried just about all of them starting in 2011 when there were only about 3: Skeinforge, ReplicatorG and Sfact (which is just a dumbed down version of Skeinforge).


For this comparison test I'm using an object from Thingiverse called the Calibration Temple (thing:10199530). This has been my penultimate test for printers and profiles. Primarily because of the delicate size of the columns and the object's bridging requirements. It's 38mm tall.



I configured Cura as closely as I could to the Skeinforge Durbie-Normal profile. This is my best general all purpose profile. Slicing speed for Cura unsurprisingly won. It came in at about 4s. Skeinforge came in at about 16s. A considerable time difference.


Even though both slicers are set at 32mm/s, the print speeds are off by 2:11 with Cura printing at 29:28 and Skeinforge at 31:39.



Above are the results. The object on the left is sliced by Skeinforge. The object on the right is sliced by the Cura. Both are printed with PLA.

Skeinforge wins by far for best quality. It's hard to see, but the bridging with Cura is a messy tangle under the dome. The Skeinforge sliced object has a clear inner dome and the columns are straight and clean. There is but one off strand from bridging.

Why? Skeinforge took more time to print. The extra 2 1/2 min for printing was caused by a setting in the cooling profile.


Skeinforge allows for either a slowdown or an orbit when printing delicate areas that may be damaged by excessive heat in the printed parts. If the previously printed area hasn't had time to cool and solidify, the successive layers will began to distort.

In this case, the slowdown also helped by physically slowing the printer down and thus printing with greater care the delicate columns. This added time to the print job, but also greatly improved the finished product.

Skeinforge also has many more controls for dealing with bridging and other printing challenges. This is what makes this slicer still viable today.

Friday, January 11, 2019

Adding Skeinforge to Repetier-Host

Skeinforge has been my go to open-source slicer since the beginning. It has a rather intimidating interface, but with a little work, it can become quite easy to navigate.


What is important to realize is that most of the craft tools (image above shows Dimension selected), can be left alone once a profile has been made for your machine. And the profile is easily setup by using a profile called Durbie - Normal. Though this slicer hasn't been updated in about 5 years, it still creates a slice that's been dependable.... why change something that works?

I'm running Windows 10 and starting off with Repetier-Host version 2.1.3.


You'll need 5 programs for the install: 


Each of the above programs should be installed in order. Skeinforge and PyPy are simply unpacked into a folder  and put into Program Files (x86) directory. Each of the files above are linked to the download page. If the link is broken, a Google of the following files will locate their depository:

  • Skeinforge50plus-master.zip
  • vcredist_x86.exe
  • python-2.7.amd64.msi
  • pypy2-v6.0.0-win32.zip
  • master.zip
The master.zip file will contain the Durbie profiles in an older Skeinforge folder. Simply go through the directory \Skeinforge41-master\.skeinforge\profiles\ extrusion. Copy the Durbie profiles and add them into the profile directory of Skeinforge50plus.

Once the programs are installed, it's now time to set up Repetier-Host. Select the Slicer tab and then Manager. A popup window appears as below:



Type Skeinforge in the Name box and then click Add Slicer. Skeinforge will be added to the Slicer Manager list. The window will now display a configuration setup for Skeinforge.


Here the paths for each file will need to be specified. Starting with:

  • Skeinforge Application:                                                                                                    C:\Program Files (x86)\Skeinforge50plus-master\skeinforge_application\skeinforge.py
  • Skeinforge Craft:                                                                                                                               C:\Program Files (x86)\Skeinforge50plus-master\skeinforge_application\skeinforge_plugins\craft.py
  • Working Directory:                                                                                                          C:\PC:\Program Files (x86)\Skeinforge50plus-master\skeinforge_application\profiles
  • Profiles Directory:                                                                                                         C:\Program Files (x86)\Skeinforge50plus-master\skeinforge_application\profiles
  • Python Interpreter:  C:\Python27\python.exe
  • PyPy:  C:\Program Files (x86)\pypy2-v6.0.0-win32\pypy.exe
Then select Apply and close the window. 

Skeinforge will now have several errors when running:


The worst can be solved by simply turning off the Analyze tools in Skeinforge. Do this by selecting the Analyze tab and scrolling down the menu and selecting each of the tools:
  • Interpret...
  • Skeinsio...
  • Skeinlayer...
Each new pop up window will have an Activate box that can be deslected. The following shows the Interpret Settings window.


Save the results. The only tool that does not have a save option is Skeiniso. This can be saved by selecting Save All at the bottom right of the main Skeinforge interface.


The last error has not been solved... at least not by me. It shows as follows:


Skeinforge does slice the object, but where is it? When Skeinforge is run as a stand alone program (do this by double clicking on skeinforge.py in the Application folder), the gcode is saved in the same directory as the object file. This is not the case when Skeinforge is run inside the Repetier-Host.

The gcode is actually found in the Repetier-Host working directory. In my case, its at C:\Users\richa\AppData\Local\RepetierHost and always labeled as composition.gcode. For some reason Repetier-Host cannot find it. 

To use the gcode, simply load the composition.gcode manually in Repetier-Host. 

Why go through the trouble of setting up Repetier-Host to run Skeinforge if the gcode still needs to be manually loaded? Running Skeinforge on its own will not allow the option to orient the object you are building on the build platform or add additional objects for simultaneous printing. These options and more are available on Repetier-Host, adding better functionality when using Skeinforge.




Friday, January 4, 2019

Solving firmware upload problems on GT2560


Problems changing or updating your firmware on a GT2560? There's a lot of nonsense concerning a knockoff GeeeTech board on cheap Prusa i3's. This solution may might help.




Earlier this year I was working out of town, so I purchased a knock-off version of the GeeeTech Prusa i3 3D printer kit. This gave me something to play with while I was there, but unfortunately not for long. The laser cut wood frame did not hold up well in a suitcase traveling through the airport system. Several areas broke.


I decided to use the GT2560 motherboard to upgrade my Prusa Mendel I built about 8 years ago.


Everything worked smoothly, but there was an issue with my stepper motors. Messy wiring has always been an irritation for me, so I was excited to be able to utilize the cable connectors on the stepper motors with the pre-configured cables that came with the Prusa i3 kit. But this would not work. The lead outs on my stepper motors are different than the lead outs on the kit's stepper motors.

My stepper motors on the Prusa Mendel are Minebea, a Japanese manufactured stepper motor with a good solid reputation. The stepper motors that came with the kit are slightly larger, but manufactured by RBstep motor. A generic Chinese manufactured product.


I decided to swap out my Minebea steppers with the generic ones so that I could keep the clean install of wiring.


 All of this is fine, but the GT2560 motherboard needs an updated firmware for the physical changes that I have made by the swapout. This is where the trouble lies. As I noted in my last blog entry, I could not seem to make any firmware changes. The board was not uploading.

After a lot of research I discovered that this is a very common problem with this particular board and specifically with the knockoff versions of the GeeeTech printer. The upload will just stall and eventually give a timeout error. Fortunately the fix is easy.

To keep it precise, here are the following specs of my system:

I'm using Windows 7 with the latest version of the FT232RQ driver. This driver creates a USB port for the GT2560 otherwise the device will not show up in your device list and thus be inoperable. (Note: Windows 7 requires a manual install of this driver... Windows 10 will install the driver automatically when the GT2560 is plugged into the USB port.)

Next, I'm using an older version of Arduino software. The version is 1.5.2. It's recommended to use an older version of Arduino to upload the Marlin firmware that the GT2560 requires.

Once you have your Arduino software set up, navigate into the folder system. In my case, it was:

Arduino-1.5.2 folder
then
hardware folder
then
arduino folder
then
avr folder
then open the text file boards in a text editing program such as WordPad.

Here you will find a list of declarations for many different Arduino boards. Scroll to the bottom and add the following lines:

## GT2560 w/ ATmega2560 mega.menu.cpu.gt2560atmega2560=GT2560 w/ ATmega2560 mega.menu.cpu.gt2560atmega2560.upload.protocol=wiring mega.menu.cpu.gt2560atmega2560.upload.maximum_size=253952 mega.menu.cpu.gt2560atmega2560.upload.speed=57600 mega.menu.cpu.gt2560atmega2560.bootloader.high_fuses=0xD8 mega.menu.cpu.gt2560atmega2560.bootloader.extended_fuses=0xFD mega.menu.cpu.gt2560atmega2560.bootloader.file=stk500v2/stk500boot_v2_mega2560.hex mega.menu.cpu.gt2560atmega2560.build.mcu=atmega2560 mega.menu.cpu.gt2560atmega2560.build.board=AVR_MEGA2560

Save this to the text file and close.

Now open your Arduino 1.5.2 program and change your board selection to the entry
Arduino Mega (ATmega1280).



This is it. Simple and effective. The GT2560 will now upload whatever you choose . In my case, I'm using the file I3_pro_X firmware setup supplied by the GeeeTech website for the Prusa i3. This is similar to a Mendel Prusa configuration and will make a good base setup.