@T3P3Tony I've added the config files to the first post. They're still a work in progress but it's a good starting point.
Posts made by bug2k22
-
RE: Anycubic Kobra 2 Max upgrade
-
Anycubic Kobra 2 Max upgrade
I have had many little issues and things that annoyed me when using the Kobra 2 Max, with Anycubic running a proprietry closed version of Klipper removed a lot of the options for customizing the printer configuration. I decided to just remove the controller board and replace it with a Duet 3 6HC and 7" paneldue display. I did not want to use cloud accounts, phone apps or usb flash drives to transfers files to the printer. The printer did not have a local web gui.
The only thing that I could not get to work was the acceleromter on the print bed, the LIS2DW12 is supported but there is no connection to the interrupt pin on the chip, apparently klipper does not require this but the duet boards do. I replaced this with a Duet3D accelerometer. The same chip is used on the print head but there is a pad that is connected to the interrupt pin and can be used.
The psu has a 500w rating, but I measured the usage at 460w just heating up the print bed without any steppers or the extruder running, a max draw over 570w while printing. I changed the psu for a Mean Well 648w supply to give it a bit more headroom and hopefully reliability.
There is a separate pcb to power the heated bed and I ran the bed heater output from the 6hc to this board to power the bed heater.I've used conservative speeds/accelerations as the advertised rates are a little optimistic. This config works but could still use some tuning.
config.gM550 P"Kobra 2 Max" ; set persistent hostname M575 P1 S0 B57600 ; configure PanelDue support M569 P0.0 S1 D2 ; driver 0.0 goes forwards (Z axis) M569 P0.1 S1 D2 ; driver 0.1 goes forwards (Z axis) M569 P0.2 S1 D2 ; driver 0.2 goes forwards (extruder 0) M569 P0.4 S1 D2 ; driver 0.4 goes forwards (X axis) M569 P0.5 S0 D2 ; driver 0.5 goes backwards (Y axis) M906 X1960 Y2660 Z1400 E960 ; set motor driver currents M906 I60 ; set motor current idle factor M84 S30 ; set motor current idle timeout M669 K0 ; configure Cartesian kinematics M584 X0.4 Y0.5 Z0.0:0.1 ; set axis mapping M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation M92 X80.3 Y80.3 Z401.5 ; configure steps per mm M208 X-5:430 Y-5:430 Z-0.4:500 ; set minimum and maximum axis limits M566 X600 Y600 Z12 ; set maximum instantaneous speed changes (mm/min) M203 X30000 Y25000 Z960 ; set maximum speeds (mm/min) M201 X2000 Y1000 Z3000 ; set accelerations (mm/s^2) M584 E0.2 ; set extruder mapping M350 E16 I1 ; configure microstepping with interpolation M92 E476 ; configure steps per mm M566 E120 ; set maximum instantaneous speed changes (mm/min) M203 E4800 ; set maximum speeds (mm/min) M201 E300 ; set accelerations (mm/s^2) M558 K0 P5 C"io6.in" H5 F1200:120 T12000 A2 ; configure analog probe via slot #0 G31 P500 X24 Y13.35 Z1.36 ; actual trigger height is 1.2mm ; set Z probe trigger value, offset and trigger height M574 X1 P"!io5.in" S1 ; configure X axis endstop M574 Y1 P"!io4.in" S1 ; configure Y axis endstop M574 Z1 S2 ; configure Z axis endstop M557 X25:405 Y25:405 S40:40 ; define grid for mesh bed compensation M308 S0 P"temp0" Y"thermistor" A"Heated Bed" T100000 B4388 C7.06e-8 ; configure sensor #0 M308 S1 P"temp1" Y"thermistor" A"Extruder" T100000 B4388 C7.06e-8 ; configure sensor #1 M950 H0 C"out0" T0 ; create heater #0 M143 H0 P0 T0 C0 S120 A0 ; configure heater monitor #0 for heater #0 M307 H0 R0.2 D5.5 E1.35 K0.56 B1 ; configure model of heater #0 M950 H1 C"out1" T1 ; create heater #1 M143 H1 P0 T1 C0 S250 A0 ; configure heater monitor #0 for heater #1 M307 H1 R2.780 K1.008:0.522 D8.26 E1.35 S1.00 B0 V24.0 M140 P0 H0 ; configure heated bed #0 M950 F0 C"out7" Q1000 ; create fan #0 M106 P0 C"Extruder Fan" S0 B0.1 H1 T45 ; configure fan #0 M950 F1 C"out8" Q250 ; create fan #1 M106 P1 C"Filament Fan" S0 H-1 ; configure fan #1 M563 P0 S"Extruder" D0 H1 F1 ; create tool #0 M568 P0 R0 S0 ; set initial tool #0 active and standby temperatures to 0C M591 D0 P2 C"io3.in" S1 ; simple filament sensor M955 P0 C"spi.cs1+spi.cs0" ; accelerometer on the print head of the Kobra2Max, note this will only register X and Z moves, the print bed has it's own accelerometer for Y M955 P0 I41 ; set correct orientation
homeall.g
; lift Z G91 ; relative positioning G1 H2 Z5 F12000 ; move Z relative to current position to avoid dragging nozzle over the bed G90 ; absolute positioning ; home XY var xTravel = move.axes[0].max - move.axes[0].min + 5 ; calculate how far X can travel plus 5mm var yTravel = move.axes[1].max - move.axes[1].min + 5 ; calculate how far Y can travel plus 5mm G91 ; relative positioning G1 H1 X{-var.xTravel} Y{-var.yTravel} F6000 ; coarse home in the -X and -Y directions G1 H2 X5 Y5 F12000 ; move back 5mm G1 H1 X{-var.xTravel} Y{-var.yTravel} F300 ; fine home in the -X and -Y directions G90 ; absolute positioning ; home Z ; NOTE: The following XY coordinates use values from the probe grid defined in the next section var xCenter = move.compensation.probeGrid.mins[0] + (move.compensation.probeGrid.maxs[0] - move.compensation.probeGrid.mins[0]) / 2 - sensors.probes[0].offsets[0] var yCenter = move.compensation.probeGrid.mins[1] + (move.compensation.probeGrid.maxs[1] - move.compensation.probeGrid.mins[1]) / 2 - sensors.probes[0].offsets[1] G1 X{var.xCenter} Y{var.yCenter} F12000 ; go to bed centre G30 ; probe the bed
homex.g
; lift Z G91 ; relative positioning G1 H2 Z5 ; move Z relative to current position to avoid dragging nozzle over the bed G90 ; absolute positioning ; home X var maxTravel = move.axes[0].max - move.axes[0].min + 5 ; calculate how far X can travel plus 5mm G1 H1 X{-var.maxTravel} F6000 ; coarse home in the -X direction G1 H2 X5 F6000 ; move back 5mm G1 H1 X{-var.maxTravel} F300 ; fine home in the -X direction G1 H2 Z-5 F6000 ; lower Z again
homey.g
; lift Z G91 ; relative positioning G1 H2 Z5 ; move Z relative to current position to avoid dragging nozzle over the bed G90 ; absolute positioning ; home Y var maxTravel = move.axes[1].max - move.axes[1].min + 5 ; calculate how far Y can travel plus 5mm G1 H1 Y{-var.maxTravel} F6000 ; coarse home in the -Y direction G1 H2 Y5 F6000 ; move back 5mm G1 H1 Y{-var.maxTravel} F300 ; fine home in the -Y direction G1 H2 Z-5 F6000 ; lower Z again
homez.g
; lift Z G91 ; relative positioning G1 H2 Z5 ; move Z relative to current position to avoid dragging nozzle over the bed G90 ; absolute positioning ; home Z ; NOTE: The following XY position is determined from the probe grid defined in the next section var xCenter = move.compensation.probeGrid.mins[0] + (move.compensation.probeGrid.maxs[0] - move.compensation.probeGrid.mins[0]) / 2 - sensors.probes[0].offsets[0] var yCenter = move.compensation.probeGrid.mins[1] + (move.compensation.probeGrid.maxs[1] - move.compensation.probeGrid.mins[1]) / 2 - sensors.probes[0].offsets[1] G1 X{var.xCenter} Y{var.yCenter} F6000 ; go to bed centre G30 ; probe the bed
I was also getting false triggers of the simple filament sensor but came across this thread which gave a solution, effectively inserts a small wait for the switch to debounce and only triggers if it's still triggered.
filament-error.g
G4 P10 ; delay 10ms to debounce if sensors.filamentMonitors[0].status="ok" echo "switch bounce detected - error cancelled" M99 ; break out if sensor value is zero again (bouncing) ; if we got this far the switch is still showing no filament M25 ;pause
-
Kobra2Max accelerometer wiring, possible?
I have all the other hardware on this printer working with the Duet3 6HC, is it possible to wire up this accelerometer to the duet? The duet docs show that an interrupt signal is required in addition to the pins shown. The device appears to use the LIS2DW12. There are 2 accelerometers on this printer, one integrated onto the pcb within the print head and another (this one) on the print bed as it's a 'bed slinger' type. I realise it's unlikely both can be used at the same time, but is it possible to use either individually?
Thanks.
[Edit]
I've got the accelerometer on the print head working, there was no wire for the interrupt pin but I did find a solder pad labelled TP1 which seemed to be connected the correct pin on the LIS2DW12 package. This works fine, but only for the x and z axis as this is a 'bed slinger'. There does not seem to be any such track or connection to the interrupt pin on the LIS2DW12 package on the print bed accelerometer to measure the y axis.
This is no big deal as it's a simple process to swap this out for the duet accelerometer for the bed.
-
Motion Webcam Plugin install fails
I'm getting an error when installing the Motion Webcam Plugin v3.5.
Prerequisites RepRapFirmware Version 3.5.0-rc.3 Duet Software Framework Version 3.5.0-rc.3
The prerequisites are met, but it fails to install with the following error.
Installation failed! Failed to install package libavcodec58, package manager exited with code 100
Motion is installed and the service is running.
If I try to install libavcodec58 there are unmet dependency errors.The following packages have unmet dependencies: libavcodec58 : Depends: libaom0 (>= 1.0.0) but it is not installable Depends: libcodec2-0.9 (>= 0.9.2) but it is not installable Depends: libdav1d4 (>= 0.2.1) but it is not installable Depends: libvpx6 (>= 1.6.0) but it is not installable Depends: libwebp6 (>= 0.5.1) but it is not installable Depends: libx264-160 (>= 2:0.160.3011+gitcde9a93) but it is not installable Depends: libx265-192 (>= 3.2) but it is not installable E: Unable to correct problems, you have held broken packages.
This is running on a raspberry pi 5 on the latest Pi OS with all updates installed.
Any help on how to resolve the issue is appreciated. -
RE: Duet3 6HC SBC mode can't access after upgrade to 3.5
@jay_s_uk Thanks, that's just what was needed. I had got caught up in the weeds of the wiki and never read the release notes for that release. I already had apparmor installed and configured, must have missed the 'apt install duetpimanagementplugin' bit.
This all looks to be working perfectly now, many thanks. -
RE: Duet3 6HC SBC mode can't access after upgrade to 3.5
@droftarts There are no plugins listed under 'external plugins'. I am running DSF 3.5.0-rc3 on this printer, M997 S2 completes but there are no updates/changes.
I presume the DuetPi Management Plugin feature is an addition installed on the duet image that is not present when following the manual install procedure. -
RE: Duet3 6HC SBC mode can't access after upgrade to 3.5
@droftarts Thanks Ian, I thought that may have been installed with the duetsoftwareframework. Is that something that I would have to compile and install manually? If so it's probably easier for me to use the supplied duet image as there's much less chance of something going wrong. I can work my way around linux, but I'm not an expert.
-
RE: Duet3 6HC SBC mode can't access after upgrade to 3.5
@chrishamm Thanks. Those came from the "RepRapFirmware Configuration Tool" https://configtool.reprapfirmware.org/Configuration when SBC mode is selected, those line created, I see now that they are supposed to be entered into the runonce.g file and not config.g.
It all now looks to work correctly but it seems the 'M999 B-1 P"OFF"' code to gracefully power down the pi results in an error, so I'll probably back up the config files and use the supplied beta raspberry pi image as a starting point.
-
Duet3 6HC SBC mode can't access after upgrade to 3.5
I was running 3.4.6 and changed the raspberry pi to the 'unstable' release channel and did an upgrade, there were no errors and I did a reboot following this.
I am now not able to access the duet web control panel. It show an error at the bottom on the page 'dcs is not started' and continually 'connecting....'.
I can ssh in to the raspberry pi and it seems at least one of the services is not running.Mar 22 18:17:24 kobra2max DuetControlServer[634]: Duet Control Server v3.5.0-rc.3 Mar 22 18:17:24 kobra2max DuetControlServer[634]: Written by Christian Hammacher for Duet3D Mar 22 18:17:24 kobra2max DuetControlServer[634]: Licensed under the terms of the GNU Public License Version 3 Mar 22 18:17:24 kobra2max DuetControlServer[634]: [info] Settings loaded Mar 22 18:17:24 kobra2max DuetControlServer[634]: [info] Environment initialized Mar 22 18:17:24 kobra2max DuetControlServer[634]: [warn] Kernel SPI buffer size is smaller than RepRapFirmware buffer size (4096 configured v> Mar 22 18:17:24 kobra2max DuetControlServer[634]: [info] Connection to Duet established Mar 22 18:17:24 kobra2max DuetControlServer[634]: [info] IPC socket created at /run/dsf/dcs.sock Mar 22 18:17:24 kobra2max systemd[1]: Started duetcontrolserver.service - Duet Control Server. Mar 22 18:17:24 kobra2max systemd[1]: Starting duetwebserver.service - Duet Web Server... Mar 22 18:17:24 kobra2max kernel: warning: `.NET Long Runni' uses wireless extensions which will stop working for Wi-Fi 7 hardware; use nl802> Mar 22 18:17:25 kobra2max DuetWebServer[847]: Microsoft.AspNetCore.DataProtection.Repositories.EphemeralXmlRepository[50] Using an in-memory > Mar 22 18:17:25 kobra2max DuetWebServer[847]: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[59] Neither user profile nor HK> Mar 22 18:17:25 kobra2max DuetWebServer[847]: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[58] Creating key {284646bf-a09c> Mar 22 18:17:25 kobra2max DuetWebServer[847]: Microsoft.AspNetCore.DataProtection.KeyManagement.XmlKeyManager[35] No XML encryptor configured> Mar 22 18:17:25 kobra2max DuetControlServer[634]: [fatal] Abnormal program termination Mar 22 18:17:25 kobra2max DuetControlServer[634]: [fatal] SPI task faulted Mar 22 18:17:25 kobra2max DuetControlServer[634]: System.IO.IOException: Error 90 performing SPI data transfer. Mar 22 18:17:25 kobra2max DuetControlServer[634]: at LinuxApi.SpiDevice.Transfer(Byte* writeBufferPtr, Byte* readBufferPtr, Int32 buffersL> Mar 22 18:17:25 kobra2max DuetControlServer[634]: at LinuxApi.SpiDevice.TransferFullDuplex(ReadOnlySpan`1 writeBuffer, Span`1 readBuffer) > Mar 22 18:17:25 kobra2max DuetControlServer[634]: at DuetControlServer.SPI.DataTransfer.ExchangeData() in /home/runner/work/DuetSoftwareFr> Mar 22 18:17:25 kobra2max DuetControlServer[634]: at DuetControlServer.SPI.DataTransfer.PerformFullTransfer(Boolean connecting) in /home/r> Mar 22 18:17:25 kobra2max DuetControlServer[634]: at DuetControlServer.SPI.Interface.Run() in /home/runner/work/DuetSoftwareFramework/Duet> Mar 22 18:17:25 kobra2max DuetControlServer[634]: at DuetControlServer.Utility.PriorityThreadRunner.<>c__DisplayClass0_0.<Start>b__0() in > Mar 22 18:17:25 kobra2max DuetControlServer[634]: [fatal] SPI task faulted Mar 22 18:17:25 kobra2max DuetControlServer[634]: System.IO.IOException: Error 90 performing SPI data transfer. Mar 22 18:17:25 kobra2max DuetControlServer[634]: at LinuxApi.SpiDevice.Transfer(Byte* writeBufferPtr, Byte* readBufferPtr, Int32 buffersL> Mar 22 18:17:25 kobra2max DuetControlServer[634]: at LinuxApi.SpiDevice.TransferFullDuplex(ReadOnlySpan`1 writeBuffer, Span`1 readBuffer) > Mar 22 18:17:25 kobra2max DuetControlServer[634]: at DuetControlServer.SPI.DataTransfer.ExchangeData() in /home/runner/work/DuetSoftwareFr> Mar 22 18:17:25 kobra2max DuetControlServer[634]: at DuetControlServer.SPI.DataTransfer.PerformFullTransfer(Boolean connecting) in /home/r> Mar 22 18:17:25 kobra2max DuetControlServer[634]: at DuetControlServer.SPI.Interface.Run() in /home/runner/work/DuetSoftwareFramework/Duet> Mar 22 18:17:25 kobra2max DuetControlServer[634]: at DuetControlServer.Utility.PriorityThreadRunner.<>c__DisplayClass0_0.<Start>b__0() in > Mar 22 18:17:25 kobra2max DuetControlServer[634]: [info] Application has shut down Mar 22 18:17:25 kobra2max systemd[1]: duetcontrolserver.service: Main process exited, code=exited, status=70/SOFTWARE Mar 22 18:17:25 kobra2max systemd[1]: duetcontrolserver.service: Failed with result 'exit-code'.
Can anyone help what I can do to resolve the issue.
Thanks.[Edit] I came across another similar issue and adding 'spidev.bufsiz=8192' to the file '/boot/firmware/cmdline.txt' resolved the issue.
This has enabled the duet web page to load but it looks like new empty config even though the correct files are in the system folder and the macros are showing as present.
The bottom of the page eventually shows the error 'Error in start-up file config.g line 4: line 2: unknown value 'plugins.DuetPiManagementPlugin.pid''
This looks like the first couple of lines in the config.g file:M291 P"Applying persistent configuration options" R"Please wait" S1 T60 ; show that persistent settings are being configured while exists(sbc) && plugins.DuetPiManagementPlugin.pid < 0 && iterations < 30 G4 S2 ; wait for DuetPiManagementPlugin to become available
This was originally created from the RepRapFirmware Configuration Tool, it seems to start up correctly if I comment this section out, is this likely to cause an issue?
-
RE: Duet 3 6HC and Raspberry Pi 5?
@jay_s_uk said in Duet 3 6HC and Raspberry Pi 5?:
@bug2k22 use the images from here https://forum.duet3d.com/topic/34825/new-experimental-duetpi-bookworm-builds-available
Thanks for the link. Is there any difference in using the duet images compared with installing Raspberry Pi OS Lite and then following the install instructions in the documentation?
-
Duet 3 6HC and Raspberry Pi 5?
I am unable to get my Raspberry Pi 5 to boot with either the lite or gui version of the Duet Raspberry Pi images, is this a supported configuration? The red led (on the pi) turns solid green but there is no activity, with wired networking connected there is no light on the network port.
If I write the sd card with any of the images from the Raspberry Pi website, they boot fine and networking works correctly.
-
RE: Anycubic Kobra 2 Printhead pcb & z probe?
@Phaedrux said in Anycubic Kobra 2 Printhead pcb & z probe?:
Be careful with anything that shares grounds and power. Duet switches things on the negative side, so shared negative won't work for heaters and fans, but shared positive might if they are the same voltage.
Have you considered substituting a 1LC toolboard instead?
I will probably end up swapping out the entire print head at some point, I've upgraded another printer to a duet with a revo hemera xs and it works well.
I was trying to keep the original print head stock if possible at the moment. I'll probably run a couple a new cables for the print head fans and see how the z probe functions, the schematic looks like a voltage divider is already on the existing board for this.I think this board also has an accelerometer for the x axis as the under side of the print bed has another board for the y axis accelerometer, which I presume is not likely to work witha duet.
If I do upgrade the print head with a 1LC is it possible to use the accelerometer on this for the x axis and another separate accelerometer on the print bed for the y axis?
.. ooh I see there is now a duet3 scanning z probe which looks like it works much faster than the inductive or ir sensors.
-
Anycubic Kobra 2 Printhead pcb & z probe?
Apologies for the multiple threads, I perhaps should have created a general install title to cover it all.
I'll attach couple of images of the print head pcb and a schematic I found online of the print head of this printer. Does it look like I could re-use the pcb and existing cable with a duet3 6hc? The extruder heater looks fine as it uses 2 sets of 3wires of the ribbon cable, but the others look to share ground and/or power signals.
Would it be better to just remove the pcb altogether and run new cables to the connectors? Would this z-probe attach directly to a 6hc? It looks like an inductive probe with 24v supply.
Thanks.
-
RE: Anycubic Kobra2 heated bed with Duet3 6HC?
@gloomyandy said in Anycubic Kobra2 heated bed with Duet3 6HC?:
@bug2k22 I'd be very cautious about using the on board MOSFET for that bed if you don't have any idea what current it can draw.
Yes, I'll just run it through the existing power distribution board for the heated bed until I get it on the bench and see how much current the bed can actually draw.
-
RE: Anycubic Kobra2 heated bed with Duet3 6HC?
@gloomyandy said in Anycubic Kobra2 heated bed with Duet3 6HC?:
@bug2k22 How much current does that 24V heated bed draw? Are you sure that the Duet board can supply that amount?
I am not sure, the mosfet on the power board is a WSK220N04 if that is any help. I was asking in case anyone had experience of installing on one of these larger format printers, this has a print bed of 420x420mm.
-
Anycubic Kobra2 heated bed with Duet3 6HC?
The original controller board output has a 2 wire 'control' signal to a separate power board to control the heated bed. It looks like I can just remove this extra board and wire the power and heatbed directly to the 6HC as they both operate on the 24v psu.
Here's a picture of the power section. Does it look correct to power it all directly from the duet board?
-
RE: Duet3 board for an Anycubic Kobra 2 Max?
@oliof Thanks, most of the connections are obvious, I can probe out the cable from the print head to the board connector.
There are a couple of connections which I presume cannot be used, one to what looks to be a 'calibration' switch at the rear of the print bed and next to this an 'acc sensor'. -
RE: Duet3 board for an Anycubic Kobra 2 Max?
@oliof Thanks for that. The y axis has a single stepper with a dual shaft out of each end of the motor driving the 2 y axis rails. I'll check on the spec of this motor, hopefully below the 2A rating of the drivers on that board.
-
Duet3 board for an Anycubic Kobra 2 Max?
Has anyone had experience swapping out the controller board on a Kobra 2 Max for a Duet board? I'm curious as the whether a duet board would support the standard sensors on this printer or whether I would need to swap anything out.
I already have one of my old printers converted to run on a duet2 board for the last few years and it's been very reliable.
Thanks. -
RE: Input Shaping - Record Motion Profile moves
@jay_s_uk It seems only moves in a positive direction are allowed. For example I can configure x -40 to 40 or y from -40 to 40 but not from 40 to -40.
It would be nice to be able to import a series of moves from an actual print or text file containing coordinates to move through.