Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login
    1. Home
    2. keyz182
    3. Topics
    • Profile
    • Following 0
    • Followers 1
    • Topics 29
    • Posts 148
    • Best 22
    • Controversial 0
    • Groups 0

    Topics created by keyz182

    • keyz182undefined

      Power loss backup cap causing power supply restarts

      Duet Hardware and wiring
      • • • keyz182
      5
      0
      Votes
      5
      Posts
      341
      Views

      keyz182undefined

      @dc42 fantastic, thanks!

    • keyz182undefined

      Bitmap to Duet 12864 menu image converter

      Third-party software
      • • • keyz182
      1
      2
      Votes
      1
      Posts
      180
      Views

      No one has replied

    • keyz182undefined

      [Solved][Duet2Wifi] WiFi SPI Timeout after removing SBC Mod

      Duet Hardware and wiring
      • • • keyz182
      13
      0
      Votes
      13
      Posts
      774
      Views

      albertshaoundefined

      @t3p3tony what do ESP_DATA_RDY and NPCS0 for? can this to pin connect to GND or 3.3V pull up, thanks for reply

    • keyz182undefined

      Power Pi from Duet 3 Mini 5+ shorting 5V_Ext to 5V_SBC

      Duet Hardware and wiring
      • • • keyz182
      11
      0
      Votes
      11
      Posts
      534
      Views

      Electriceyeundefined

      @dc42

      I see another thread that recently touched on this, but I'm still wondering what the most optimal power setup is going to be given my cfg of PanelDue7 connected to the Duet3 Mini 5+ and externally powered SBC.

      great post here: duet3d dot kom/topic/35950/external-5v-supply-for-sbc-raspberry-pi-4-and-duet-3-mini-5
      explains this a bit better, but there has to be a tradeoff somewhere. I want the Pi to be stable with it's own power supply, but also know the Duet3 Mini5+ is going to be needing adequate power for the PanelDue7,etc...
      I'm also aware that the 26 pin ribbon cable has limits with that tiny gauge wire and do not wish to push things too far.

      After I get past this last power cfg issue, I can power it all up and start to finally commission this printer!

    • keyz182undefined

      Custom Pendant Implementation suggestions

      Accessories and Add-ons
      • • • keyz182
      14
      0
      Votes
      14
      Posts
      654
      Views

      jay_s_ukundefined

      @keyz182 https://github.com/Sindarius/DWC_GamepadJogger_Plugin

    • keyz182undefined

      Duet Object Model to MQTT publisher

      Third-party software
      • • • keyz182
      1
      2
      Votes
      1
      Posts
      858
      Views

      No one has replied

    • keyz182undefined

      DuetWebServer Nginx proxy issues

      General Discussion
      • • • keyz182
      1
      0
      Votes
      1
      Posts
      113
      Views

      No one has replied

    • keyz182undefined

      Duet SBC WS281x Progress Bar

      Third-party software
      • • • keyz182
      1
      2
      Votes
      1
      Posts
      169
      Views

      No one has replied

    • keyz182undefined

      Configurator not respecting ActiveHigh/ActiveLow for endstops

      General Discussion
      • • • keyz182
      3
      0
      Votes
      3
      Posts
      193
      Views

      keyz182undefined

      @dc42 said in Configurator not respecting ActiveHigh/ActiveLow for endstops:

      @keyz182 said in Configurator not respecting ActiveHigh/ActiveLow for endstops:

      Unless I'm misunderstanding, it should be M547 X1 S0 P"!xstop" - is that correct?

      Yes, for RRF 3.1.x that is correct.

      It also had the "S" parameter wrong, so should be M574 Y1 S1 P"!ystop".

    • keyz182undefined

      BLTouch very occasionally not deploying

      Third-party add-ons
      • • • keyz182
      5
      0
      Votes
      5
      Posts
      2.6k
      Views

      keyz182undefined

      @Phaedrux said in BLTouch very occasionally not deploying:

      Also, for the future, it's a good idea to use M913 to drop the motor current during homing just in case there is a crash. That way the motors will stall before causing much damage.

      Turns out I'm already doing that, I just never added a Z parameter (sensorless homing on X/Y).

      It's also a good idea to add a alarm release and retract command to the start of homeall and to the end of config.g just to get the BLTouch ready in case it is not. Ask me how I know.

      No need to ask, I should know myself. In fact, I had assumed I was already doing that, but I was not. 🤦

    • keyz182undefined

      SMS Notifier with Image

      General Discussion
      • • • keyz182
      1
      2
      Votes
      1
      Posts
      425
      Views

      No one has replied

    • keyz182undefined

      Polar 3D printer design

      General Discussion
      • • • keyz182
      3
      1
      Votes
      3
      Posts
      388
      Views

      keyz182undefined

      frank26080115 9 Apr 2019, 18:32

      What is your strategy for getting the nozzle at least 0.2mm from the dead center of your bed (or else all your prints will have a hole in the middle of it)? Using shims/springs/screws/slots on your extruder mount is an OK solution, definitely don't simply reprint the entire bottom of your printer simply for calibrating that position.

      Probably Shims for getting dead centre.

      There's noooo way those two angle braces are enough to keep your Z axis perfectly vertical. Add some sort of horizontal stabilizers. Mount the Z stepper up on top if you have to (I know this is counter intuitive) I would personally want the bottom of the printer to look like a "H" or at least a "T" and not a "I". Mounting the stepper on top would ruin your center of gravity but it gives you less headaches when arranging parts.

      I guess if I go for a T shape, with an extra bit of 2020 laying flat and perpendicular to the main bottom extrusion, I can use a t joining plate at the back, with some angled brackets on top, and I'd only have to move the Z motor up 10 or so mm. May need to tweak the motor mount slightly too.

      I'm not sure how you are making that bottom lazy susan bearing, or where you are buying it from, but it looks like it's meant for radial loads and not thrust loads. I would use something that has a tapered race at least, which is a easier geometry to machine anyways (as opposed to an internal groove). I get that the load is probably not very high but it just looks weird to me to see balls like that.

      I have it left over from building a Ciclop 3D scanner, it's a 16014ZZ. So yeah, for radial loads, but I'm probably not even going to put a metal bed on it (definitely not heated), so there'll be minimal axial load, aside from any heavy handedness on my part. If you can recommend anything specific, I can take a look.

      I didn't however mention that I'm attempting to only use parts I already have, so I'll likely stick with that bearing, at least until I've got a physical, working proof of concept (which, knowing my track record, I may never reach).

      Or forget about a lazy susan bearing and put three ordinary cheap skateboard bearings near the outer rim of the build plate, if your plate is stiff enough. I see you have bars on the bottom that make this not practical though

      This is just a few hours work on a first draft design - so open to changes, even major to it. The bars are a 3 point bed attachment, to allow screws and springs at the end for some manual levelling - so that the bed itself would be attached at these points. So that would be trivial enough to redesign, and just have the bed run on rollers, with a centrally attached shaft. Would have to make the mounts for the bearings vertically adjustable somehow to allow for some levelling.

      With a 3 point system though, it'd only require 2 of those bearing to be adjustable, so less complex.

    • keyz182undefined

      VESC spindle control for CNC mill

      CNC
      • • • keyz182
      9
      0
      Votes
      9
      Posts
      1.8k
      Views

      keyz182undefined

      @dc42 Aaah, I see. I had gotten mixed up at some point assuming that the output from M280 etc was PWM, not PPM (from my understanding, yes, standard RC servo protocol).

      If that's the case, I just need to figure out the wiring. While the VESC seems like solid hardware/software, I've found it's documentation to be vague, and highly disconnected - I've been spoiled by Duet! 😛

      I'll post here for future reference if/when I get everything working.

    • keyz182undefined

      Tweaked Laser Gcode generation for Inkscape

      Laser Cutters
      • • • keyz182
      5
      2
      Votes
      5
      Posts
      1.1k
      Views

      keyz182undefined

      @T3P3Tony that makes sense, though makes lining up things for cutting/etching a bit more difficult.

    • keyz182undefined

      M1 issues with Slic3r PE Single Extruder Multi Material option

      Tuning and tweaking
      • • • keyz182
      7
      0
      Votes
      7
      Posts
      817
      Views

      keyz182undefined

      @deckingman yeah, definitely in PE, 1.41. Their focus is on the MMU style setup, so makes sense it's diverging. While they do support non Prusa stuff, Prusa is obviously the focus.

    • keyz182undefined

      Tool Change scripts not being called

      Tuning and tweaking
      • • • keyz182
      4
      0
      Votes
      4
      Posts
      631
      Views

      keyz182undefined

      I think it's as simple as this, unfortunately can't get the firmware to compile (even unchanged) to test.

      diff --git a/src/GCodes/GCodes.cpp b/src/GCodes/GCodes.cpp index f3ca91a..43a2233 100644 --- a/src/GCodes/GCodes.cpp +++ b/src/GCodes/GCodes.cpp @@ -580,59 +580,65 @@ void GCodes::RunStateMachine(GCodeBuffer& gb, const StringRef& reply) toolChangeRestorePoint.feedRate = gb.MachineState().feedRate; gb.AdvanceState(); if ((gb.MachineState().toolChangeParam & TFreeBit) != 0) { const Tool * const oldTool = reprap.GetCurrentTool(); if (oldTool != nullptr && AllAxesAreHomed()) { String<ShortScratchStringLength> scratchString; scratchString.printf("tfree%d.g", oldTool->Number()); DoFileMacro(gb, scratchString.c_str(), false); + }else { + reply.printf("No previous tool or axes not homed, skipping tfree%d.g", oldTool->Number()); } } break; case GCodeState::toolChange1: // Release the old tool (if any), then run tpre for the new tool case GCodeState::m109ToolChange1: // Release the old tool (if any), then run tpre for the new tool if (LockMovementAndWaitForStandstill(gb)) // wait for tfree.g to finish executing { const Tool * const oldTool = reprap.GetCurrentTool(); if (oldTool != nullptr) { reprap.StandbyTool(oldTool->Number(), simulationMode != 0); } gb.AdvanceState(); if (reprap.GetTool(gb.MachineState().newToolNumber) != nullptr && AllAxesAreHomed() && (gb.MachineState().toolChangeParam & TPreBit) != 0) { String<ShortScratchStringLength> scratchString; scratchString.printf("tpre%d.g", gb.MachineState().newToolNumber); DoFileMacro(gb, scratchString.c_str(), false); + }else { + reply.printf("No previous tool or axes not homed, skipping tpre%d.g", gb.MachineState().newToolNumber); } } break; case GCodeState::toolChange2: // Select the new tool (even if it doesn't exist - that just deselects all tools) and run tpost case GCodeState::m109ToolChange2: // Select the new tool (even if it doesn't exist - that just deselects all tools) and run tpost if (LockMovementAndWaitForStandstill(gb)) // wait for tpre.g to finish executing { reprap.SelectTool(gb.MachineState().newToolNumber, simulationMode != 0); UpdateCurrentUserPosition(); // get the actual position of the new tool gb.AdvanceState(); if (AllAxesAreHomed()) { if (reprap.GetTool(gb.MachineState().newToolNumber) != nullptr && (gb.MachineState().toolChangeParam & TPostBit) != 0) { String<ShortScratchStringLength> scratchString; scratchString.printf("tpost%d.g", gb.MachineState().newToolNumber); DoFileMacro(gb, scratchString.c_str(), false); } + }else { + reply.printf("Axes not homed, skipping tpost%d.g", gb.MachineState().newToolNumber); } } break; case GCodeState::toolChangeComplete: case GCodeState::m109ToolChangeComplete: if (LockMovementAndWaitForStandstill(gb)) // wait for tpost.g to finish executing { // Restore the original Z axis user position, so that different tool Z offsets work even if the first move after the tool change doesn't have a Z coordinate currentUserPosition[Z_AXIS] = toolChangeRestorePoint.moveCoords[Z_AXIS];
    • keyz182undefined

      Misunderstanding M591?

      Filament Monitor
      • • • keyz182
      4
      0
      Votes
      4
      Posts
      681
      Views

      dc42undefined

      That probably explains it. Painting the inside of the housing with matt black paint should work too.

    • keyz182undefined

      Frequent Wifi disconnection since 2.0.0

      General Discussion
      • • • keyz182
      5
      0
      Votes
      5
      Posts
      569
      Views

      keyz182undefined

      @dc42

      Current versions:

      alt text

      I just updated OpenWRT to 18.06, and it seems OK so far, I'll report back later today if the issues return.

    • keyz182undefined

      Laser PWM Module V1

      Laser Cutters
      • • • keyz182
      3
      1
      Votes
      3
      Posts
      1.2k
      Views

      keyz182undefined

      @snowcrash said in Laser PWM Module V1:

      @keyz182 said in Laser PWM Module V1:

      The projects is linked here on EasyEDA.

      Excellent project & write-up, @keyz182! Thanks for sharing 🙂

      Could you please provide more info (& pics) regarding the laser you're using with this module? (I might give it a go myself and haven't worked with lasers before so any pointer would be helpful).

      This is the laser I'm using. It appears to be using the same control board as the Eleksmaker laser modules that are all over Aliexpress and similar.

      They're pretty simple boards, they take GND, +12V and PWM. They have a button on them, when off, the laser is on, but in very low power, so good for lining up parts, focusing, and I generally leave the switch in this position when not in use. When on, the laser is in PWM mode where it's intensity is PWM controlled, from off up to full power.

      If you're getting one, be sure to check that it's a PWM laser, and buy safety glasses! I also got some transparent safety acrylic that filters out the lasers wavelength which I'm going to try to either enclose, or somehow shield the laser with for extra safety.

      And perhaps say a bit more about what you're using the laser for? is it for etching/cutting acrylic and the like or something totally different?

      I only have a 2.5w module, so plenty of etching, but limited in cutting - card, paper, thin/light wood, very thin opaque acrylic (or a lot of passes - ~16 passes at 3mm/s on some 3mm thick stuff I tried yesterday). Also remember that this is a visible light wavelength laser, so if you can see through it, the laser will "see" through it too (unless, as mentioned above, it filters that particular wavelength).

      I'm trying/failing to get into leather work (wallets, belts and the like), so hoping to use the laser to cut templates and etch logos/designs/etc.

    • keyz182undefined

      LaserWeb4 Support

      Firmware developers
      • • • keyz182
      4
      0
      Votes
      4
      Posts
      633
      Views

      keyz182undefined

      @resam said in LaserWeb4 Support:

      Did you see M452? It provides a laser mode. There are a few forum posts here describing how to use it, and also some problems with it.
      I'm using LaserWeb together with M452 and M3/M5 command to do laser cutting (no engraving or rastering).

      Yes, I'm aware of this, and using it currently.

      Just saw the last comment from @dc42 on that thread though:

      Support for using the S parameter to control laser power on G1 moves will be added in firmware 2.02.

      So this thread just became redundant 🙂