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

Where is the difference - 10 times X1 vs 1 times X10

Scheduled Pinned Locked Moved Solved
Tuning and tweaking
15
64
2.6k
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.
  • undefined
    arhi @dc42
    last edited by 22 Apr 2020, 09:12

    @dc42 said in Where is the difference - 10 times X1 vs 1 times X10:

    If users hit the GCode throughput limit on real prints, then I'm willing to look at improving it.

    I tested some rather "bad" g-code generated by s3d from "too precise" stl that would kill octoprint+marlin combo (stutters, blobs, crazy bad print quality), and sometimes even marlin from sd card without octoprint and duet ate it without a problem printed it perfectly (duet2eth, 3.01RC1) so I don't think RRF is anywhere close to the problem here πŸ™‚

    undefined 1 Reply Last reply 22 Apr 2020, 09:26 Reply Quote 1
    • undefined
      arhi @gloomyandy
      last edited by 22 Apr 2020, 09:16

      @gloomyandy TearTime for e.g. does all the calculation directly in slicer and sends "precompiled" code to the firmware so firmware only execute the stepping. Files are huge (file looks like data klipper sends to the stepping boards) but the approach has it's benefits. Major problem is that their slicer is POS and that format is closed, but the system does work rather good.

      undefined 1 Reply Last reply 22 Apr 2020, 09:26 Reply Quote 0
      • undefined
        dc42 administrators @arhi
        last edited by 22 Apr 2020, 09:26

        @arhi said in Where is the difference - 10 times X1 vs 1 times X10:

        @dc42 said in Where is the difference - 10 times X1 vs 1 times X10:

        If users hit the GCode throughput limit on real prints, then I'm willing to look at improving it.

        I tested some rather "bad" g-code generated by s3d from "too precise" stl that would kill octoprint+marlin combo (stutters, blobs, crazy bad print quality), and sometimes even marlin from sd card without octoprint and duet ate it without a problem printed it perfectly (duet2eth, 3.01RC1) so I don't think RRF is anywhere close to the problem here πŸ™‚

        FWIW, Smoothieware also had a problem with short segments generated by S3D a few years ago. Duet/RRF ran OK on the same GCode files. For a long time the Smoothieware devs blamed S3D, which was reasonable except that it didn't help users. Eventually they put some sort of fix or workaround in Smoothieware.

        Duet WiFi hardware designer and firmware engineer
        Please do not ask me for Duet support via PM or email, use the forum
        http://www.escher3d.com, https://miscsolutions.wordpress.com

        undefined 1 Reply Last reply 22 Apr 2020, 09:34 Reply Quote 0
        • undefined
          droftarts administrators @arhi
          last edited by 22 Apr 2020, 09:26

          @arhi said in Where is the difference - 10 times X1 vs 1 times X10:

          @gloomyandy TearTime for e.g. does all the calculation directly in slicer and sends "precompiled" code to the firmware so firmware only execute the stepping. Files are huge (file looks like data klipper sends to the stepping boards) but the approach has it's benefits. Major problem is that their slicer is POS and that format is closed, but the system does work rather good.

          Some 3DSystems printers do (or, at least, did) that, too. Leveraged the host CPU for the complex stuff, sent individual step commands in what was basically a big spreadsheet to a dumb microcontroller on board. Then the board only has to run the 'spreadsheet', and monitor temperatures and any other inputs.

          Ian

          Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

          undefined undefined 2 Replies Last reply 22 Apr 2020, 09:36 Reply Quote 0
          • undefined
            arhi @dc42
            last edited by 22 Apr 2020, 09:34

            @dc42 yes, s3d 3.0 and earlier were very bad ... and smoothieware didn't know how to handle those ... now both do better, s3d from 3.1 do not generate code as bad as 3.0 and before and smoothieware fixed the issue that they had so they can parse way more codes/sec compared to earlier. IIRC that's also when that "do not calculate junction if angle less than.." came to be

            1 Reply Last reply Reply Quote 0
            • undefined
              DocTrucker @droftarts
              last edited by DocTrucker 22 Apr 2020, 09:36

              I did the same with the control system on the MCP/MTT/Renishaw machine. The computer read the whole build file and parsed it into exposure points a controlled distance apart. These were then sent to the optics system as single slice files. Yeah, some where vastly larger than the source data but it also cleaned up small vector issues which the real time controllers really struggled with.

              But this did make alsorts of things very easy, such as part suppression, moving and offsetting parts or slice data, changing processing parameters, and reloading build files mid print for more serious changes.

              Running 3 P3Steel with Duet 2. Duet 3 on the shelf looking for a suitable machine. One first generation Duet in a Logo/Turtle style robot!

              1 Reply Last reply Reply Quote 0
              • undefined
                arhi @droftarts
                last edited by arhi 22 Apr 2020, 09:38

                @droftarts said in Where is the difference - 10 times X1 vs 1 times X10:

                Some 3DSystems printers do (or, at least, did) that, too. Leveraged the host CPU for the complex stuff, sent individual step commands in what was basically a big spreadsheet to a dumb microcontroller on board. Then the board only has to run the 'spreadsheet', and monitor temperatures and any other inputs.

                that's the dudes that purchased bitsfrombytes? the first 32bit (pic32mx based) electronics in reprap/repstrap world πŸ˜„

                When I first came in contact with TT machines (UP Plus 2) I did some research as they were in some things age in front of the reprap community and what I found is that they used the same approach on these small "home" printers as professional 500+k machines are using, and found that most of those huge machines do exactly that - just execute the "spreadsheet" as you call it, and that everything is done in the "slicer". On the other hand, UP Plus 2 uses ncp 32bit arm to execute that spreadsheet while most of home 3d printers try to do everything from parsing to planing to executing with 8bit atmega πŸ˜„

                undefined 2 Replies Last reply 22 Apr 2020, 09:45 Reply Quote 0
                • undefined
                  droftarts administrators @arhi
                  last edited by 22 Apr 2020, 09:45

                  @arhi It makes sense when you've got a dedicated PC connected to the printer (like in the CNC world), but less sense when you've got a general purpose PC doing it. Because if you're doing all the computation up front and creating a huge file, you've either got to stream the data to the microcontroller (so the PC shouldn't really be used for other things to avoid hiccups, which ties up a potentially expensive PC), or your microcontroller gets more complicated as you have to add things like storage and ways of listing what's on the storage. Or you get a second PC to handle the data streaming. Or you get a smarter microcontroller. All options have their merits and deficiencies!

                  Ian

                  Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                  undefined undefined 2 Replies Last reply 22 Apr 2020, 09:53 Reply Quote 0
                  • undefined
                    DocTrucker @droftarts
                    last edited by 22 Apr 2020, 09:53

                    @droftarts haven't we essentially got what we need already with the Duet 3 and single board computer? The Raspberry pi is likely more powerful than the Windows XP 32 bit system I was using.

                    This would be easy enough to write in a way that the cleaned gcode could be recomipiled back to a complete gcode file modifications and all. This would mean the software could seperately preparse data offline, making it usefull to all generations of duet and duet 3 without single board computers. ...also appeasing those who get twitchy at not seeng all the gvode prior to run.

                    Running 3 P3Steel with Duet 2. Duet 3 on the shelf looking for a suitable machine. One first generation Duet in a Logo/Turtle style robot!

                    undefined undefined undefined 3 Replies Last reply 22 Apr 2020, 09:55 Reply Quote 0
                    • undefined
                      arhi @droftarts
                      last edited by 22 Apr 2020, 09:53

                      @droftarts well on those old machines without dedicated computer you were dead in the water but today 128G SD card can be run from 8bit mcu πŸ˜„ .. now, no clue what power is required to step trought the "spreadsheet" but if 8bit on 16MHz can parse the g-code, calculate plan, and then step trough it I'm kinda sure it can step trough the precompiled plan πŸ˜„

                      What I really didnt' like about UP was that all the printer calibration (size, skew, bed mesh...) is in the slicer so your code is not universal. You have to slice for each specific machine. I for e.g. have both up plus2 and up mini and with rather same bed if I put same size nozzle in generally g-code is identical when they are running smoothieware (as they are now, but mini will be going to duet these days) but if they are running original firmware I have to slice specifically to each printer. It has it's benefits too, there's no fiddling with firmware configuration, everything is point and click (not sure if I could adjust some of the calibration things TT allows with duet) .. anyhow we went faaaaaaaaaar away from original post ... the big take from this thread is the length of the queue πŸ˜„

                      1 Reply Last reply Reply Quote 0
                      • undefined
                        droftarts administrators @arhi
                        last edited by 22 Apr 2020, 09:55

                        @arhi said in Where is the difference - 10 times X1 vs 1 times X10:

                        that's the dudes that purchased bitsfrombytes?

                        Yes. Bits from Bytes were based in Clevedon, not far from Bristol (where I am), and grew out of the very early RepRap community at Bath University (Dr Adrian Bowyer et al). I know a couple of people that worked there, including once 3DSystems took them over and effectively mothballed production, keeping it for R&D (though dictated by the US head office) and supporting existing machines in Europe.

                        Ian

                        Bed-slinger - Mini5+ WiFi/1LC | RRP Fisher v1 - D2 WiFi | Polargraph - D2 WiFi | TronXY X5S - 6HC/Roto | CNC router - 6HC | Tractus3D T1250 - D2 Eth

                        undefined 1 Reply Last reply 22 Apr 2020, 10:01 Reply Quote 0
                        • undefined
                          dc42 administrators @DocTrucker
                          last edited by dc42 22 Apr 2020, 09:55

                          @DocTrucker said in Where is the difference - 10 times X1 vs 1 times X10:

                          @droftarts haven't we essentially got what we need already with the Duet 3 and single board computer? The Raspberry pi is likely more powerful than the Windows XP 32 bit system I was using.

                          Only if you dedicate the Pi exclusively to running the print and don't try to do anything else that is CPU-intensive in it. Raspian is not a real-time operating system. RRF/DSF run the planning on the Duet (which does run a real-time operating system) so that you can do other things on the Pi at the same time, e.g. camera, complex web interface (GCode visualisation coming soon), and potentially slicing. That's also why we use a dedicated SPI interface instead of USB.

                          Duet WiFi hardware designer and firmware engineer
                          Please do not ask me for Duet support via PM or email, use the forum
                          http://www.escher3d.com, https://miscsolutions.wordpress.com

                          1 Reply Last reply Reply Quote 1
                          • undefined
                            arhi @DocTrucker
                            last edited by 22 Apr 2020, 09:56

                            @DocTrucker it is what klipper is doing, precompiling the g-code in real-time and pushing the stepper instructions to the stepper boards... so all planning is done on the host (That can be RPI but also a 128core desktop pc with terabyte of ram πŸ˜„ )

                            undefined 1 Reply Last reply 22 Apr 2020, 10:01 Reply Quote 0
                            • undefined
                              dc42 administrators @arhi
                              last edited by 22 Apr 2020, 10:01

                              @arhi said in Where is the difference - 10 times X1 vs 1 times X10:

                              @DocTrucker it is what klipper is doing, precompiling the g-code in real-time and pushing the stepper instructions to the stepper boards... so all planning is done on the host (That can be RPI but also a 128core desktop pc with terabyte of ram πŸ˜„ )

                              Running a real-time task such as planning on a system running a non-realtime OS and sending near real-time commands over a shared bus is IMO a dubious thing to do. But of course you can get away with it if you don't have much else competing for CPU and bus time.

                              Duet WiFi hardware designer and firmware engineer
                              Please do not ask me for Duet support via PM or email, use the forum
                              http://www.escher3d.com, https://miscsolutions.wordpress.com

                              undefined undefined 2 Replies Last reply 22 Apr 2020, 10:04 Reply Quote 3
                              • undefined
                                arhi @droftarts
                                last edited by 22 Apr 2020, 10:01

                                @droftarts that was a sad day .. I used rapman 3.0 and making rapman reliably print HDPE and PP got me into reprap core team 10 years ago πŸ˜„ πŸ˜„ πŸ˜„ .. those were the times .. hand made hotends, revolutionary wade's extruder... ah.. memories nope's idea for heated bed ... there was a very strong community around bfb, prusa's first printer was rapman, erik that made ultimaker, first printer was rapman too .. kai parthy the guy who invented wood filled filament and all those lay* filaments was also there ... memories ...

                                1 Reply Last reply Reply Quote 0
                                • undefined
                                  arhi @dc42
                                  last edited by 22 Apr 2020, 10:04

                                  @dc42 said in Where is the difference - 10 times X1 vs 1 times X10:

                                  Running a real-time task such as planning

                                  I have not tried klipper yet so can't comment really but ppl are pretty happy with it so it kinda works. Not sure how exactly.

                                  What's more interesting is that there is a firmware (forgot the name) that completely runs on RPI!! they do use real time kernel but they step drivers from GPIO pins on the RPI itself !!! I was very skeptical that can work but I seen the tests and ... I still have hard time believing it πŸ˜„

                                  undefined undefined 2 Replies Last reply 22 Apr 2020, 10:09 Reply Quote 0
                                  • undefined
                                    mwwhited @ChrisP
                                    last edited by 22 Apr 2020, 10:05

                                    @ChrisP, I would disagree on this being a bug. The controllers job is to do what it’s told. If you call for 100x1 it should treat it as 100 moves and include acceleration/deceleration as such. If you want an optimiser that should be a separate processing path. Be it in the slicer or in an operation between the slicer and execution of the print.

                                    Adding the complexity in the controller increases the likely good of defects in the control loop and doesn’t work as expected for a computer processor... to do it’s job as it’s told.

                                    1 Reply Last reply Reply Quote 0
                                    • undefined
                                      dc42 administrators @arhi
                                      last edited by 22 Apr 2020, 10:09

                                      @arhi said in Where is the difference - 10 times X1 vs 1 times X10:

                                      What's more interesting is that there is a firmware (forgot the name) that completely runs on RPI!! they do use real time kernel but they step drivers from GPIO pins on the RPI itself !!! I was very skeptical that can work but I seen the tests and ... I still have hard time believing it

                                      If it's using a real-time kernel on the Pi then that seems entirely reasonable to me, if the Pi has enough I/O pins.

                                      Another option would be to use a quad-core Pi with a real-time kernel running on one core and Linux on the other 3.

                                      Duet WiFi hardware designer and firmware engineer
                                      Please do not ask me for Duet support via PM or email, use the forum
                                      http://www.escher3d.com, https://miscsolutions.wordpress.com

                                      1 Reply Last reply Reply Quote 0
                                      • undefined
                                        arhi @arhi
                                        last edited by 22 Apr 2020, 10:10

                                        pandaPI

                                        c72afe7d-57e6-4255-9406-3844aa5f4748-image.png

                                        1 Reply Last reply Reply Quote 1
                                        • undefined
                                          DaBit
                                          last edited by DaBit 22 Apr 2020, 10:38

                                          Before switching to Duet out of curiosity I ran LinuxCNC on a Pi using a PREEMPT_RT patched kernel with ST L6470 stepper drives connected over SPI. Analog I/O was handled by an STM32F103 'blue pill' board over USB/HID (which provides an upper bound on latency also)
                                          That PREEMPT_RT takes care of the realtime requirements and the system ran flawless. My switch to Duet was more out of curiosity than necessity.

                                          Maybe PREEMPT_RT is something to consider for DSF? It will soon be in the mainline kernel, although they keep saying that for 10 years or so.

                                          1 Reply Last reply Reply Quote 0
                                          38 out of 64
                                          • First post
                                            38/64
                                            Last post
                                          Unless otherwise noted, all forum content is licensed under CC-BY-SA