|
Firmware evolution for TIG based Metal 3D Printer June 17, 2014 05:47PM |
Registered: 12 years ago Posts: 24 |

|
Re: Firmware evolution for TIG based Metal 3D Printer June 18, 2014 06:17AM |
Registered: 15 years ago Posts: 7,616 |
Quote
kolergy
- Control a solenoid valve
Quote
kolergy
- Add measurement of the current or at least the presence of the Arc
Quote
kolergy
I am experimenting with a KY-018 photo resistor to detect the presence of the arc, I guess It can directly be connected in place of one of the temperature sensors.
Quote
kolergy
For the moment I have made a small python script that generate G-Code where a segment is cut into smaller segments where the movement is done in three times: rapid extrude, rapid retract, move at given speed. Ultimately I think this can be included in a similar way as the transformation to delta was introduced. Is it correct ? (This would be for later)
Quote
kolergy
Up to now I have failed to find document explaining the logic behind the implementation of the Marlin firmware and got all the information from the code, is there somewere a newbie guide to the Marlin or at least some resources describing the organization & logic of the firmware?
| Generation 7 Electronics | Teacup Firmware | RepRap DIY |
|
Re: Firmware evolution for TIG based Metal 3D Printer June 18, 2014 07:46AM |
Registered: 12 years ago Posts: 24 |
|
Re: Firmware evolution for TIG based Metal 3D Printer June 20, 2014 09:09AM |
Registered: 15 years ago Posts: 7,616 |
Quote
kolergy
since the Gen7 has dedicated power line to the MOSFETs can it handles 24v safely?
| Generation 7 Electronics | Teacup Firmware | RepRap DIY |
|
Re: Firmware evolution for TIG based Metal 3D Printer July 01, 2014 07:35PM |
Registered: 12 years ago Posts: 24 |
//===========================================================================
//============================== Metal Settings =============================
//===========================================================================
// Enable TIG based Metal 3D printer
#define METAL
#ifdef METAL
// Uncoment this if using lift arc method for ignition
#define METAL_LIFT_ARC
#ifdef METAL_LIFT_ARC
#define METAL_STROKE_LENGTH 20.0 // length of the oscilations in the x direction
#define METAL_STROKE_Z_START 9.0 // Initiate oscilatory movment at this altitude
#define METAL_STROKE_Z_AMPLITUDE 5.0 // height difference between the sides & the center low point
#define METAL_STROKE_Z_PASS 0.15 // altitude reduction for each pass
#endif // METAL_LIFT_ARC
#define METAL_IGNITION_X -20.0 // X position of the ignition point (center of oscilation)
#define METAL_IGNITION_Y 35.0 // Y position of the ignition point
#define METAL_ARC_LIGHT_LEVEL 50.0 // Treshold light level indicating arc is ignited
#endif // METAL
#if (THERMISTORHEATER_0 == 99) || (THERMISTORHEATER_1 == 99) || (THERMISTORHEATER_2 == 99) || (THERMISTORBED == 99) // Light Sensor
const short temptable_99[][2] PROGMEM = {
// Only use for light sensor for TIG metal printing
//
// Calculated using 4.7kohm pullup, voltage divider math, and manufacturer provided temp/resistance
{700 *OVERSAMPLENR, 200 },
{800 *OVERSAMPLENR, 20 },
{960 *OVERSAMPLENR, 10 }
};
#endif
#ifdef METAL
float lift_ignition() {
#if defined(TEMP_0_PIN) && TEMP_0_PIN > -1
float startPos = METAL_STROKE_Z_START;
float lightLevel = -1;
float Z_Ignit = -1;
feedrate = homing_feedrate[X_AXIS];
// Position torch over ignition point
destination[X_AXIS] = METAL_IGNITION_X;
destination[Y_AXIS] = METAL_IGNITION_Y;
destination[Z_AXIS] = startPos;
prepare_move_raw();
st_synchronize();
// Perform oscilatory movments until ignition occured
int sign = 1;
for (float i = startPos; i >= 0; i=i - METAL_STROKE_Z_PASS) {
feedrate = homing_feedrate[Z_AXIS];
sign = -sign;
destination[X_AXIS] = METAL_IGNITION_X + sign * METAL_STROKE_LENGTH;
destination[Y_AXIS] = METAL_IGNITION_Y;
destination[Z_AXIS] = i+METAL_STROKE_Z_AMPLITUDE;
prepare_move_raw();
destination[X_AXIS] = METAL_IGNITION_X;
destination[Z_AXIS] = i;
prepare_move_raw();
destination[X_AXIS] = METAL_IGNITION_X - sign * METAL_STROKE_LENGTH;
destination[Z_AXIS] = i+METAL_STROKE_Z_AMPLITUDE;
prepare_move_raw();
st_synchronize();
lightLevel = degHotend(tmp_extruder);
SERIAL_PROTOCOLPGM("Z:");
SERIAL_PROTOCOL_F(i,3);
SERIAL_PROTOCOLPGM("\t Light:");
SERIAL_PROTOCOL_F(lightLevel,3);
SERIAL_ECHOLN("");
if(lightLevel > METAL_ARC_LIGHT_LEVEL) {
Z_Ignit = i;
SERIAL_PROTOCOLPGM("Ignited @ Z:");
SERIAL_PROTOCOL_F(Z_Ignit,3);
SERIAL_ECHOLN(" lets Weld");
break;
}
}
#else // TEMP_0_PIN
SERIAL_ECHOLN("No light sensor available on TEMP_0_PIN");
#endif // TEMP_0_PIN
return Z_Ignit;
}
#endif // METAL.
.
.
.
#ifdef METAL
case 3: // M3 - Arc Ignition
#ifdef METAL_LIFT_ARC
SERIAL_ECHOLN("M3 Sent");
lift_ignition();
SERIAL_ECHOLN("M3 After");
#endif
break;
#endif //METAL
|
Re: Firmware evolution for TIG based Metal 3D Printer July 02, 2014 07:50AM |
Registered: 15 years ago Posts: 7,616 |
| Generation 7 Electronics | Teacup Firmware | RepRap DIY |
|
Re: Firmware evolution for TIG based Metal 3D Printer July 09, 2014 07:14PM |
Registered: 12 years ago Posts: 24 |
#ifdef METAL
float lift_ignition() {
#if defined(TEMP_0_PIN) && TEMP_0_PIN > -1
float startPos = METAL_STROKE_Z_START;
float lightLevel = -1;
float Z_Ignit = -1;
feedrate = homing_feedrate[X_AXIS];
// redefine Z position to set the new zero
current_position[Z_AXIS] = current_position[Z_AXIS] + METAL_Z_MARGIN; // add a margin in the z direction such that it is able to ignite even if platform is slightly lower than expected
calculate_delta(current_position);
plan_set_position(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS]);
// Position torch over ignition poit
destination[X_AXIS] = METAL_IGNITION_X;
destination[Y_AXIS] = METAL_IGNITION_Y;
destination[Z_AXIS] = startPos;
prepare_move_raw();
st_synchronize();
// Perform oscilatory movments until ignition occured
int sign = 1;
for (float i = startPos; i >= 0; i=i - METAL_STROKE_Z_PASS) {
sign = -sign;
destination[X_AXIS] = METAL_IGNITION_X + sign * METAL_STROKE_LENGTH;
destination[Y_AXIS] = METAL_IGNITION_Y;
destination[Z_AXIS] = i+METAL_STROKE_Z_AMPLITUDE;
prepare_move_raw();
destination[X_AXIS] = METAL_IGNITION_X;
destination[Z_AXIS] = i;
prepare_move_raw();
destination[X_AXIS] = METAL_IGNITION_X - sign * METAL_STROKE_LENGTH;
destination[Z_AXIS] = i+METAL_STROKE_Z_AMPLITUDE;
prepare_move_raw();
st_synchronize();
lightLevel = degHotend(tmp_extruder);
if(lightLevel > METAL_ARC_LIGHT_LEVEL) {
Z_Ignit = i;
SERIAL_PROTOCOLPGM("Ignited @ Z:");
SERIAL_PROTOCOL_F(Z_Ignit, 3);
SERIAL_ECHOLN(" lets Weld");
// redefine Z position to set the new zero
current_position[Z_AXIS] = 0.0 + METAL_STROKE_Z_AMPLITUDE; // redefines the zero from the position of ignition
calculate_delta(current_position);
plan_set_position(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], current_position[E_AXIS]);
break;
}
}
#else // TEMP_0_PIN
SERIAL_ECHOLN("No light sensor available on TEMP_0_PIN");
#endif // TEMP_0_PIN
return Z_Ignit;
}
#endif // METAL
|
Re: Firmware evolution for TIG based Metal 3D Printer July 10, 2014 07:51PM |
Registered: 12 years ago Posts: 1,381 |
|
Re: Firmware evolution for TIG based Metal 3D Printer July 11, 2014 04:55AM |
Registered: 12 years ago Posts: 24 |
|
Re: Firmware evolution for TIG based Metal 3D Printer July 11, 2014 05:44AM |
Registered: 12 years ago Posts: 1,381 |
Quote
kolergy
- The system guiding the wire is not precise enough to make fine welds (<2mm) I have an idea that needs implementing
Quote
kolergy
I do not see any reason why it would not work for a Cartesian, preferably one with a fixed plater as for welding it is good to have a 1cm thick metal baseplate plus the work piece + the clamping material which make it a bit heavy for a moving plater machine like a Prusa.
Quote
kolergy
In terms of the code the only delta thing introduced in the code is the call to claculate_delta() in the redefinition of the Z position, I can put a #ifdef DELTA to switch between delta & cartesian but I will not be able to test the cartesian mode.
|
Re: Firmware evolution for TIG based Metal 3D Printer July 24, 2014 02:20PM |
Registered: 12 years ago Posts: 24 |
|
Re: Firmware evolution for TIG based Metal 3D Printer July 25, 2014 12:16AM |
Registered: 12 years ago Posts: 1,381 |