The Duet 3 Scanning Z probe is a CAN-FD connected inductive sensing board, with compatible inductive PCB coils. It allows for a point mesh of the bed to be built up quickly as no movement in Z is required to read the bed distance, and individual readings happen very quickly. An accelerometer has been added to the PCB as well to allow for the SZP board to also be used for input shaping calibration.
Example mesh of 792 points that took ~20seconds to produce.
Processor | ATSAMC21G18A |
Processor features | 32-bit, 48MHz ARM Cortex M0+, 256KB Flash, 32KB RAM |
Networking/Comms | CAN-FD interconnect to Duet 3 Tool Distribution Board or Duet 3 Mainboard; serial port |
Scanning IC | LDC1612 |
Accelerometer | LIS2DW12 |
Power monitoring | VIN voltage reporting |
Input power voltage | 5V |
Power consuption | <200mA |
Maximum ambient temperature | 75°C |
Absolute maximum board temperature | 85°C |
Note: The coil PCB can likely cope with higher temperatures than those quoted above, having no active components.
Duet-supplied FFC cables are rated at 80°C, but cables are available with a higher temperature rating.
Importantly Duets are Open:
There are three M2 mounting holes and overall dimensions are 38mmx20mm
Here is an example with it mounted on a Mini Stealth Burner tool on a Voron:
Note: this board is a v0.1 development board; CAN_L and CAN_H are swapped on the silkscreen.
The STEP file for the SZP board is available here: https://github.com/Duet3D/Duet3-ScanningZProbe/tree/master/v1.0
STEP files of both coils are available on Github here.
Duet 3 Scanning Z probe has the following connectors:
Connector | Label | Function |
---|---|---|
4-pin JST PA | GND, 5V, CAN_L, CAN_H | +5V power and CAN |
4-pin 0.5mm pitch FFC | Temp, VSSA, COILA, COILB | Connection for FFC cable to coil |
LEDs are provided to indicate the following:
Label | Colour | Function |
---|---|---|
ACT | Green | Indicates activity on the CAN-FD bus |
STATUS | Red | Status LED. See description below |
Status LED: In normal use, the red LED flashes slowly in sync with the main board to indicate that it has CAN sync, or flashes continuously and rapidly to indicate that it doesn't. It also flashes startup error codes, for example if the bootloader doesn't find valid firmware on the board. For a list of these error codes see CAN connection basics.
Supply 5V to the GND and 5V pins of the 4-pin JST PA power/CAN connector on the board, observing the correct polarity. Connect 5V and GND pins to a source of 5V (e.g. an IO port on the Duet 3 mainboard, expansion board or toolboard).
If you use a relay to control VIN power to the board, ie the power supply is already switched on, and a relay is used to turn on power to the board, you should use an inrush current limiter wired in series with VIN. See the section on Inrush current here.
OUT ports on the mainboard should NOT be used to switch power to expansion or tool boards directly. See the note at the end of the 'inrush current' section at the link above.
Connect CAN-FD wires to CAN_H and CAN_L pins of the 4-pin CAN and power connector. Connect the CAN_H and CAN_L pins to the CAN-FD bus.
If just using an SZP and a mainboard with no tool boards or other Duet 3 expansion boards, CAN can be connected directly to:
Note: The CAN bus needs terminating at the last device, so terminate the bus at the SZP. See 'Terminating resistor' section below.
If adding the SZP to an existing Duet 3 toolboard 1LC, connect the CAN wires to one pair of wires from 1LC, and power the SZP from an IO port.
Note: The CAN bus needs terminating at the last device. If this was the 1LC, remove the termination there and terminate the bus at the SZP.
This image shows an SZP connected to a 1LC connected, which is in turn connected to a Duet 3 Tool Distribution Board. The 1LC and SZP are wired as a 'stub'. See the Duet 3 Tool Distribution Board CAN wiring section for more details on this setup.
For further information on CAN connectivity, see CAN connection basics
There is a solderable jumper on the back of the SZP to set the termination resistor, if it is to be the last board on the CAN-FD bus.
Add the following to your sys/config.g file
It is recommended to add the following to config.g, before any commands that reference any CAN bus connected expansion boards, eg close to the start of config.g
G4 S2 ; wait for expansion boards to start
The default CAN address is 120. Changing the CAN address is only necessary if you have another CAN-connected board with the same CAN address, eg another SZP or toolboard.
All boards in the system must have different CAN addresses. SZPs are shipped set to a default CAN address of 120. If you have more than one SZP on a bus, only one of them must be powered up and connected to the CAN bus initially until a new address is set.
M115 B#
to verify that the main board can communicate with the SZP, where # is the original CAN address (normally 120)M952 B# A##
where ## is the new address you want to use, e.g. M952 B120 A100
.M999 B120
. This will cause the SZP to restart with the new address.M122 B100
(or whatever address you chose) to verify that you can communicate with the SZP at its new addressCheck that you can communicate with the SZP by sending
M115 B120
Result should be something like
Duet SZP firmware version 3.5.2 (2024-06-10 13:24:08)
For a full report, send
M122 B120
The status of the accelerometer and Inductive sensor are listed at the end of the report.
The board will do a factory reset if you power it up with the CAN RESET button held down. The CAN address will be reset to the default (120), the CAN bus timing will also be reset to default (1Mbps), and the bootloader will request a firmware update.
Make sure that the SZP is running the same firmware version as the mainboard.
Usually, if you update the firmware using the .zip package of the latest release, connected CAN boards will be updated to the same release.
To check versions are the same:
M115
and M115 B#
(where # is the SZP CAN address) to report the firmware version of the mainboard and the SZP.M997 B#
command, where # is the CAN address of the new board.Factory resetting the board using the CAN reset jumper will also cause the bootloader to request the firmware file from the mainboard.
Updating the bootloader is rarely necessary.
Duet 3 expansion boards and tool boards have a bootstrap loader written to the start of flash so that they can load firmware from the main board via CAN. This bootloader may occasionally need to be updated in order to support new features. See Updating the bootloader on Duet 3 expansion and tool boards.
To use the scanning Z probe as a secondary Z probe, assuming you already have a primary Z probe used for Z homing, add the following to your config.g:
; Scanning Z probe
M558 K1 P11 C"120.i2c.ldc1612" F36000 T36000
M308 A"SZP coil" S10 Y"thermistor" P"120.temp0" ; thermistor on coil
For SZP calibration and usage, see Scanning Z Probe calibration
Add the following to your config.g:
M955 P120.0 I20 ; Add accelerometer on SZP with CAN address 120 and specify orientation
See M955 for how to setup and configure the accelerometer.
The Duet 3 Scanning Z Probe has an XYZ arrow to aid orientation of the accelerometer, see image below. The Z axis is in the direction of the top face of the board/chip. The default alignment is to align the axes on the board with the axes of your machine (equivalent to I20 in the M955 command), but as that alignment may not be convenient it is configurable in M955.
For an overview of using accelerometers to capture data on axis movement see: Connecting an accelerometer
initial prototype, internal testing only