Posts made by Gordon Lin
-
Using IO port on duet 6HC to simulate limit switch
Guys, my printer uses a 3Dchameleon filament system here to achieve multi-color prints:
https://www.3dchameleon.com/It works by using the hot end to physically bump a limit switch (and hold it down for a set amount of time) to tell the external controller what to do. I have always wanted to bypass physically bumping the limit switch by directly connecting my 6HC to the external controller, and use the 6HC to output the limit switch signal.
So for the sake of this example:
io7.out on 6HC connected to external controller
GND on 6HC connected to external controllerI was reading the documentation and I think I need to somehow use M950 to configure the pin then use M42 to set the pin high/low:
M950 P0 "io7.out"
M42 P0 S1Is this right? I can never fully understand the examples in the documentation.
Thanks for your help in advance
Gordon
-
RE: Timing/delay functions while setting a pin high/low
That will do the trick, thank you
-
Timing/delay functions while setting a pin high/low
Guys,
I am trying to add multicolor/multimaterial to my printer via the 3DChameleon add on here:
https://www.3dchameleon.com/It works by using the printer hotend to physically bump the provided end stop switch for a set amount of time to perform loading/unloading functions.
So instead of using the actual printer hotend to bump the provided switch, I though I can use my duet 6hc main board to directly simulate the switch output by toggling a pin high/low. The problem is I need relatively specific timings and I don't know how to do that.
For example, I need to: set pin 1 high for 3 seconds, then set it low for 2 seconds, then set it high for 4 seconds, then set it low---how do I do that?
I was looking at the Gcode meta commands documentation but I can't find much in the way of timings/delay, can you guys help.
Thanks in advance.
Kind regards,
Gordon
-
RE: bowden drive to direct drive set up, but how do I configure it?
@deckingman @Exerqtor @jens55 @OwenD I got it roughly configured and working----3 stepper motors on the bench and if I select T0, D0+D1 spins, if I select T1, D0+D2 spins. Thanks again for your help
the next part is to add icing on the cake, and this will be a filament Y splitter, with microswitch on all 3 paths + a bit of (maybe a lot of) conditional G code to make this idiot proof
I have attached my config.g here, hopefully this can serve as a starting point for someone
-
RE: bowden drive to direct drive set up, but how do I configure it?
guys, thank you for your input, I truly appreciate it.
I have ordered the extruders and will pick them up this avo...I will start experimenting / testing when I can (in a day or so) and will keep updating this thread to keep you guys in the loop
-
RE: bowden drive to direct drive set up, but how do I configure it?
@OwenD thanks for your input. that welding system is smart and interesting, quite logical if you ask me.
I am not Gcode wizard so I think I will stick with what I know best which is mechanical design----so I will keep it simple at first, build in slippage on the push extruder it is
-
RE: bowden drive to direct drive set up, but how do I configure it?
@deckingman wow, the math really puts it in perspective how little bit of difference really adds up
yeah, imma dial back the tension of the push extruders so they can push filament down but would slip if encountered "too much" resistance. How much is too much is yet to be determined.
I just thought of another way--------instead of using mechanical slippage by dialing back extruder pinch tension, we keep the pinch tension as normal, but artificially limit the extruder motor current to deliberately let the motor skip steps when necessary, like a "electrical slippage" to "take up the slack".
I assume deliberately making the extruder skipping steps won't harm the motor drivers? @dc42 any input/thoughts on this? Thank you for your time
-
RE: bowden drive to direct drive set up, but how do I configure it?
@jens55 all good, I understand the nature of all this, nothing is guaranteed---I proceed at ma own risk
-
RE: bowden drive to direct drive set up, but how do I configure it?
@jens55 thanks for your advice.
Yeah what you said is bang on. I think having some slippage on the Bowden extruders is a good thing---like you said, impossible to calibrate them 100% equal and over longs prints the difference will add up, and something has to give.
I was planning on splashing out to buy 3 x orbiter 2.0 extruders, in light of your advice I think I will stick with the current CW2 extruder as the main directive drive extruder, then use something cheap like this for the Bowden extruders.
what do you think?
-
RE: bowden drive to direct drive set up, but how do I configure it?
@Exerqtor Thank you for the advice.
I have only ever printed using 1 extruder at a time, but realized working out e-steps on paper based on gear ratio + datasheets of stepper motor only gets you in the ball park, where I still have to fine tune/calibrate by doing actual extrusion measurement tests like you described.
My initial plan is to have D0 (the original CW2 extruder for voron stealthburner) working in tandem with 2 x orbiter 2.0 extruders as D1 and D2, but since your suggestion, I now have more questions:
- in your opinion would it be easier to have D0 as orbiter 2.0 as well? I assume since we are calibrating e-steps it won't matter to have different extruders for D0, D1 and D2?
- I assume even the same brand and batch of extruders will have different e-steps? so I will calibrate e-steps for all 3?
- how close/accurate do I have to calibrate the e-steps to? currently for a single extruder I extrude 100mm of filament then cut it as consistently as possible and measure as best as possible, but maybe only to +/-0.25mm. I can see this being a problem if we have 2 extruders working in tandem over long prints. Any tips and tricks to calibrate more accurately?
Thank you again for your advice
-
RE: bowden drive to direct drive set up, but how do I configure it?
@deckingman Thanks! that does help a lot.
My mind set was stuck in only having 1 tool defined because the the printer only has 1 hot end, then it is just all wrong from there
What you described makes perfect sense and I am will give it a go from there.
Once again thank you
-
RE: bowden drive to direct drive set up, but how do I configure it?
@deckingman can you give some guidance? you are the mixing master right??
normally when printing with main filament, direct extruder 1 (DX1) and working in sync with bowden extruder 1 (BX1),
when changing filament----DX1 and BX1 working in sync to back up filament a certain amount
then DX1 and BX2 working in sync to push filament forward to load / print support materialI can set up 3 extruders in the config file, but for the life of me I can't figure out how to make DX1, BX1 and BX2 working together as described above.
Thanks for your help
-
bowden drive to direct drive set up, but how do I configure it?
guys I posted the same thing in the hardware section but have had no help, maybe I posted it in the wrong place, so here it is again:
Voron 2.4, with Revo hot end, duet 6hc + 3hc + raspberry pi
latest unstable versions of firmware + dwc version
(sorry but I am away from my printer so I will post my config file first thing tomorrow if necessary)
all of my prints are single-color only (not into multi-color prints)
I like the Revo system very much and would like to stick with it
had multiple printers that were Bowden driven, switched to direct drive, and would never look backGoal---to add the ability to print with second material (used for support) and remain direct drive.
I looked at the palette (too expensive, not reliable enough)
I looked at the ERCF (too finicky, too extreme)
I looked at the Prusa MMU2 (nope, just nope)This here perfectly describes the solution:
https://forum.duet3d.com/topic/12939/dual-color-direct-drive-switching-extruderwhen printing main material, direct drive motor is working in sync with Bowden motor 1 in push-pull
when printing support material, back up main material a certain amount, then direct drive motor is working in sync with Bowden motor 2 in push pullAny help/pointers is much much appreciated. I am looking through the duet documentation but I haven't found anything yet. Maybe @dc42 can point me the right way to look?
PS:
this here also perfectly matches my need, but it is klipper:
https://github.com/HelgeKeck/romethis here almost perfectly matches my need, also very interesting:
https://www.printables.com/model/436830-voron-stealthburner-taichi-bowden-assembly -
bowden drive to direct drive set up, but how do I configure it?
@JLink33 I wanted to send you a PM but I don't quite know how, so here it is
Voron 2.4, with Revo hot end, duet 6hc + 3hc + raspberry pi
latest unstable versions of firmware + dwc version
(sorry but I am away from my printer so I will post my config file first thing tomorrow if necessary)
all of my prints are single-color only (not into multi-color prints)
I like the Revo system very much and would like to stick with it
had multiple printers that were Bowden driven, switched to direct drive, and would never look backGoal---to add the ability to print with dedicated support material and remain direct drive.
I looked at the palette (too expensive, not reliable enough)
I looked at the ERCF (too finicky, too extreme)
I looked at the Prusa MMU2 (nope, just nope)This here perfectly describes the solution:
https://forum.duet3d.com/topic/12939/dual-color-direct-drive-switching-extruder
@JLink33 would you like to be a superhero and share your config file? what you did exactly matches my need and I would greatly appreciate your help and any extra info/tips you can provideDo you have a GitHub page for your above setup by any chance?
I assume to get this going properly there will be other macros / special slicer settings needed, would you mind sharing those as well?
If you would like some payment in exchange for your time/info I am more than happy to discuss further.
PS:
this here also perfectly matches my need, but it is klipper:
https://github.com/HelgeKeck/romethis here almost perfectly matches my need, also very interesting:
https://www.printables.com/model/436830-voron-stealthburner-taichi-bowden-assembly -
RE: Heater fault but print keeps going
@phaedrux hello, yes I am using a expansion board, and I am still on firmware 3.4.0beta1, I will upgrade now. here is my full config.
; Configuration file for Duet 3 (firmware version 3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.2.3 on Tue Jun 08 2021 13:20:30 GMT+1200 (New Zealand Standard Time); General preferences
G90 ; send absolute coordinates...
M83 ; ...but relative extruder moves
M550 P"Duet 3" ; set printer name
M669 K1 ; select CoreXY mode; Drives
M569 P0.0 S1 ; physical drive 0.0 goes forwards X
M569 P0.1 S1 ; physical drive 0.1 goes forwards YM569 P0.2 S1 ; physical drive 0.2 goes forwards Z0
M569 P0.3 S0 ; physical drive 0.2 goes forwards Z1
M569 P0.4 S1 ; physical drive 0.2 goes forwards Z2
M569 P0.5 S0 ; physical drive 0.2 goes forwards Z3M569 P1.0 S1 ; physical drive 1.0 goes forwards Extruder
M584 X0.0 Y0.1 Z0.2:0.3:0.4:0.5 E1.0 ; set drive mapping
M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
M92 X80.00 Y80.00 Z400.00 E429 ; set steps per mm
M566 X900.00 Y900.00 Z60.00 E120 ; set maximum instantaneous speed changes (mm/min)
M203 X18000.00 Y18000.00 Z3000 E15000 ; set maximum speeds (mm/min)
M201 X2000 Y2000 Z250 E1800 ; set accelerations (mm/s^2)
M204 P1500 T2000
M906 X1200 Y1200 Z1000 E1000 I30 ; set motor currents (mA) and motor idle factor in per cent
M84 S30 ; Set idle timeout; Axis Limits
M208 X0 Y0 Z0 S1 ; set axis minima
M208 X350 Y355 Z280 S0 ; set axis maxima; Endstops
M574 X2 S1 P"^io1.in" ; configure active-high endstop for high end on X via pin !^io1.in
M574 Y2 S1 P"^io2.in" ; configure active-high endstop for high end on Y via pin !^io2.in
M574 Z0 S1 P"nil"; Z-Probe
M558 K0 P8 C"^io4.in" T18000 F120 H5 A5 S0.01 R0.2
G31 K0 P500 X0 Y23.5 Z1.822 ; Don't really care about inductive probe Z offset
M558 K1 P8 C"^io3.in" T18000 F120 H2 A10 S0.005 R0.2
G31 K1 P500 X0 Y0 Z0.70 ; Z switch offset (if positive, greater value = lower nozzle. if negative, more negative = higher nozzle)
;at 60°C Z=0. at 100°C Z = ; at 70° Z = 0.70
M671 X-58:-58:420:420 Y0:421:421:0 S10
M557 X25:325 Y25:325 S25 ; define mesh grid; Heaters
M308 S0 A"Bed heater" P"temp0" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin temp0
M308 S2 A"Bed plate" P"temp1" Y"thermistor" T100000 B4725 C7.06e-8
M950 H0 C"out1" T2 ; create bed heater output on out1 and map it to sensor 2
M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
M140 P0 H0 ; map heated bed to heater 1M143 H0 P1 T0 A2 S115 C0
M143 H0 P2 T2 A1 S110 C0M143 H0 S110 ; set temperature limit for heater 1 to 110C
M308 S1 A"Hotend" P"1.temp0" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as PT1000 on pin 1.temp0
M950 H1 C"1.out0" T1 ; create nozzle heater output on 1.out0 and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M143 H1 S350 ; set temperature limit for heater 0 to 350C; Fans
M950 F0 C"1.out6" Q250 ; create fan 0 on pin 1.out6 and set its frequency
M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"1.out7" Q20 ; create fan 1 on pin 1.out7 and set its frequency
M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned onM308 S3 Y"mcu-temp" A"MCU"
M308 S4 Y"drivers" A"DIVERS"M950 F2 C"out7" Q30
M950 F3 C"out8" Q30
M106 P2 S1 H3:4 T50 C"MCU"
M106 P3 S1 H3:4 T50 C"MCU"; Tools
M563 P0 S"Hotend" D0 H1 F0 ; define tool 0
G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C; Custom settings are not defined
; Miscellaneous
M575 P1 S1 B57600 ; enable support for PanelDue
M501 ; load saved parameters from non-volatile memory
M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
T0 ; select first toolM572 D0 S0.075 ; Pressure Advance PLA 0.075 PETG 0.2
M592 D0 A0.015 B0.0012 L0.2 ; Non-linear extrusion
M376 H10 ; Fade mesh out compensation over 10mm Z -
Heater fault but print keeps going
Guys,
My printer is showing heater fault, it turns off the heater BUT the print keeps going, until the hot end is too cold then it jams.
One would assume if a fault is detected then it would pause the print? If I pause the print using the panel it does work.
Any ideas?
12/6/2021, 9:51:35 AM M122
=== Diagnostics ===
RepRapFirmware for Duet 3 MB6HC version 3.4.0beta1 (2021-07-10 16:20:28) running on Duet 3 MB6HC v1.01 or later (SBC mode)
Board ID: 08DJM-956L2-G43S8-6JKDJ-3S86J-983AF
Used output buffers: 2 of 40 (13 max)
=== RTOS ===
Static ram: 150904
Dynamic ram: 62832 of which 192 recycled
Never used RAM 137408, free system stack 142 words
Tasks: SBC(ready,1.9%,324) HEAT(delaying,0.0%,203) Move(notifyWait,0.1%,254) CanReceiv(notifyWait,0.0%,774) CanSender(notifyWait,0.0%,366) CanClock(delaying,0.0%,339) TMC(notifyWait,20.5%,59) MAIN(running,77.3%,922) IDLE(ready,0.1%,29), total 100.0%
Owned mutexes: HTTP(MAIN)
=== Platform ===
Last reset 02:36:18 ago, cause: power up
Last software reset details not available
Error status: 0x00
Aux0 errors 0,0,0
Step timer max interval 164
MCU temperature: min 29.7, current 49.7, max 50.2
Supply voltage: min 23.9, current 24.0, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes
12V rail voltage: min 12.0, current 12.1, max 12.1, under voltage events: 0
Heap OK, handles allocated/used 99/1, heap memory allocated/used/recyclable 2048/118/106, gc cycles 0
Driver 0: position 28800, standstill, reads 19089, writes 21 timeouts 0, SG min/max 0/1023
Driver 1: position 20000, standstill, reads 19089, writes 21 timeouts 0, SG min/max 0/1023
Driver 2: position 2578, standstill, reads 19089, writes 21 timeouts 0, SG min/max 0/1023
Driver 3: position 0, standstill, reads 19089, writes 21 timeouts 0, SG min/max 0/1023
Driver 4: position 0, standstill, reads 19089, writes 21 timeouts 0, SG min/max 0/1023
Driver 5: position 0, standstill, reads 19089, writes 21 timeouts 0, SG min/max 0/1023
Date/time: 2021-12-05 20:51:33
Slowest loop: 80.06ms; fastest: 0.03ms
=== Storage ===
Free file entries: 10
SD card 0 not detected, interface speed: 37.5MBytes/sec
SD card longest read time 0.0ms, write time 0.0ms, max retries 0
=== Move ===
DMs created 125, maxWait 774590ms, bed compensation in use: mesh, comp offset 0.014
=== MainDDARing ===
Scheduled moves 9388, completed moves 9388, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 49], CDDA state -1
=== AuxDDARing ===
Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
=== Heat ===
Bed heaters = 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamberHeaters = -1 -1 -1 -1
Heater 0 is on, I-accum = 0.1
=== GCodes ===
Segments left: 0
Movement lock held by null
HTTP* is doing "M122" in state(s) 0
Telnet is idle in state(s) 0
File* is idle in state(s) 0
USB is idle in state(s) 0
Aux is idle in state(s) 0
Trigger* is idle in state(s) 0
Queue* is idle in state(s) 0
LCD is idle in state(s) 0
SBC is idle in state(s) 0
Daemon is idle in state(s) 0
Aux2 is idle in state(s) 0
Autopause is idle in state(s) 0
Code queue is empty.
=== CAN ===
Messages queued 93586, received 112391, lost 0, longest wait 1ms for reply type 6018, peak Tx sync delay 455, free buffers 48 (min 45), ts 46891/46890/0
Tx timeouts 0,0,0,0,0,0
=== SBC interface ===
State: 4, failed transfers: 1, checksum errors: 0
Last transfer: 3ms ago
RX/TX seq numbers: 37629/37629
SPI underruns 0, overruns 0
Disconnects: 0, timeouts: 0, IAP RAM available 0x2c778
Buffer RX/TX: 0/0-0
=== Duet Control Server ===
Duet Control Server v3.4-b1
Code buffer space: 4096
Configured SPI speed: 8000000Hz
Full transfers per second: 28.39, max wait times: 81.2ms/0.0ms
Codes per second: 0.35
Maximum length of RX/TX data transfers: 5052/1664
File /opt/dsf/sd/gcodes/extreme.gcode is selected, pausedThanks for your help.
Gordon