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

Using HangPrinter geometry for Wall Plotter?

Scheduled Pinned Locked Moved
General Discussion
3
37
1.4k
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
    TC
    last edited by 29 Aug 2020, 14:31

    Hi all,

    i am thinking of building a wall plotter like this one

    https://www.marginallyclever.com/products/makelangelo-5/

    just with 3 anchors instead of 2 for more stability.
    Is it possible to achieve this with a Duet Wifi? It seems to be a HangPrinter geometry just without a D axis. I would love to hear some oppinions about this project? 🙂

    1 Reply Last reply Reply Quote 0
    • undefined
      TC
      last edited by 29 Aug 2020, 14:47

      Actually I am also interested if it would also be possible with 2 anchors since mit might be easier as a first step 😉

      1 Reply Last reply Reply Quote 0
      • undefined
        TC
        last edited by 29 Aug 2020, 16:43

        @dc42 Or might it even be possible to define an own geometry?

        undefined 1 Reply Last reply 29 Aug 2020, 16:46 Reply Quote 0
        • undefined
          JoergS5 @TC
          last edited by JoergS5 29 Aug 2020, 16:46

          @TC you can implement a new kinematic following this information: https://github.com/Duet3D/RepRapFirmware/blob/dev/AddingNewKinematics.md

          In the reprapforum is a specific section for hangprinter
          https://reprap.org/forum/list.php?423
          where peta created a thread about using it with Duet.

          undefined 1 Reply Last reply 29 Aug 2020, 17:35 Reply Quote 0
          • undefined
            TC @JoergS5
            last edited by 29 Aug 2020, 17:35

            @JoergS5 Thanks that sounds interesting. I just had a look into the kinemetics cpp files and I guess I could do that. Do you know if all the functions need to be present? For example I am not planning to have any kind of auto callibration in the beginning. Bed leveling is obsolete anyway since be are talking about a 2D system 😉

            undefined 1 Reply Last reply 29 Aug 2020, 18:27 Reply Quote 0
            • undefined
              JoergS5 @TC
              last edited by JoergS5 29 Aug 2020, 18:27

              @TC just take a cpp and h file of a kinematic which is similar as a template. The public functions in the h file must be implemented, often you can copy the code from the similar kinematic as a first version. You must implement the functions, because most of them are virtual ones.
              I would mark the methods which are not finished yet with a comment with the word todo.

              It is useful to look into the implementations of the methods for the different kinematics, this will tell you the functions the methods are for (e.g. the LinearDelta is very detailed).

              If the sense of a method is unclear, you can ask here.

              I expect you get problems if trying to implement only 2 coordinates, as most functions rely on a 3 axis cardesian world coordinate system. So you should implement the kinematics with a "virtual" third coordinate Z (or maybe Y in your case) which is always 0.

              undefined 2 Replies Last reply 31 Aug 2020, 17:50 Reply Quote 0
              • undefined
                TC @JoergS5
                last edited by 31 Aug 2020, 17:50

                This post is deleted!
                undefined 1 Reply Last reply 31 Aug 2020, 17:55 Reply Quote 0
                • undefined
                  TC @TC
                  last edited by 31 Aug 2020, 17:55

                  This post is deleted!
                  1 Reply Last reply Reply Quote 0
                  • undefined
                    TC @JoergS5
                    last edited by TC 9 Jan 2020, 14:26 1 Sept 2020, 14:21

                    @JoergS5 I am thinking about a calibration method that uses 4 defined points (like the corners of a paper) to calculate the positions of the two anchor points. That way the user would not need to measure the them himself but instead can manually move the printhead to the 4 points and the maschine saves the relative changes of motor positions.

                    My problem now is that this "Homing" procedure involves manual movements and also has to be done to know the anchor points. Is there a way to pass these coordinates to the kinematics after homing is done? My Idea was to redefine the kinematics using M669 at the end of the homing macro...

                    In detail without given Position parameters in M669 the kinematics would create the axes A and B which corespondes to the single motor and then can be used by the user inside the homing procedure to move to the calibration points. After the anchor positions are calculated M669 is excecuted again with parameters passed and the kinematics creates a normal X and Z axis.

                    undefined 1 Reply Last reply 1 Sept 2020, 17:28 Reply Quote 0
                    • undefined
                      JoergS5 @TC
                      last edited by JoergS5 9 Jan 2020, 17:33 1 Sept 2020, 17:28

                      @TC manually moving the steppers don't help, because the firmware doesn't know the position, and it's also not precise. It's only the firmware=>stepper direction working, not from stepper to firmware.

                      I would define the 4 limiting borders instead of points and place endstops there (borders are easier to target than points). You could use 4 endstops type NC (normally closed) wired in series (or 2*2) and connect them to one endstop(or 2), so when one of them is triggered, the circuit is open and the endstop is triggered. Then store this stepper positions. (Maybe by means of the new object model). Another method is to trigger the endstops by the wires, but this could be difficult to implement. I thought of optically marking them with a color could be a solution.

                      What I don't understand is why you want to measure 4 points. Two positions should be sufficient, because the other position is defined by the distance. The you can set the positions by G92 directly after endstop trigger.

                      You can set M669 values at all times and overwrite values also. If a kinematics or cache value recalculation is necessary, the Recalc() method is for this. When M669 reads in parameter X e.g., then in the code to read X must be set a flag to Recalc().

                      undefined 1 Reply Last reply 1 Sept 2020, 18:07 Reply Quote 0
                      • undefined
                        TC @JoergS5
                        last edited by TC 9 Jan 2020, 18:44 1 Sept 2020, 18:07

                        @JoergS5 Ah I was not precise enough. I did not mean I would move them by hand but by defining motor A and B as axes and then use DWC to control them.

                        Well the idea behind the 4 point system is the following:
                        In the beginning the printer knows nothing. The printhead is hanging in two wires at the wall but it does not even know how long the wire is to the each anchor. So what it needs to find out is the X and Y coordinate for each anchor. That gives 4 variables. Now I move to the left top corner and define it as 0,0. For the followig 3 moves it can measure the change in wire length but still does not know its total length. That gives me 3 relative lengths that make it possible to calculate the anchor point. It might be possible with just 3 points but in my derivation it only works with 4 😉

                        The problem with endstops is that due to the highly non linear behaviour depending on the start position it is nt even clear which border got hit. Additionally a border only gives my one coordinate... I would need even more measurements

                        undefined 1 Reply Last reply 1 Sept 2020, 19:33 Reply Quote 0
                        • undefined
                          JoergS5 @TC
                          last edited by 1 Sept 2020, 19:33

                          @TC you should try your idea. You can use the new object model to store the values and make the calculations, or you set parameters with M669 and let the firmware calculate the distances and other parameters.

                          I had some discussions in reprapforum about using wires. There were some interesting ideas to avoid the length deviation due to the take-up on a spindle.
                          This here eg: https://reprap.org/forum/read.php?14,815780,page=3

                          undefined undefined 2 Replies Last reply 1 Sept 2020, 20:21 Reply Quote 0
                          • undefined
                            TC @JoergS5
                            last edited by 1 Sept 2020, 20:21

                            @JoergS5 oh thanks! I was thinking about the same problem and will study the thread!

                            undefined 1 Reply Last reply 2 Sept 2020, 07:02 Reply Quote 0
                            • undefined
                              JoergS5 @TC
                              last edited by 2 Sept 2020, 07:02

                              @TC this were two additional links which I stored myself, giving ideas:
                              https://reprap.org/forum/read.php?2,151871,page=3
                              http://www.wemakerobots.com/en/3d-printer/dual-wire-gantry-3d-printer

                              1 Reply Last reply Reply Quote 0
                              • undefined
                                droftarts administrators @JoergS5
                                last edited by 2 Sept 2020, 10:44

                                @JoergS5 said in Using HangPrinter geometry for Wall Plotter?:

                                I had some discussions in reprapforum about using wires. There were some interesting ideas to avoid the length deviation due to the take-up on a spindle.
                                This here eg: https://reprap.org/forum/read.php?14,815780,page=3

                                @JoergS5 I remembered that there's this thread on the reprap forums https://reprap.org/forum/read.php?2,151871,177714#msg-177714 about using a tilted pulley to feed wire around a pulley. The incoming/outgoing wire is always on the same position, so there isn't an issue with it moving up and down the drive pulley, causing length deviation. Seem like they had problems getting it to work as a CoreXY though, possibly due to tension.

                                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 2 Sept 2020, 10:58 Reply Quote 0
                                • undefined
                                  JoergS5 @droftarts
                                  last edited by JoergS5 9 Feb 2020, 11:03 2 Sept 2020, 10:58

                                  @droftarts I didn't mean moving up and down the axis position, but doubling (tripling etc.) the wires on the spindle when they are stacked, changing the radius and so steps/mm. This will result in a changing movement which is difficult to calculate.
                                  The solution with two pulleys had a problem that the solution had too much friction. I think the solution with the stepper and 4 spindles/pulleys at the edges is a nice solution.

                                  For tension, there was also a lot of discussion what to take, like FireLine, Kevlar, steel etc.

                                  One interesting addition was a formula how much friction is needed for wires:
                                  https://reprap.org/forum/read.php?397,817525,826869#msg-826869
                                  Unfortunately I didn't understand the formula...

                                  undefined 1 Reply Last reply 6 Sept 2020, 12:27 Reply Quote 0
                                  • undefined
                                    TC @JoergS5
                                    last edited by TC 9 Jun 2020, 12:29 6 Sept 2020, 12:27

                                    @JoergS5 Hey I saw on the other topic you are also building a new kinematic system. Can you help me to build the firmware? I tried to follow the BuildInstructions.md file but it seems some components are not availible for download...

                                    At point 3. I get to this page: https://sourceforge.net/projects/gnuarmeclipse/
                                    which tells me it is outddated 😕

                                    undefined 1 Reply Last reply 6 Sept 2020, 13:21 Reply Quote 0
                                    • undefined
                                      JoergS5 @TC
                                      last edited by JoergS5 9 Jun 2020, 13:25 6 Sept 2020, 13:21

                                      @TC the BuidInstructions.md is a file in the github, your link is missing all the part http etc. in front of it.

                                      The correct path to the file is:
                                      https://github.com/Duet3D/RepRapFirmware/blob/v3.02-dev/BuildInstructions.md
                                      Please take the one of the branch you're using, they may be different. (Change branch in github, the correct .md file will be shown then)

                                      undefined 1 Reply Last reply 6 Sept 2020, 15:32 Reply Quote 0
                                      • undefined
                                        TC @JoergS5
                                        last edited by 6 Sept 2020, 15:32

                                        @JoergS5 Yes I know but the download link in the BuildInstruction file in version 3.1.1 did not work. But the link in the file you posted worked 🙂
                                        Now I followed the instruction and unfortunately am stuck trying to build CoreNG. I get this error:

                                        17:29:36 **** Incremental Build of configuration Default for project CoreNG ****
                                        make all
                                        make: *** No rule to make target 'all'. Stop.
                                        "make all" terminated with exit code 2. Build might be incomplete.

                                        17:29:36 Build Failed. 1 errors, 0 warnings. (took 532ms)

                                        undefined 1 Reply Last reply 6 Sept 2020, 16:57 Reply Quote 0
                                        • undefined
                                          JoergS5 @TC
                                          last edited by 6 Sept 2020, 16:57

                                          @TC I don't build for all, so I don't know how to help. I use a specific target, Duet 3 e.g. and then build. When I build RepRapFirmware, it builds all dependent projects automatically (including CoreNG).

                                          undefined 1 Reply Last reply 6 Sept 2020, 17:30 Reply Quote 0
                                          1 out of 37
                                          • First post
                                            1/37
                                            Last post
                                          Unless otherwise noted, all forum content is licensed under CC-BY-SA