Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login
    1. Home
    2. phoenix
    3. Best
    • Profile
    • Following 0
    • Followers 0
    • Topics 11
    • Posts 36
    • Best 5
    • Controversial 0
    • Groups 0

    Best posts made by phoenix

    • Smart Orbiter 3 setup (filament Sensor, RGB and hotend LED)

      Encouraged by the post by @cdoe on setting up the Orbiter 2 filament sensor, I gave it a hard try to set up the Smart Orbiter 3. All features are working and I come amazed at the power of RRF 🙂

      The Smart Orbiter 3 has 8 connections at the base, containing a RGB Matrix LED connection, a simple hotend LED and 2 outputs (FS for sensing if filament is present) and FTU (outputs if filament is tangled or filament unload button is pressed). (check the website https://www.orbiterprojects.com/so3/ in section 3.3 Integrated Smart Features for polarity: I spent a day trying to figure out why nothing was working only to discover that blue and red wires are NOT GND and 3V 🙂 )

      Similar to the Orbiter 2 Sensor, the set up is slightly more elaborate than just a sensor since both outputs have 2 functions and logic is not straightforward as well. FS output works as expected as in changing state when filament is present or runs out, FTU output only changes state if filament is already present.

      I am running a e3d toolchanger with Duet 2 Wifi and DueX5. I connected the cables to the pins 1 -6 of the LCD connector. (all works just fine on 3.3V) and reused triggers developed by @cdoe for things to work.

      This is a section in config.g

      ; Filament Sensor & Smart H2
      M950 J3 C"^connlcd.enca"            ; define logical input for filament auto load
      M581 P3 T5 S1 R0                    ; define trigger for filament auto load triggers trigger5.g
      M581 P3 T2 S0 R0                    ; define trigger for filament sensing triggers trigger2.g
      M950 J4 C"^connlcd.encb"            ; define logical input for filament unload
      M581 P4 T6 S1 R0                    ; define trigger for filament auto unload triggers trigger6.g
      M950 P5 C"connlcd.rs"              	; define logical output for hotend LED
      M950 E0 C"connlcd.5" T1 U1          ; create a RGB Neopixel LED strip on the LCD Connector 5 port (RRF 3.5 and later)
      M98 P"0:/macros/h2led"              ; Set LED Colour according to state of H2
      M42 P5 S0					        ; Turn Hotend LED off
      

      Obviously the most important part is getting the matrix LED to work 😁 with a macro I called h2led.g

      ; Sets MatrixLED according to filament Sensor status
      if sensors.gpIn[3].value = 1
          M150 E0 R000 U255 B000 P255			; set LEDs to green, full brightness
      else
          M150 E0 R255 U000 B000 P128			; set LEDs to red, half brightness
      

      Triggers 2, 5 & 6 reuse the macros developed for the smart orbiter

      ; trigger2.g
      if state.status == "processing"
          M300 S2000 P100                                     ; play beep sound
          M291 P"Ran out of filament while printing" S0 T3    ; display message
          M25
      elif state.status == "pausing" || state.status == "paused"
          M291 P"Retriggered filament sensor during pause" ; display message
      else
          M300 S2000 P100                     ; play beep sound
          M291 P"Ran out of filament" S0 T3   ; display message
      

      For the load and unload triggers, I am using a single printer macro for all toolheads for loading and unloading. As such, I pass on a parameters representing the toolhead to the macro for addressing the right toolhead. And then obviously triggering the color LED macro at the end of it to adjust LED according to status.

      ; trigger5.g
      M150 E0 R000 U000 B255 P128			; set LEDs to blue, half brightness
      M98 P"0:/macros/filament-load" X2   ; Load Filament for T2
      M98 P"0:/macros/h2led"              ; Set LED Colour according to state of H2
      T-1                                 ; Park tool
      
      ; trigger6.g
      if state.status = "processing"
          M300 S2000 P100                                                     ; play beep sound
          M291 P"Filament is stuck or filament unload button pressed" S0 T3   ; display message
          M150 E0 R000 U000 B255 P128			                                ; set LEDs to blue, half brightness
          M25
      else
          M150 E0 R000 U000 B255 P128			                                ; set LEDs to blue, half brightness
          M98 P"0:/macros/filament-unload" X2					                ; Call Unload Macro and pass Tool number using X parameter
          M98 P"0:/macros/h2led"                                              ; Set LED Colour according to state of H2
          T-1
      

      Hope this helps somebody else - it's a nifty little extruder and I'm stoked the electronics are now fully integrated!

      posted in Third-party add-ons
      phoenixundefined
      phoenix
    • RE: Solved - Accelerometer connected causing temperatures fluctuate

      When I opened up to take a picture of the wiring, I noticed a piece of unconnected wire that had fallen off and was resting on the Duex. I guess I'm lucky not to have shortened anything, but the issue is definitely resolved 🙂

      Thanks @gloomyandy for your indirect help 🙂

      posted in General Discussion
      phoenixundefined
      phoenix
    • RE: Orbiter V3.0, Can the "smart" hardware be used with Duet2/RRF?

      just in case OP is still interested: I posted my working config here
      https://forum.duet3d.com/topic/37868/smart-orbiter-3-setup-filament-sensor-rgb-and-hotend-led

      posted in Duet Hardware and wiring
      phoenixundefined
      phoenix
    • RE: Orbiter filament sensor v2 setup

      Just want to say thanks - this works a treat!!

      posted in Third-party add-ons
      phoenixundefined
      phoenix
    • RE: Passing Parameters - unknown variable

      @fcwilt @jay_s_uk thanks for your help! I have now my first macros running 🙂

      posted in General Discussion
      phoenixundefined
      phoenix