Giter Site home page Giter Site logo

configtool's Introduction

ConfigTool

This is the new version of the RepRapFirmware Configuration Tool. It is written in TypeScript using the Vue 3 and Bootstrap-Vue libraries.

Recommended IDE Setup

Vue recommends VSCode + Volar.

Type Support for .vue Imports in TS

TypeScript cannot handle type information for .vue imports by default, so we replace the tsc CLI with vue-tsc for type checking. In editors, we need Volar to make the TypeScript language service aware of .vue types.

If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a Take Over Mode that is more performant. You can enable it by the following steps:

  1. Disable the built-in TypeScript Extension
    1. Run Extensions: Show Built-in Extensions from VSCode's command palette
    2. Find TypeScript and JavaScript Language Features, right click and select Disable (Workspace)
  2. Reload the VSCode window by running Developer: Reload Window from the command palette.

Customize configuration

See Vite Configuration Reference.

Project Setup

npm install

Compile and Hot-Reload for Development

npm run dev

Type-Check, Compile and Minify for Production

npm run build

configtool's People

Contributors

bsilver8192 avatar chrishamm avatar loicgrenon avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

configtool's Issues

Comment regarding placement of zprobe

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.

[Feature requests] Upgrading firmware from 2.X to 3.X options

  1. 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.

  2. 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.

PT100 assignments on RRF Tool

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

I/O Mapping for Duet 3

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...

Defaults for Duet 2 WiFi, RRF 3, and Ender 3 have some issues.

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

PWM Control Channel (BLTouch only)

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

Export json from RRF to config tool

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)

Some bugs with latest update

Hi Guys,
I've just been playing with the new tool & found some problems that you may not be aware of.

  1. Network information is split between to & bottom of config page causing config loading problems.
  2. The Automatic power saving settings are also at the top of the page (no biggie) however after moving it down the bottom I found that I was still having trouble with Laser Filament Monitor setting that came after it. Once changing the single quote mark back to a quote all was good.

Keep up the great work.
Cheers,

Z Probe: Switch / add explicit option for inductive probes NO & NC

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?)

Dual Axis

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?

Hasownproperty

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":""}

overwiriting files with blank data is not useful

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.

Compensation/Grid spacing is limited to 42.5mm

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.

Configuration tool missing some items

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

M143: Max temperature for multiple heaters not generated in config.g

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

Endstops:Z-Probe:BLTouch

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
...

Issue setting config with duet 2 wifi and 3.0 and later

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

Change wording for M501 option?

<b-form-checkbox v-model="nvram" v-preset.left title="Load saved configuration parameters on start-up (M501)">Read config-override.g file at end of startup process</b-form-checkbox>

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

Closing quotation mark not present on password value in config.g

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.

capture

Add common thermistors

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

Orthogonal Axis Compensation

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.

Duet 3 SSR

PS_ON is not added to the heater option for an SSR. See "3-pin KK labeled PS_ON" in the Duet 3 manual.

Default Thermistor value

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.

Add option to create default directories

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.

Incorrect Homing Scripts for CoreXY and Delta

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

M669 K1 with Firmware 2.03 and newer

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

Default Z steps per mm

This has been changed for the cartesian printer geometry from 4000 to 400.
On corexy and corexz, the default is still 4000

CoreXY Sensorless Homing

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.

Z Homing is incorrectly set in Config.g

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.

Don't deploy BLTouch in bed.g

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

RRF3 Config without heated bed results in no heaters

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".

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.