Cannot understand web page for Machine Properties
-
Hi,
Thanks for the feedback.
I verified that the web page is reporting those exact version numbers you posted.
The printer works fine. It only has a single extruder and it is working.
In the "Machine Properties" section the display of "Motor Current" is supposed to report the configured values. Yes? No?
Thanks.
Frederick
-
@wilriker said in Cannot understand web page for Machine Properties:
I can only say that the information must come from a different request because in this response there is no information that is displayed on the Machine Properties tab.
Sadly, I can't tell you what the correct request looks like because I am not at my desktop right now.
I'm pretty sure I did what you asked. Just out of curiosity what exactly I am doing?
I will do it again and double check the steps.
Thanks.
Frederick
-
@fcwilt I'm sorry, I have poorly worded my reply. You did exactly what @Danal asked you.
So, DWC does various requests in the background to your Duet to display or update the information you see in your browser. There two types of requests that happen in the interval you can set on the Settings tab. First a shorter one that does only contain values that change often e.g. current temperature or position of the head. And it will do a more extensive request every 10th update. This will also contain values that change not so often like min and max MCU temp.
You did the latter request by hand and posted the results here.
But neither of these two request types contain information like acceleration or jerk settings. I checked both the response you posted as well as what @Danal posted. Hence, the information displayed in the Machine Properties tab must at least partially come from a third request type (DWC does have even more types).
Since you need a desktop browser to find out and I am still not near my PC which request you need to go instead to get the information that DWC uses to display these wrong values.
One last thing: the latest DWC version is 1.22.
@chrishamm said in Duet Web Control wishlist notes and priorities:
So I've just released v1.22 of the web interface, see https://github.com/chrishamm/DuetWebControl/releases/tag/1.22 for the ZIP bundle and the full change log since the last stable version.
-
Thanks for the feedback.
I will start by trying the most recent version of DWC that you listed.
Perhaps that will help.
Frederick
-
@danal said in Cannot understand web page for Machine Properties:
Please use a browser to send:
http://192.168.86.100/rr_connect?password=
Filling in the correct IP or name for your printer, and a password if required.Then send
http://192.168.86.100/rr_status?type=2
and post the results here, something like:
{"status":"I","coords":{"axesHomed":[1,1,1],"xyz":[0.000,0.000,621.927],"machine":[0.000,0.000,621.927],"extr":[85912.7]},"currentTool":0,"params":{"atxPower":0,"fanPercent":[0,100,0,0,0,0,0,0,0],"speedFactor":100.0,"extrFactors":[100.0],"babystep":0.000},"seq":40,"sensors":{"probeValue":0,"fanRPM":0},"temps":{"bed":{"current":21.3,"active":0.0,"state":2,"heater":0},"current":[21.3,20.4,2000.0,2000.0,2000.0,2000.0,2000.0,2000.0],"state":[2,2,0,0,0,0,0,0],"heads":{"current":[20.4],"active":[0.0],"standby":[0.0],"state":[2]},"tools":{"active":[[0.0]],"standby":[[0.0]]},"extra":[{"name":"MCU","temp":35.1}]},"time":591647.0,"coldExtrudeTemp":160.0,"coldRetractTemp":90.0,"controllableFans":5,"tempLimit":290.0,"endstops":4088,"firmwareName":"RepRapFirmware for Duet 2 WiFi/Ethernet","geometry":"delta","axes":3,"axisNames":"XYZ","volumes":2,"mountedVolumes":1,"name":"Danal's BFD","probe":{"threshold":100,"height":-0.10,"type":5},"tools":[{"number":0,"heaters":[1],"drives":[0],"axisMap":[[0],[1]],"fans":1,"filament":"","offsets":[0.00,0.00,0.00]}],"mcutemp":{"min":30.8,"cur":35.1,"max":38.0},"vin":{"min":24.8,"cur":25.0,"max":25.3}}
I think you need type=3 to get the motor currents, not type=2. Sending M408 S5 from the GCode console returns the same data.
-
@dc42 I just checked and it will call http://192.168.178.22/rr_config for the configuration/properties including currents.
EDIT: type=3 gives you print status
-
Hi,
So how do I interpret this:
"currents":[800.00, 800.00, 800.00, 0.00, 1100.00, 0.00, 0.00, 0.00, 0.00, 800.00, 800.00, 0.00]
There seem to be 12 values reported but there are only 10 possible drives (I use a Duex5).
I have two Y axis motors and they are assigned to drives 8 and 9 on the Duex5.
Other than that X is 0, Z is 2 and E0 is 3.
I assigned drives 1, 4, 5, 6, 7 to axis U since I am under the impression they need to be assigned to something.
The printer prints fine but perhaps they way I have assigned things is messing with the way the current values are reported?
Thanks.
Frederick
-
You don't need to assign unused drives to anything.
The list of currents is the axus current followed by the extruder currents. As you have created a U axis, you have 4 axes. So the order of currents in that report is: X Y Z U E0 E1 E2 E3 E4 E5 E6 E7. Looks like the second extruder current hasn't been set. Check it by running M906 without parameters.
-
@dc42 said in Cannot understand web page for Machine Properties:
You don't need to assign unused drives to anything.
The list of currents is the axus current followed by the extruder currents. As you have created a U axis, you have 4 axes. So the order of currents in that report is: X Y Z U E0 E1 E2 E3 E4 E5 E6 E7. Looks like the second extruder current hasn't been set. Check it by running M906 without parameters.
Thank you for the reply and the education.
I had been using this M584 X0 Y8:9 Z2 E3 U1:4:5:6:7 P3 but the web display was showing the wrong current for E3
Before reading your post I had changed to this M584 X0 Y8:9 Z2 E3:1:4:5:6:7 and the web display was now correct.
Now knowing that unused drives need NOT be assigned I changed to this: M584 X0 Y8:9 Z2 E3 and the web display is correct.
I also assigned some unique values for current so they would stand out: X=801, Y=802:803, Z=804, E=930
I used Y=802:803 because I have two motors but I don't know if entering two current values is allowed - not that it makes sense.
Now the result of rr_config is:
"currents":[801.00,802.00,804.00,930.00,0.00,0.00,0.00,0.00,802.00,802.00,0.00,0.00]
Clearly the first four are X, Y, Z, E3 but what are the last four (802, 802, 0, 0)?
In any case it seems that web display was "confused" by my odd settings.
Thanks again.
Frederick
-
Hi,
I'm pretty sure there is a problem with the display of Machine Properties in DWC.
Using:
M584 X0 Y8:9 Z2 U4 V5 E3:1:6:7
M906 X801 Y808 Z802 U804 V805
M906 E903:901:906:907In the "Machine Status" section of the web display all the axes are shown correctly.
But in the "Machine Properties" the display is wrong.
In this test case U appears as E0 and V appears as E1.
The first actual extruder (E3) appears as E2.
Just FYI for whoever handles these sorts of issues.
Frederick
-
@fcwilt said in Cannot understand web page for Machine Properties:
Hi,
I'm pretty sure there is a problem with the display of Machine Properties in DWC.
Using:
M584 X0 Y8:9 Z2 U4 V5 E3:1:6:7
M906 X801 Y808 Z802 U804 V805
M906 E903:901:906:907In the "Machine Status" section of the web display all the axes are shown correctly.
But in the "Machine Properties" the display is wrong.
In this test case U appears as E0 and V appears as E1.
The first actual extruder (E3) appears as E2.
Just FYI for whoever handles these sorts of issues.
Frederick
Yes, I have exactly the same. E0 and E1 have the speed, acceleration and current values associated with the U and V axes (which aren't shown at all).
EDIT. That's with Chris Ham's 1.22 final.
-
@deckingman said in Cannot understand web page for Machine Properties:
Yes, I have exactly the same. E0 and E1 have the speed, acceleration and current values associated with the U and V axes (which aren't shown at all).
EDIT. That's with Chris Ham's 1.22 final.
Glad to see it verified. Sometimes I think I'm the only one who has these issues.
Frederick
-
DC42:
DWC (latest release) is looking for JSON keys minFeedrates, maxFeedrates, and accelerations to populate the rows that are wrong in some people's Machine Properties.
Keeping in mind that DWC sort of "merges" JSON responses and the things that it saves across sessions, andc complicating things further, DWC used to save things to browser local storage and now saves them to a file in /sys on the Duet to which it is connected at that moment... I speculate that old information in the session store is the ONLY reason anyone's rows are correct. (I have not exhaustively researched this).
Anyway, minFeedrates, maxfeedrates, and accelerations DO NOT occur in any of the (current release) RepRap responses to RR_STATUS. None of Type 1, 2, or 3 (which are the only three DWC ever calls) return these keys.
M408 S5 uses "getConfigResponse" buffer layout for S5, and this DOES contain these keys.
I speculate that the other buffer layouts, the buffers GetLegacyStatusResponse and/or GetStatusResponse, the buffer layouts that are used for both RR_STATUS and various M408 S1 through S4, might have contained these keys in the past. I'm not quite a github wizard enough to prove that either way. Most likely the GetStatusResponse as it is used for both M408 S2 and RR_STATUS,TYPE=2.
At any rate, to summarize:
-
I am 100% certain that DWC is looking for keys that are not sent in any RR_STATUS 1, 2, or 3.
-
I am 99% certain that these keys were in GetStatusResponse buffer at some point in the past.
-
I am 60% certain that DWC is keeping past information in its session store, making this breakdown in communication very difficult to detect in regression testing of new releases.
P.S. Might I offer that the "test suite" for regression testing should include deleting DWC session store prior to connecting to a Duet for DWC validation?
-
-
What I think is happening is that the Machine Properties data includes data for all axes, but DWC doesn't know about hidden axes. So if you have any hidden axes, there are rows for them in Machine Properties, but they are labelled as extruders.
-
@danal said in Cannot understand web page for Machine Properties:
Anyway, minFeedrates, maxfeedrates, and accelerations DO NOT occur in any of the (current release) RepRap responses to RR_STATUS. None of Type 1, 2, or 3 (which are the only three DWC ever calls) return these keys.
These values are contained in
http://.../rr_config
{ "axisMins": [ -32.5, -1.5, 0.0 ], "axisMaxes": [ 220.0, 230.0, 220.0 ], "accelerations": [ 2000.0, 2000.0, 100.0, 10000.0, 10000.0, 250.0, 250.0, 250.0, 250.0, 250.0, 250.0, 250.0 ], "currents": [ 500.0, 500.0, 500.0, 700.0, 700.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ], "firmwareElectronics": "Duet WiFi 1.02 or later", "firmwareName": "RepRapFirmware for Duet 2 WiFi/Ethernet", "firmwareVersion": "2.01(RTOS)", "dwsVersion": "1.21", "firmwareDate": "2018-07-26b2", "idleCurrentFactor": 30.0, "idleTimeout": 15.0, "minFeedrates": [ 10.0, 10.0, 0.4, 5.0, 5.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0, 2.0 ], "maxFeedrates": [ 110.0, 110.0, 12.0, 50.0, 50.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0, 20.0 ] }
-
@dc42 said in Cannot understand web page for Machine Properties:
What I think is happening is that the Machine Properties data includes data for all axes, but DWC doesn't know about hidden axes. So if you have any hidden axes, there are rows for them in Machine Properties, but they are labelled as extruders.
That would appear to be the case.
It's not a big deal but if possible I think DWC should be updated to handle the additional axes.
Thanks.
Frederick
-
Added to the list.
-
AHA, I was down a rabbit hole. Forgot about RR_CONFIG.
Doh !
-
Doesn't seem to have anything to do with being hidden (M584 P being less than total).
It appears that any extra axis will throw off DWC as currently coded.Within DWC, there is a semi-hard-coded "maxAxis" of 12. This corresponds to a 12 row (not counting title row) 'machine properties' table in the HTML. The code that populates that 'machine properties' table always loops 12 times, so it can hide/unhide rows as appropriate. Also, it is pulling various keys out of the response to RR_CONFIG and putting them in the unhidden rows. So far, so good.
Within that loop, there is ALSO an 'if' that decides whether a given row is hidden/unhidden. It does so by taking keys from a regular RR_STATUS type 1, 2, , or 3, whatever was most recent, where the coords.xyz.length + coords.extr.length being less than the loop count is the actual 'if'.
A mathematical sum is not sufficient to determine which axis is which type. That's why DWC is treating any extra axis as extra extruders.
The DWC code needs to parse whatever is in coords.xyz array as X, Y, Z, U', V, etc. and the parse coords.extr as E0, E1, etc.
-
Quick experiments, showing only a subset of the relevant keys from each response.
M584 X0 Y1 Z2 E3
(i.e. same as default if not coded)RR_CONFIG "axisMins":[-304.00,-304.00,0.00]
RR_STATUS "status":"I","coords":{"axesHomed":[0,0,0],"xyz":[0.000,0.000,626.751],"machine":[0.000,0.000,626.751],"extr":[0.0]},
Machine Control Page: Correct.
Machine Properties Table: Correct..
M584 X0 Y1 Z2 E3 U7 V8
RR_CONFIG "axisMins":[-304.00,-304.00,0.00,0.00,0.00]
RR_STATUS "xyz":[0.000,0.000,626.751,0.000,0.000],"machine":[0.000,0.000,626.751,0.000,0.000],"extr":[0.0]}
Machine control page: Correct.
Machine Properties Table: Incorrect. Shows 3 extruders. The "last one" is the actual extruder; the first two are really U and V