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.
|32-bit, 48MHz ARM Cortex M0+, 256KB Flash, 32KB RAM
|CAN-FD interconnect to Duet 3 Tool Distribution Board or Duet 3 Mainboard; serial port
|VIN voltage reporting
|Input power voltage
|Max Ambient Temperature (Control Board)
There are three M2 mounting holes and overall dimensions are 38mmx20mm
The SZP board can be mounted anywhere within reach of the supplied FFC cable (100mm).
The bottom of the SZP coil should be around 1 to 2mm above the tip of the nozzle, so that when scanning the bed the G31 trigger height can be set to around 2mm to avoid the nozzle contacting the bed, while keeping the coil fairly close to the bed.
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 board is available here:
Wiring on v1.0 board is:
GND - 5V - CAN_L - CAN_H
Duet 3 Scanning Z probe has the following connectors:
|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:
|Indicates activity on the CAN-FD bus
|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.
Connect the 4-pin CAN and power connector to a source of 5V (e.g. an IO port on the Duet 3 mainboard), connect the CAN 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:
For further information on CAN connectivity, see CAN connection
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 address
Check that you can communicate with the SZP by sending
The status of the accelerometer and Inductive probe is 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 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