Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    InputShaping-Plugin-0.1.0-rc7 released (repacked)

    Scheduled Pinned Locked Moved
    Plugins for DWC and DSF
    12
    32
    2.2k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • mfs12undefined
      mfs12 @tecno
      last edited by

      @tecno said in InputShaping-Plugin-0.1.0-rc7 released:

      Input-Shaping Tab is emty = black

      Repacked the plugin. It should be fine now.

      Visit me on github at https://github.com/mfs12/

      tecnoundefined 1 Reply Last reply Reply Quote 0
      • tecnoundefined
        tecno @mfs12
        last edited by

        @mfs12
        Sofar so good 😉
        Looks to be OK need to do some testing.

        Cheers Bengt

        1 Reply Last reply Reply Quote 0
        • Blacksheep99undefined
          Blacksheep99
          last edited by

          Hi, is there any guidelines for how to set this up? Thanks.

          1 Reply Last reply Reply Quote 0
          • mfs12undefined
            mfs12
            last edited by

            @Blacksheep99 I can recommend reading through

            • https://duet3d.dozuki.com/Wiki/Input_shaping
            • https://duet3d.dozuki.com/Wiki/Accelerometers

            Visit me on github at https://github.com/mfs12/

            Blacksheep99undefined 1 Reply Last reply Reply Quote 0
            • Blacksheep99undefined
              Blacksheep99 @mfs12
              last edited by

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

              1 Reply Last reply Reply Quote 0
              • mfs12undefined
                mfs12
                last edited by

                @Blacksheep99

                • 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

                Visit me on github at https://github.com/mfs12/

                Blacksheep99undefined jay_s_ukundefined 2 Replies Last reply Reply Quote 0
                • Blacksheep99undefined
                  Blacksheep99 @mfs12
                  last edited by

                  @mfs12 Thanks, that was my assumption but good to have it confirmed.

                  1 Reply Last reply Reply Quote 0
                  • jay_s_ukundefined
                    jay_s_uk @mfs12
                    last edited by

                    @mfs12 any chance you can indicate what has changed between each RC rather than just lumping the changes in together?

                    Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

                    1 Reply Last reply Reply Quote 0
                    • Fred-Yundefined
                      Fred-Y
                      last edited by

                      @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.
                      1c872449-ea4c-4b27-b6af-c2e47c64e75d-image.png

                      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
                      eb859326-b837-4771-abdf-cd660191379e-image.png

                      I'm going to test it on a CoreXY within the next few days 👍

                      mfs12undefined 1 Reply Last reply Reply Quote 0
                      • mfs12undefined
                        mfs12 @Fred-Y
                        last edited by

                        @fred-y thanks for your feedback. basically all of your ideas are going to be implemented in future versions. so stay tuned 😉

                        Visit me on github at https://github.com/mfs12/

                        Fred-Yundefined 1 Reply Last reply Reply Quote 1
                        • Fred-Yundefined
                          Fred-Y @mfs12
                          last edited by

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

                          1 Reply Last reply Reply Quote 1
                          • mfs12undefined
                            mfs12
                            last edited by

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

                            Visit me on github at https://github.com/mfs12/

                            Fred-Yundefined shmibbityundefined 2 Replies Last reply Reply Quote 0
                            • Fred-Yundefined
                              Fred-Y @mfs12
                              last edited by

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

                              1 Reply Last reply Reply Quote 1
                              • shmibbityundefined
                                shmibbity @mfs12
                                last edited by

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

                                NightLonk42undefined shmibbityundefined 2 Replies Last reply Reply Quote 0
                                • NightLonk42undefined
                                  NightLonk42 @shmibbity
                                  last edited by

                                  This post is deleted!
                                  1 Reply Last reply Reply Quote 0
                                  • NightLonk42undefined
                                    NightLonk42
                                    last edited by NightLonk42

                                    
                                    
                                    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*~~
                                    gloomyandyundefined 1 Reply Last reply Reply Quote 0
                                    • gloomyandyundefined
                                      gloomyandy @NightLonk42
                                      last edited by

                                      @nightlonk42 Are you saying that if you do not install the input-shaper plugin (or disable it) that this problem does not happen?

                                      NightLonk42undefined 1 Reply Last reply Reply Quote 0
                                      • shmibbityundefined
                                        shmibbity @shmibbity
                                        last edited by

                                        This post is deleted!
                                        1 Reply Last reply Reply Quote 0
                                        • NightLonk42undefined
                                          NightLonk42 @gloomyandy
                                          last edited by

                                          @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

                                          mfs12undefined 1 Reply Last reply Reply Quote 0
                                          • jallen810undefined
                                            jallen810
                                            last edited by

                                            @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:
                                            SupposedName.png

                                            Actual Name i get when CSV is saved:
                                            ActualName.png

                                            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.

                                            Phaedruxundefined mfs12undefined 2 Replies Last reply Reply Quote 1
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA