Compiled Firmware with 5bar-Scara / Dual-Arm-Scara



  • Hello Everyone,

    i am looking for a compiled Version of the Firmware with 5bar-scara (dual-arm) support for a duet2wifi 1.04 Board. A great guy here in the forums called JoergS5 created it. Found here: https://github.com/JoergS5/RepRapFirmware/tree/v2-dev/src/Movement/Kinematics

    I spent many many hours in getting the project talked in here: https://forum.duet3d.com/topic/5651/parallel-scara/18
    to get compiled.

    Finally i got i compiled with eclipse.....BUT.... when i flash (using BOSSA) the binary to the duet2wifi board , nothing works. when i flash back some downloaded .bin it works again. I flashed it with the downloaded binaries for reprap 2.01,2.03 and 2.05... they all work fine.

    My self compiled .bin (also based on 2.01). just doesnt work and i dont know why. I thought if it compiles, it should work....i was wrong 😞

    Can anyone help me out with a compiled firmware with 5bar-scara / dual-arm Scara included ? As i just dont know what to change in the source files or project-settings to generate a valid bin-file.

    Best, Johannes


  • administrators

    Are you able to compile a binary that works from the 2.05 source files, with no changes?

    If the 5-bar kinematics files that you linked to are reliable, I can add them to the 3.01 firmware release.



  • @dc42 The source files are for RRF2, I am not finished migrating it to RRF3. There are a few changed methods in the kinematics files. I will speed up migrating to RRF3, as Enpixa is the third person who wishes to use this kinematics.



  • @Enpixa I'll give you a RRF3 version next week (a binary), which I ask you to test and report back whether David can add it to the official release. Is it a problem for you to use RRF3 instead of RRF2? RRF3 can run on Duet2Wifi, but needs some configuration file changes.



  • @dc42 didnt check it yet. As i am no programmer, this is my first attempt with Eclipse. Took many many hours and help from several people to get it compiled.

    @JoergS5 Sure, i will test it. as all the necessary changes from RRF2 to RRF3 can be found here: https://duet3d.dozuki.com/Wiki/RepRapFirmware_3_overview

    I am in a very early stage of the project i think it doesnt make a big change for me.

    Thanks alot !


  • administrators

    Hi @JoergS5, I wasn't expecting you to respond quickly, as I saw that you hadn't committed any changes recently.

    I've just adapted your FiveBarScara Kinematics files for RRF3 and committed them to the 3.01 branch. I've allocated kinematics type 9 for this kinematics. I left a couple of "TODO" comments where I wasn't sure whether anything else ought to be done to take account of additional parameters. They should only involve limit checking, so with luck the basic kinematics should work as well as it did in RRF2.



  • @dc42 Thanks a lot, I will start at the checked in version, this makes life easiert for me.



  • Thanks to you both ! It is awesome to find such great support in this forum ! I cant tell you how happy it makes me to see a new drawing-bot will do its first correct moves soon 🙂


  • administrators

    I could let you have a RRF3 binary with the support compiled in now, but I have no way of testing that kinematics. So it would be better for @JoergS5 to test it first.



  • Please wait, I'll tell you the test results soon.



  • I got my old 5-bar arm still on RRF2, struggled a bit with the RRF3 transition.
    I'll pull from the git and see what works and what does not work.



  • Hi have not used a duet yet but am looking at a scara build and will need additional axis so I’m happy to see this thread and let you know more interested.

    Thanks for the work and I look forward to also testing.



  • Hello All.

    as the official release, at least the RC-Versions of the firmware now seems to support Dual-Scara.... yeehaa.
    thx to Jörg, Bondus, DC42 and all the other people made this possible !!!

    Before running in a completely wrong direction i wanted to ask you if there is in your opinion a disadvantage of placing
    the steppers like in the Photo. This ways both arms have the same "pivot-point". I am not sure If it is a bad idea because of leverage etc. or the firmware runs into some 0-degree problems....

    photo_2020-03-03_17-03-22.jpg photo_2020-03-03_17-03-08.jpg photo_2020-03-03_17-02-50.jpg

    Hopefully i can do my first tries the next days with a new config on the Duet2Wifi.

    Best, Johannes



  • The Printer is doing something 🙂

    G1 S2 X0 Y-30 is doing e.g kind of a quarter-circle. Is this the right behaviour ?

    I Changed M669 K11 X0:0 Y0:0 P260:260 D260:260 to M669 K9 X0:0 Y0:0 P260:260 D260:260
    as it was showing up Geometry-Type: "Markforged" now it shows "FivebarScara" in Machine Properties

    X0:0 as my steppers are at the same position regarding x/y position, this is right this way ?!

    For first testing id like to draw just a small rectangle. What would be the best way to get this done ?

    Is it possible to change the Workmode in the config file ? Id like to test Workmode 2
    like described here: https://duet3d.dozuki.com/Guide/Five+Bar+Parallel+SCARA/24?lang=en

    here is the part of my config-file:

    M574 X1 Y1 Z0 S1 ; proximal L and R homing switches trigger when the arm is at
    M669 B ; positions and are active high
    M669 K9 X0:0 Y0:0 P260:260 D260:260 ; arms are 300 mm long, actuators are 100 mm apart, other parameters take defaults
    M350 X128 Y128 Z128 E16 I1 S3 ; Configure microstepping with interpolation
    M203 X10000 Y10000 Z300 E3600 ; maximum speeds mm/minute
    M92 X100 Y100 Z400 E95.2 ; Set steps per mm
    M566 X15 Y15 Z2 E2 ; Set maximum instantaneous speed changes (mm/min)
    M201 X50 Y50 Z50 E1000 ; Set accelerations (mm/s^2)
    M906 X1000 Y1000 Z700 E600 ; Set motor currents (mA) and motor idle factor in per cent



  • @Enpixa Hi Johannes, workmode setting is supported with M669 Ln, e.g. L2 for workmode 2 (described in step 5 of documentation).

    I dont't see a disadvantage to set the actuators to the same axis. This special case was descibred in step 15. There are printers using this.



  • Hello Jörg. thx. didnt see that at first sight.

    now i installed the endstops. They seem to work hardware-wise. At least the red LEDs next to the Stepper Plug
    on the mainboard lighten up when i trigger them by hand. ( i used the endstops from my old Anet A8 and connected them to GND & Stop of X and Y Endstop Pins on Mainboard)

    Unfortenetly the steppers doesnt stop when triggering the endstop. (Also tried with M574 X1 Y1 Z0 S0 for active low)
    Also tried moving +x and -x and pressing the trigger by hand doesnt stop the movement. (LEDs on mainboard show me
    a nice red light :)) But the steppers are still moving....... I move the arm with G1 S1 X10 F20 this makes my left-arm (x) moving towards me.

    M119 gives me Endstops - X: no endstop, Y: no endstop, Z: no endstop, Z probe: at min stop

    This is the part of my config.g

    M574 X1 Y1 Z0 S1 ; ( Also tried M574 X2 Y2 Z0 S0 )
    M669 B60:60

    ; Axis Limits
    M208 X-300 Y-300 Z0 S1 ; Set axis minima
    M208 X300 Y300 Z300 S0 ; Set axis maxima

    M669 K9 L2 X0:0 Y0:0 P265:260 D265:260:25:0 ; arms are 300 mm long, actuators are 100 mm apart, other parameters take defaults

    endstop_photo_2020-03-05_03-00-17.jpg

    Any ideas what i am doing wrong ?

    Best, Johannes



  • @Enpixa I expect that a definition of the endstop pins is missing, please check the document https://duet3d.dozuki.com/Wiki/RepRapFirmware_3_overview , e.g. "Endstop numbers are no longer used in M591. Pin names replace them." At the end of this document is an overview of the pin names for the different boards.

    If you don't find the reason, please post your complete config file and the type of hardware and firmware (I know it, but the others may not).



  • Jörg, you are crazy being up that late 🙂

    I am running on a Duet2Wifi 1.04 - with latest Firmware Release 3.01-RC3
    Actually im running my X-Arm with : G1 S2 X10 F20 to make it moving towards me.

    Endstop Pins are connected like shown here:

    Pins_photo_2020-03-05_04-05-23.jpg

    This is my complete config.g

    ; General preferences
    G90 ; Send absolute coordinates...
    M83 ; ...but relative extruder moves
    M552 S1 ; Turn network on

    ; Network
    M111 S0 ; Debug off
    M550 P********* ; Machine name and Netbios name (can be anything you like)-
    M551 P********* ; Machine password (used for FTP)

    M586 P0 S1 ; Enable HTTP
    M586 P1 S1 ; Enable FTP
    M586 P2 S1 ; Enable Telnet

    ; Drives

    M569 P0 S1 ; Drive 0 (X) goes forwards
    M569 P1 S1 ; Drive 1 (Y) goes forwards
    M569 P2 S1 ; Drive 2 (Z) goes forwards
    M569 P3 S1 ; Drive 3 (E0) goes forwards

    M574 X2 S1 P"xstop" ; X min active high endstop switch
    M574 Y2 S1 P"ystop" ; Y min active high endstop switch
    ;M574 Z1 S0 P"zstop" ; Z min active high endstop switch

    M669 B60:60

    M669 K9 L2 X0:0 Y0:0 P265:260 D265:260:25:0 ; arms are 300 mm long, actuators are 100 mm apart, other parameters take defaults
    M350 X128 Y128 Z128 E16 I1 S3 ; Configure microstepping with interpolation

    M203 X10000 Y10000 Z300 E3600 ; maximum speeds mm/minute

    M92 X100 Y100 Z400 E95.2 ; Set steps per mm
    M566 X15 Y15 Z2 E2 ; Set maximum instantaneous speed changes (mm/min)
    M201 X20 Y20 Z20 E1000 ; Set accelerations (mm/s^2)
    M906 X1200 Y1200 Z700 E600 ; Set motor currents (mA) and motor idle factor in per cent

    M84 S0 ; Set idle timeout

    ; Axis Limits
    M208 X-300 Y-300 Z0 S1 ; Set axis minima
    M208 X300 Y300 Z300 S0 ; Set axis maxima

    If anyone has an idea... this would be really great !
    Thanks alot, Johannes



  • @Enpixa I am not an endstop expert, but I think it is necessary to define and use a Z endstop even you don't need it. But I'm not sure.


  • administrators

    @JoergS5 said in Compiled Firmware with 5bar-Scara / Dual-Arm-Scara:

    @Enpixa I am not an endstop expert, but I think it is necessary to define and use a Z endstop even you don't need it. But I'm not sure.

    No, it's not necessary with RepRapFirmware.


  • administrators

    @Enpixa said in Compiled Firmware with 5bar-Scara / Dual-Arm-Scara:

    M574 X1 Y1 Z0 S1 ; ( Also tried M574 X2 Y2 Z0 S0 )

    As you are running RepRapFirmware 3, you need to specify the endstop pin names. If the endstop LEDs are normally on but go out when the endstop is triggered (which is the case when using normally closed switches, recommended) then you need:

    M574 X1 S1 P"xstop"
    M574 Y1 S1 P"ystop"



  • Hello DC42,

    thats what i already did, see my latest post/config: https://forum.duet3d.com/topic/13631/compiled-firmware-with-5bar-scara-dual-arm-scara/18

    @Enpixa said in Compiled Firmware with 5bar-Scara / Dual-Arm-Scara:

    M574 X2 S1 P"xstop" ; X min active high endstop switch
    M574 Y2 S1 P"ystop" ; Y min active high endstop switch
    ;M574 Z1 S0 P"zstop" ; Z min active high endstop switch

    I tried all thinkable variations ( active low/high / trigger min/max )

    Right now, i dont know what more i could try to make it work.



  • @Enpixa I don't have more ideas. I would try a last test inverting with the ! sign *), then trying other endstop hardware.

    *)
    P"pin_name" Defines the pin name(s) that the endstop(s) for the specified axis are connected to. Needed when S=1. May need ! before pin name to invert signal. in https://duet3d.dozuki.com/Wiki/Gcode#Section_M574_RepRapFirmware_Num_3



  • Is the red LED on the mainboard a good indicator if it is working properly hardware-wise ? Because when
    i press the endstop manually the LED is on. if not pressed it is off.

    If you have a recommendation for me which endstops i should buy. i would appreciate it.



  • @Enpixa i've read "The second line (S1) defines all
    active high endstops.

    If you are unsure if your endstops
    are active high or active low, you
    can test them by observing the
    light next to the corresponding
    stepper motor connector. If the
    light is lit when the button is
    pressed, then this would indicate
    an active low endstop"
    in https://dozuki-guide-pdfs.s3.amazonaws.com/pdf/duet3d/guide_10_en.pdf page 11. So the light tells you the type of endstop. If it is the light you mean, then it would be a active low endstop.


Log in to reply