Welcome! Log In Create A New Profile

Advanced

Deeper changes in Marlin for Microdispensing

Posted by 3iswolf 
Deeper changes in Marlin for Microdispensing
July 20, 2020 11:41AM
Hello to all,

for a project i installed a microdispensing System in an CoreXY Machine. An external controller does all the calculation for the dispensing. For Marlin there are not a lot of changes. I took the Step_Pin of the E1 extruder and this signal goes to dispensing system.

So far so good. Now E1 isn't a stepper, so i want to change the behavior of the E1 axis. Sending the Step Pulses must be different to the rest of the axis system. I could make the system more stable if i can change some parameters in marlin specific for the E1 axis and not for the hole System.

The used mainboard is an Archim2 with TMC2130. The STEP_PIN for E1 goes to a free GPIO Pin.

1. INVERT_E1_STEP_PIN true

In configuration_adv there is just a #define INVERT_E_STEP_PIN. What i want is INVERT_E_STEP_PIN false and INVERT_E1_STEP_PIN true.

I tried
- INVERT_E0_STEP_PIN false with INVERT_E1_STEP_PIN true. This makes a compile error.
- INVERT_E_STEP_PIN false with INVERT_E1_STEP_PIN true. Can compile but Step_Pin_E1 stay at active high.

Perhaps i used the wrong nomenclature. E0 is important because there is still an normal filament extruder on that axis.

2. define MAXIMUM_STEPPER_RATE

The dispensing system works with frequencies below 2 kHz. I tried different possible solution but in the end, marlin takes the lowest value of any axis and takes this value for all axis. define MAXIMUM_STEPPER_RATE 2000 is too low for the normal X,Y,Z,E axis.
For example if i set for #define DRIVER_TYPE TMC2130 for X,Y,Z an E0 und TB6560 for E1. All axis work at a maximum stepper rate of only 15000 Hz (the value defined for the TB6560). I verified this with an Oscilloscope.

Can Marlin define a stepper rate specific for one axis? It's like limiting the maximum travel speed. But in the phases of Jerk and Acceleration MAXIMUM_STEPPER_RATE define the limits. It is important because frequencies over 2 kHz would behave like a loss of steps. I tried a fixed value for speed (resulting in a Step value below 2 kHz) with variations of Acceleration and Jerk but Marlin always goes for a double pulse at the start of a move which is faster than 2 KHz. #define MAXIMUM_STEPPER_RATE 2000 solves this issue.


I have you can help me for this two issues.

Many thanks!

Edited 1 time(s). Last edit at 07/20/2020 11:42AM by 3iswolf.
VDX
Re: Deeper changes in Marlin for Microdispensing
July 20, 2020 12:53PM
... I've done something very similar for my paste-jetters - [reprap.org]

To avoid most of the hassles, I've set the E1 step per mm value for the jetter to 1 and simply changing the E value in the G-code for a calculated "pulses_per_mm" representation.

So for a line from XY=0;0 to XY=30;0 with exactly 20 droplets per mm it's like sending:

T1
G0 X0.0 Y0.0
G1 X30.0 Y0.0 E60 F2000

Modified Pronterface too for some more "sophisticated" tasks like importing HPGL ad DXF vector files with different "pulse-rates" - or recalculating the droplets density - or such ... but this is a bit more complex smoking smiley


*** EDIT *** - her two samples of the jetter:

[www.youtube.com]

[www.youtube.com]

Edited 2 time(s). Last edit at 07/20/2020 12:58PM by VDX.


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Sorry, only registered users may post in this forum.

Click here to login