Firmware evolution for TIG based Metal 3D Printer June 17, 2014 05:47PM |
Registered: 11 years ago Posts: 24 |
Re: Firmware evolution for TIG based Metal 3D Printer June 18, 2014 06:17AM |
Registered: 13 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: 11 years ago Posts: 24 |
Re: Firmware evolution for TIG based Metal 3D Printer June 20, 2014 09:09AM |
Registered: 13 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: 11 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: 13 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: 11 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: 10 years ago Posts: 1,381 |
Re: Firmware evolution for TIG based Metal 3D Printer July 11, 2014 04:55AM |
Registered: 11 years ago Posts: 24 |
Re: Firmware evolution for TIG based Metal 3D Printer July 11, 2014 05:44AM |
Registered: 10 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: 11 years ago Posts: 24 |
Re: Firmware evolution for TIG based Metal 3D Printer July 25, 2014 12:16AM |
Registered: 10 years ago Posts: 1,381 |