Jump to content

Project 7000: Voron 2.4 350mm - Magic Phoenix (MPX) Canbus/Tap Kit


indi8six

Recommended Posts

Voron TAP

For probing, the MPX kit comes with all the necessary hardware for a Voron TAP as standard. I initially printed all the parts out in ABS but elected to treated myself to a CNC part. I use 2x Magnets and 2x Screws for the configuration of the TAP, finding it a good balance between rigidity and movement. The CNC part really made the whole carriage super sturdy, with hardly any toolhead flex.

IMG_1457.thumb.jpg.73ee2d1a3a449582991d31eb56b27704.jpg

IMG_1459.thumb.jpg.86c35512c0c28f03c3b98bc497eb6309.jpg

I noticed when using the CNC TAP, it hardly takes any vertical movement to trigger the optical switch. About 0.5-1.0mm before triggering. I'm not sure whether this is a good or a bad thing.

After using the TAP for a while, my conclusion is that it is very accurate. I'm getting reasonably good standard deviation on my PROBE_ACCURACY tests. However, meshing and QGL is slow. I use adaptive-meshing in my PRINT_START so I may consider swapping everything over to an Eddy sensor in the future.

  • Like 4
Link to comment
Share on other sites

12 hours ago, indi8six said:

I noticed when using the CNC TAP, it hardly takes any vertical movement to trigger the optical switch. About 0.5-1.0mm before triggering. I'm not sure whether this is a good or a bad thing.

I have Chaoticlab CNC Version 2, your movement seems similar to what I see with mine. (Is yours vitalli tap version or something else?)

 

My Z Tilt (basically qgl) usually makes 1 pass, adjust, 2nd pass, rehome, then 5x5 mesh. Granted I suppose the belts will sag more than z screws, so probably a couple passes for you? I usually don't mind the amount of time all that takes since it gives time for my chamber to get up to temperature. I'm usually too lazy to preheat too much though.

 

Build log has been awesome, wish mine was half as clean.

  • Like 1
Link to comment
Share on other sites

Posted (edited)

Toolhead

Whilst I finally settled on a DragonBurner in my v0.2, I elected for a standard StealthBurner for this build. 1) I quite like the aesthetic, 2) I wanted to run KNOMI2 at the toolhead, 3) I will print mainly in ABS so am not too fussed about having jet-engine part cooling and 4) I have all the hardware ready to switch to CPAP using this muffler by Mammoth-FDM if I ever decide to print more PLA.

For the hotend, I ordered the Phaetus Rapido 2 via MPX directly as an upgrade option. In to this went a 0.4mm CHT nozzle.

IMG_1395.thumb.jpg.e350be41e53de8452c1e32d5a3e4697f.jpg

 

In a surprising touch of quality, the MPX kit comes with dual ball bearing GDSTime fans throughout.

IMG_1407.thumb.jpg.4a2783211008e867052968cf63d9e430.jpg

 

My extruder of choice was the Galileo 2, a drop-in replacement in the StealthBurner. I originally printed beta-release parts, later rebuilding with the final release-candidate STL/CAD parts.

IMG_1321.thumb.jpg.909f6f0e0a0582e59fa2864c8f6fd40c.jpg

IMG_1323.thumb.jpg.e171f6d9dd4aa99f08faba57f6fdcdf6.jpg

 

The MPX kit also comes with BTT's SB2209 can board as standard. The squeeze was a bit tight and I eventually had to buy pre-crimped connectors to make the thermistor connection a bit more reliable. Trying to crimp 1.25 connectors was possibly the most traumatic thing of the toolhead build so I gave in! Thankfully the MPX kit included everything else pre-crimped (X-endstop and OptoTap PCB).

IMG_1469.thumb.jpg.6f0f235bf6bbe51c8a291ec7181567cc.jpg

 

I added a 27mm RPi fan to the cover using this great mod. Power supply is 5V through the selectable PWM fan port of the SB2209 breakout board.

IMG_1467.thumb.jpg.118f0e852547f66481f341c455180413.jpg

 

I settled on this fancier front plate and used Rainbow BARF for the logo light running the Klipper LED effects plugin. The KNOMI2 recently had a new mount published which seemed a bit more rigid. However, it was a total pain to fit and rubbed against the part-cooling fan. I had to increase the "inner diameter" of the mount by manually filing it down (CAD published but too cumbersome to edit for me).

IMG_1970.thumb.jpg.b215be244c8c1c063d38901f0627a22d.jpgIMG_1971.thumb.jpg.cfc01f7cd04895f37df7dac38f1875ec.jpg

 

Job done.

Edited by indi8six
  • Like 4
Link to comment
Share on other sites

On 4/19/2024 at 3:38 PM, indi8six said:

Attaching the Z-drives was simple. The tensioner mechanism is a brilliant bit of Voron design - simple yet effective.

Yup, very satisfying to click that lever over. 

  • Like 1
Link to comment
Share on other sites

Posted (edited)

CANBUS

The MPX kit comes with CAN toolhead boards (BTT SB2209) and hardware (cable reliefs, cable braid, steel wire). The default build option from MPX is to connect the toolhead to the rear AB mount via a steel wire. After all, no one likes it floppy. For this, they have their own printed part, with supplied custom PCB for the y-endstop and an onboard SMD thermistor. I did consider this but doing a dry-fit with the gantry at maximum Z-height, I really did not fancy the umbilical rubbing the top panel. I also disliked the aesthetic of the wiring.

656b78cae6433.thumb.jpg.3ceda265b919cd46e14d4bec524a0a57.jpg

 

Instead, I elected to run the CAN cable via the exhaust with the filament tube, resulting in a cleaner aesthetic and better routing in my opinion...

IMG_1800.thumb.jpg.5be5039a12297d2a57a61591d71187b9.jpg

Versus...

IMG_1924.thumb.jpg.717ef5eb8ce368a9545135eafbba568c.jpg

IMG_1971.thumb.jpg.19c61d17fc31e065145046327d32019b.jpg

Internally I used these parametric clips to route the filament and CANBUS cables together, with the CANBUS cable running through a braid (purely for bling).

IMG_1967.thumb.jpg.97e7eb6c2b8de22e1c70bf2bcc11e646.jpg

For the back panel, I combined VEFACH with this exhaust remixed with an additional M12 mount for a CAN cable. This was run through this exhaust fan grill (which I modified to remove the thermistor port).

IMG_1928.thumb.jpg.b84fcc10e5e0db4e1bd218c03056f023.jpg

IMG_1942.thumb.jpg.1124981130c2628783149d71585cfd39.jpg

 

CANBUS Electronics

The BTT can cable was routed as shown. I modified these clips so that the panel can still be removed with clips in situ. The clips also route the filament sensor and the VEFACH mount cables.

IMG_1941.thumb.jpg.2b613ee5859372817ee710f60617f79a.jpg

This fed into a 4x2 Wago mount near the rear of the electronics bay, through this modified centre skirt, supplying 24v, GND, CAN-H and CAN-L.

IMG_1484.thumb.jpg.4dca5f84d08b74a9320b4c43e1bc474f.jpg

This in turn was run directly to the Octopus Pro RJ11 CAN port in a custom twisted-pair loom (dark blue braid). This type of adapter was used.

IMG_1940.thumb.jpg.621d39df6881cf5f5e101265cee96777.jpg

 

Software / Firmware

The whole system is setup with Katapult and an automated update script for one-command flashing (my custom update-all.sh bash script)...

# --------------------------
# Full Update Script (MCU and Toolhead only)
#
# sh update-all.sh
# --------------------------
echo -e "\e[1;31m --- Stopping and Updating Klipper --- \e[0m"
sudo service klipper stop
cd ~/klipper
git pull

echo -e "\e[1;33m --- Building Octopus Klipper Firmware --- \e[0m"
make clean KCONFIG_CONFIG=config.octopus
make menuconfig KCONFIG_CONFIG=config.octopus
make KCONFIG_CONFIG=config.octopus

read -p "Octopus firmware built, please check above for any errors. Press [Enter] to continue flashing, or [Ctrl+C] to abort"

echo -e "\e[1;31m --- Flashing Octopus Firmware --- \e[0m"
python3 ~/katapult/scripts/flash_can.py -u 3dbe73805ca0
python3 ~/katapult/scripts/flash_can.py -d /dev/serial/by-id/usb-katapult_stm32f429xx_2A004E000551313133383438-if00

read -p "Octopus firmware flashed, please check above for any errors. Press [Enter] to continue, or [Ctrl+C] to abort"

echo -e "\e[1;33m --- Building Toolhead Klipper Firmware --- \e[0m"
make clean KCONFIG_CONFIG=config.toolhead
make menuconfig KCONFIG_CONFIG=config.toolhead
make KCONFIG_CONFIG=config.toolhead

read -p "Toolhead (SB2209) firmware built. Please check for errors. Press [Enter] to continue flashing or [CTRL+C] to abort"

echo -e "\e[1;31m --- Flashing Toolhead Firmware --- \e[0m"
python3 ~/katapult/scripts/flash_can.py -u b6819f9796d7

read -p "Toolhead firmware flashed, please check above for any errors. Press [Enter] to continue, or [Ctrl+C] to abort"

echo -e "\e[1;32m --- Restarting Klipper --- \e[0m"
sudo service klipper start

 

Edited by indi8six
  • Like 4
Link to comment
Share on other sites

Posted (edited)

VEFACH

I really wished to keep the exhaust filter to run VEFACH. Unfortunately the MPX kit closes off the exhaust filter in their recommended print list / build. Thankfully I had a 12V 60mm high-RPM Delta fan from a couple of decades-old PC build. It sounds like an Airbus A380 taking off at 100% speed!

The VEFACH was easy to print and thankfully worked fine with my modified CAN-cable housing.

IMG_1927.thumb.jpg.8c6abf1e394c084e3bb4caa2e8368f5c.jpg

IMG_1928.thumb.jpg.aae28b6a26805d3f5bde563d5dda68c8.jpg

I customised a VEFACH config...

[gcode_macro _VEFACH]
variable_fan: 'VEFACH_Fan' # Name of fan
variable_fast: 0.4		   # Default Fan speed fast  
variable_slow: 0.2		   # Default Fan speed slow
variable_timer: 600        # Default timer in seconds
gcode:

[gcode_macro VEFACH_ON]
description: Turn on the VEFACH fan.
gcode:
  {% set vefachcfg = printer["gcode_macro _VEFACH"] %}
  {% set SPEED = params.SPEED|default(vefachcfg.fast)|float %}

  M118 Turning VEFACH ON ({SPEED*100}%)
  SET_FAN_SPEED FAN={vefachcfg.fan} SPEED={SPEED}

[gcode_macro VEFACH_OFF]
description: Turn off the VEFACH fan.
gcode:
  {% set FAN = printer["gcode_macro _VEFACH"].fan %}
  
  M118 Turning VEFACH OFF
  SET_FAN_SPEED FAN={FAN} SPEED=0

[gcode_macro START_VEFACH_TIMER]
gcode:
  {% set vefachcfg = printer["gcode_macro _VEFACH"] %}
  {% set TIME = params.TIME|default(vefachcfg.timer)|int %}

  M118 Starting VEFACH Timer ({TIME}seconds)
  UPDATE_DELAYED_GCODE ID=STOP_VEFACH DURATION={TIME}

[delayed_gcode STOP_VEFACH]
gcode:
  VEFACH_OFF

[gcode_macro CANCEL_VEFACH_TIMER]
gcode:
  M118 Cancelling VEFACH Timer
  UPDATE_DELAYED_GCODE ID=STOP_VEFACH DURATION=0

with this in PRINT_END

    # Turn on VEFACH if ABS bed
      {% if printer.heater_bed.target >= THRESHOLD %}            ; Continue only if target temp greater than threshold.
        VEFACH_ON
        START_VEFACH_TIMER
    {% endif %}

THRESHOLD being called upon from a pre-set high bed temperature variable (i.e. ABS bed temp of 90C+).

This sets the VEFACH off at the end of the print with a delayed gcode to stop it after 10 minutes.

 

Filament Path

The pathing of the filament was through a BTT SFS v2.0 (later found to be quite an unreliable device, especially the 'smart encoder' part).

IMG_1953.thumb.jpg.e26c7925dbcdbc82f44ffa55822da410.jpg

IMG_1963.thumb.jpg.187d429b60e972728f0126885d22315c.jpg

IMG_1964.thumb.jpg.e3ffd98ad40cec07e81fa9b297944725.jpg

Edited by indi8six
  • Like 4
Link to comment
Share on other sites

12 minutes ago, D__J said:

Very clean! Maybe a blue Knomi face?

Could you link to the wire clips you used on the back? I can't find those anywhere and with the panel on my wires of just chilling there...

Yes of course. I remixed another design so that I could still remove panels with the clips in situ...

https://www.printables.com/model/861650-flat-edge-2020-extrusion-cable-clip-flatter

  • Thanks 1
Link to comment
Share on other sites

4 hours ago, indi8six said:

I'm struggling with this... I've seen the tutorial but seems quite an arduous task. Anything pre-made already?

Long story short, can do it, but wondering if it's already been done for an easier life!

With the knomi 2 I think you can just change colors within its settings.

I have a knomi 1. Bit more complicated haha. I used this github repo to change mine. You can edit the gifs, as actual gifs, to change the color or whatever. If you have that firmware flashed onto your knomi you can then go to the IP of it on your computer, and drag and drop the new ones in. As long as the names are the same it'll change. Then in settings there is a color selector for the non-gif items.

edit: If i can find my firmware or recompile I can upload it for people. Then you could do whatever you want to gif-wise.

edit edit: Firmware is down the page a bit. along with a flasher tool.

Link to comment
Share on other sites

The Electronics Bay

MPX documentation suggest their own wiring guide and electronics layout. This layout is different to Voron's official layout and LDO's layout, with the PSU mounted perpendicular across both DIN rails instead of parallel. They also helpfully supply din-mounted UK2.5 terminal blocks. Overall, I felt that the MPX layout was the neatest and most logical so I stuck with that. Additional Corner/T-piece cable trunking were printed (90% scale).

Before...

IMG_1426.thumb.jpg.5a3bd751e8bfee45b573c65918ec5d1a.jpg

After...

IMG_1728.thumb.jpg.77661968ce1bb0d9d65b15ee07294d40.jpgIMG_1798.thumb.jpg.28871cb032e9b5ec4a9e7b3bf3bd9431.jpg

 

MCU / Host

Whilst the MPX kit came with a BTT M8Pv2 and CB1 host board, I went down the route of upgrading to BTT Octopus Pro (F429) with a RPi 3B+. I wanted the option of a possible future "upgrade" to 48v, liked the idea of using open-source Pi-OS instead of proprietary kernel builds, and wanted a DSI-screen.

IMG_1424.thumb.jpg.19c22de7e97c27af78f5a627480177c6.jpg

I also added a (currently unused) BTT Relay to open the option of simple on/off via the RPi GPIO.

IMG_1420.thumb.jpg.99eb45a42203a093007d62a78db20183.jpg

A Klipper Expander was added, supplying THE FILTER bed fans, the Disco XXL neopixel lighting and additional thermistors. A completely unnecessary add-on from a functionality point of view (the Octopus Pro board has enough IO ports). However, it enabled more convenient cable paths.

IMG_1470.thumb.jpg.efd1b7c49c7a915e7f4237d5d52e470f.jpg

I added a DIN-mounted Wago 5V/GND distribution block for skirt lighting.

IMG_1435.thumb.jpg.dbe19bd7652191e86deaf01a2175f429.jpgIMG_1472.thumb.jpg.c2b17bfce8e320332badf55b614a55b7.jpg

Cooling

I added Winsinn 12V Sleeve Fans on both sides of the bay (in and out). Whilst the MPX kit came with GDSTime fans, I found them too loud and bulky (20mm vs 15mm). These are triggered in Klipper as controller-fans (i.e. on only when steppers/heaters are active), running 100% speed but on the 5V rail silently.

IMG_1938.thumb.jpg.841b1b728574368702ece21b03bd5198.jpg

A 40mm RGB fan was used to cool the RPi 3B+ (a necessity, with the RPi running at 70-80C without) and a 92mm 12V fan (silently running on 5V) for the Octopus Pro.

IMG_1421.thumb.jpg.6f84ae2eff43e4b8786c71efb7d8ec8a.jpg

IMG_1937.thumb.jpg.dfac2fed64f10e7b7844845e6255dadb.jpg

Temperatures whilst printing (with chamber stabilising at 52-55C)...

image.png.f876b095aae48f0764e759b1ace44561.png

 

Link to comment
Share on other sites

3 hours ago, indi8six said:

'm scratching my head wondering whether going to 48V gantry is worth it.

I got the 48V on the VZBot330 with AWD and can absolutely recommend it. In my opinion - yes it is, if you re aiming for increased speed. The only reason I have not converted the other printers is because I am "locked" into the Revo Voron Eco-system and the nozzle flow (12mm3) restricts the speeds the printer can operate at.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...