InputShaping-Plugin-0.2.0-pre7 released
-
Good morning, I've been able to make my accelerometer to work! I'm trying the plugin but (again) there's something I'm missing, I'm afraid.
I've created two analysis, the first for the X axis and the second for the Y axis, these are the results:X axis:
Y axis:
Why does the plugin suggest me 10,87/88Hz as frequence? Particullary for the Y axis the spike is at 67.8 Hz wich is about where I expected it to be....what's wrong? CoreXY printer, here my M122:
13/11/2021, 07:52:25 M122 === Diagnostics === RepRapFirmware for Duet 2 WiFi/Ethernet version 3.4.0beta6 (2021-11-06 11:37:41) running on Duet WiFi 1.02 or later Board ID: 08DLM-996RU-N85T0-6JKFJ-3SD6R-9SSHN Used output buffers: 3 of 24 (24 max) === RTOS === Static ram: 23772 Dynamic ram: 79576 of which 12 recycled Never used RAM 5408, free system stack 118 words Tasks: NETWORK(ready,16.6%,234) ACCEL(notifyWait,0.1%,244) HEAT(notifyWait,0.0%,326) Move(notifyWait,0.0%,283) MAIN(running,83.2%,440) IDLE(ready,0.2%,30), total 100.0% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 00:09:52 ago, cause: software Last software reset at 2021-11-13 07:42, reason: User, GCodes spinning, available RAM 5408, slot 2 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x0041f000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x0c Aux0 errors 0,0,0 Step timer max interval 0 MCU temperature: min 32.6, current 33.2, max 33.9 Supply voltage: min 23.9, current 24.0, max 24.2, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 99/10, heap memory allocated/used/recyclable 2048/672/472, gc cycles 0 Driver 0: pos 74214, standstill, SG min 0 Driver 1: pos -21546, standstill, SG min 0 Driver 2: pos 6345, standstill, SG min 29 Driver 3: pos 0, standstill, SG min n/a Driver 4: pos 0, standstill, SG min n/a Driver 5: pos 0 Driver 6: pos 0 Driver 7: pos 0 Driver 8: pos 0 Driver 9: pos 0 Driver 10: pos 0 Driver 11: pos 0 Date/time: 2021-11-13 07:52:23 Cache data hit count 4294967295 Slowest loop: 50.36ms; fastest: 0.09ms I2C nak errors 0, send timeouts 0, receive timeouts 0, finishTimeouts 0, resets 0 === Storage === Free file entries: 10 SD card 0 detected, interface speed: 20.0MBytes/sec SD card longest read time 3.4ms, write time 39.6ms, max retries 0 === Move === DMs created 83, segments created 19, maxWait 118823ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 19, completed 19, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 1], CDDA state -1 === AuxDDARing === Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1 === Heat === Bed heaters 0 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0 === GCodes === Segments left: 0 Movement lock held by null HTTP is idle 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 Daemon is idle in state(s) 0 Autopause is idle in state(s) 0 Code queue is empty === Filament sensors === Extruder 0: pos 0.00, errs: frame 1 parity 0 ovrun 0 pol 0 ovdue 0 Extruder 1: pos 0.00, errs: frame 0 parity 0 ovrun 0 pol 0 ovdue 0 === Network === Slowest loop: 80.25ms; fastest: 0.00ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(1), 1 sessions HTTP sessions: 2 of 8 - WiFi - Network state is active WiFi module is connected to access point Failed messages: pending 0, notready 0, noresp 0 WiFi firmware version 1.26 WiFi MAC address 84:0d:8e:b3:bc:96 WiFi Vcc 3.45, reset reason Turned on by main processor WiFi flash size 4194304, free heap 25264 WiFi IP address 192.168.1.7 WiFi signal strength -47dBm, mode 802.11n, reconnections 0, sleep mode modem Clock register 00002002 Socket states: 2 4 0 0 0 0 0 0
Thanks!
-
@thedragonlord You really need to run a base line test for each axis (so set the input shaper to "none") and then use that as the input to the recommendation stage. However I suspect that this will still select too low a frequency (as reported by Fred-Y above and I see the same thing). However by having the base results (with no input shaper), you may be able to judge for yourself what other tests to run and what frequency will work best for you. Remember that at the moment RRF only supports a single shaper for X and Y so you will need to select on that basis.
@mfs12 Are there any plans to change the way that the recommendations selects the target frequency? At the moment it always seems to select something that is too low.
-
@thedragonlord You might find the thread I started on input shaping of interest: https://forum.duet3d.com/topic/25931/input-shaping-testing-and-thoughts
-
@fred-y said in InputShaping-Plugin-0.2.0-pre7 released:
this is mainly an issue with Delta as the recording will fail if we don’t move down the effector after having homed the printer.
Its a good idea to move your effector down at the end of homedelta.g to a position where any XY commands that are valid will not crash the carriages at the top of the endstops.
-
@fred-y said in InputShaping-Plugin-0.2.0-pre7 released:
A suggestion would be to add a Z position, this is mainly an issue with Delta as the recording will fail if we don’t move down the effector after having homed the printer.
+1 for this
Also, to take this a bit further, it would be nice to be able to specify test moves by XYZ coordinates. On deltas (mine, at least) the resonances vary a lot based on effector position and direction of travel. Currently I do this using the Accelerometer plugin, but that has no way to overlay FFT graphs of multiple recordings and it takes a long time to do comparisons.
Hehehe ... sounds like I'm complaining, but this tuning process is soooo much better than it was in 3.3!
-
@t3p3tony Actually the firmware has been properly coded to handle this situation as it prevents these moves.
But I like your recommendation to move down the effector at the end of the homedelta file, I know some slicers (at least IdeaMaker) starts to move the effector on X/Y before moving down the effector causing an error.
-
@gloomyandy said in InputShaping-Plugin-0.2.0-pre7 released:
@thedragonlord You really need to run a base line test for each axis (so set the input shaper to "none") and then use that as the input to the recommendation stage. However I suspect that this will still select too low a frequency (as reported by Fred-Y above and I see the same thing). However by having the base results (with no input shaper), you may be able to judge for yourself what other tests to run and what frequency will work best for you. Remember that at the moment RRF only supports a single shaper for X and Y so you will need to select on that basis.
@mfs12 Are there any plans to change the way that the recommendations selects the target frequency? At the moment it always seems to select something that is too low.
Ok, but it's not clear, after using the recomendation, how to choose the frequency to set in the M593....all the recomendation displays the same frequency....is this a plugin's bug? I know it's my fault due to my ignorance but except for the analysis I really can't understand how to use this plugin..
-
@thedragonlord Yes, it looks like the frequency chosen is not correct and it is probably a bug (which is why I was asking @mfs12 about it). Remember that this is all new software (and still not a final release), so there are likely to be problems.
-
@gloomyandy said in InputShaping-Plugin-0.2.0-pre7 released:
@thedragonlord Yes, it looks like the frequency chosen is not correct and it is probably a bug (which is why I was asking @mfs12 about it). Remember that this is all new software (and still not a final release), so there are likely to be problems.
Sure, I'm a programmer and I know well what it means to deliver a new software! I was asking just to be sure that I did understand how the plugin was supposed to work...for the fix we'll wait, no problem at all
-
I second this, I'm also working with software dev so I'm fully aware of the iteration cycles. Happy that someone is spending their time implementing this functionality.
The reason I started my thread, unaware of others though I spend too much time reading stuff here, was that I found it unclear wether this was a bug or something intentional.
-
So far the plugin is still experimental, I am having trouble doing the calculation of the response. Apparently it's dead simple according to an excel-sheet i have. But i wasn't able to reproduce this reliable in javascript. Until then this plugin is a little useless.
So far it's just useful to record and review shaper configurations.
-
Are there any experts here willing to support implementing the suggestion mechanism?
-
Hello everyone, I've now also tested the plugin. So far it works really well! I like it very much!
I have another suggestion or request. Would it be possible that when homing, if no axis is referenced, the Z-axis would not be referenced.
I have e.g. the accelerometer is attached to the bottom of the heating block, and in that case there would be a crash when homing.
Just as a suggestion. Home X and Y should be enough for the purpose ...Chrisitan from CR-3D
-
Guys I have to ask for a little help because I can't really understand how to use this plugin correctely...theese are the steps I make:
- Initalize a new analysis
- Configure it for the axis I want to analyze (I make different sessions for X and Y) leaving the defualt values except the start and stop position wich I set with the maximum allowed excursion for my printer
- I add an algorithm of type "none" leaving the rest of the settings at the default value
- I run the recording
- I go to reccomend, I choose the record data and I run recommendation
- I add the recommedation to the session and I record again
- I always get an error "session and record's sampling rate differ more than 1%" with some algorithms and this is the first question...what error is this?
- With some algorithms (zd, zdd etc) I've been able to collect some data so I go to he analysis page
- I choose all the records, press the button FFT, to be honest I don't see so muche differences from the different graphs but I know it's my fault because I have to change some default values, but this is not THE question yet (here's an example of the graphs)
- Let's pretend for a while I've found the correct graph which flats the spike and I decide this is the setting I want to use with the M593...how do I "transfer" the recomended data into the comand? The recomended frequency it's wrong (as said before) but this could not be a problem beceause the spike frequency can be read by the "none" graph, another data I can retrieve is of course the type (mvz, ect) but THE question is how can I set the M593 with the rest of the recommended data(integral, sample and sampling rate)? Where do those settings have to be inserted in the M593?
I repeat, I can't understand due to my ignorance not for the plugin not working...following the M593 wiki (https://duet3d.dozuki.com/Wiki/M593) I can't understand how to translate the recommendation into values except for the ringing frequency (wich I read form the "none" graph) and the P"type"....
Could someone help me understanding?
Thanks a lot for the patience....
-
@TheDragonLord
just use F as your frequency
then make a testprint with the different input shapers.
i choose the klipper ringing test.so from 0-5mm
M593 P"none" F40
from 5-10mmM593 P"zvd" F40
from 10-15mmM593 P"zvdd" F40
and so on.
-
@pcr said in InputShaping-Plugin-0.2.0-pre7 released:
@TheDragonLord
just use F as your frequency
then make a testprint with the different input shapers.
i choose the klipper ringing test.so from 0-5mm
M593 P"none" F40
from 5-10mmM593 P"zvd" F40
from 10-15mmM593 P"zvdd" F40
and so on.
in the recommendation data there are three rows for each different type and my question was about how to choose from different data having the same type...
-
@TheDragonLord,
the recommendations are calculated for every maximal frequences per axis. So if you are having same frequencies per axis, they might duplicate.
And the easiest way to verify a configuration is
- check a recommendation in the recommendation table
- press "add algorithm to session"
- go to configure tab to review
- go to record tab
- run recording
- review results in analysis tab
- build your M593 manually https://duet3d.dozuki.com/Wiki/M593
- add the M593 to you config.g or config-override.g
I hope this helps a little. Alternatively you can also add the configuration manually.
-
@mfs12 said in InputShaping-Plugin-0.2.0-pre7 released:
@TheDragonLord,
the recommendations are calculated for every maximal frequences per axis. So if you are having same frequencies per axis, they might duplicate.
And the easiest way to verify a configuration is
- check a recommendation in the recommendation table
- press "add algorithm to session"
- go to configure tab to review
- go to record tab
- run recording
- review results in analysis tab
- build your M593 manually https://duet3d.dozuki.com/Wiki/M593
- add the M593 to you config.g or config-override.g
I hope this helps a little. Alternatively you can also add the configuration manually.
Ok, I start to understand....originally my analisys was only for the Y axis, are you saying that regardless the chosen axis the recommendations are always for all the three axis? In my case I haven't the same spikes for X and Y, infact X has almost no ringing at all, Y axis has an evident spike...I didn't understand that the three recommendations was one for each axis....what about the error I got with some types "session and record's sampling rate differ more than 1%" ? Last question: why the recommended frequency is always around 10Hz? Is this a bug? As you can see in my graph the real spike is at around 64Hz.....thanks
-
"session and record's sampling rate differ more than 1%"
records which diverge too much need to be interpolated first otherwise they can't be displayed in the same graph. this is a current limitation.
And very low ringing frequencies can be ignored. The plugin ignores everything below 10Hz, perhaps this threshold can be increased even further.
In your case it probably makes sense to manually add a algorithm configuration for 64Hz. And do test runs.
-
@mfs12 I could try to help, I have been developing website/apps for years using different language including JS but been away from coding during the last few years ... so I'm likely to be a little rusty.