Building a Sumpod Aluminium V2 (kit)

Back in 2012 I was able to convince my employer to contribute to a crowdfunding campaign to get a RepRap. In my opinion a „Mojo“ for 9999$ would have been appropriate, but I did not see a chance for this to happen.
Retrospectively I should have chosen an Ultimaker or LulzBot, but the milling feature (circuit boards!) was just too compelling. (The „Sumpod“ uses rack & pinion instead of timing belts, but until the present day I never mounted a Dremel to it.)

Eventually we ordered an aluminum Sumpod by the end of April 2012 and received the V2 in February 2014.

IMG_20140224_072846 IMG_20140224_074054 IMG_20140225_075100 IMG_20140225_073306 IMG_20140225_073312

The first „Sumpod Aluminum“ would have looked like this: http://stohn.de/3d/index.php/2013/01/02/sumpod-aluminium-xyz-axis-attached/
Specs: 240x240x150 mm³ build volume, SD-RAMPS + LCD + Encoder, we ordererd „fully built and calibrated“.

As the „official“ Sumpod Forum was already offline I only made guest posts in http://sumpod.proboards.com/thread/23/why-finally-cancelled-order.
I waited intentionally to complete the build, as I did not want to cause frustration by announcing „hey, it’s finally here“ and then being busy with other stuff for a few months. Then I summarized everything in http://www.metalforum-owl.de/viewtopic.php?f=21&t=2584.

Getting two tracking links for packets that were never sent made me cautions.
And all the frustration was already described by others – e.g. in this „Review“.

The kit came with a PSU, RAMPS + Arduino Mega and a „SumPanel“. Seemed to be a work in progress (milled PCB, not properly documented). I still didn’t mount an SD-Card slot, although I did run the cable.

IMG_20140429_130409 IMG_0274 IMG_0277 IMG_20140429_115437 IMG_20140429_115447 IMG_20140429_115954IMG_20140429_124632 IMG_20140429_134104 IMG_0279 IMG_0280 IMG_1018 IMG_1020

At first there were no instrucions available for putting it together.
It took a few weeks extra before they arrived. (By now they are offline – and it doesn’t matter because you can’t buy another kit.)

The simple depictions had some flaws, but at least they showed how everything was supposed to work.

This „Kit“ would not have worked for anybody without an engineering background as you had to figure out a lot of details yourself.
Furthermore you need a good supply of screws as some had the wrong dimensions (length and/or diameter). And I have no idea where to get t-nuts (eight were missing) outside of our special engineering department.
It also required machine-tools to make everything fit. I mentioned them below.

This is the Z-axis:

The threaded rod had to be shortened with a belt saw.

IMG_0218 IMG_0221 IMG_0228 IMG_0231 IMG_0232

The frame of V2 used sheet metal walls as part of the frame.

IMG_0933 IMG_0943

X- and Y-Axis (and overhauling via drill press):

IMG_20140508_142339 IMG_20140508_143645 IMG_20140508_144657 IMG_20140508_152908 IMG_20140508_153239 IMG_20140508_153801 IMG_20140508_155250

Putting everything into the frame… I got some help from a workmate (toolmaker) to finally get this thing ready.

IMG_0940 IMG_0941  IMG_0945 IMG_0946 IMG_0949 IMG_0952

The Z-Endstop later received some extra brace.

IMG_1068 IMG_1071

The heated bed. Levelled by my colleague (who didn’t have proper springs at hand). Thermistor crimped as described in the E3Dv5_Assembly_Manual.pdf => http://e3d-online.com/Documentation

IMG_0334 IMG_0339 IMG_0340 IMG_0979 IMG_0956 IMG_0961 IMG_0960

Two modifications in advance: thermal insulation below the heated bed, really thick cables and (later) consolidating the 12V input of the RAMPS board were necessary to keep this huge aluminium plate at 100 °C.

IMG_1329 IMG_1129

The Sumpod Hot End seems to work like the open source E3D-v5 All Metal HotEnd – so I just used their (excellent) manual.
…after I got the dirt out of the parts. Again: I was glad to have the rights tools (assorted small shafts) lying around.

IMG_20140508_155557 IMG_0976

There was no data about the Thermistor available and if you assemble „E3D-Style“ this is the part limiting the maximum temperature.
http://reprap.org/wiki/Thermistor says:
EPCOS 100K Thermistor (B57540G0104F000) => 250°C
EPCOS 100K Thermistor (B57560G1104F) => 300 °C
…and both use „Table 1“. I just set the limits to „275 °C“ as I have ABS lying around anyway.

IMG_0978 IMG_0996

The rest: cables without end. And the fuse in the IEC connector was missing.

The Hot-End has to be tightened at full temperature to prevent leakage later.

IMG_0983  IMG_1011IMG_0968 IMG_0997 IMG_1003 IMG_1005

SumPanel, connected to „AUX“ of the RAMPS:

IMG_1024 IMG_1022

The feeder / cold end of the extruder was not deburred properly, but this will be part of the next post.

IMG_1493

The result: A large „X/Y-Head, Z-Bed“-Style (=> http://reprap.org/wiki/RepRap_Family_Tree) 3D-Printer, built completely without printed parts and using rack and pinion instead of timing belts.
Adding a second Feeder and Hotend should be a piece of cake and if you really want it even The Kraken, E3D’s Quad Hotend, would fit.
I have no idea yet if I will test the milling capability sooner or later. Adding a L.A.S.E.R. is not an option as we would have to put the Sumpod into it’s own room for health and safety reasons.

IMG_1033 IMG_1041 IMG_1042

IMG_1047

Regarding calibration & firmware:
I decided to dump everything done before and start all over again with a „clean“ version of Marlin:
https://github.com/ErikZalm/Marlin
…this has to be done by hand however – „Win Merge“ just showed too many differences.

To get this machine started I changed in „Marlin_v1“

Configuration.h

#define MOTHERBOARD 33 => Arduino Mega 2560 + RAMPS 1.4

#define CUSTOM_MENDEL_NAME „Sumpod“ => Will appear on the LCD

#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1 => Hope these are the correct Tables for Thermistor „0“ and „Bed“

// M303 E0 S200 C8
#define DEFAULT_Kp 20.51
#define DEFAULT_Ki 1.35
#define DEFAULT_Kd 77.97 => PID Autotune for the Hot End. Do this yourself!

#define PIDTEMPBED …’cause it wasn’t.

#ifdef PIDTEMPBED
// Autotune: M303 E-1 S60 C8
#define DEFAULT_bedKp 505.26
#define DEFAULT_bedKi 73.42
#define DEFAULT_bedKd 869.24 => PID Autotune for the Bed. Do this yourself!

// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
//#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS => The Endstops for X and Y are MIN, the Z-Endstop ist MAX (maximum distance from the Nozzle!)

#define DISABLE_Z true => Can be switched off, when not in use. Maybe the others also?

// The pullups are needed if you directly connect a mechanical endswitch between the signal and ground pins.
const bool X_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Y_MIN_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
const bool Z_MIN_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool X_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Y_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of the endstop.
const bool Z_MAX_ENDSTOP_INVERTING = false; // set to true to invert the logic of the endstop.
//#define DISABLE_MAX_ENDSTOPS
//#define DISABLE_MIN_ENDSTOPS => The Combination of inverting and pullups mean that the missing switches are not „triggered“. Check with G-Code „M119“ once connected.

#define INVERT_X_DIR false // for Mendel set to false, for Orca set to true
#define INVERT_Y_DIR false // for Mendel set to true, for Orca set to false
#define INVERT_Z_DIR true // for Mendel set to false, for Orca set to true
#define INVERT_E0_DIR true // for direct drive extruder v9 set to true, for geared extruder set to false => For my Printer. But as there is no reverse polarity protection check for yourselves.

// Sets direction of endstops when homing; 1=MAX, -1=MIN
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR 1

// Travel limits after homing
#define X_MAX_POS 200
#define X_MIN_POS 0
#define Y_MAX_POS 200
#define Y_MIN_POS 0
#define Z_MAX_POS 161 // <= CALIBRATED VALUE !!!
#define Z_MIN_POS 0

#define HOMING_FEEDRATE {50*60, 50*60, 15*60, 0} // set the homing speeds (mm/min); *60 => per sec

#define DEFAULT_AXIS_STEPS_PER_UNIT {84.93,84.93,(16*200/3),93.2} // Calibrated values; Rod = 3mm/rev & Stepper = 200/rev; MK7-Gear: 10.56mm => 96.95

#define DEFAULT_MAX_FEEDRATE {500, 500, 10, 25} // (mm/sec)

// Preheat Constants
#define PLA_PREHEAT_HOTEND_TEMP 200
#define PLA_PREHEAT_HPB_TEMP 70
#define PLA_PREHEAT_FAN_SPEED 0 // Insert Value between 0 and 255

#define ABS_PREHEAT_HOTEND_TEMP 240
#define ABS_PREHEAT_HPB_TEMP 100
#define ABS_PREHEAT_FAN_SPEED 0 // Insert Value between 0 and 255

#define EEPROM_SETTINGS

#define EEPROM_CHITCHAT

#define REPRAP_DISCOUNT_SMART_CONTROLLER

pins.h

#define LCD_PINS_RS 40
#define LCD_PINS_ENABLE 42
#define LCD_PINS_D4 65
#define LCD_PINS_D5 66
#define LCD_PINS_D6 44
#define LCD_PINS_D7 64

#define BTN_EN1 63
#define BTN_EN2 59
#define BTN_ENC 57

#define SDCARDDETECT -1

…to get the Display onto „AUX-2“

You could also set #define LANGUAGE_CHOICE in language.h, but the LCD may have problems with some special characters.

Why are the „DEFAULT_AXIS_STEPS_PER_UNIT“ not the calculated values?
I already calibrated them to match real-life conditions.

Time for the first prints (in green ABS). 🙂

IMG_1080

10mm Hollow Calibration Cube by Laurencio

IMG_1112

50mm tower from The Essential Calibration Set by coasterman

IMG_1121 IMG_1123

The missing fan guard – 40mm and 50mm fan guards by Mrcleanr6, scaled to 60mm. 0.1mm layers. (Sadly it turned out to be too loud.)

IMG_1180

Octogoat by BrianEnigma – because METAL! :panda:

…and because not only Octocat, but all cats suck!

IMG_1250 IMG_1258

Parametric Herringbone Gear Set for Huxley extruder by RichRap (for this „Mini Quick-Fit Huxley sized extruder by RichRap“, described here). This is designed to mount on an MendelMax or a Printrbot with a NEMA 14 motor, so I won’t use it. Just tried how good the tooth meshing is.
=> Good enough!

I also also printed the Mini Quick-Fit Huxley sized extruder to compare the layer heights.
Idler Block in 0.2mm, Extruder in 0.3mm.

IMG_1300 IMG_1339 IMG_1351 IMG_1352_2

First „upgrade“: the aluminium spacers were a PITA to live with every day.

IMG_1217

OpenSCAD:

// Grundgenauigkeit:
resolution = 30;// Maße:
d_i = 6.7; // Innendurchmesser
w = (d_i-D_a)/2; // Wandstärke
D_a = 12; // Außendurchmesser
h = 62-5; // Höhedifference() {
cylinder(h = h, r=(D_a/2), $fn=resolution);
cylinder(h = h+2, r=(d_i/2), $fn=resolution);
}
translate([0,0,-10]){
difference() {
cylinder(h = 10, r=(10), $fn=resolution);
cylinder(h = 6.5, r=(13/2), $fn=6);
cylinder(h = h+2, r=(d_i/2), $fn=resolution);
}}
Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s