Quantcast
Channel: Reprap Forum - Firmware - Marlin
Viewing all 12089 articles
Browse latest View live

Re: 5 x Tool changer Marlin E3D style

$
0
0
Tool changing is simply T command, this swaps the active extruder/hotend. the 'magic' is implemented in your slicer to wrap the appropriate g codes around the T commands to do things like physically swap the tools.

This may need additional post processing scripts the edit the gcode and make it do what you need.

Re: 5 x Tool changer Marlin E3D style

$
0
0
OK that doesn't sound too difficult, tomorrow night I might sit down and start again with a fresh copy of Marlin, that way I can document my changes. It would be nice to see Marlin managing more than two hot ends during a print. I have some hot ends I can use in a test jig if I re map the extruder and temp sensor to the heat bed ports then I can test my post processed gcode.

Im using labview to do the post processing of the gcode, its so frustrating that slic3r only gives one tool change input option, it should one per material that way you could use it to over come the lack of an ability to make logical decisions in marlin gcode. I think the marlin gcode Is a little watered down as you can't even save a set of coordinates and then use G command with a slic3r placeholder as a offset (say for the x axis offset for each tools location) to move the machine to that location.

Re: Arduino DUE + RADDS + TMC2208 UART

$
0
0
Hi Pippy, I must immediately say sorry if I write some stupidity or non sense but my programming knowledge is near to zero.
Thank you for sharing your knowledge, I would be very grateful if you could answer a few questions.
FIRST QUESTION
I read elsewhere ( [github.com] look at comment of MagoKimbra) that the problem with activating software serial uart on arduino due with tmc2208 is the old library for TMC 2208, and that the modification you did to the serial (that is very useful because it reduces to half the pins used) is an improvement but not strictly necessary.
The library of tmc2208 has a few lines where it says:
#define SW_CAPABLE_PLATFORM defined(__AVR__) || defined(TARGET_LPC1768)
#include Stream.h>
#if SW_CAPABLE_PLATFORM
	#include SoftwareSerial.h>
and if I understand correctly that means that software serial uart library will be included only on AVR and LPC1768 platforms and not on arduino Due. Am I right?
1) How did you get your system working without modifying also this tmc2208 library?

SECOND QUESTION
I read your other post [reprap.org] where you say you added a section in some file of marlin 2.0 with the defines of the various rx a tx pins. Where did you put such modification? In the pins_(one_motherboard).h file of your motherboard?
Thank you so much. This is all to try to get UART on TMC 2208 working on a RuRAMPS1.1 that is a similar Shield of ARDUINO DUE like RADDS etc.

Marlin - two extruder setup

$
0
0
Hi guys,
trying to setup marlin for two extruders. On my LCD after setting 2 extruders are:

EXTRUDER
EXTRUDER 1
EXTRUDER 2

If I choose move axis for example with EXTRUDER 1 to for example +2,
this number is shared also on EXTRUDER and EXTRUDER 2.

and now question, what is wrong ?





//=============================================================================
//============================== Movement Settings ============================
//=============================================================================
// @section motion

/**
* Default Settings
*
* These settings can be reset by M502
*
* Note that if EEPROM is enabled, saved values will override these.
*/

/**
* With this option each E stepper can have its own factors for the
* following movement settings. If fewer factors are given than the
* total number of extruders, the last value applies to the rest.
*/
#define DISTINCT_E_FACTORS

/**
* Default Axis Steps Per Unit (steps/mm)
* Override with M92
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 800, 397.5, 397.5, }

/**
* Default Max Feed Rate (mm/s)
* Override with M203
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 100, 100 }

/**
* Default Max Acceleration (change/s) change = mm/s
* (Maximum start speed for accelerated moves)
* Override with M201
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
#define DEFAULT_MAX_ACCELERATION { 3000, 3000, 100, 10000, 10000 }

/**
* Default Acceleration (change/s) change = mm/s
* Override with M204
*
* M204 P Acceleration
* M204 R Retract Acceleration
* M204 T Travel Acceleration
*/
#define DEFAULT_ACCELERATION 3000 // X, Y, Z and E acceleration for printing moves
#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves

/**
* Default Jerk (mm/s)
* Override with M205 X Y Z E
*
* "Jerk" specifies the minimum speed change that requires acceleration.
* When changing speed and direction, if the difference is less than the
* value set here, it may happen instantaneously.
*/
#define DEFAULT_XJERK 20.0
#define DEFAULT_YJERK 20.0
#define DEFAULT_ZJERK 0.4
#define DEFAULT_EJERK 5.0

Re: Marlin - two extruder setup

$
0
0
This is the issue I would suspect ----------------------------------------------------|
                                                                                                                   |
                                                                                                                   \/
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 800, 397.5, 397.5, }

the last , should not be there

Re: Marlin - two extruder setup

$
0
0
Tried to delete it, but still same, no difference.

Re: Marlin - two extruder setup

$
0
0
note: I use

BOARD_RAMPS_14_EEB 44 // RAMPS 1.4 (Power outputs: Hotend0, Hotend1, Bed)

Re: Marlin - two extruder setup

$
0
0
What does the line in configuration.h #define EXTRUDERS say?

Re: Marlin - two extruder setup

$
0
0
// This defines the number of extruders
// :[1, 2, 3, 4, 5]
#define EXTRUDERS 2

Re: Marlin - two extruder setup

$
0
0
What sort of LCD are you using? so I can see if I get the same thing...

Re: Marlin - two extruder setup

$
0
0
RepRapdiscount smart controller 2004 LCD

confirmation on completed command

$
0
0
if I send marlin the command "G1 X100 F1000" is there a way for the firmware to tell me it finish moving?

Re: confirmation on completed command

Re: Marlin - two extruder setup

$
0
0
I have replicated this... seems to be a bug...

Extruder is always in the menu, even when it should be replaced with Extruder1

Re: Marlin - two extruder setup

$
0
0
Can you read a patch diff file?

Give this a try, fixes the menus, but I don't have actual steppers attached to test fully.


+++ ultralcd.cpp	2019-05-27 19:53:43.636197612 +1200
@@ -3171,8 +3171,9 @@
   void lcd_move_get_x_amount()        { _lcd_move_distance_menu(X_AXIS, lcd_move_x); }
   void lcd_move_get_y_amount()        { _lcd_move_distance_menu(Y_AXIS, lcd_move_y); }
   void lcd_move_get_z_amount()        { _lcd_move_distance_menu(Z_AXIS, lcd_move_z); }
-  void lcd_move_get_e_amount()        { _lcd_move_distance_menu(E_AXIS, lcd_move_e); }
-  #if E_MANUAL > 1
+  #if E_MANUAL == 1	
+    void lcd_move_get_e_amount()        { _lcd_move_distance_menu(E_AXIS, lcd_move_e); }
+  #else if E_MANUAL > 1
     void lcd_move_get_e0_amount()     { _lcd_move_distance_menu(E_AXIS, lcd_move_e0); }
     void lcd_move_get_e1_amount()     { _lcd_move_distance_menu(E_AXIS, lcd_move_e1); }
     #if E_MANUAL > 2
@@ -3277,8 +3278,9 @@
     #else
 
       // Independent extruders with one E-stepper per hotend
-      MENU_ITEM(submenu, MSG_MOVE_E, lcd_move_get_e_amount);
-      #if E_MANUAL > 1
+      #if E_MANUAL == 1
+        MENU_ITEM(submenu, MSG_MOVE_E, lcd_move_get_e_amount);
+      #else if E_MANUAL > 1
         MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E1, lcd_move_get_e0_amount);
         MENU_ITEM(submenu, MSG_MOVE_E MSG_MOVE_E2, lcd_move_get_e1_amount);
         #if E_MANUAL > 2

If you can't read this it basically says edit ultralcd.cpp
Find the area it is talking about
lines starting with a single - means delete this line
lines starting with a single + means add this line
There are two sections to find and edit.

Re: Marlin - two extruder setup

$
0
0
I can read it, I will try it at this evening if it helps.
I will post result then.


That is strange bug, I thought a lot of people must have this setup...

thanks

Usage status collection

$
0
0
I'm wondering what the best way to locally collect usage status (number of prints printed on that printer).
I'm reading into EEPROM, and it seems like that's the only way to keep count, as it's the only way to keep data persistent when after a power down.
but i'm concerned about the finite write cycles of EEPROM, 100 000 cycles doesn't seem like that many, especially if i'm writing a new value after every print.
also the marlin firmware i'm using right now uses the EEPROM to keep some important machine settings, and I don't know which addresses these information is being saved at, I don't want to accidentally overwrite the existing machine settings.

Can someone advise me on "the best/your recommended" method of achieving this without killing my board within a few months?

Re: Usage status collection

$
0
0
100 000 / 365 = 274 print a day for a year

so lets say you do manage 12 prints a day, that is 22 years. worth...

I don't think your going to have an issue...

Re: confirmation on completed command

$
0
0
Thank you so much Dust!, very helpful command to know.

Re: Usage status collection

$
0
0
fair point, I should've done the calculation first.

How would i check where the EEPROM have an empty slot i can write values to?
I tried
serialprintPGM(eeprom_read_byte(uint8_t *0));
but it returns gibberish
⸮M⸮Q⸮W⸮[⸮_⸮e⸮i⸮m⸮s⸮w⸮{⸮(⸮-⸮2⸮<⸮FĿ⸮P⸮X⸮`⸮j⸮t⸮~čėĿġīĵ⸮J⸮;;⸮n⸮⸮⸮⸮⸮/=lt1⸮⸮V⸮=⸮=

and if I want to write a value to eeprom (let's say at 0), do i simply do
eeprom_write_byte (0, variable)

note: i made a hex file using avrdude, and I see that there's lots of empty slots "F", but I don't know how to read what the address/position of each empty slot is
Viewing all 12089 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>