Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login
    1. Home
    2. Catalin_RO
    3. Best
    • Profile
    • Following 1
    • Followers 1
    • Topics 15
    • Posts 229
    • Best 28
    • Controversial 2
    • Groups 0

    Best posts made by Catalin_RO

    • RE: RepRapFirmware 3.0

      @dc42 If I were you, I would forget about backwards compatibility! As things evolve, at some point a bold decision must be made and a clean sheet approach must be considered. As you mention, in the end, only changes to the config.g file, in order to properly configure things as they were in firmware versions 1 and 2, this is not a major problem.

      In the end, based on my own experience with similar situations, with or without the full backwards compatibility roughly the same amount of support issues will appear on the forum.

      I personally vote for this significantly improved flexibility in using the I/O capabilities of the boards. And, in the end, it might have the desirable side effect of removing some of the support issues related strictly to improperly configured or connected I/O pins (like the rather odd mapping of the homing/limit sensors). By having no default assignment and having to define everything in config.g would actually make things a lot easier to follow and some mistakes could easily be avoided. As such, I would make mandatory even the M584 command, not defining any default axis or extruders at all if it is not there!

      On the issue of multiple steppers on the same axis, a solution similar to what I did for WorkBee should also be allowed. When squaring a CNC a known offset for a specific stepper on an axis might be required (try positioning a homing switch with 0.01mm accuracy!). But this can be discussed when time comes....

      posted in General Discussion
      Catalin_ROundefined
      Catalin_RO
    • RE: Duet2 and yl620 vfd, chinese spindle control

      I have a similar looking PWM to 0-10V converter connected as follows:

      • DIN- - FAN1-
      • DIN+ - V_FAN
      • 12-30V - the Duet power supply
      • AO/A0 - the VFD VI pin (VI1 in your case)
      • GND - the Duet power supply and the GND pin on the VFD (can also be named ACM)

      Set the PWM input signal level to 24V or you might break the optical coupler at its input.

      On the VFD you also need to short FWD (can also be named FOR) to XGND (can also be named DCM or COM).

      Enable the spindle on FAN1 output by adding the following into the config.g script, replacing the R24000 parameter with the maximum speed of your spindle:

      M453 P21 R24000 F1000
      M563 P2 S"Spindle"

      Specify in the post-processor of the CAM software:

      • M3 {$s} G4 S30 for spindle start - this is for CamBam, for other CAM software the {$s) variable might look differently; adjust the S30 to allow the spindle reach maximum speed before plunging into the material.
      • G4 P0 M5 for spindle stop - the default M5 doesn't wait for all movement to finish!!!

      Check in the VFD manual for P00.01 and P07.08. They both need to be properly set in order for the VFD to use the signal on VI1 for speed control. In case of Huanyang VFDs, check PD001and PD070.

      The VFD might also have some small switches near the control terminals connector, usually undocumented.

      I also have a spindle warmup macro that I run before doing the first machining of the day, as you need to get the grease fluid enough for top speed:

      M3 S5000 G4 S120
      M3 S10000 G4 S120
      M3 S17000 G4 S120
      M3 S24000 G4 S120
      M5

      With the above, the spindle RPM will be correct at top speed, being 10-20% higher at lower RPMs.

      posted in CNC
      Catalin_ROundefined
      Catalin_RO
    • RE: G0 vs G1 movement

      @dc42 In CNC the G0 moves are usually done at a configurable height that is called "clearance height", usually 3-5mm, with the CAM software usually raising the spindle as high as instructed and then moving to the next machining coordinate. Of course, G0 is almost always used to raise the spindle and, in specific situations, it may also be used to lower it until it gets pretty close to the material, using G1 for the last fraction of mm.

      Doing G0 moves too close to the material surface is generally a CAM software (usage) mistake.

      posted in Duet Hardware and wiring
      Catalin_ROundefined
      Catalin_RO
    • RE: CNC spindle induced EMI and Duet boards

      @jrow Indeed, you have installed the filter in the wrong direction. The 3-pins end is for the load, as indicated on its label (though pretty uncommon!). Also, don't expect much from it as the common mode inductor and the X capacitor are pretty small. Better go for something like this one - https://www.conrad.com/p/schaffner-fn2090-16-06-emi-filter-250-v-ac-16-a-4-mh-l-x-w-x-h-1135-x-575-x-454-mm-1-pcs-554095. While it is significantly expensive, from my own experience it makes a huge difference.

      But this filter just prevents electrical noise from getting back into the supply lines. You also need to insure that the VFD is properly grounded and also check that the spindle is really grounded. I had to make myself the ground connection into my spindle as the Chinese ones usually are not properly grounded.

      On my CNC I have a Huanyang 1.5kW VFD inverter and a 24V power supply from Meanwell for the Duet. Never had any EMI problems and I have no line filter on the inverter. For connecting the spindle to the VFD I use a 4-core Lapp cable. The 4 cores are slightly twisted for maximum flexibility and that also helps a little bit on the electrical noise side.

      posted in CNC
      Catalin_ROundefined
      Catalin_RO
    • RE: Driver order and slave axis

      @dc42 When talking to Chrishamm, could there be an extra set of jog buttons for 0.01mm steps? When properly aligning the gantry with the machined piece, sometimes it is very important. Right now I have to manually send G0 commands for that! All other CNC software include support for that.

      posted in Firmware wishlist
      Catalin_ROundefined
      Catalin_RO
    • RE: G2/G3 Arc Movements

      After trying to machine some small Aluminum parts, I had problems even at 1200mm/min. In the end, after doing a lot of tests and studying the problem, the CAM processor is the main culprit. I use a lot of trochoidal milling as it produces much better results on a not-so-rigid machine. The CAM software produces some sudden direction changes in specific situations, so specific that many times they do not happen at all.

      I have found a pattern that easily reproduces the problem. In the end it was the maximum jerk being too high! 900mm/min instantaneous speed change for an 10kg gantry is anything but normal. Maximum feedrate of the WorkBee is 2500mm/min!

      posted in Tuning and tweaking
      Catalin_ROundefined
      Catalin_RO
    • RE: Axis stop working....

      As a side note to this issue, and any other issue that might be related!

      I had a project in which we used huge amounts of connectors pretty much identical to the ones used on the Duet boards. It was not the first project, as I had very good previous experience with the same type of connectors. Some if the guys crimping the pins on the wires misplaced them in the crimping tool and they have squeezed the contact area way to much. We had to get the pins out of the plastic bodies and re-spring them for quite a few of the cables. The problems were random, so finding the actual cause was anything but simple!

      Also, we saw that even "compatible", these connectors are not 100% identical between manufacturers, with slight variations in the latching dents and the actual pin shape. If all sourced from the same manufacturer, everything is OK. But this is a relatively low cost connector, though a pretty well designed one, so there are a lot of manufacturers and only few suppliers guarantee the manufacturer (go for big suppliers like Farnell, Mouser, DigiKey, TME in order to have guaranteed supplier, but avoid generic ones - like Multicomp for Farnell). I think on Duet the connectors are from Wurth!

      posted in Duet Hardware and wiring
      Catalin_ROundefined
      Catalin_RO
    • OOZNest WorkBee, screw driven

      With the release of the 1.21 firmware all the missing functionality for CNC, at least what I consider mandatory, is available, so I could finally ditch the good old GRBL. The machine is a 750*750mm WorkBee, screw driven, with 3.0A steppers, home switches and limits on all axis. There are several notable differences from the standard WorkBee that influence the configuration scripts:

      • home switch on the slave Y axis to allow aligning the gantry, not available by default;
      • limit switches are not available so far in the default configuration, so a lot more wiring is needed;
      • the Z axis is longer to allow deeper reach for a special setup.

      The controller is a Duet3D Ethernet, rev 1.02, updated to firmware 1.21.

      For now the steppers have been limited to 2A. Tomorrow I intend to make fan mounts to insure that the drivers are properly cooled. That should allow going up to 2.4A as per the Duet3D documentation, or even more if the limit is removed at a later time.

      The connections are pretty straightforward - X, left-Y and Z connected to the corresponding axis and right-Y connected to E0. Home and limit switches are NC, connected in series for each axis, the series connection being done close to the controller. All cables are shielded, with the shield connected to ground on the controller side and left floating at the stepper/switch.

      There is also a tool height probe, also based on a NC switch, connected to the PROBE connector.

      With the above said, this is the config.g file (produced by RRF configuration tool and then edited):

      [[language]]
      ; General preferences
      M111 S0                     ; Debugging off
      M453                        ; CNC mode
      G21                         ; Work in millimetres
      G90                         ; Send absolute coordinates...
      M83                         ; ...but relative extruder moves
      M555 P2                     ; Set firmware compatibility to look like Marlin
      ; Automatic saving after power loss is not enabled
      
      ; Endstops
      M558 P5 H5 F100 T2500      ; Set Z probe type to switch and the dive height + speeds
      G31 P600 X0 Y0 Z39.55      ; Set Z probe trigger value, offset and trigger height
      M557 X15:530 Y15:500 S20   ; Define mesh grid
      
      ; Drives & Axis
      ;
      ; Define axis X on drive 0, axis Y on drives 1 and 3, axis Z on drive 2 and dummy axis U on drive 9
      ; Show only axis X, Y and Z
      M584 X0 Y1:3 Z2 U9 E4:5:6 P3
      ;
      ; Set stepper drives parameters for all the used ones
      M569 P0 S1                       ; Drive 0 goes forwards
      M569 P1 S0                       ; Drive 1 goes backwards
      M569 P2 S1                       ; Drive 2 goes forwards
      M569 P3 S0                       ; Drive 3 goes backwards
      M350 X16 Y16 Z16 U16             ; Configure microstepping with interpolation
      M906 X2000 Y2000 Z2000 U2000 I30 ; Set motor currents (mA) and motor idle factor in per cent
      M84 S30                          ; Set idle timeout
      ;
      ; Set axis dynamic parameters
      M92 X400 Y400 Z400 U400          ; Set steps per mm
      M566 X400 Y400 Z12 U400          ; Set maximum instantaneous speed changes (mm/min)
      M203 X2500 Y2500 Z2500 U2500     ; Set maximum speeds (mm/min)
      M201 X150 Y150 Z150 U150         ; Set accelerations (mm/s^2)
      ;
      ; Set axis travel distances
      M208 X0 Y0 Z0 U0 S1              ; Set axis minima
      M208 X545 Y515 Z200 U515 S0      ; Set axis maxima
      ;
      ; Set axis endstops
      M574 X1 Y1 Z2 U1 S1              ; Set active high endstops
      M581 X Y Z U S1 T0 C0            ; Enable endstop triggers while machining
      
      ; Heaters
      M140 H-1                   ; Disable heated bed
      
      ; Tools
      
      ; Network
      M550 PWorkBee              ; Set machine name
      M540 PBE:EF:DE:AD:FE:ED    ; Set MAC address
      M552 P192.168.1.200 S1     ; Enable network and set IP address
      M553 P255.255.255.0        ; Set netmask
      M554 P192.168.1.254        ; Set gateway
      M586 P0 S1                 ; Enable HTTP
      M586 P1 S0                 ; Disable FTP
      M586 P2 S0                 ; Disable Telnet
      
      ; Fans
      M106 P0 S0.3 I0 F500 H-1   ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
      M106 P1 S1 I0 F500 H T45   ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
      M106 P2 S1 I0 F500 H T45   ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on
      
      ; Custom settings are not configured
      
      ; Miscellaneous
      M501                       ; Load saved parameters from non-volatile memory
      
      ; Change to workplace coordinates set 1
      G54
      
      

      homez.g

      [[language]]
      M581 Z S-1 T0 C0  ; disable trigger for endstop Z
      G91               ; relative mode
      G1 S1 Z300 F1000  ; move Z towards the switch until it triggers
      G0 Z-5            ; move Z back 5mm
      G1 S1 Z10 F100    ; move Z slowly towards the switch until it triggers
      G0 Z-1            ; move Z back 1mm
      G90               ; back to absolute mode
      G92 Z200          ; reset the Z coordinate
      M581 Z S1 T0 C0   ; enable trigger for endstop Z
      
      

      homex.g

      [[language]]
      M581 X S-1 T0 C0   ; disable trigger for endstop X
      G91                ; relative positioning
      G1 S1 X-1500 F1000 ; move quickly to X axis endstop and stop there (first pass)
      G0 X5              ; go back a few mm
      G1 S1 X-100 F100   ; move slowly to X axis endstop once more (second pass)
      G0 X1              ; go back a few mm
      G90                ; absolute positioning
      G92 X0             ; reset the X coordinate
      M581 X S1 T0 C0    ; enable trigger for endstop X
      
      

      homey.g - The special line with "G0 Y0.09" is needed in my setup to fully align the gantry. No matter how much I try, there is no way to precisely place the homing switch on the slave Y axis and there might be other small mechanical differences. The offset could be applied either to Y or U axis, depending on the actual situation - the X axis must be parallel to the front beam of the machine frame and the offset can only be positive.

      [[language]]
      M581 Y U S-1 T0 C0        ; disable trigger for endstops Y and U
      M584 Y1 U3 P4             ; separate Y and U axis for aligning them independently
      G91                       ; relative positioning
      G1 S1 Y-1500 U-1500 F1000 ; move quickly to Y and U axis endstops and stop there (first pass)
      G0 Y5 U5                  ; go back a few mm
      G1 S1 Y-10 U-10 F100      ; move slowly to Y axis endstop once more (second pass)
      G0 Y0.09                  ; fully align gantry
      M584 Y1:3 U9 P3           ; combine again the master and slave Y axis
      G0 Y1                     ; go back a few mm
      G90                       ; absolute positioning
      G92 Y0                    ; reset the Y coordinate
      M581 Y U S1 T0 C0         ; enable trigger for endstops Y and U
      
      

      homeall.g - Partially rely on the other homing scripts in order to reduce the number of files to edit if some parameters change.

      [[language]]
      ; first home the Z axis
      M98 Phomez.g
      ;
      M581 X Y U S-1 T0 C0          ; disable trigger for endstops X, Y and U
      M584 Y1 U3 P4                 ; separate Y and U axis for aligning them independently
      G91                           ; relative positioning
      G1 S1 X-550 Y-520 U-520 F1000 ; move quickly to X, Y and U axis endstops and stop there (first pass)
      G0 X5 Y5 U5                   ; go back a few mm
      G1 S1 X-550 Y-520 U-520 F100  ; move slowly to X, Y and U axis endstops once more (second pass)
      M584 Y1:3 U9 P3               ; combine again the master and slave Y axis
      G0 X1 Y1                      ; go back a few mm
      G90                           ; absolute positioning
      G92 X0                        ; reset the X coordinate
      M581 X Y U S1 T0 C0           ; enable trigger for endstops X, Y and U
      ;
      ; redo Y axis homing for fully aligning the gantry
      M98 Phomey.g
      
      
      posted in CNC
      Catalin_ROundefined
      Catalin_RO
    • RE: 6th-order jerk-controlled motion planning

      @shen
      I would avoid even to suggest such a behavior unless it is made optional. The image actually depicts a corner replaced by an arc. This is a decision to be made when generating the GCode for a job (3D printing or milling) and not to be done by the controller in the machine. Just imagine items with sharp edges that must mate properly. With the suggested path that might no longer happen.

      If the path smoothing is desired because of the STL 3D models, why not look for a slicer that supports arc fitting and generates G2/G3 commands? Why not looking for a GCode processor that reads the file produced by the slicer and changes it to G2/G3 commands where possible? In the end the controller should do exactly what it is instructed to do.

      As a side note, it might be more interesting to do a side-by-side comparison between Duet and some board that supports a firmware with higher order motion planning. Is there any difference? Is it really worth the effort?

      posted in Firmware wishlist
      Catalin_ROundefined
      Catalin_RO
    • RE: High level of StepErrors. What can cause them ?

      @dc42 That is great news! This single problem prevented me from using the fastest possible feedrate and I also had to reduce the jerk in order to avoid it in most cases.

      When the new firmware is released, I will do some air cutting and see how it goes!

      posted in Tuning and tweaking
      Catalin_ROundefined
      Catalin_RO
    • RE: Soldering connectors vs crimping...

      I think you need to look a little bit differently at the problem.

      • Whenever some wire connection must/may be done outdoors, crimping is the only reasonable solution. Just try to solder some wires at -20deg, with mild wind blowing - you need a very powerful soldering iron. Cars and industrial equipment must be maintainable with relatively simple tools, and as already stated, without requiring much skill. Also, even if not available on the market, it is relatively easy to make custom crimp tool dies - we had a situation when the guys out in the field had to carry 3 crimping tools, or spend time to swap the dies, so we went for custom made dies and they had just one crimping tool covering all their possible needs.
      • If you go for RF, soldering the central pin of the coaxial connector is the best approach as crimping doesn't really insure proper impedance across the whole frequency range. What happens to the cable shield (crimp, solder or clamp) is a different story because of the relatively large contact surface area. RF cables are almost never repaired in the field, and even when they are, usually it is a highly skilled job that also implies a lot of precautions.
      • If you need some crimped connection on a copper cable, in wet environments, the wires must usually be corrosion protected. Applying a little bit of solder prevents corrosion in the contact area and it is usually cheaper and, most of the times, easier to apply than other sealing solutions.
      • Some industrial connectors come with different pins for crimping and soldering. Usually in the those cases the crimping tool is dedicated and crazy expensive.

      But that is in a perfect world!

      It may happen that you have to crimp some strange connector, for a one time need, and you don't have the tool. Usually a pair of pliers and some soldering cover that in a decent way.

      I usually crimp all data connectors but I always solder my coaxial connectors (at least the central pin, depending on the connector type).

      posted in Duet Hardware and wiring
      Catalin_ROundefined
      Catalin_RO
    • RE: OOZNest WorkBee, screw driven

      After a lot of tests done with G2/G3, based on issues discovered while trying to machine a rather small Aluminum item, the maximum jerk should be limited to 300mm/min for X, Y and U. So change in config.g the line for M566 to:

      M566 X300 Y300 Z12 U300

      posted in CNC
      Catalin_ROundefined
      Catalin_RO
    • G17, G18 and G19

      While Duet3D always works in XY plane, it would be great if it would accept G17, G18 and G19. As far as I can see G17 would be just a "no operation" with G18 and G19 stopping with errors, but with more descriptive messages (something like "work in plane YZ is not supported!"). Normally CAM tools generate these GCodes especially to insure proper controller functionality. Instructing the CAM tool not to issue them may cause really hard to track errors (think of a complex part, with many machining operations, and modifying by mistake the work plane for just one of them).

      posted in Firmware wishlist
      Catalin_ROundefined
      Catalin_RO
    • RE: Problem with setting working coordinate systems

      @mwinterm I'm the one partially to "blame" for having WCS support in more recent firmware. While I have not written the code, I'm one of the more vocal users of Duet boards with CNC routers/mills. So far, I can't see the problem that you are reporting, but there are two relatively minor differences. I'm on stable firmware:

      Firmware Name: RepRapFirmware for Duet 2 WiFi/Ethernet
      Firmware Electronics: Duet Ethernet 1.02 or later
      Firmware Version: 2.01(RTOS) (2018-07-26b2)
      Web Interface Version: 1.22

      and I use separate G10 L20 P1 macros for X/Y and Z.

      I have used the stable firmware quite a lot recently and had no issues, apart from my mistakes, with WCS.

      posted in Duet Hardware and wiring
      Catalin_ROundefined
      Catalin_RO
    • RE: Dual Y axis and rotary A axis

      Initially I had P4 in the command and DWC kept crashing. For a test, I have added just the A4 to the M584 command to see how it goes. Again DWC crashed, even if the extra axis were hidden. So, based on that, I think the DWC is making the controller unusable in this scenario. For all other issues, consider the other related thread.

      posted in CNC
      Catalin_ROundefined
      Catalin_RO
    • RE: Duet2 Wifi Operating Temp

      Also look for StepErrors in the M122 output report. I can easily make a GCode file that exhibits exactly as you mentioned and the StepErrors value increases correspondingly. With some combination of move commands the firmware is not capable of properly handling the slave Y-axis in my case. It may be that the problem is visible only with multiple drives per axis. It is a known problem and David will have a look over it soon.

      Thermal shutdown should completely stop the stepper driver and even if for short periods of time it should be a lot worse than just a "jump" here and there.

      What currents have you configured for the steppers? Do you see any problem in the output object (3D printed, milled etc.)?

      posted in General Discussion
      Catalin_ROundefined
      Catalin_RO
    • RE: Duet Web Control wishlist notes and priorities

      @chrishamm said in Duet Web Control wishlist notes and priorities:

      Move steps for each axis and extruder amounts+feedrates can be changed via right-click\

      Could we also have more move steps buttons in a future version?

      posted in Duet Web Control wishlist
      Catalin_ROundefined
      Catalin_RO
    • RE: VFD spindle drive 0-10V output

      @t3p3tony Well, while it is not worth considering developing an alternative, the next Duet version could have a very simple 0-10V output (I have discovered that the analog ground used for the 0-10V input is disconnected from the digital ground in the inverter!) for the ones brave enough to directly connect it, and at least two optocouplers for spindle forward/reverse or direction/active control, with the corresponding support in firmware.

      As for firmware support, the following came up:

      • Separate digital spindle control lines - while I have wired the forward control line for always on, relying on the 0-10V output for actually turning on/off the spindle, normally the inverter supports a minimum spindle speed to prevent overheating. This is good to have especially for air cooled spindles.
      • Calibration support for the 0-10V output. While I precisely get to 24000 RPM, when I set 5000 RPM through the M3 command I get a little bit more than 6000 RPM. While the PWM is normally precise, the conversion from PWM to voltage may be more difficult to improve.
      • It would be nice to have some feedback solution from the inverter. This is a rather tricky subject as far as I could see, especially with the Chinese models. But in case the inverter has such an output, it would be nice to rely on it in order to know when the spindle has reached the target speed.

      There is one better alternative to all the above - MODBUS. Smoothieboard, for example, supports this for Huanyang VFDs (http://smoothieware.org/spindle-module). All functionality can then be achieved only through simple serial commands.

      posted in CNC
      Catalin_ROundefined
      Catalin_RO
    • RE: CE Declaration of Incorporation for Duet Boards?

      As I'm mainly working in the RF area, shielding of anything that could affect my other work is really important. Initially I had an eShapeOko as CNC machine. And I have built it as cheaply as possible. The NO end-stops were a nightmare to keep under control (falsely triggering in most inappropriate moments!), and I had twisted pair cables for all motors!

      The first step was to replace the stepper cables with properly shielded, really flexible cables. While not cheap, 4 core LAPP Kabel CY Flex 4G0,5 (https://lapplimited.lappgroup.com/products/cy-cables.html) proved to be very effective. The shield was connected only toward the controller, GRBL back then, with the end by the stepper left open.

      When building the WorkBee I have used the same type of cables for the steppers, leaving less than 10cm of cable without shielding near the stepper. Also, I have used a similar cables with just one twisted pair for the switches (homing and limits). The only false alarms since that have occurred only when one of the steppers missed some steps or I have touched one of the switches by mistake.

      Also, bear in mind that the CE logo applies to the whole product! The Duet might be CE compliant by itself, but improperly connecting a lot of steppers and switches to it might make the final build totally non-compliant. While temperature range, humidity etc. might be easily decided upon the least capable item in the build, EMI is a really tricky job!

      As a side note, even is enclosing the Duet board into a proper metal box will not insure the final machine will be meeting the CE requirements! While the Duet will be properly screened, the cables to the steppers may be a source of "electric storm", from an RF point of view.

      posted in General Discussion
      Catalin_ROundefined
      Catalin_RO
    • Increase displayed coordinates precision

      DWC 1.21 reports X and Y coordinates with just one decimal and Z coordinate with two decimals. For milling with 400steps/mm it would be nice to have three decimals for all coordinates, but at least two are really needed.

      As mentioned by Danal in another thread - https://www.duet3d.com/forum/thread.php?id=5017 - it should be pretty trivial to implement.

      posted in Duet Web Control wishlist
      Catalin_ROundefined
      Catalin_RO