InputShaping-Plugin-0.1.0-rc7 released (repacked)
-
@Blacksheep99 I can recommend reading through
-
@mfs12 Thanks. I've read them, but will again. I'm not sure how to interpret the graphs. As in which frequency I then choose for the input shaper.
-
- usually you look at the FFT analyzed graph of the recorded profile.
- there you find the biggest amplitude which maps to a frequency
- this is the target frequency to operate input shaping on
-
@mfs12 Thanks, that was my assumption but good to have it confirmed.
-
@mfs12 any chance you can indicate what has changed between each RC rather than just lumping the changes in together?
-
@mfs12 Excellent work, I really like it
Some parameters are displayed while there is no compensation - nothing major but it confused me a little, I was unsure if I had an IS configured and miss reported.
Generating graphs from multiple records works very well, I spent quite some time tonight playing with it on my Delta!
I really like being able to compare the different recordings, that is perfect to try different settings and compare them.
Hiding some axis on the graph would useful when we have 3 or more records at the same time
I'm going to test it on a CoreXY within the next few days
-
@fred-y thanks for your feedback. basically all of your ideas are going to be implemented in future versions. so stay tuned
-
@mfs12 I'm looking forward to test the next releases!
This might be a little off topic: is there a plan to implement a script similar to the one used by Klipper to determine the best frequency / type for IS?
Using the graphs requires some knowledge and analysis, for example the spike at 102Hz on my graph is deceiving as it is not caused by a movement, it exists on a records done with no moves. I suspect it to come from the PSU fan on top of my Delta.
-
@Fred-Y thanks for you help.
Yes, we plan to automate as much as possible. Although i can't tell you yet what is going to be realized.
Using the graphs requires some knowledge and analysis, for example the spike at 102Hz on my graph is deceiving as it is not caused by a movement, it exists on a records done with no moves. I suspect it to come from the PSU fan on top of my Delta.
this is a very good point you are hinting to. To understand such behavior we should records as well the current movement with the accelerations.
-
@mfs12 Thanks for the response.
Let me know if you need any kind of help to test experimental functions or alpha built, I would be happy to support.
My printers are not used for any business purposes so they can be use for troubleshooting and even be put out of service for days. -
@mfs12 I'm also interested in an autocalibration feature. Would the right way to go about it be to have the printer oscillate the print head in one dimension at a time with varying accelerations and distances and use the accelerometer data to find how much distance the frame moved as it shook? The largest displacement will indicate what the natural frequency is of the printer frame in the respective axis.
That information could be used to dynamically adjust jerk and acceleration values of the printer before the next move takes place.
-
This post is deleted! -
I've tried on the latest RRF beta and 3.3. It's replicated 100% every time. Duet Mini 5+ Wifi Toolboard V1.1 BL Touch (in case that matters somehow)~~ ``` m122 === Diagnostics === RepRapFirmware for Duet 3 Mini 5+ version 3.4.0beta3 (2021-08-24 14:08:24) running on Duet 3 Mini5plus WiFi (standalone mode) Board ID: GJRQ5-V396U-D65J0-40KM8-K013Z-7VUQA Used output buffers: 3 of 40 (15 max) === RTOS === Static ram: 102756 Dynamic ram: 107252 of which 28 recycled Never used RAM 31676, free system stack 200 words Tasks: NETWORK(ready,11.8%,253) HEAT(notifyWait,0.0%,372) Move(notifyWait,0.0%,338) CanReceiv(notifyWait,0.0%,797) CanSender(notifyWait,0.0%,372) CanClock(delaying,0.0%,346) TMC(notifyWait,0.7%,115) MAIN(running,85.4%,428) IDLE(ready,1.2%,29) AIN(delaying,0.8%,266), total 100.0% Owned mutexes: WiFi(NETWORK) === Platform === Last reset 00:00:19 ago, cause: software Last software reset at 2021-09-13 22:57, reason: User, GCodes spinning, available RAM 31388, slot 0 Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00000000 BFAR 0xe000ed38 SP 0x00000000 Task MAIN Freestk 0 n/a Error status: 0x00 Aux0 errors 0,0,0 MCU revision 3, ADC conversions started 19343, completed 19341, timed out 0, errs 0 Step timer max interval 750 MCU temperature: min 43.7, current 44.1, max 44.8 Supply voltage: min 24.0, current 24.0, max 24.1, under voltage events: 0, over voltage events: 0, power good: yes Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0 Driver 0: position 0, standstill, SG min/max 2/2, read errors 0, write errors 1, ifcnt 70, reads 988, writes 12, timeouts 0, DMA errors 0 Driver 1: position 0, standstill, SG min/max 2/2, read errors 0, write errors 1, ifcnt 70, reads 988, writes 12, timeouts 0, DMA errors 0 Driver 2: position 0, standstill, SG min/max 2/2, read errors 0, write errors 1, ifcnt 70, reads 987, writes 12, timeouts 0, DMA errors 0 Driver 3: position 0, standstill, SG min/max 0/0, read errors 0, write errors 1, ifcnt 70, reads 987, writes 12, timeouts 0, DMA errors 0 Driver 4: position 0, standstill, SG min/max 0/0, read errors 0, write errors 1, ifcnt 70, reads 988, writes 12, timeouts 0, DMA errors 0 Driver 5: position 0, assumed not present Driver 6: position 0, assumed not present Date/time: 2021-09-13 22:58:05 Cache data hit count 36845245 Slowest loop: 3.99ms; fastest: 0.12ms === Storage === Free file entries: 10 SD card 0 detected, interface speed: 22.5MBytes/sec SD card longest read time 3.5ms, write time 0.0ms, max retries 0 === Move === DMs created 83, segments created 0, maxWait 0ms, bed compensation in use: none, comp offset 0.000 === MainDDARing === Scheduled moves 0, completed moves 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], 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, chamberHeaters = -1 -1 Heater 1 is on, I-accum = 0.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 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 193, received 591, lost 0, longest wait 2ms for reply type 6049, peak Tx sync delay 237, free buffers 17 (min 16), ts 97/96/0 Tx timeouts 0,0,0,0,0,0 === Network === Slowest loop: 15.35ms; fastest: 0.00ms Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions HTTP sessions: 1 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 f0:08:d1:02:e6:b1 WiFi Vcc 3.40, reset reason Power up WiFi flash size 2097152, free heap 21408 WiFi IP address 192.168.1.29 WiFi signal strength -35dBm, mode 802.11n, reconnections 0, sleep mode modem Clock register 00002002 Socket states: 0 4 0 0 0 0 0 0 ``` - - How to replicate: * -Install InputShaping Plugin (Currently using latest version as of 9/13/21) * Start it *No issues whatsoever with homing or G32 happen at this point. Everything is fine* * Home Printer * Run mesh compensation (G29) *A Height Map is saved* (The height map file is what's causing the bug for whatever reason) * Reboot printer *Paneldue will no longer connect and is now stuck at connecting* * Try to Home Printer *BL Touch will not deploy and the console throws error messages* ``` 9/13/2021, 10:49:13 PM Error: in file macro line 17: G30: Z probe 0 not found Error: G0/G1: insufficient axes homed 9/13/2021, 10:49:11 PM G28 Error: in file macro line 17: G30: Z probe 0 not found ``` * Delete heightmap.csv * Reboot printer *Everything now works as expected again*~~
-
@nightlonk42 Are you saying that if you do not install the input-shaper plugin (or disable it) that this problem does not happen?
-
This post is deleted! -
@gloomyandy said in InputShaping-Plugin-0.1.0-rc7 released (repacked):
@nightlonk42 Are you saying that if you do not install the input-shaper plugin (or disable it) that this problem does not happen?
That is correct
-
@fred-y @mfs12 I have to say, after using Klipper's system to "Autotune" this is bit archaic by comparison. I sure hope this will be continued to be improved upon as i think it has merit. WIthout having a huge understanding of the algorithms involved here let me take a stab at how i think your system could be improved to help the user make educated decisions on I.S. for their system.
1.) The Analysis graphing always defaults to displaying all 3 (X,Y,Z) axes simulataneously. This is overwhelming, the configuration dialog asks us to pick 1 axes to test, thus the accelerometer readings should only be recorded for this axis (or filtered after the fact) so as to not confuse the user.
2.) I have notice that my acclerometer testing file names are not being generate with the user selected (I.S. algo type, Frequency, Damping, axis desire, etc..) they simply get some random numbers & a date/time stamp... (Pic below)
Supposed to name:
Actual Name i get when CSV is saved:
So i have to go one-by-one, test, record, rename, update settings, repeat... very slow & frustrating simply to get my filenames correct so i can compare them....
3.) The analysis doesn't make any kind of recommendations for solving any of our variables.... The user must optimize 3-variables... not likely going to happen in any sort of quick situation. My recommendation would be for the system to take a standing still reading to account for environmental resonances (fans/etc...) and ignore these values when analyzing the accelerometer data. From there it should test increasing frequencies (Defined by user OR 0-150Hz F.E.) and then run that through solving for each I.S. type one-by-one to determine optimal frequency to cancel and maximum accel/decel & dampening at solved frequency...
This would, in effect, do exactly what Klipper I.S. does so well (and in mere minutes) but would give us a graphical representation of it simultaneously....I truly hope you keep at it and make some improvements to the system, I don't want this to sound like negative because this is great work so far, it just simply isn't complete yet, if you mission is to provide the user with "turnkey" information to improve their prints. I will keep playing with this and upgrading as beta's come out.
-
@jallen810 Work is still progressing.
-
@phaedrux said in InputShaping-Plugin-0.1.0-rc7 released (repacked):
@jallen810 Work is still progressing.
Looking forward to have it!
-
Hey @nightlonk42,
thanks for your feedback. I have no clue how inputshaping plugin would interferes with the other plugins or other functionality of the printer.
But as this plugin is still in a very early stage, please stop using it for now. We will keep an eye on this issue.