Monday, April 5, 2010

RepRap revisited

The successfull MakerBot prints gave me enough confidence and motivation to pick up the, last year abandoned, RepRap project. After some days of tough fights with the software, the RR is now in control! Finally I can test the extruder and hopefully the RR will be printing this year :-)

Follows a list of blocking issues:
1. Arduino had a HardwareSerial issue in the Sanguino (Atmega644P) library, solved in Arduino 0018. Mark that you clean up the firmware objects (FiveD_GCode_Interpreter/applet) to ensure a clean object recompiled with the proper libraries;
2. ReplicatorG SerialPassthroughDriver.java removes spaces from the commandstring, patched as follows;

public String clean(String str) {
String clean = str;
// trim whitespace
clean = clean.trim();
// remove spaces
// 2010.04.04 JvO DON'T clean = clean.replaceAll(" ", "");
return clean;
}

3. FiveD Firmware, byte datatype tested for -1 unsigned byte;
4. FiveD Firmware, cartesian_dda.can_step() code is incorrect for Max endstops, patched as follows;

bool cartesian_dda::can_step(byte min_pin, byte max_pin, long current, long target, byte dir)
{
bool canStep = true; // 2009.08.27 JvO
//stop us if we're on target
if (target == current)
canStep = false;
#if ENDSTOPS_MIN_ENABLED == 1
//stop us if we're home and still going
if(min_pin >= 0 && min_pin != 255) // JvO byte datatype is unsigned
{
if (read_switch(min_pin) && !dir)
canStep = false;
}
#endif
#if ENDSTOPS_MAX_ENABLED == 1
//stop us if we're at max and still going
if(max_pin >= 0 && max_pin != 255) // JvO byte datatype is unsigned
{
if (read_switch(max_pin) && dir)
canStep = false;
}
#endif
// All OK - we can step
return canStep;
}