duet3d / configtool Goto Github PK
View Code? Open in Web Editor NEWOfficial RepRapFirmware Configuration Tool
Official RepRapFirmware Configuration Tool
Substitute endstop types "Active low" and "Active high" with "Switch" - or - remove the invert options from the endstop pin list on the IO Mapping page. That's because M574 S0 is no longer supported
There's no option to assign more than one driver motor/pin per axis? ie. 4 motor for Z axis.
Would be nice if the Add Driver button open more assign options than just more E motors...
Having M98 Pdeployprobe.g in bed.g causes the BLTouch to slam into the side of the bed at start because it deploys at home, which on mine and I'm sure at least some other printers is z < 0. G29 already deploys the probe when it gets in position so this isn't necessary.
If removing this causes problems for other configurations a checkbox at least would be helpful since this issue causes damage to the BLTouch.
Duet 2 Wifi fw1.21
Isn't the M143 command supposed to be generated for every heaters created?
For example,
Heater 0 - Bed Heater
Heater 1 - Hotend Heater
Heater 2 - Chamber Heater
With these 3 heaters configured, shouldn't there be a M143 Hx Sxxx command for every heater?
The config only generate M143 for the first heater, and not the rest.
M308 S0 P"bedtemp" Y"thermistor" T100000 B3950 ; configure sensor 0 as thermistor on pin bedtemp
M950 H0 C"bedheat" T0 ; create bed heater output on bedheat and map it to sensor 0
M307 H0 B0 S1.00 ; disable bang-bang mode for the bed heater and set PWM limit
M140 H0 ; map heated bed to heater 0
M143 H0 S150 ; set temperature limit for heater 0 to 150C
M308 S1 P"e1temp" Y"thermistor" T100000 B4725 C7.06e-8 ; configure sensor 1 as thermistor on pin e1temp
M950 H1 C"e1heat" T1 ; create nozzle heater output on e1heat and map it to sensor 1
M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
M308 S2 P"spi.cs1" Y"rtd-max31865" ; configure sensor 2 as thermocouple via CS pin spi.cs1
M950 H2 C"e0heat" T2 ; create chamber heater output on e0heat and map it to sensor 2
M307 H2 B1 S1.00 ; enable bang-bang mode for the chamber heater and set PWM limit
M141 H2 ; map chamber to heater 2
GitHub does not allow assets to be downloaded from third-party websites due to CORS restrictions. We will need to mirror releases from RRF and DWC automatically on the configtool webspace.
Even though M557 has no such limitation.
In fact, it would be probably better to have number of points by axis configuration, then the tool could calculate the spacing. At least that's how I'm doing it manually: set up limits, and choose a spacing which results 4 points per axis.
Hi there,
If you try to configure a printer without a heated bed with RRF v3, when you click the "remove heater" button under "I/O Mapping" to remove one of the heaters, if you then try to change the type to "Nozzle", all heaters will be removed. If you try to add another one back in, if you go to the "Fans" page, you are unable to set thermostatic control to E0 - it will still say "Bed". If you go to "Tools", it will have "n/a" under "Heaters".
ConfigTool/src/views/General.vue
Line 40 in e8e4294
Could this include a note to indicate its an EEPROM replacement for the uninitiated user coming from marlin/repeteir?
As well as a general discussion on weather or not it could be default to on? I'd think a user who knows he doesn't need it is more likely to uncheck the box than a user who doesn't know he needs it is likely to check the box?
Triggered by https://forum.duet3d.com/topic/17680/rrf-makes-me-feel-stupid-rant-just-ignore-me
Marlin has a few hundreds configure files for popular machines. Is it possible to load value from those configure file automatically?
Marlin configuration repo:
https://github.com/MarlinFirmware/Configurations
The tool didn't have an option to enable PanelDue as noted in Duet3D's documentation with RRF3 selected in general settings and
in config.g
M575 P1 S1 B57600
is needed to enable a PanelDue. Perhaps a checkbox in the general settings would be quite helpful.
Normally Open switch end stops option is no longer present. Per Duet3D's documentation the config just needs a '!' before the pin name. For e.g., change
M574 X1 S1 P"xstop"
to
M574 X1 S1 P"!xstop"
Would be nice to see the Normally Open switch buttons from 2.x config. Thanks for looking.
I have an issue trying to use an existing json file.
I get the following error:
Error: The specified file could not be read!
Type Error: Cannot read property 'hasOwnProperty' of null
Here is my json file:
{"board":"duetwifi10","expansion_boards":[],"firmware":2.03,"standalone":true,"nvram":false,"auto_save":{"enabled":false,"save_threshold":10,"resume_threshold":11,"gcodes_to_run":"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000"},"display":{"type":0,"encoder_steps":4,"spi_frequency":2000000,"menus":[{"name":"main","value":""}],"images":[]},"geometry":{"type":"cartesian","mins":[0,0,0],"maxes":[250,290,200],"delta_radius":105.6,"homed_height":250,"low_dive_height":false,"max_carriage_travel":260,"print_radius":85,"rod_length":215,"z_min":0},"drives":[{"direction":1,"microstepping":16,"microstepping_interpolation":true,"steps_per_mm":100,"instant_dv":15,"max_speed":200,"acceleration":1000,"current":800,"driver":0,"driver_v3":"0.0","endstop_pin":"xstop","endstop_type":2,"endstop_location":1},{"direction":1,"microstepping":16,"microstepping_interpolation":true,"steps_per_mm":100,"instant_dv":15,"max_speed":200,"acceleration":1000,"current":800,"driver":2,"driver_v3":"0.1","endstop_pin":"ystop","endstop_type":2,"endstop_location":2},{"direction":1,"microstepping":16,"microstepping_interpolation":true,"steps_per_mm":1080,"instant_dv":0.2,"max_speed":3,"acceleration":20,"current":800,"driver":1,"driver_v3":"0.2","endstop_pin":null,"endstop":null,"endstop_type":2,"endstop_location":1},{"direction":1,"microstepping":16,"microstepping_interpolation":true,"steps_per_mm":92.59,"instant_dv":2,"max_speed":50,"acceleration":250,"current":1600,"driver":3,"driver_v3":"0.3"},{"direction":1,"microstepping":16,"microstepping_interpolation":true,"steps_per_mm":92.59,"instant_dv":2,"max_speed":50,"acceleration":250,"current":1600,"driver":4,"driver_v3":"0.3"}],"idle":{"used":true,"factor":50,"timeout":30},"homing_speed_fast":30,"homing_speed_slow":6,"travel_speed":100,"z_dive_height":5,"slow_homing":false,"probe":{"type":"noprobe","recovery_time":0.4,"trigger_height":2.5,"trigger_value":500,"x_offset":0,"y_offset":0,"speed":2,"deploy":false,"points":[],"pwm_channel":3,"pwm_inverted":true,"pwm_pin":null,"input_pin":"zprobe.in","modulation_pin":"zprobe.mod"},"bed_is_nozzle":false,"bed":{"present":false,"use_pid":false,"heater":0},"chamber":{"present":false,"use_pid":false,"heater":2},"heaters":[null,{"temp_limit":280,"scale_factor":100,"series":4700,"thermistor":100000,"beta":4785,"a":0.0005717725,"b":0.0002416626,"c":1.300767e-7,"channel":1,"sensor":1,"output_pin":"e0heat","sensor_type":"thermistor","sensor_pin":"e0temp"},{"temp_limit":280,"scale_factor":100,"series":4700,"thermistor":100000,"beta":4785,"a":0.0005717725,"b":0.0002416626,"c":1.300767e-7,"channel":2,"sensor":1,"output_pin":null,"sensor_type":null,"sensor_pin":null}],"num_nozzles":2,"toolchange_wait_for_temperatures":true,"generate_t_code":false,"tools":[{"mix_ratio":[],"number":0,"name":"","extruders":[0],"heaters":[1],"fans":[],"x_offset":0,"y_offset":0,"z_offset":0},{"mix_ratio":[],"number":1,"name":"","extruders":[1],"heaters":[2],"fans":[],"x_offset":0,"y_offset":0,"z_offset":0}],"compensation_x_offset":15,"compensation_y_offset":15,"peripheral_points":3,"halfway_points":3,"calibration_factors":6,"probe_radius":85,"mesh":{"x_min":15,"x_max":180,"y_min":15,"y_max":180,"radius":85,"spacing":20},"home_first":false,"orthogonal":{"compensation":false,"height":50,"deviations":[0,0,0]},"network":{"enabled":true,"mac_address":"","name":"Zombie CubeX","password":"","ssid":"","ssid_password":"","dhcp":true,"ip":"192.168.1.20","netmask":"255.255.255.0","gateway":"192.168.1.254","protocols":{"http":true,"ftp":false,"telnet":false}},"fans":[{"name":"","value":100,"inverted":false,"frequency":500,"thermostatic":false,"heaters":[1,2],"trigger_temperature":45,"output_pin":"fan0"},{"name":"","value":100,"inverted":false,"frequency":500,"thermostatic":true,"heaters":[2,1],"trigger_temperature":45,"output_pin":"fan1"},{"name":"","value":100,"inverted":false,"frequency":500,"thermostatic":true,"heaters":[0,1,2],"trigger_temperature":45,"output_pin":null}],"custom_settings":""}
Unclear when using multistart leadscrew like the recently popular TR8x2 where the pitch is not the same as the lead
Ref https://forum.duet3d.com/topic/17856/rrf-configurator-is-it-pitch-or-lead
Either clarify to use lead for multi start screws or add options that takes both pitch and lead?
Issue 1 is the default Z drive endstop pin is set to (not assigned) in the tool, this should be zstop.
Issue 2 Unknown config issue is causing a bed heater fault.
Attaching the config generated using the default settings (except for fixing issue 1 which was obvious to me) in hopes that someone can also tell me what is wrong with the bed heater settings.
config (1).zip
The current tool does not generate home*.g scripts that are useful for sensorless homing of a CoreXY printer (and probably any printer, but I can't test that at this time).
Example working homex.g
M400 ; wait til stuff stops
M913 X50 Y50 ; drop motor currents to 50%
M201 X1000 Y1000 ; reduce acceleration on X/Y to stop false triggers
M915 X Y S7 R0 F0 H400 ; both motors because corexy; Sensitivity 7, don’t take action, don’t filter, 400steps/sec
G91 ; set relative
G1 Z5 F1200 H2
G1 H1 X-300 F4000 ; move left 300mm, stopping at the endstop
G1 X10 F1200 ; move away from end
G1 Z-5 F1200 H2
G90 ; back to absolute positioning
M400 ; wait again
M913 X100 Y100 ; motor currents back to 100%
M201 X3500 Y3500 ; accel back to original
Y is basically the same but using Y- on the H1 instead of X-.
I understand it might be hard to template out all possibilities, but would it be possible to add a toggle to not generate them in the zip, and override what I have made when updating something. Or potentially allow for storing of custom scripts (or even templates?) in the json file so I can paste them into a box, like the custom settings at the end and have them correct every time?
It would also be useful to add the M915 to the config.g
when sensorless is picked, but that's easy enough in the custom config part if you don't want to have to support it. The note with the wiki link is totally reasonable.
Failed to generate file config.g:
ReferenceError: ejs:21
19| <% }
20| } else { -%>
21| M669 K<%- sParam %> ; select CoreXY mode
22| <% }
23| if (template.display.type) { -%>
24| M918 P<%- template.display.type %> E<%- template.display.encoder_steps + ((template.firmware >= 2.03) ?F${template.display.spi_frequency}
: '') %> ; configure direct-connect display
sParam is not defined
Add an option to the last page asking the user if theyt want to create the default directories. If yes, generate runonce.g
and invoke M470
for missing directories.
The new firmware 2.03 is out, and some changes on GCODE are introduced : https://github.com/dc42/RepRapFirmware/blob/dev/WHATS_NEW.md
The configurator need to be updated, if possible.
This has been changed for the cartesian printer geometry from 4000 to 400.
On corexy and corexz, the default is still 4000
The config generates H2 G1 movements for delta and corexy.
this is incorrect as H2 only moves one motor.
e.g
Homedelta
G1 H2 Z-5 F6000 ; move down a few mm so that the nozzle can be centred
This will move only the z motor on a delta.
CoreXY
homex
G1 H2 X-5 F6000 ; go back a few mm
this wil move x and y on a corexy machine
i would sugget to only use H2 on a cartesian machine
Not sure if this actually affects how the machine reads the password value, but I noticed in the config.g files I generated there is a colon at the end of the password instead of a closing quotation mark.
I found the issue in the source code on line 23 of the config.ejs file. Just a little thing, but I saw it, and thought I would let you know.
Hello,
it looks like the definition of the fan out pins is incorrect, it should be out3 to out8.
ConfigTool/src/store/ExpansionBoards.js
Line 37 in e516188
Please take a look at https://duet3d.dozuki.com/Wiki/Duet_3_Expansion_3HC_Wiring_Diagram
Can you change this, please.
Thanks, Benjamin
For a delta printer in the compensation tab the calibration factors
3,6,10,12 are available.
for a delta according to
https://duet3d.dozuki.com/Wiki/Calibrating_a_delta_printer
it should be
4,6,7,8,9
and the default should be 6
A lot of people do not realize that they need to configure the thermistor value.
With the default B4138 and T100k at room temperature it looks like everything is working.
I would suggest that the user has to actively enter a value here with no default forcing them to think about it.
I make changes to stop.g and the tool decides it's going to build a new empty file and there appears to be no way to have stop.g omitted from the zip dump I import into a duet board.
There needs to be an initial reference mode and an update mode where empty files are not built in update mode.
Only using a home switch for my Z axis. The output config.g file incorrectly references the Z axis homing method in each of the call outs (z home Active low / disabled, Active High, Probe, current stall detection) so that the one I want gets stomped on by each of the configurations that follow incorrectly. Manually editing the config.g and removing the Z1 reference from each of the follow on homing options corrects the problem and prevents my bed from crashing into the print heads.
Same as issue #38 RRF Configurator does not create an inverted entry to config.g when inverted pin is selected in configurator
No addon boards.
Board: Duet 2 Ethernet (2Ethernet)
Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 3.1.1 (2020-05-19b2)
Only the duex pwm pins can be selected.
Hello together!
I am new und this is my first time with Reprap Firmware.
Currently i am building my first own Hypercube Evolution with a Duet 2 Wifi Board.
I have read in the Duet3d Documentation that with Firmware 2.03 and newer i have to set M669 K1 in config,g instead M669 S1 for my Hypercube Evolution CoreXY Printer.
Because i am new i want to use the RepRap Configuration Tool to build my first Base Config.
But now i have seen that in the config.g file from the configurator stands M669 S1 and not K1.
But i have choosen Firmware 2.03 and new in the Step before.
Is this a Bug or a mistake from me because i am new ?
Here is a link to the Site from Duet3D
https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter
Create compatible json output from RRF/DWC for import into Configuration Tool. Not currently possible, but "when the new DSF OM is final (including sensors etc) this may be a good idea though" (from @chrishamm)
PS_ON is not added to the heater option for an SSR. See "3-pin KK labeled PS_ON" in the Duet 3 manual.
I am building out my Ender 5+ (w/Chimera+) with a Duet3 board. When I attempt to config the PT100 Sensors it only give me the option for spi.cs1 -spi.cs4. I would only get 2000 degrees on my 1st sensor. I manually changed the config.g to spi.cs0 for 1st pt100 and spi.cs1 for the second pt100 now both sensors register temp.
So the RRF Config Tool needs to start with spi.cs0 not spi.cs1.
Aloha
Mike
Hi Guys,
I've just been playing with the new tool & found some problems that you may not be aware of.
Keep up the great work.
Cheers,
Finishing a Hypercube Evolution build, would be useful to have a generic Hypercube preset to use as a base.
Is that a bug or is it by purpose?
Please allow RRF Configurator to account for filament sensor including pause print and resume
IMO inductive probes a quite common - it would be nice to directly list them so people don't have to think about what to pick instead (switch? unmodulated?). Similar as you already have it for endstops (active high, NO, NC, ...)
Also, does it make sense to have a trigger value for simple switches? Sure, RRF needs to be configured with something (or does it?)
Ref: https://forum.duet3d.com/topic/13409/large-core-homing-issue/6
CoreXY setup, RRF 2.03-2.05 and RRF 3 setting, Duet WiFi, RRF Config 2.1.4 produces homeall.g and homez.g with G1 H2 move following homing of X and Y:
G90 ; absolute positioning
G1 H2 X15 Y15 F6000 ; go to first bed probe point and home Z
G30 ; home Z by probing the bed
On CoreXY, H2 pure move of X and Y positively cause no Y move, only X. Remove H2, it's not needed.
Ian
I have a 3 in 1 hotend that have 3 heaters and 1 sensor
which means, I must configure more than one sensor on the same sensor.
an we include the most common Marlin Thermistors Tables in the Reprap Configurator?
https://github.com/MarlinFirmware/Marlin/tree/bugfix-2.0.x/Marlin/src/module/thermistor
i.e.
Thermistor 1 - EPCOS 100k - // R25 = 100 kOhm, beta25 = 4092 K, 4.7 kOhm pull-up, bed thermistor
Thermistor 5 - ATC Semitec 104GT-2 Already there
Thermistor 11 - 100k beta 3950 1% thermistor (4.7k pullup) // R25 = 100 kOhm, beta25 = 3950 K, 4.7 kOhm pull-up, QU-BD silicone bed QWG-104F-3950 thermistor
Thermistor 13 - 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE" // R25 = 100 kOhm, beta25 = 4100 K, 4.7 kOhm pull-up, Hisens thermistor
Add support for multiple bed/chamber heaters
Selecting BLTouch will not cause deployprobe.g and retractprobe.g to be generated
On the endstop configuration page, the comment
This switch must be connected to the Z probe terminal and not to the Z endstop switch terminal!
Is shown when selecting an endstop.
For the Duet 2/maestro, this comment is not applicable to RRF3 as the zstop could also be used.
This comment is also displayed for the duet 3 which does not have a dedicated zprobe header.
If a PWM Channel on the Duex X is chosen for the BLTouch servo channel it will still write the last chosen heater channel to the config.g deployprobe.g and retractprobe.g including the invert signal option
example:
config.g
...
M307 H3 A-1 C-1 D-1 instead of M307 H7 A-1 C-1 D-1
....
deployprobe.g
...
M280 P3 S10 I1 ; deploy BLTouch instead of M280 P7 S10 ; deploy BLTouch
...
Seem this should be using double quotes?
The default CAN address for the tool board is 121, not 1. This needs to be configurable, sinnce you might have more than one.
When you enable "Orthogonal Axis Compensation" and change "Measured Height" to any value different of 50 (example 81), later when finish the process, the result in the file config.g was M556 S50 (does not change the value from 50 to 81). Sorry for my English. Thanks.
Its a very handy tool, but a few important points.
Whats missing is being able to add multiple X,Y or Z motors and map them to a axis.
Adding a motor always seems to add it as a extruder motor not a axis motor.
This always becomes confusing when using a expansion board.
thanks
Config tool: M563 P0 D0 H1 F-1 ; define tool 0
That F-1 needs to be F0
Hi all,
With Probe BLTouch is not posible select "exp.heaterX" (X=3,4,5,6 or 7) on "PWM Control Channel (BLTouch only)", only permit select duetx.pwmX (X=1,2,3,4 or 5).
Thanks
Hi there,
i would like to use a dual z axis with dual endstops. how would i need to proceed.
it wont let me swap extruder 1 to be second Z axis.
is that something you will be adding?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.