Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login
    1. Home
    2. audryhome
    • Profile
    • Following 0
    • Followers 1
    • Topics 17
    • Posts 51
    • Best 3
    • Controversial 0
    • Groups 0

    audryhome

    @audryhome

    5
    Reputation
    7
    Profile views
    51
    Posts
    1
    Followers
    0
    Following
    Joined Last Online

    audryhome Unfollow Follow

    Best posts made by audryhome

    • RE: Modbus Spindle Control

      @dc42 I have a suggestion for making things much simpler and not further complicating RRF GCODE.

      We basically need M3, M4 and M5 commands to handle the spindle at the GCODE level, plus M950 to init the corresponding io.

      As far as I understand, these commands, handle a spindle created with M950, which, in turn make the assumption we drive the spindle by pwm through a given pin. Nothing is related to modbus nor serial link in M950. This command is somewhat complex, because you handle many different peripherals (led strip,PWM, servo, temp, etc), everything that can be handled by DUET standard io at the hardware level.

      As you said, there is little chance that you can support each and every modbus motor/controller on the market, and this should be the case, I think the program memory should be filled by unused code.

      On the other hand, a GCODE command not implemented in RRF will call a macro of the same name ( e.g. M1000.g)
      We could use a M3.1 M4.1 M5.1 to handle the modbus specific, but this would not be standard and would need some post processing.

      I suggest that RRF, for limited control codes (M3,M4,M5...), instead of handling what is defined by M950, just call corresponding macros when instructed by M950.

      This way, M3,M4,M5 would be handled by the user, it's the user's responsibility to handle all the modbus specifics inside these macros.

      Introduce a parameter M (0 or 1, default 0) in M950 that tells, for the corresponding spindle (R parameter), to call M3_R.g, M4_R.g, M5_R.g R being the spindle number. To avoid a race condition, M3,M4,M5 commands called from inside these macros should not be possible, either raise an error or just do nothing.

      modbus complexity would then be handled by a macro.

      you can extend this to other devices (fans, heater, leds,....) managed through serial, spi or I2C devices.

      M3 P1 S1000 would call the macro M3_1.g with parameter S=1000 exactly like M98 P"M3_1.g" S1000.
      M950 with the M1 and R1 would also call a macro M950_1.g that would init the serial link, maybe check the modbus status to make sure it will work.

      You could expand this to all codes related to M950 for handling special cases not handled by DUET ios.

      I think it would solve the issues I have seen on the forum, included mine without introducing specific GCODES.

      posted in CNC
      audryhomeundefined
      audryhome
    • Fabtotum revival

      Bought a Fabtotum on Kickstarter, received it in 2015, and got my 3D Printing training with it. Good training, since it learned me by practice all the mistakes to avoid as a user, but also all those to avoid as a designer.
      For instance, it stopped using it after the ribbon broke due to trailing on the bed and colliding with printing part. Collecting dust since 2 years since.

      I decided recently to give it a rebirth by changing almost everything except COREXY mechanic, the most valuable thing in FT in my view.

      Removed all guts, including the RPI and heads, printed parts for X end stop, new bowden E3D V6 / TITAN based with most advanced parts, and it worked almost at the 1st run.
      I will now use this as a test platform for new heads, water cooled, TITAN direct drive and more.

      posted in My Duet controlled machine
      audryhomeundefined
      audryhome
    • RE: Persistent variable stored on the SD Card

      @fcwilt Yes, I print tiny parts ( custom gears and connectors), and I need minimal entry points on my objects to allow best external mechanical interface possible.

      Therefore I need to purge my nozzle between each part to ensure identical start conditions.

      And since I need many parts, I stuff my printing bed with as much as possible parts.

      posted in Firmware wishlist
      audryhomeundefined
      audryhome

    Latest posts made by audryhome

    • RE: Object model data resolution M409....

      @dc42 Installed the beta, everything is fine!

      M409 k"move.axes[]" f"f"
      {
      "key": "move.axes[]",
      "flags": "f",
      "result": [
      {
      "machinePosition": 2.652,
      "userPosition": 0.102
      },
      {
      "machinePosition": 5.511,
      "userPosition": 0.102
      },
      {
      "machinePosition": 180.17,
      "userPosition": -0.03
      }
      ],
      "next": 0
      }

      Many Thanks!

      posted in General Discussion
      audryhomeundefined
      audryhome
    • RE: Object model data resolution M409....

      @dc42 Thanks, so I will pursue with a full json solution!!

      posted in General Discussion
      audryhomeundefined
      audryhome
    • RE: What useful things have you printed on a 3D printer?

      @dc42 I bought my 1st 3D printer 10 years ago, a Fabtotum.

      I bought 2 years later a Big Box from E3D.

      In the mean time, I manufactured countless parts

      Special hinges for mosquito net to equip my 12 windows
      Various supports for phone, pc
      Dozens of RPI enclosures, including caméras rpi0
      Repair parts for a dishwashing machine.
      Fixtures for connecting various feather boards with test pins.
      Complete Fabtotum rework, including 6 new print heads with various extruders, last one is a orbiter with piezo packed in 42mm square envelope...
      Big Box rework, some new parts, including duet2 supports, panel due box, cleaning system
      Letters for my grand child's
      Different lamps, including a pair of candle imitated neopixel ones
      Currently refurbishing a milling machine with multiple 3d parts: display, supports, panels....

      Looking for buy/build a new printer and discard old one.

      posted in General Discussion
      audryhomeundefined
      audryhome
    • Object model data resolution M409....

      Hi,

      I am in the process of developing a new CNC pendant for a very old CAMM3 Roland machine, using the original 3 jogs panels which I appreciate very much.

      For this, I use a PICO2, FreeRTOS and coreJSON to provide the glue between the origianl panel and a DUET6 HC .

      I noticed that when I issue M114, I receive a data result with 3 digit accuracy for coordinates, both machine and user.

      Since the answer ( RRF 3.6.0-beta.2+3) is packed in a json string, I try to simplify my request using a M409 , that would give me more information on the axes within a single IO serial transaction with duet. (Machine coords, User coords, homed, ....

      Examples:
      X:-12.500 Y:-22.000 Z:169.905 E:0.000 Count 60001 44801 226484 Machine 37.500 28.000 169.905 Bed comp 0.000 -> using M114
      {"key":"move.axes[2].machinePosition","flags":"a0","result":170} -> using M409

      My understanding from M409 documentation is that limiting buffer size on RRF force to split the answer in multiple chunks (a0 flag) when using k"move.axes[] for instance.

      This is not the case for me since I issue
      M409 k"move.axes[2].machinePosition" for getting the value.

      this should answer 169.905, but it spits 170.

      BTW DWC also displays 170, which is not really accurate....![alt text](image url)

      3988863e-1c64-4e8f-bdff-b56a5f821da1-image.png

      Question: Is there any way to obtain the full resolution using M409 or do I have to use M114 with a ugly string scanning?

      Many thanks

      posted in General Discussion
      audryhomeundefined
      audryhome
    • RE: MillenniumOS - A CNC "Operations System" for RRF 3.5+

      @NineMile I have seen this thread , did not find him again , however this was in a corner of my memory for a while.
      I am refurbishing a Roland CAMM 3 trying to keep the control panel with 3 separate x y z jogs.

      Will test happily your work as soon the old panel is connected to the Duet6HC through a custom made board I am working on.

      posted in CNC
      audryhomeundefined
      audryhome
    • RE: Modbus Spindle Control

      @dc42 I don't plan to, I just need to calculate and adjust the rpm from a tick sensor on spindle start.
      I use a biffy BLDC that transmit movement to an ER16 spindle through a set of GT2 pulleys.

      posted in CNC
      audryhomeundefined
      audryhome
    • RE: Modbus Spindle Control

      @NineMile Nothing prevent M568 to be treated like M3...4.. 5, since the spindle number should be used the same way.

      posted in CNC
      audryhomeundefined
      audryhome
    • RE: Modbus Spindle Control

      @dc42 I have a suggestion for making things much simpler and not further complicating RRF GCODE.

      We basically need M3, M4 and M5 commands to handle the spindle at the GCODE level, plus M950 to init the corresponding io.

      As far as I understand, these commands, handle a spindle created with M950, which, in turn make the assumption we drive the spindle by pwm through a given pin. Nothing is related to modbus nor serial link in M950. This command is somewhat complex, because you handle many different peripherals (led strip,PWM, servo, temp, etc), everything that can be handled by DUET standard io at the hardware level.

      As you said, there is little chance that you can support each and every modbus motor/controller on the market, and this should be the case, I think the program memory should be filled by unused code.

      On the other hand, a GCODE command not implemented in RRF will call a macro of the same name ( e.g. M1000.g)
      We could use a M3.1 M4.1 M5.1 to handle the modbus specific, but this would not be standard and would need some post processing.

      I suggest that RRF, for limited control codes (M3,M4,M5...), instead of handling what is defined by M950, just call corresponding macros when instructed by M950.

      This way, M3,M4,M5 would be handled by the user, it's the user's responsibility to handle all the modbus specifics inside these macros.

      Introduce a parameter M (0 or 1, default 0) in M950 that tells, for the corresponding spindle (R parameter), to call M3_R.g, M4_R.g, M5_R.g R being the spindle number. To avoid a race condition, M3,M4,M5 commands called from inside these macros should not be possible, either raise an error or just do nothing.

      modbus complexity would then be handled by a macro.

      you can extend this to other devices (fans, heater, leds,....) managed through serial, spi or I2C devices.

      M3 P1 S1000 would call the macro M3_1.g with parameter S=1000 exactly like M98 P"M3_1.g" S1000.
      M950 with the M1 and R1 would also call a macro M950_1.g that would init the serial link, maybe check the modbus status to make sure it will work.

      You could expand this to all codes related to M950 for handling special cases not handled by DUET ios.

      I think it would solve the issues I have seen on the forum, included mine without introducing specific GCODES.

      posted in CNC
      audryhomeundefined
      audryhome
    • RE: Error: M260.4: Command is not supported

      @dc42 I did change the power to 5V and this is OK now.
      Many thanks

      posted in Beta Firmware
      audryhomeundefined
      audryhome
    • RE: Error: M260.4: Command is not supported

      @dc42 Saleae logic is connected to the io1 pins.
      Converter is powered by DUET 3.3v line.
      Will test 5v supply to the converter and report.

      Thanks

      posted in Beta Firmware
      audryhomeundefined
      audryhome