Upgrade Voron2.4 Octopi for Python3 with RPI/4b/4Gb and 2x SKR1.4 T

An upgrade to Python 3 is neccessary since Octoprint keeps mentioning at startup that future updates after 1.72 will no longer be supported when running a Python2 environment.

Since I made my Voron2.4 printer in 2018, this is still based on Python2.

I first followed the advice on the Octoprint website: Make a full backup from the RPI with the backup/restore plugin of Octoprint, save it to your local HDD.

Then, make a new image from Raspberry PI imager, selecting te most current Octopi image from the RPI imager’s menu.  Then, burn it on a micro SD card, take SD out and in again, change the wifi settings to whatever you have at home.  And,  put it in your Raspberry PI. Put the power on and wait some minutes. Search for your RPI with either bonjour os just use angry IP Scanner and find the local IP address.  Start PuTTY and login to the RPI with ‘pi’ username and ‘raspberry’ password.  Type ‘   ‘ and Enter. In the menu: Change the RPI’s login password to the one you used before and save it. Logout of PuTTY.

Now, login to octoprint with your browser at the identified local IP address and restore the locally saved backup.  This shoud take a long time to install. After this,  reboot and it should all work again.

BUT- it did not work at all.  Somehow either not all files are backupped and restored or I am missing some config settings.  Octoprint could not connect to the SKR4 boards, hence the LCD display did not work and without communnication to the boards, nothing could be done.  I tried to remedy the problem but after an hour or so I decided to go for a fresh re-install.

I did save the config file previously so with this and a fresh install I should be fine.

The rest of this post describes my search- and find- and is a HOW TO to help you do it right without any searching. Most of it is gathered from all these good sites where parts of the solution for ths specific configuration can be found and I just tied them together for the Voron2.4 with a Raspbery PI 4B and 4GB memory, with 2 x BTT SKR1.4T and a standard RGB LCD display connected with 2 block cabled wire connectors , the LCD also has a lit turning knob (see the pictures at the end of this post):

Installation

These instructions assume the software will run on a Raspberry Pi computer in conjunction with OctoPrint. It is recommended that a Raspberry Pi 2, 3, or 4 computer be used as the host machine (see the FAQ for other machines).

Klipper currently supports a number of Atmel ATmega based micro-controllers, ARM based micro-controllers, and Beaglebone PRU based printers.

Prepping an OS image

Start by installing OctoPi on the Raspberry Pi computer. Use OctoPi v0.17.0 or later – see the OctoPi releases for release information. One should verify that OctoPi boots and that the OctoPrint web server works. After connecting to the OctoPrint web page, follow the prompt to upgrade OctoPrint to v1.4.2 or later.

After installing OctoPi and upgrading OctoPrint, it will be necessary to ssh into the target machine to run a handful of system commands. If using a Linux or MacOS desktop, then the “ssh” software should already be installed on the desktop. There are free ssh clients available for other desktops (eg, PuTTY). Use the ssh utility to connect to the Raspberry Pi (ssh pi@octopi — password is “raspberry”) and run the following commands:

git clone https://github.com/Klipper3d/klipper

./klipper/scripts/install-octopi.sh

E: Repository ‘http://archive.raspberrypi.org/debian buster InRelease’ changed its ‘Suite’ value from ‘testing’ to ‘oldstable’

N: This must be accepted explicitly before updates for this repository can be applied. See apt-secure(8) manpage for details.

Omdat de repository veranderd is van “testing ” naar “stable” moet je eenmalig  toestemming geven om deze verandering in de repository te accepteren. Dit doe je met het volgende commando,

sudo apt-get update –allow-releaseinfo-change

Hierna kan je gewoon weer updaten met,

sudo  apt-get update

git clone https://github.com/Klipper3d/klipper

./klipper/scripts/install-octopi.sh

 

The above will download Klipper, install some system dependencies, setup Klipper to run at system startup, and start the Klipper host software. It will require an internet connection and it may take a few minutes to complete.

Building and flashing the micro-controller

To compile the micro-controller code, start by running these commands on the Raspberry Pi:

cd ~/klipper/

make menuconfig

Select the appropriate micro-controller and review any other options provided. Once configured, run:

make

It is necessary to determine the serial port connected to the micro-controller. For micro-controllers that connect via USB, run the following:

ls /dev/serial/by-id/*

It should report something similar to the following:

/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0

It’s common for each printer to have its own unique serial port name. This unique name will be used when flashing the micro-controller. It’s possible there may be multiple lines in the above output – if so, choose the line corresponding to the micro-controller (see the FAQ for more information).

For common micro-controllers, the code can be flashed with something similar to:

sudo service klipper stop

make flash FLASH_DEVICE=/dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0

sudo service klipper start

Be sure to update the FLASH_DEVICE with the printer’s unique serial port name.

When flashing for the first time, make sure that OctoPrint is not connected directly to the printer (from the OctoPrint web page, under the “Connection” section, click “Disconnect”).

Configuring OctoPrint to use Klipper

The OctoPrint web server needs to be configured to communicate with the Klipper host software. Using a web browser, login to the OctoPrint web page and then configure the following items:

Navigate to the Settings tab (the wrench icon at the top of the page). Under “Serial Connection” in “Additional serial ports” add “/tmp/printer”. Then click “Save”.

Enter the Settings tab again and under “Serial Connection” change the “Serial Port” setting to “/tmp/printer”.

In the Settings tab, navigate to the “Behavior” sub-tab and select the “Cancel any ongoing prints but stay connected to the printer” option. Click “Save”.

From the main page, under the “Connection” section (at the top left of the page) make sure the “Serial Port” is set to “/tmp/printer” and click “Connect”. (If “/tmp/printer” is not an available selection then try reloading the page.)

Once connected, navigate to the “Terminal” tab and type “status” (without the quotes) into the command entry box and click “Send”. The terminal window will likely report there is an error opening the config file – that means OctoPrint is successfully communicating with Klipper. Proceed to the next section.

Configuring Klipper

The Klipper configuration is stored in a text file on the Raspberry Pi. Take a look at the example config files in the config directory. The Config Reference contains documentation on config parameters.

Arguably the easiest way to update the Klipper configuration file is to use a desktop editor that supports editing files over the “scp” and/or “sftp” protocols. There are freely available tools that support this (eg, Notepad++, WinSCP, and Cyberduck). Use one of the example config files as a starting point and save it as a file named “printer.cfg” in the home directory of the pi user (ie, /home/pi/printer.cfg).

Alternatively, one can also copy and edit the file directly on the Raspberry Pi via ssh – for example:

cp ~/klipper/config/example-cartesian.cfg ~/printer.cfg

nano ~/printer.cfg

Make sure to review and update each setting that is appropriate for the hardware.

It’s common for each printer to have its own unique name for the micro-controller. The name may change after flashing Klipper, so rerun the ls /dev/serial/by-id/* command and then update the config file with the unique name. For example, update the [mcu] section to look something similar to:

[mcu]

serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0

After creating and editing the file it will be necessary to issue a “restart” command in the OctoPrint web terminal to load the config. A “status” command will report the printer is ready if the Klipper config file is successfully read and the micro-controller is successfully found and configured. It is not unusual to have configuration errors during the initial setup – update the printer config file and issue “restart” until “status” reports the printer is ready.

Klipper reports error messages via the OctoPrint terminal tab. The “status” command can be used to re-report error messages. The default Klipper startup script also places a log in /tmp/klippy.log which provides more detailed information.

In addition to common g-code commands, Klipper supports a few extended commands – “status” and “restart” are examples of these commands. Use the “help” command to get a list of other extended commands.

After Klipper reports that the printer is ready go on to the config check document to perform some basic checks on the pin definitions in the config file.

 

NEW:Rotation distance

Stepper motor drivers on Klipper require a rotation_distance parameter in each stepper config section. The rotation_distance is the amount of distance that the axis moves with one full revolution of the stepper motor. This document describes how one can configure this value.

Obtaining rotation_distance from steps_per_mm (or step_distance)

The designers of your 3d printer originally calculated steps_per_mm from a rotation distance. If you know the steps_per_mm then it is possible to use this general formula to obtain that original rotation distance:

rotation_distance = <full_steps_per_rotation> * <microsteps> / <steps_per_mm>

Or, if you have an older Klipper configuration and know the step_distance parameter you can use this formula:

rotation_distance = <full_steps_per_rotation> * <microsteps> * <step_distance>

The <full_steps_per_rotation> setting is determined from the type of stepper motor. Most stepper motors are “1.8 degree steppers” and therefore have 200 full steps per rotation (360 divided by 1.8 is 200). Some stepper motors are “0.9 degree steppers” and thus have 400 full steps per rotation. Other stepper motors are rare. If unsure, do not set full_steps_per_rotation in the config file and use 200 in the formula above.

The <microsteps> setting is determined by the stepper motor driver. Most drivers use 16 microsteps. If unsure, set microsteps: 16 in the config and use 16 in the formula above.

Almost all printers should have a whole number for rotation_distance on x, y, and z type axes. If the above formula results in a rotation_distance that is within .01 of a whole number then round the final value to that whole_number.

Calibrating rotation_distance on extruders

On an extruder, the rotation_distance is the amount of distance the filament travels for one full rotation of the stepper motor. The best way to get an accurate value for this setting is to use a “measure and trim” procedure.

First start with an initial guess for the rotation distance. This may be obtained from steps_per_mm or by inspecting the hardware.

Then use the following procedure to “measure and trim”:

  1. Make sure the extruder has filament in it, the hotend is heated to an appropriate temperature, and the printer is ready to extrude.
  2. Use a marker to place a mark on the filament around 70mm from the intake of the extruder body. Then use a digital calipers to measure the actual distance of that mark as precisely as one can. Note this as <initial_mark_distance>.
  3. Extrude 50mm of filament with the following command sequence: G91 followed by G1 E50 F60. Note 50mm as <requested_extrude_distance>. Wait for the extruder to finish the move (it will take about 50 seconds). It is important to use the slow extrusion rate for this test as a faster rate can cause high pressure in the extruder which will skew the results. (Do not use the “extrude button” on graphical front-ends for this test as they extrude at a fast rate.)
  4. Use the digital calipers to measure the new distance between the extruder body and the mark on the filament. Note this as <subsequent_mark_distance>. Then calculate: actual_extrude_distance = <initial_mark_distance> – <subsequent_mark_distance>
  5. Calculate rotation_distance as: rotation_distance = <previous_rotation_distance> * <actual_extrude_distance> / <requested_extrude_distance> Round the new rotation_distance to three decimal places.

If the actual_extrude_distance differs from requested_extrude_distance by more than about 2mm then it is a good idea to perform the steps above a second time.

Note: Do not use a “measure and trim” type of method to calibrate x, y, or z type axes. The “measure and trim” method is not accurate enough for those axes and will likely lead to a worse configuration. Instead, if needed, those axes can be determined by measuring the belts, pulleys, and lead screw hardware.

Obtaining rotation_distance by inspecting the hardware

It’s possible to calculate rotation_distance with knowledge of the stepper motors and printer kinematics. This may be useful if the steps_per_mm is not known or if designing a new printer.

Belt driven axes

It is easy to calculate rotation_distance for a linear axis that uses a belt and pulley.

First determine the type of belt. Most printers use a 2mm belt pitch (that is, each tooth on the belt is 2mm apart). Then count the number of teeth on the stepper motor pulley. The rotation_distance is then calculated as:

rotation_distance = <belt_pitch> * <number_of_teeth_on_pulley>

For example, if a printer has a 2mm belt and uses a pulley with 20 teeth, then the rotation distance is 40.

Axes with a lead screw

It is easy to calculate the rotation_distance for common lead screws using the following formula:

rotation_distance = <screw_pitch> * <number_of_separate_threads>

For example, the common “T8 leadscrew” has a rotation distance of 8 (it has a pitch of 2mm and has 4 separate threads).

Older printers with “threaded rods” have only one “thread” on the lead screw and thus the rotation distance is the pitch of the screw. (The screw pitch is the distance between each groove on the screw.) So, for example, an M6 metric rod has a rotation distance of 1 and an M8 rod has a rotation distance of 1.25.

Extruder

It’s possible to obtain an initial rotation distance for extruders by measuring the diameter of the “hobbed bolt” that pushes the filament and using the following formula: rotation_distance = <diameter> * 3.14

If the extruder uses gears then it will also be necessary to determine and set the gear_ratio for the extruder.

The actual rotation distance on an extruder will vary from printer to printer, because the grip of the “hobbed bolt” that engages the filament can vary. It can even vary between filament spools. After obtaining an initial rotation_distance, use the measure and trim procedure to obtain a more accurate setting.

Using a gear_ratio

Setting a gear_ratio can make it easier to configure the rotation_distance on steppers that have a gear box (or similar) attached to it. Most steppers do not have a gear box – if unsure then do not set gear_ratio in the config.

When gear_ratio is set, the rotation_distance represents the distance the axis moves with one full rotation of the final gear on the gear box. If, for example, one is using a gearbox with a “5:1” ratio, then one could calculate the rotation_distance with knowledge of the hardware and then add gear_ratio: 5:1 to the config.

For gearing implemented with belts and pulleys, it is possible to determine the gear_ratio by counting the teeth on the pulleys. For example, if a stepper with a 16 toothed pulley drives the next pulley with 80 teeth then one would use gear_ratio: 80:16. Indeed, one could open a common off the shelf “gear box” and count the teeth in it to confirm its gear ratio.

Note that sometimes a gearbox will have a slightly different gear ratio than what it is advertised as. The common BMG extruder motor gears are an example of this – they are advertised as “3:1” but actually use “50:17” gearing. (Using teeth numbers without a common denominator may improve overall gear wear as the teeth don’t always mesh the same way with each revolution.) The common “5.18:1 planetary gearbox”, is more accurately configured with gear_ratio: 57:11.

If several gears are used on an axis then it is possible to provide a comma separated list to gear_ratio. For example, a “5:1” gear box driving a 16 toothed to 80 toothed pulley could use gear_ratio: 5:1, 80:16.

In most cases, gear_ratio should be defined with whole numbers as common gears and pulleys have a whole number of teeth on them. However, in cases where a belt drives a pulley using friction instead of teeth, it may make sense to use a floating point number in the gear ratio (eg, gear_ratio: 107.237:16).

For a Voron 2.4 (300x300x300) setup, start settings are pre-defined:

To add in the config file:

 

NOT in the TMC settings, just in the stepper_x, and so on

And delete the old commands: step_distance: 0.0125 or just comment them out as I did initially..

Add for steppers X,Y

rotation_distance: 40

## gear_ratio: 1:1

microsteps: 16

 

and for Z-Z3:

rotation_distance: 40

gear_ratio: 80:16

microsteps: 16

 

Add for extruder stepper:

##  Update value below when you perform extruder calibration

##  If you ask for 100mm of filament, but in reality it is 98mm:

##  rotation_distance = <previous_rotation_distance> * <actual_extrude_distance> / 100

##  22.6789511 is a good starting point

rotation_distance: 22.6789511   #Bondtech 5mm Drive Gears

##  Update Gear Ratio depending on your Extruder Type

##  Use 50:17 for Afterburner/Clockwork (BMG Gear Ratio)

##  Use 80:20 for M4, M3.1

gear_ratio: 50:17               #BMG Gear Ratio

microsteps: 16

full_steps_per_rotation: 200    #200 for 1.8 degree, 400 for 0.9 degree

nozzle_diameter: 0.400 # or 0.6 like I have

filament_diameter: 1.75

 

Send: M876 P1

Recv: // mcu ‘mcu’: Command format mismatch: config is_config=%c crc=%u is_shutdown=%c move_count=%hu vs config is_config=%c crc=%u move_count=%hu is_shutdown=%c

Recv: //

Recv: // This type of error is frequently caused by running an older

Recv: // version of the firmware on the micro-controller (fix by

Recv: // recompiling and flashing the firmware).

Recv: //

Recv: // Known versions: host=v0.10.0-184-gdd714fc7, mcu=v0.9.1-319-g3233ec08-20210315_134213-octopi, z=v0.9.1-319-g3233ec08-20210315_134213-octopi

Recv: //

Recv: // Once the underlying issue is corrected, use the “RESTART”

Recv: // command to reload the config and restart the host software.

Recv: // Protocol error connecting to printer

Recv: !! mcu ‘mcu’: Command format mismatch: config is_config=%c crc=%u is_shutdown=%c move_count=%hu vs config is_config=%c crc=%u move_count=%hu is_shutdown=%c

 

So, flash both SKR1.4 T’s with the new firmware  (download this from the PI4) and start trhem first without USB connection to the RPI. Then, shutdown (=POWER OFF) and connect the USB cables and start up again.

Now, Octopi will fire up and the LCD runs again, and all is connected.

Do the checks as described further on.

 

My printer.cfg working Voron2.4 config file AFTER the Python 3 upgrade:

 

##

## Voron Design VORON2.4 310mm SKR 1.4turbo x 2 with TMC2209 UART config

# March 15th, 2021 Jantec.nl

 

# To solve the issue of varying Z height after G32: Add this: relative_reference_index: (add a point number of bed_mesh here)

# must be added to get a coupling between the initial G28’s Z probe position

# and bed mesh level’s Z probe value at a specified mesh bed level point.  I will try to use the point that is exactly at the switch position,

# so I can also get a predefined measured Z value for the Z position’s offset in G28.

 

[mcu]

##——————————————————————–

serial: /dev/serial/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.4:1.0

##——————————————————————–

[mcu z]

##——————————————————————–

serial: /dev/serial/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.3:1.0

##——————————————————————–

 

[printer]

kinematics: corexy

max_velocity: 300

max_accel: 1000                                  #Max 4000

max_z_velocity: 18                               #Max 15 for 12V TMC Drivers, can increase for 24V

max_z_accel: 350                                #Max ?

square_corner_velocity: 5.0  #Can experiment with 8.0, default 5.0

 

#####################################################################

#          X/Y Stepper Settings

#####################################################################

 

[stepper_x]

##        Connected to X on mcu_xye (B Motor)

step_pin: P2.2

dir_pin: !P2.6

microsteps: 16

rotation_distance: 40

## gear_ratio: 80:16

enable_pin: !P2.1

## step_distance: 0.0125

endstop_pin: P1.29

 

##——————————————————————–

## X Settings for 300mm build

position_min: 0

position_endstop: 300

position_max:300

##——————————————————————–

homing_speed: 150   #Max 100 was 25

homing_retract_dist: 5

homing_positive_dir: true

 

##        Make sure to update below for your relevant driver (2208 or 2209)

[tmc2209 stepper_x]

uart_pin: P1.10

interpolate: True

run_current: 1.0

hold_current: 0.7

sense_resistor: 0.110

stealthchop_threshold: 0

 

[stepper_y]

##        Connected to Y on mcu_xye (A Motor)

step_pin: P0.19

dir_pin: !P0.20

enable_pin: !P2.8

rotation_distance: 40

## gear_ratio: 80:16

microsteps: 16

## step_distance: 0.0125

endstop_pin: P1.28

 

##——————————————————————–

## Y Settings for 300mm build

position_min: 0

position_endstop: 305

position_max: 305

##——————————————————————–

homing_speed: 150  #Max 100 was 25

homing_retract_dist: 5

homing_positive_dir: true

 

##        Make sure to update below for your relevant driver (2208 or 2209)

[tmc2209 stepper_y]

uart_pin: P1.9

interpolate: True

run_current: 1.0

hold_current: 0.7

sense_resistor: 0.110

stealthchop_threshold: 0

 

#####################################################################

#          Z Stepper Settings

#####################################################################

 

## Z MCU – In X Position

## Z0 Stepper – Front Left

[stepper_z]

step_pin: z:P2.2

dir_pin: !z:P2.6

enable_pin: !z:P2.1

rotation_distance: 40

gear_ratio: 80:16

microsteps: 16

## step_distance: 0.00250

# endstop_pin: z:P1.27 # this is the switch’s  physical connection,

# not any longer used due to problems when filament is still hanging on the nozzle

# position_endstop:  0  # no longer required

 

endstop_pin: probe:z_virtual_endstop

 

##——————————————————————–

## Z Settings for 300mm build

position_max: 300

position_min:-2

##——————————————————————–

homing_speed: 15   #was 15

second_homing_speed: 3.0

homing_retract_dist: 5.0

homing_positive_dir: false

 

##        Make sure to update below for your relevant driver (2208 or 2209)

[tmc2209 stepper_z]

uart_pin: z:P1.10

interpolate: true

run_current: 1.0

hold_current: 0.8

sense_resistor: 0.110

stealthchop_threshold: 0

 

##        Z MCU – In Y Position

##        Z1 Stepper – Rear Left

[stepper_z1]

step_pin: z:P0.19

dir_pin: z:P0.20

enable_pin: !z:P2.8

rotation_distance: 40

gear_ratio: 80:16

microsteps: 16

## step_distance: 0.00250

 

##        Make sure to update below for your relevant driver (2208 or 2209)

[tmc2209 stepper_z1]

uart_pin: z:P1.9

interpolate: true

run_current: 1.0

hold_current: 0.8

sense_resistor: 0.110

stealthchop_threshold: 0

 

##        Z MCU – In Z Position

##        Z2 Stepper – Rear Right

[stepper_z2]

step_pin: z:P0.22

dir_pin: !z:P2.11

enable_pin: !z:P0.21

rotation_distance: 40

gear_ratio: 80:16

microsteps: 16

## step_distance: 0.00250

 

##        Make sure to update below for your relevant driver (2208 or 2209)

[tmc2209 stepper_z2]

uart_pin: z:P1.8

interpolate: true

run_current: 1.0

hold_current: 0.80

sense_resistor: 0.110

stealthchop_threshold: 0

 

##        Z MCU – In E0 Position

##        Z3 Stepper – Front Right

[stepper_z3]

step_pin: z:P2.13

dir_pin: z:P0.11

enable_pin: !z:P2.12

rotation_distance: 40

gear_ratio: 80:16

microsteps: 16

## step_distance: 0.00250

 

##        Make sure to update below for your relevant driver (2208 or 2209)

[tmc2209 stepper_z3]

uart_pin: z:P1.4

interpolate: true

run_current: 1.0

hold_current: 0.80

sense_resistor: 0.110

stealthchop_threshold: 0

 

 

#####################################################################

#          Extruder

#####################################################################

 

#          E0 on MCU X/Y

[extruder]

step_pin: P2.13

dir_pin: !P0.11

enable_pin: !P2.12

 

 

## NEW:

##  Update value below when you perform extruder calibration

##  If you ask for 100mm of filament, but in reality it is 98mm:

##  rotation_distance = <previous_rotation_distance> * <actual_extrude_distance> / 100

##  22.6789511 is a good starting point

rotation_distance: 22.6789511   #Bondtech 5mm Drive Gears

##  Update Gear Ratio depending on your Extruder Type

##  Use 50:17 for Afterburner/Clockwork (BMG Gear Ratio)

##  Use 80:20 for M4, M3.1

gear_ratio: 50:17               #BMG Gear Ratio

microsteps: 16

full_steps_per_rotation: 200    #200 for 1.8 degree, 400 for 0.9 degree

## nozzle_diameter: 0.400

## filament_diameter: 1.75

 

##        16 microsteps Mobius 3 ~= 0.00180

##        Update value below when you perform extruder calibration

##        Higher value means less filament extruded

##        If you ask for 100mm of filament, but in reality it is 98mm:

##        step_distance = 98 / 100 * step_distance_old

##  0.00240 a good starting value for Afterburner, 0.00180 for Mobius

## step_distance: 0.0022

nozzle_diameter: 0.600

filament_diameter: 1.75

 

heater_pin: P2.7

##        Validate the following thermistor type to make sure it is correct

 

## For SKR V1.4 and PT100 with MAX31865:

sensor_type: MAX31865

sensor_pin: P1.1

spi_speed: 4000000

spi_software_sclk_pin: P0.4

spi_software_mosi_pin: P1.17

spi_software_miso_pin: P0.5

rtd_nominal_r: 100

rtd_reference_r: 430

rtd_num_of_wires: 2

 

## If you are in EU or other 50hz country, add this line: THIS CAUSES HANGING of the display!

#rtd_use_50Hz_filter: True  THIS DOES NOT WORK WELL

 

#sensor_type: ATC Semitec 104GT-2

## (is normal NTC for hotbed with normal sensor_pin: P0.24)

#sensor_pin: P0.24

 

min_temp: 10

max_temp: 300

max_power: 1

min_extrude_temp: 170

 

#control = pid   #PID parameters: pid_Kp=22.661 pid_Ki=1.064 pid_Kd=120.670, without silicon sock

#pid_kp = 26.213

#pid_ki = 1.304

#pid_kd = 131.721

##        Try to keep pressure_advance below 1.0

pressure_advance: 0.08

##        Default is 0.040, leave stock

pressure_advance_smooth_time: 0.040

 

 

#####################################################################

##        E0 on MCU X/Y

##        Make sure to update below for your relevant driver (2208 or 2209)

[tmc2209 extruder]

uart_pin: P1.4

interpolate: false

run_current: 0.45   # was 0.6

hold_current: 0.2  # was 0.2

sense_resistor: 0.110

stealthchop_threshold: 0

 

 

[verify_heater extruder]

max_error: 220

#   The maximum “cumulative temperature error” before raising an

#   error. Smaller values result in stricter checking and larger

#   values allow for more time before an error is reported.

#   Specifically, the temperature is inspected once a second and if it

#   is close to the target temperature then an internal “error

#   counter” is reset; otherwise, if the temperature is below the

#   target range then the counter is increased by the amount the

#   reported temperature differs from that range. Should the counter

#   exceed this “max_error” then an error is raised. The default is

#   120.

#check_gain_time:

#   This controls heater verification during initial heating. Smaller

#   values result in stricter checking and larger values allow for

#   more time before an error is reported. Specifically, during

#   initial heating, as long as the heater increases in temperature

#   within this time frame (specified in seconds) then the internal

#   “error counter” is reset. The default is 20 seconds for extruders

#   and 60 seconds for heater_bed.

hysteresis: 15

#   The maximum temperature difference (in Celsius) to a target

#   temperature that is considered in range of the target. This

#   controls the max_error range check. It is rare to customize this

#   value. The default is 5.

#heating_gain: 2

#   The minimum temperature (in Celsius) that the heater must increase

#   by during the check_gain_time check. It is rare to customize this

#   value. The default is 2.

 

 

 

 

#####################################################################

#          Filament sensor switch on E0 switch input

#####################################################################

 

# This still needs a script to work properly, a runout_gcode and a return or recover gcode in the sys directory including the correct calls for it..

 

[filament_switch_sensor my_sensor]

#proved not to work Beh could throw my 6 hrs print away

pause_on_runout: True

#   When set to True, a PAUSE will execute immediately after a runout

#   is detected. Note that if pause_on_runout is False and the

#   runout_gcode is omitted then runout detection is disabled. Default

#   is True.

#runout_gcode:

#   A list of G-Code commands to execute after a filament runout is

#   detected. See docs/Command_Templates.md for G-Code format. If

#   pause_on_runout is set to True this G-Code will run after the

#   PAUSE is complete. The default is not to run any G-Code commands.

#insert_gcode:

#   A list of G-Code commands to execute after a filament insert is

#   detected. See docs/Command_Templates.md for G-Code format. The

#   default is not to run any G-Code commands, which disables insert

#   detection.

#event_delay: 3.0

#   The minimum amount of time in seconds to delay between events.

#   Events triggered during this time period will be silently

#   ignored. The default is 3 seconds.

#pause_delay: 0.5

#   The amount of time to delay, in seconds, between the pause command

#   dispatch and execution of the runout_gcode. It may be useful to

#   increase this delay if OctoPrint exhibits strange pause behavior.

#   Default is 0.5 seconds.

switch_pin: P1.26

#   The pin on which the switch is connected. This parameter must be

#   provided.

 

#

 

 

 

 

#####################################################################

#          Bed Heater

#####################################################################

 

[heater_bed]

##        SSR Pin – Z board, Fan Pin

heater_pin: z:P2.3

sensor_type: NTC 100K MGB18-104F39050L32

sensor_pin: z:P0.25

##        Adjust Max Power so your heater doesn’t warp your bed

max_power: 0.5  # was 0.6 for 230V 500 Watt, which is hardware switchable to rech fast 110 deg…

# the 24V wide 310x310mm bed heater is primary and does not warp the bed as the 230V one does!

min_temp: 0

max_temp: 140

#control: watermark

 

[verify_heater heater_bed]

max_error: 300

#   The maximum “cumulative temperature error” before raising an

#   error. Smaller values result in stricter checking and larger

#   values allow for more time before an error is reported.

#   Specifically, the temperature is inspected once a second and if it

#   is close to the target temperature then an internal “error

#   counter” is reset; otherwise, if the temperature is below the

#   target range then the counter is increased by the amount the

#   reported temperature differs from that range. Should the counter

#   exceed this “max_error” then an error is raised. The default is

#   120.

check_gain_time:200

#   This controls heater verification during initial heating. Smaller

#   values result in stricter checking and larger values allow for

#   more time before an error is reported. Specifically, during

#   initial heating, as long as the heater increases in temperature

#   within this time frame (specified in seconds) then the internal

#   “error counter” is reset. The default is 20 seconds for extruders

#   and 60 seconds for heater_bed.

hysteresis: 5

#   The maximum temperature difference (in Celsius) to a target

#   temperature that is considered in range of the target. This

#   controls the max_error range check. It is rare to customize this

#   value. The default is 5.

heating_gain: 1

#   The minimum temperature (in Celsius) that the heater must increase

#   by during the check_gain_time check. It is rare to customize this

#   value. The default is 2.

 

 

##FIND YOUR OWN: “PID_CALIBRATE HEATER=heater_bed TARGET=60” to run autotune on the bed at 90 degrees C for 5 cycles.

 

#####################################################################

#          Z-Probe

#####################################################################

 

[probe]

##        Inductive Probe

##        This probe is not used for Z height, only Quad Gantry Leveling

##        Z_MAX on mcu_z

##        If your probe is NO instead of NC, add change pin to !z:P0.10

pin: z:P0.10  # add ^ for pull-up if needed ^z:P0.10

 

x_offset: 0

y_offset: 25.0                                       # must be 25

#z_offset: 5.3                                                   # trigger height versus nozzle height measured 5.4  is autotuned

speed: 5                                                                      # max 5

samples: 1                                                       #was 3 or 5

samples_result: median

sample_retract_dist: 10                        # was 15, set this higher for more switching distance

samples_tolerance: 0.06                       # was 0.006

samples_tolerance_retries: 2     # was 5

 

 

#####################################################################

#          Fan Control

#####################################################################

 

[heater_fan hotend_fan]

##        Hotend Fan – XYE board, HE1 Connector

pin: P2.4

max_power: 1.0

kick_start_time: 1.5

heater: extruder

heater_temp: 40.0

##        If you are experiencing back flow, you can reduce fan_speed

#fan_speed: 1.0

# Heater and temperature sensor verification. Heater verification is

# automatically enabled for each heater that is configured on the

# printer. Use verify_heater sections to change the default settings.

 

 

[fan]

##        Print Cooling Fan – XYE board, Fan Pin

pin: P2.3

kick_start_time: 1.5

##        Depending on your fan, you may need to increase this value

##        if your fan will not start. Can change cycle_time (increase)

##        if your fan is not able to slow down effectively

off_below: 0.10

 

[controller_fan my_controller_fan]  # the fan for the compartment with electronics underneath

pin: z:P2.4

max_power: 1

#shutdown_speed: 0.1

#cycle_time:

#####hardware_pwm:

kick_start_time: 1

#off_below:

#tachometer_pin:

#tachometer_ppr:

#tachometer_poll_interval:

#   See the “fan” section for a description of the above parameters.

fan_speed: 0.5

#   The fan speed (expressed as a value from 0.0 to 1.0) that the fan

#   will be set to when a heater or stepper driver is active.

#   The default is 1.0

#idle_timeout:

#   The amount of time (in seconds) after a stepper driver or heater

#   was active and the fan should be kept running. The default

#   is 30 seconds.

idle_speed: 0.3

#   The fan speed (expressed as a value from 0.0 to 1.0) that the fan

#   will be set to when a heater or stepper driver was active and

#   before the idle_timeout is reached. The default is fan_speed.

heater: heater_bed, extruder

#   Name of the config section defining the heater that this fan is

#   associated with. If a comma separated list of heater names is

#   provided here, then the fan will be enabled when any of the given

#   heaters are enabled. The default is “extruder”.

 

[heater_fan exhaust_fan]

##        Exhaust fan – Z board, HE0 Connector

pin: z:P2.7

## max_power: 0.4

shutdown_speed: 0.0

kick_start_time: 1.0

heater: heater_bed

heater_temp: 76  # so it only works with ABS/Nylon etc

fan_speed: 0.7

 

#####################################################################

#          LED Control

#####################################################################

 

[output_pin caselight ]

pin: P2.5

pwm: true

value: 0

scale: 10

 

#####################################################################

#          Homing and Gantry Adjustment Routines

#####################################################################

 

[idle_timeout]

timeout: 1800

 

[homing_override]

axes: z

set_position_z: 0

gcode:

G91                                                              # use relative coordinates

G1 Z5 F1800                                    # Move Z UP 10 mm

# M104 S220                                     # hotend on for better G28 effectiveness

# M109 S220                                     # wait for hotend temp

G90                                                              # use absolute coordinates

G28 X150 Y150  F3600                     # Set home Z at these coordinates; was X96 Y 305

##        XY Location of the Z probe point center bed

##        Update X0 and Y0 to your values (such as X157, Y305) after going through

##        Z Endstop Pin Location Definition step.

G0 X150 Y150 F3600                        # ‘Zero’ the probe position to get a printing field where the probe postion is known with these coordinates

G28 Z                                                           # Home Z

G90                                                              # use absolute coordinates

#G1 Z15 F3600                                            # Move Z up to absolute +15 mm

G1 X150 Y175 Z15 F3600     # Move Z to parking place at center bed Z absolute +15 mm at probe point exactly +25mm on Y axis

 

 

 

[quad_gantry_level]

#   Put a moving gantry into plan with a fixed bed.  Must have 4 steppers on the gantry.

#   Use QUAD_GANTRY_LEVEL to level a gantry.

gantry_corners:

-55,-7

355, 370

#  List of X,Y coordinates describing the two opposing corners of the gantry.

#  The first entry corresponds to the front left motor, the second to the

#  back right motor.

points:

25, 25

25, 220

275, 220

275, 25

 

# make the gantry calibrate points alike the outer points of the bed mesh level routine:

# check for correction on the position of the Z probe versus nozzle here:  X,Y could be X,(Y minus 25mm)

 

#  Probe points used for Quad Gantry Level.

#  The positions specified are “Nozzle positions”. In a Voron 2.1 the probe

#  is offset by 25mm thus transforming 25,0 to a probe position of 25,25.

#  When modifying these make sure to keep at least 20mm distance to the

#  edge of the bed or any screws.

speed: 100  # was 200

horizontal_move_z:10 # must be higher than Z-offsets added from Z-probe and Z-switch!

retries: 5  # was 5

#  Retry the quad gantry level up to 3 times if the probed points

#  aren’t within the specified retry_tolerance

retry_tolerance: 0.05  # was 0.009

#  Repeat the quad gantry level if the tolarance is .01mm or larger.

#max_adjust: 10

 

#####################################################################

#          Displays

#####################################################################

 

##        Uncomment the display that you have. Display connects to Z MCU

#——————————————————————–

 

#[display]

##        RepRapDiscount 128×64 Full Graphic Smart Controller

#lcd_type: st7920

#cs_pin: z:P1.19

#sclk_pin: z:P1.20

#sid_pin: z:P1.18

#menu_timeout: 40

#encoder_pins: ^z:P3.26, ^z:P3.25

#click_pin: ^!z:P0.28

 

#[output_pin beeper]

#pin: z:P1.30

 

#——————————————————————–

[display]

##        mini12864 LCD Display

lcd_type: uc1701

cs_pin: z:P1.18

a0_pin: z:P1.19

encoder_pins: ^z:P3.26,^z:P3.25

click_pin: ^!z:P0.28

contrast: 63

 

[neopixel fysetc_mini12864]

##        To control Neopixel RGB in mini12864 display

pin: z:P1.21

chain_count: 3

initial_RED: 0.1

initial_GREEN: 0.5

initial_BLUE: 0.0

#color_order_GRB: False

 

##        Set RGB values on boot up for each Neopixel.

##        Index 1 = display, Index 2 and 3 = Knob

[delayed_gcode setdisplayneopixel]

initial_duration: 1

gcode:

SET_LED LED=fysetc_mini12864 RED=1 GREEN=1 BLUE=1 INDEX=1

SET_LED LED=fysetc_mini12864 RED=1 GREEN=0 BLUE=0 INDEX=2

SET_LED LED=fysetc_mini12864 RED=1 GREEN=0 BLUE=0 INDEX=3 TRANSMIT=0

 

 

 

[neopixel temp_leds]

pin: P1.24                     # on main MCU board

chain_count: 3 # max = 18

 

[gcode_macro M105]

rename_existing: M105.1

gcode:

 

M105.1

 

 

{% if printer.extruder.target == 0 %}#if the extruder is off

 

 

{% if printer.extruder.temperature > 100.0 %}#Set the LED to red if the extruder is off but is still hot

 

SET_LED LED=temp_leds RED=1 GREEN=0 BLUE=0 TRANSMIT=1

 

{% else %}

 

SET_LED LED=temp_leds RED=0 GREEN=0 BLUE=1 INDEX=1 TRANSMIT=1# otherwise set the color to blue and green

SET_LED LED=temp_leds RED=0 GREEN=1 BLUE=0 INDEX=2 TRANSMIT=1

SET_LED LED=temp_leds RED=0 GREEN=0 BLUE=1 INDEX=3 TRANSMIT=1

 

{% endif %}

 

{% else %}

 

 

{% if printer.extruder.temperature >= printer.extruder.target – 4.0 %}#if the extruder temp is at target temperature

 

SET_LED LED=temp_leds RED=1 GREEN=1 BLUE=1 TRANSMIT=1

 

 

{% else %}#the extruder is still heating

 

{% set scaler = printer.extruder.temperature|float / printer.extruder.target|float %}

SET_LED LED=temp_leds RED={ scaler|float * 1.0 } GREEN=0 BLUE=0 INDEX=1 TRANSMIT=1

SET_LED LED=temp_leds RED={ scaler|float * 0.1 } GREEN=0 BLUE=0 INDEX=2 TRANSMIT=1

SET_LED LED=temp_leds RED={ scaler|float * 1.0 } GREEN=0 BLUE=0 INDEX=3 TRANSMIT=1

 

{% endif %}

 

{% endif %}

#———————————————————————-

 

#####################################################################

#          Macros

#####################################################################

 

[pause_resume]

recover_velocity: 50.

#   When capture/restore is enabled, the speed at which to return to

#   the captured position (in mm/s). Default is 50.0 mm/s.

 

#[gcode_macro G29]

#gcode:

#G0 Z5 F1200

#G28

#BED_MESH_CALIBRATE

#SAVE_CONFIG

 

 

[gcode_macro G32]

gcode:

BED_MESH_CLEAR                        # This command clears the mesh and removes all z adjustment. It is recommended to put this in your end-gcode.

G90                                                                 # use absolute coordinates

M140 S75                                                        # set bed temp

M104 S220                                                      # hotend on for better G28 effectiveness

M109 S220                                                      # wait for hotend temp

M117 Homing…                                   # print homing on LCD

G28                                                                 # home all axes home all without mesh bed level

M117 wait for temps                 # display message

M140 S75                                                        # set bed temp

M104 S75                                                        # hotend off, switching temp at hotend causes jitter on the Z-probe

M106 S1                                                                      # This command sets the speed of the print fan. must be between 0.0 and 1.0.

#SET_FAN_SPEED FAN=fan SPEED=1 # This command sets the speed of a fan. must be between 0.0 and 1.0.

M190 S75                                                        # wait for bed temp

# M109 S75                                                     # wait for hotend temp to 75 max because it will get too hot to be accurate  ****  changed this to off but no need to wait for it to cool down ****

M117 Gantry leveling..      # display message

QUAD_GANTRY_LEVEL                                 # make sure to level at the outer points of the bed mesh

M117 Mesh level bed..              # display message

BED_MESH_CALIBRATE

G90                                                                 # use absolute coordinates

G1 X150 Y150 Z15 F6000                    # Park at center after leveling G32

SAVE_CONFIG                                                           # Save and reset/restart. This will also set all temps and fans off

 

[gcode_macro PRINT_START]

##   Use PRINT_START for the slicer starting script – please customise for your slicer of choice

gcode:

 

G90                                                             # use absolute coordinates

M117 Homing…                                   # print homing on LCD

G28                                                                 # home all axes home

M117 Leveling gantry..              # display message

QUAD_GANTRY_LEVEL                                 #

M117 Mesh level bed..              # display message

BED_MESH_CALIBRATE

M117 Print@Jantec.nl              # print on LCD

## print intro line

G28                                                                 # home all axes home

 

# Do not do this G29 S1 after mesh bed leveling because it will activate your OLD mesh values instead of your just made mesh!!

# or do a Save-config  FIRSt but this will retart the printer…  maybe in the PRINT_END?

#G29 S1                      # enable bed mesh compensation

 

G92 E0                                                                        # Reset E

G90                                                                 # use absolute coordinates

G1 X270 Y0 F6000                              #

G1 Z0.2 F720                                      #

G1 X40 E28 F1000                              #

G92 E0                                                                        # Reset E

G1 Z2 F3000                                        # move nozzle away from bed

 

 

[gcode_macro PRINT_END]

#   Use PRINT_END for the slicer ending script – please customise for your slicer of choice

gcode:

M400                        # wait for buffer to clear

G92 E0                      # zero the extruder

G1 E-10.0 F3600             # retract filament

G91                         # relative positioning

G0 Z1.00 X20.0 Y20.0 F20000 # move nozzle to remove stringing

TURN_OFF_HEATERS

#M107                       # turn off fan

G1 Z5 F3000                 # move nozzle up 5mm

G90                         # absolute positioning

G0  X290 Y290 F3600              # park nozzle at rear

M117 Finished!              # display message

BED_MESH_CLEAR                                   # This command clears the mesh and removes all z adjustment. It is recommended to put this in your end-gcode.

 

 

#    use BED_MESH_CALIBRATE to run a bed mesh.

#    this is for uneven beds.  min_point and max_point have been renamed to mesh_min and mesh_max respectively

[bed_mesh]

 

speed: 100                                           # was 150 mm/sec

horizontal_move_z:10  # was 20

mesh_min: 25,50                      # X,Y min and add the 25 mm for the Z probe here as add to Z value!

mesh_max: 275,250                 # X,Y max and add the 25 mm for the Z probe here as add to Z value!

probe_count: 5,5                      # was 5,5

 

relative_reference_index: 12  # at this specific probe point center bed, Z=0 is made so the reference for the z switch has a fixed relation to this bed point.

# it is the probe point, closest to the probe switch ( 5,5 probe points used) but that is not required. it can be any probed point on the bed…

# probe at 150.000,245.000 is z=0 in Gcode report (for this point 22 see the exact value at end of this file, remember the points start with number 0 up until 24)

# no longer needed???? this since the Z switch is obselete when we home Z with Z probe only or do we still need to set a reference although we have probed at center bed for Z=0?

 

#fade_start: 1.0

#fade_end: 10.0

#split_delta_z: .025

#move_check_distance: 5.0

#mesh_pps: 5,5

#algorithm: lagrange

#   The interpolation algorthm to use.  May be either “langrange”

#   or “bicubic”.  This option will not affect 3×3 grids, which

#   are forced to use lagrange sampling.  Default is lagrange.

#bicubic_tension: .2

#   When using the bicubic algoritm the tension parameter above

#   may be applied to change the amount of slope interpolated.

#   Larger numbers will increase the amount of slope, which

#   results in more curvature in the mesh. Default is .2.

 

 

[gcode_macro UNLOAD_FILAMENT]

gcode:

M83

G1 E10 F300

G1 E-780 F1800

M82

 

[gcode_macro LOAD_FILAMENT]

gcode:

M83

G1 E750 F1800

G1 E30 F300

G1 E15 F150

M82

 

 

 

##        Thermistor Types

##   “EPCOS 100K B57560G104F”

##   “ATC Semitec 104GT-2”

##   “NTC 100K beta 3950”

##   “Honeywell 100K 135-104LAG-J01”

##   “NTC 100K MGB18-104F39050L32” (Keenovo Heater Pad)

##   “AD595”

##   “PT100 INA826”

 

## z-offset was 2.2 with smooth dual pei sheet.  Put it down 0.05  (to 2.15 to chceck usage

## Increasing this value(+) increases squish (nozzle goes DOWN), and decreasing it (-) decreases squish (nozzle goes UP).

 

#*# <———————- SAVE_CONFIG ———————->

#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.

#*#

#*# [extruder]

#*# control = pid

#*# pid_kp = 18.565

#*# pid_ki = 0.673

#*# pid_kd = 128.100

#*#

#*# [bed_mesh default]

#*# version = 1

#*# points =

#*#         -0.292500, -0.140000, -0.070000, -0.132500, -0.300000

#*#         -0.215000, -0.072500, 0.010000, -0.055000, -0.195000

#*#         -0.237500, -0.042500, 0.000000, -0.070000, -0.212500

#*#         -0.270000, -0.082500, -0.037500, -0.115000, -0.262500

#*#         -0.345000, -0.147500, -0.097500, -0.185000, -0.340000

#*# tension = 0.2

#*# min_x = 25.0

#*# algo = lagrange

#*# y_count = 5

#*# mesh_y_pps = 2

#*# min_y = 50.0

#*# x_count = 5

#*# max_y = 250.0

#*# mesh_x_pps = 2

#*# max_x = 275.0

#*#

#*# [probe]

#*# z_offset = 1.45

#*#

#*# [heater_bed]

#*# control = pid

#*# pid_kp = 30.322

#*# pid_ki = 0.796

#*# pid_kd = 288.824

##

Configuration checks

This document provides a list of steps to help confirm the pin settings in the Klipper printer.cfg file. It is a good idea to run through these steps after following the steps in the installation document.

During this guide, it may be necessary to make changes to the Klipper config file. Be sure to issue a RESTART command after every change to the config file to ensure that the change takes effect (type “restart” in the Octoprint terminal tab and then click “Send”). It’s also a good idea to issue a STATUS command after every RESTART to verify that the config file is successfully loaded.

Verify temperature

Start by verifying that temperatures are being properly reported. Navigate to the Octoprint temperature tab.

Verify that the temperature of the nozzle and bed (if applicable) are present and not increasing. If it is increasing, remove power from the printer. If the temperatures are not accurate, review the “sensor_type” and “sensor_pin” settings for the nozzle and/or bed.

Verify M112

Navigate to the Octoprint terminal tab and issue an M112 command in the terminal box. This command requests Klipper to go into a “shutdown” state. It will cause Octoprint to disconnect from Klipper – navigate to the Connection area and click on “Connect” to cause Octoprint to reconnect. Then navigate to the Octoprint temperature tab and verify that temperatures continue to update and the temperatures are not increasing. If temperatures are increasing, remove power from the printer.

The M112 command causes Klipper to go into a “shutdown” state. To clear this state, issue a FIRMWARE_RESTART command in the Octoprint terminal tab.

Verify heaters

Navigate to the Octoprint temperature tab and type in 50 followed by enter in the “Tool” temperature box. The extruder temperature in the graph should start to increase (within about 30 seconds or so). Then go to the “Tool” temperature drop-down box and select “Off”. After several minutes the temperature should start to return to its initial room temperature value. If the temperature does not increase then verify the “heater_pin” setting in the config.

If the printer has a heated bed then perform the above test again with the bed.

Verify stepper motor enable pin

Verify that all of the printer axes can manually move freely (the stepper motors are disabled). If not, issue an M84 command to disable the motors. If any of the axes still can not move freely, then verify the stepper “enable_pin” configuration for the given axis. On most commodity stepper motor drivers, the motor enable pin is “active low” and therefore the enable pin should have a “!” before the pin (for example, “enable_pin: !ar38”).

Verify endstops

Manually move all the printer axes so that none of them are in contact with an endstop. Send a QUERY_ENDSTOPS command via the Octoprint terminal tab. It should respond with the current state of all of the configured endstops and they should all report a state of “open”. For each of the endstops, rerun the QUERY_ENDSTOPS command while manually triggering the endstop. The QUERY_ENDSTOPS command should report the endstop as “TRIGGERED”.

If the endstop appears inverted (it reports “open” when triggered and vice-versa) then add a “!” to the pin definition (for example, “endstop_pin: ^!ar3”), or remove the “!” if there is already one present.

If the endstop does not change at all then it generally indicates that the endstop is connected to a different pin. However, it may also require a change to the pullup setting of the pin (the ‘^’ at the start of the endstop_pin name – most printers will use a pullup resistor and the ‘^’ should be present).

Verify stepper motors

Use the STEPPER_BUZZ command to verify the connectivity of each stepper motor. Start by manually positioning the given axis to a midway point and then run STEPPER_BUZZ STEPPER=stepper_x. The STEPPER_BUZZ command will cause the given stepper to move one millimeter in a positive direction and then it will return to its starting position. (If the endstop is defined at position_endstop=0 then at the start of each movement the stepper will move away from the endstop.) It will perform this oscillation ten times.

If the stepper does not move at all, then verify the “enable_pin” and “step_pin” settings for the stepper. If the stepper motor moves but does not return to its original position then verify the “dir_pin” setting. If the stepper motor oscillates in an incorrect direction, then it generally indicates that the “dir_pin” for the axis needs to be inverted. This is done by adding a ‘!’ to the “dir_pin” in the printer config file (or removing it if one is already there). If the motor moves significantly more or significantly less than one millimeter then verify the “rotation_distance” setting.

Run the above test for each stepper motor defined in the config file. (Set the STEPPER parameter of the STEPPER_BUZZ command to the name of the config section that is to be tested.) If there is no filament in the extruder then one can use STEPPER_BUZZ to verify the extruder motor connectivity (use STEPPER=extruder). Otherwise, it’s best to test the extruder motor separately (see the next section).

After verifying all endstops and verifying all stepper motors the homing mechanism should be tested. Issue a G28 command to home all axes. Remove power from the printer if it does not home properly. Rerun the endstop and stepper motor verification steps if necessary.

Verify extruder motor

To test the extruder motor it will be necessary to heat the extruder to a printing temperature. Navigate to the Octoprint temperature tab and select a target temperature from the temperature drop-down box (or manually enter an appropriate temperature). Wait for the printer to reach the desired temperature. Then navigate to the Octoprint control tab and click the “Extrude” button. Verify that the extruder motor turns in the correct direction. If it does not, see the troubleshooting tips in the previous section to confirm the “enable_pin”, “step_pin”, and “dir_pin” settings for the extruder.

Calibrate PID settings

Klipper supports PID control for the extruder and bed heaters. In order to use this control mechanism it is necessary to calibrate the PID settings on each printer. (PID settings found in other firmwares or in the example configuration files often work poorly.)

To calibrate the extruder, navigate to the OctoPrint terminal tab and run the PID_CALIBRATE command. For example: PID_CALIBRATE HEATER=extruder TARGET=170

At the completion of the tuning test run SAVE_CONFIG to update the printer.cfg file the new PID settings.

If the printer has a heated bed and it supports being driven by PWM (Pulse Width Modulation) then it is recommended to use PID control for the bed. (When the bed heater is controlled using the PID algorithm it may turn on and off ten times a second, which may not be suitable for heaters using a mechanical switch.) A typical bed PID calibration command is: PID_CALIBRATE HEATER=heater_bed TARGET=60

Next steps

This guide is intended to help with basic verification of pin settings in the Klipper configuration file. Be sure to read the bed leveling guide. Also see the Slicers document for information on configuring a slicer with Klipper.

After one has verified that basic printing works, it is a good idea to consider calibrating pressure advance.

It may be necessary to perform other types of detailed printer calibration – a number of guides are available online to help with this (for example, do a web search for “3d printer calibration”). As an example, if you experience the effect called ringing, you may try following resonance compensation tuning guide.

 

 

 

 

 

 

 

BTT BIQU H2 extruder in 2trees Spro

I bought a couple of BIQU H2 extruders to experiment with them.

The first printer I chose to mount this extruder is my TT Saphire pro.

I own this printer for a couple of years, and it behaves quite well.  But the original bowden setup is not my preferred setup, and the BIQUH2 seems very promising.

On the net, I found a 3d printable bracket with a seperate mount to re-use the 2 small 40mm side tool fans again as tool fans.

I ditched the 3d printed mount for the extruder and made me e steel one, from the old hotend mount.  That is what the pictures in this article will show.

The 3d printed toolfan mount is a bit modded because I have reversed the entire setup, so I will keep within the original specs of 235x235x200 mm printeble size.

For the rest, please see the pictures.  I re-used some of the old steel hotend mount, primarily the connecting plate with the XY carriage and the cornered horizontal plate.

In the old big bowden tube hole I welded a 6mm inner- and  12mm outer dia ring in.

And I extended the horizontal base with a little piece of plate to use the 2 pieces 3mm threaded holes of the extruder’s upper side to bolt it all together.

The filament input of the extruder has a screw-in nut with a 4mm clamp for the ingoing 4mm tube, and this is the other mounting bolt to hold the extruder to the mount.

The original TT S pro hotend mount, freed from the parts I re-used to build the BIQU H2 mount.
Cut the re-used pice to size, took some material out for the lever and fitted the ring in the 12 mm hole, to be welded.
New mounting plate with welded ring at the right, and left an add-on welded little piece with the 2 holes for the mounting M3 screws.
Extruder mount ready
The first fit. My goal was to get the nozzle tip at exactly the same XY position as original. And that worked perfect!
Mounted the toolfan holder. I modded this to be put INSIDE the carriage instead of on the outside.  I used 2 threaded M3 weld-in inserts in the toolfan holder.
Ready. The rear fan is reversed as intended. I took some material out of the holder to let the rear fan rotate freely, since it was not capable of this in the original setup.

And the inductive 8mm probe, at the rear of the extruder setup. Works perfect!

Monoprice MiniDelta V2 GD32F103 ARM MJR83B motherboard

Today I opened the lid under my Monoprice Minidelta printer that I bought on Amazon end of last year (11-2021).

Unlike what I found on the net, I appear to have an upgraded motherboard that is joined with the TFT.

Both the MB and TFT have their own pocessor and -TFT update files, available from the Monoprice website and to be found on http://mpminideltav2.com/doku.php?id=octoprint:config.

The GD32F103 ARM processor is the 32-bits direct STM replacement and is a very capable processor.  The board also looks very good, so I won’t be replacing any of it.

I am however trying to build my own firmware for the MB, based on Marlin and the STM32 lookalike.  BUT- the LCD and the pin connections for the hardware ia all unknown to me, so it might take some more investigations..

For the short term, I will install a Pi Zero2 and adjecent PI IR camera in the printer, along with a top LED light.  The original new printer’s firmware allows the use of Octoprint so I can add this printer easily to my managed stock of remotely managed 3d printers.  Without modding the original firmware.

In the bottom of the printer, enough space is available to mount the RPI and I will switch the LED with the PI’s GPIO managed switches, and a MOSFET board.  Preferably with a PWM driver, or just on/off if this works better.

Another required upgrade will be to get a PEI sheet on the hotbed and replace the plasticy extruder with a dual drive one..

The optical Z+ endstops are OK!

 

Lomography with my old 35mm Canon T70, T90’s, EOS500 and my Lubitel’s 6x6cm

Ever since my kids got an interest in lomography early 2021, it started itching in my head.

I have a lot of analogue photo equipment stowed away, just because I can never throw anything away that might possibly turn out to be useful someday.

So- I got a supplier for my juices and film and I tried reviving my cams.  That turned out to be more difficult than I expected.

The T70: no problem, just put 2x AA batteries in it and it’s OK.

But-my favourite T90’s just would’nt fire any shots.  After a lot of reading on the net, I finally found the problem: One of the coils appeared to require some magnetism from a nedymium magnet and all works well again!

So I did this and it worked. Actually, I removed the magnet and the camera kept working for some time.

But next day I had to do the same ritual again. and again.

Here’s the largest Neodymium magnet I used, with the white dot on top. It only worked well in this exact position. Any other side up and it would not work well. Turning the magnet also made the magic repair disappear. I left it in a couple of hours and the shutter kept working. Shut it off for the night and it would no longer work next morning.  The magnet can’t stay in, obviously since it is blocking some other moving parts.

 

So- the T90’s are in the storage again.

 

And- My newer Eos 500 worked perfectly! Everything automatically, AF and all! This is just a modern camera that has all you may need.  The EF lenses all fit so I can start shooting with this 35mm cam, again!

I will only do B&W, since my enlarger and all of my dark room equipment is for B&W.  I received the needed liquids last week, and I’m ready to go!

I will add new posts and add the links above when I start developing my first roll of 35 mm film, in black and white !

 

Mamiya RZ67 + Aptus leaf 65 + Phase One adapter Hasselblad V-mount

2022-02-10: FIRST ENCOUNTERS – RZ67 system & APTUS leaf 65

Recently I received some extra money to persue an old dream:

Get a medium format camera with a digital back and make some awesome architectural pictures!

I know that the Hasselblad/ Zenza Bronica/ Mamiya/ Phase One and some other’s medium format camera’s can produce awesome results, and that they are mainly used for non-moving os slow moving objects.

But- I am more of a digital type than analogue.

So-I really wanted a Hasselblad sort of camera with the awesome 39Mpix digital back.

But my budget is limited, so I had to get my wishes adapted to my budget.

In the end, I ended up with a set of Mamiya RZ67’s, both with a known problem so I could make 1 working camera out of 2 non-fully functional ones.

I exchanged the bellow from the 1 to the other camera, so this one is now in full working order. the donor camera has firing issues. I will repair the donor later. I downloaded the repair manual for the RZ67 camera and it is extremely well documented in English, including pictures and all.
The donor camera has a plastic shutter cocking handle whereas the receiving camera has a metal one. which btw has somewhat another shape. The donor’s handle (shown in the above picture) has quite some play on the handle and I expect this to be one of the main problems to be solved.

The repair went very well and within a period of 4 hours I had 1 completely working operational RZ67 camera and 1 donor camera with a lot of loose parts, that I will repair upon receival of the new bellow I ordered from AliExpress for 70 Euros.

The camera’s were acquired from Japan, like most of the other parts except the digital back that comes from Sacndinavia:

  • 4 Lenses (50mm, 110mm, 100-200mm and 250mm);
  • An original 1.4 x teleconverter;
  • Both original wired extension tubes for macro photography;
  • A Leaf Aptus 65 V-mount 28 Mpix digital back;
  • The required adapter plate from Phase One to convert RZ67’s back to V-mount;
  • Plus a lot of accessories like a left handgrip, an AE diaphragm viewer that enables automatic lighting (Aperture prio-only where the shutter speed is automated) , belt diaphragm viewer, film back 60x70mm and so on.

I got the lenses from ebay, and two of them really need some internal cleaning.

The one that works best is the 250mm lens.

I got some pictures taken right after everything got mounted on the rig, through the window at home.

I used the AE finder on Automatic, and set the lens’s aperture at 32 to get the sharpest details.

The automatically generated (and set) shutter speed when the position switch of the AE prism viewer is set at ‘A’ in broad daylight against the clouded sky turned out to be around 1/15 second which seems quite long.

And the picture of the tree  branches with some birds sitting on them turned out beautifully!

This tree is about 100 feet from my house (30 meters), and the couple of branches fill all of the screen, so the telephoto power of this combination is working very well.

This first digital photo that I made with my RZ67 digital kit and the 250mm Z- Mamiya lens is shown below:

Another thing to get investigated is that the 50mm lens does not get well into focus at all.

Like the front of the camera does not get close enough inside the camera.

The 250 mm works awesome and the 100-200 is fine as well, since this lens has its own focusing ring at the front of the barrell.

What I could not get to work -yet- is the ISO setting. If I set ISO on the Aptus to 400, the AE system of the RZ67 does not recognise this, since I get overlighted images.

I adapted this by setting the lighting correction to +3 on the AE viewfinder which made me produce OK pictures but this does not solve my original issue, since I want it to work automatically.

I really want to use this setting, instead of compensate for it so the Aptus gets less light.  Still working on this.

I will measure the adapter’s electrical output on the right pin for the signal to change, like the analogue filmbacks do when you change the ISO settings.

If needed, I can hook up a small switch to the adaptor for ISO settings.

But I am sure it has something to do with settings in the Aptus 65, since you can configure almost anything and I am still finding out what I need to set for this to work properly with the Phase One converter plate.

The complete setup looks like this, with the 100-200 mm zoomlens attached:

I will not be running around with this outside, since the combined weight is over 4 kilograms.  Just too much if you want to seriously shoot anything that is any good.

This will be my studio-, & macro-, and architecture camera since the shallow depth of field will produce amazing pictures, both in B&W and in color.

Maybe a commercial photograph session now and then, I believe that getting a technical factory  shot with this cam/combination could turn out to work very nice!

Compact Flash cards:  I used an adapter from CF card to SD card that I also use on my Canon 5D MarkII, and it only accepts SD cards up to 32 GB.  But that’s OK.  I will try to install the wifi SD card as well, since I have that lying arouns somewhere, I will add this in a new post later.  The Aptus’s firmware had a setting for this, so I will try this anyway.

The digital back adapter for the RZ67 camera  is not really visible between camera and digital back, underneath is a picture of the one I use.  It is commonly available but requires a V-mount digital back.  V-backs from Leaf or Phase one are very rare to get by, since they are either Mamiya fit (proprietary mount for for the 645 cams) or H-Hasselblad fit.  And Hasselblads V-mounts digital backs are very good and fairly easy to get at, yet they are (in my view) very expensive due to their high quality and high pixel rates.

CROP FACTOR

The Mamiya Leaf Aptus 65 has a 44×33 mm sensor of almost 29Mpix.  The Aptus has been made for the 6045 line-up and therefore all specs relate to that, and not to the RZ67’s 6×7 cm format.

The maximum (theoretical) film format on the RZ67 is 70x60mm.  But the picture size with a 6×7 cm back will be 56mm x 69.2mm.

Even though, most common used on the RZ camera are the 6070 film backs, although a 60×60 is also available but hard to get for a fair price.  The 6070 backs are the ones without anything in size labeled on top.  Any 6060 or 645 sized back will have this size labeled on the pack’s outside.

The Aptus 65’s crop of 1.3 is defined by Leaf in relation to the medium format definition and this is theoretically only 60x45mm but it is adjusted down, due to cutoffs and such.  60×45 camera size is measured in medium format picture size as 53.7×40.2mm.

The medium format is thus generally defined at 53.7×40.2 mm picture & sensor size, and its surface is 21.59cm2.

The Aptus 65’s  sensor is 33x44mm and its surface  is ‘only’  14.52 cm2.

The crop factor of the Leaf Aptus 65 is 1.3 versus medium format.

The full-frame sensor against which all other image sensors are defined is 36×23.9 mm and its surface is 8,6 cm2.

So- even the fact that you won’t use the full width of the 6×7 cm range of the RZ67’s back panel’s covered projection space, the coverage of the Aptus 65’s sensor almost doubles that of a full frame sensor.

The used table is below:

I am, however, still out on the search for a Hasselblad CFV-39 V-mount digital back since it has the extremely good Sony sensor of 49×36.7 mm and it has great specs and image results.  Still hesitating to buy this since the prices are above 3000 Euro’s, excluding import duties and VAT.  So- adding this makes it cost over 4500 Euro’s.  I am still searching for one within the EU, so I don’t need to pay additional costs before I get it.

Mamiya RZ67 cocking shutter repair

As you can see in the above MP4, the shutter cocking mechanism could not fully complete the cycle to the end of the cocking prcedure, due to play in the connection between the small flange and the rod on which it is placed.

I ended up by just using strong thread sealer, screwing it tight again an waited for 24 hours before using it again.

Together with the beneath shown repair of the external lever play, this indeed fixed the problem of not reaching the end of the cocking procedure.

And thus my donor RZ67 camera housing was working again, albeit only in emergency mode.

But I will explain the repair of this specific electrical problem(s)  in yet another post.

And- also the same problem with the outside lever. The lever was easy to repair. I put it on my working table , on the flat part of my vice and used a blunt pointed driver and a dead blow hammer in the center of the small axle to punch it and this fixed the outside (big black) lever again firmly to the internal small lever.

Mamiya RZ67 repair shutter release electronics problem(s)

When repairing electronics, I always make a lot of picture up front. This helps especially with identifying the small components, both for the function as well for their specific value/type.

What makes this repair more difficult is the fact that, although I do have the repair manual, no schematics of the working of the electronics is available.

This means that I will have to work with the block schematics and the wiring scheme, only.

But- a reference is available for all of the voltages versus the pressed buttons at cetera. That will help, of course.  And I identified all SMD components, including the transistors.  Fortunately, all can still be bought online.

If you look at the added pictures, it appears that this REV2 print and its connected electronics have been upgraded- or repaired-  at an earlier stage.

That could mean that this identifies an earlier problem.

First, I checked all reference voltages related to the camera’s settings and then I identified anything out of the ordinary.

Mamiya RZ67 bellows replacement

Replacing the bellows of the RZ67 camera can be broken up in two parts:

1) The actual replacing as taking it out and in again, where the steel plates that hold the bellows are taken out and in with the actual bellows attached to this.  this procedure is described in the repair manual.n  You will need a very long X screwdriver for this, with a small nose.  And some patience, good lighting and (in my case) additional glasses.  And- if you replace the internal cloth part of the bellows: You will require some special light-blocking foam when mounting the bellows back in again.

2)The more complex replacement is taking the in-between cloth part of the bellows off the steel plating and replacing this with a new bellows unit, as you can buy on ebay/ aliexpress et cetera.  That’s what I will describe and show you in this post.

Steps to take:

Remove the cloth from upper-and lower part with use of dessicant, and tricloorethane or any other solvent that does not affect the paint on the steel plating.  ‘debonding might do the trick here.

Clean the steel plating.

Test-fit the new bellows on the steel plates;

put some glue on the rear steel plate, where the connection was in the old situation.

Put the bellows on the glued plate and use a brush with a bit of glue to attach the bellows to the steel plate.

Let it dry.

Do the same for the other steel plate.

Let it all dry.

Mount some foam as lightshield on the connecting part of the steel plates

First, mount the bellow to the camera’s largest part with the 4 screw in the corners( only 4 screws on this side!)

Then, extend the front to maximum and screw the bellows with the 9 screws to the front, through the camera’s inside.  Just screw the screws in a little bit, do not yet tighten. First do 3 or 4 on the outside, then the rest. After the last is in, tighten them all.

You’re done!

After the new bellows is  glued on the steel frame, part 1 will be done.

Now there is just a gap in the camera where the bellows used to be:

Mamiya Aptus leaf P65 V-mount user experiences 2022

My Mamiya RZ67 Professional received a digital back recently.

After a long search, I decided to get a V-mount digital back (originally for Hasselblad, old version cameras) version since an original Mamiya adapter plate to a Mamiya 645 mount is extremely expensive.

And an adapter for or a Hasselblad more poular H-mount is not very well supported, electrically.  I know that shutter release will work BUT the Phase One adapter plate that connects the Mamiya RZ67 Phase 1 Professional to the V-mount digital back is around 300 US Dollars and was available on eBay .

This is the adapter plate I bought between my RZ67Pro I and the V-mount digital back Aptus leaf P65

It took me some time to get everything working, since I did not have a P-P cable to connect the 2.5mm entry of the digital back to the shutter contact on the camera or lens.  This is required to get the digital back triggered at the moment that the shutter opens.

The setup looks like this:

The aptus65 works with standard samsung batteries of which I ordered a couple of the largest possible.

I also bought me a 64GB Compact Flash card, which works much better than the CF to SD adapter I used before.

Getting the pictures onto my PC works easy:  put the card in the CF reader , copy the files. Then the tricky part begins: You must transform the imported files with a decoding program that is fortunately downloadable on the mamiya leaf website, but it is a bit hard to find.

Then, import the required app for windows to edit the .MOS files in the regular image viewer, save a copy as jpg and you’re done.

It is also possible to use lightroom, or any other good imaging software package.

I also have a firewire cable setup that I used before for my digital8 camera’s.  This also works for the Aptus65, but I don’t expect to ever use this.

Firewire is btw the only way to power the Aptus65, if you don’t wanna use the batteries.  But you will need a very good power source on the USB-C connector to get this to work.

The images are very good, as to be expected.  the 28Mpix sensor is more tha adequate to get good results.  BUT it is a pity that the sensor is only 44×33 mm while the POV of theRZ67 is 7×6 cm.  This also means that you get only half the image (more or less) of what you see in the viewfinders’s image.

I printed a mask for the viewfinder at a crop of 1.3 vs. a 645’s normal view so the view resembles the taken pictures

That is exactly what is needed here, since the Aptus leaf65 has a crop of 1.3 when it would be used on a 645DF camera (which this V-mount version cannot, obviously do) with an (almost) 60x45mm medium format.

Which in fact is quite a bit less (53.7×40.2) in real image size, see the below table.

44×33 relates to 53.7×40.2 as a crop of 1.3, as the seller states in the folder of the Aptus 65.

Negatives:  Well, the rotating back does not work with the Phase One adapter plate, of course.  And I still have some cleaning to do on most of my lenses before I attempt to do any serious shooting outside.  And the entire setup gets quite heavy for outside use.

Positives:  It helps me a lot to work and learn with the RZ67, using the digital back.  I can shoot and shoot on, experimenting with light settings, flash, counterlights and so on without destroying any real film.

My intent is, though, to use the RZ67 with normal film and the full 7×6 capabilities.

And use it for architecture, mostly in Amsterdam.

I already have quite a lot of pictures, taken with my Sony A77RII &35 mm pro-lens and with my old Panasonic dual GX8 setup, but I am very much looking forward to get some great shots with the RX67 on large(r) format film in B&W!

Scanning

[Update 2022-07-14: I got my Creality lizard today !

Extremely small and fast, I just tested it this afternoon and it is way faster and easier to use than the Creality CR-1!

More to follow soon, in a seperate post.]

 

Comparison of 3d-DIY hobby scanners versus Creality CR-1 3d scanner

Previously I built and extensively tested both versions of the Openscan scanners and the ciclop scanner.  The openscan types are very different from each other but use simple firmware with an Arduino or a Raspberry PI contoller.  The Ciclop is a simple 3d scanner with a rotating platform and a USB camera.

Openscan mini

The Openscan mini takes pictures with the RPI camera and rotates the camera around the object to be scanned.  This indicates the limitation, you can only scan small objects.  After scanning you have to import the photos into meshmaker or via the new free cloud solution from Openscan’s developer Thomas Megel.  The mini is fully controllable via the web-based software available for download on Thomas Megel’s website, where you can also use it to upload and process your photos and then download the 3d files.

Openscan mini + Raspberry PI (2-4)

 

Openscan classic

The classic version of the Openscan scanner can handle larger objects and uses an external camera. I used my Canon 5D Mark2 for this, with a ring flash.  This solution works pretty well and uses the same software as the mini for processing and rendering. In the separate Arduino unit that controls the rotors of the scanners you can set the number of steps vertically and horizontally and you have to transfer the pictures from the camera yourself to a meshmaker-like processing to construct a 3d image.  Quite cumbersome but it can be done for free and gives a pretty good workable result. Provided you spend some time on it.

Openscan classic 3d scanner with on the left the Arduino controller, with small buttons you can set the steps and on the LCD you can see what you are setting. Below is the connection for the remote to your camera. It is recommended to use a good flash or at least extra lighting.  The advantage of an external camera is that you can make razor sharp images, for example by using follow focus or, as I did on my Canon5DII, using continuous focus.

 

Ciclop 3d scanner

The ciclop scanner works with a fixed platform and no vertical movement. It is very similar in operation to the Creality CR-1 scanner but I have never had good results with it.  There are 2 red diode lasers on the sides and 1 USB camera in the middle.  The result in terms of photos is fine, but it is ultimately about the rendering software and the processing of the photos taken, just like with the Openscan classis. and that is for the hobby environment just in my experience not (yet) sufficiently well developed with this ciclop 3d scanner.

 

The Creality CR-1

I purchased the Creality CR-1 scanner in late 2021 because I saw a few projects coming up where a good scanner would come in handy, and I didn’t want to spend extra time on it.  Besides, I was very curious about the results of this ‘all-in one’ scanning solution.

The scans made are very useful, and the rotating plate on which you can place the object also works well.

My experience is that hand scanning is very laborious, and you have to scan all parts of the object to be scanned carefully.  This means that you have to pay attention both to what you are scanning through the screen, where you can follow the construction of your scan live, and what you are doing towards the object with the scanner in your hand.  That takes some getting used to, but after a few scans it is much easier.

Very nice is the way it works with this scanner: The live-view of the accumulated scan tells you where you need to scan even better and if you forgot something you scan again and let the included stitch software make one merged scan of it.  That also works very well.

What do you need besides the scanner: Saving the data is done on your PC or laptop, rendering is done via a GPU, and the control and power for rotating table and the scanner itself is done with a separate PSU.

It helps when you have a fast GPU with quite a bit of memory.  I have a 3600 GPU in a Thunderbolt3 external casing attached to my Dell XPS13 i7 for on-the-go use with 5 meter extension cords for the scanner.  This works very well, but really the 13 inch screen is too small for this work.  Carrying an external screen is not an option so I have to make do with this.  And the external Thunderbolt casing is actually too big to carry as well.

Another possibility would be to use a gaming laptop that already has a fast GPU in it, with a 17-inch screen.  Might get one anyway, when more work on the go comes along.  For now, I mainly use the scanners at home/business so I just use my hi-res 27 inch IIyama screen to the Thunderbolt / 3600 GPU, that works fine!

Experiences:  This scanner works completely differently than the Openscan versions.  The camera needs more distance from the object to be scanned and therefore the whole setup requires more space. I had to get very used to the fact that you have to have more than a meter all around to get a good view of your object, even with small objects.

I am still going to try using a front lens or zoom lens, need to check what fitting this scanner uses for the lens-to-sensor.

 

Summary and overall rating from 1-10:

The Openscan mini (7) works fine for small objects, is easy and good to use with the web-based software and with the online rendering service.

The openscan classic (6) works well but requires a relative amount of setup work, knowledge of and experience with the setup an you can use the same online rendering service from Thomas Megel.

The Ciclop (3) is in my opinion too immature to use seriously.

The Creality-CR1 (8) is a valuable professional solution for medium size projects up to large projects (10-200cm diameter), good local interface via PC/Laptop with fast processor and fast modern GPU.

 

error: Content is protected !!