DIY SZP wiring and firmware
-
Ever since the original pre-announcement of the Scanning Z probe, I got ahold of an LDC1612 to make use of a Sammy C21 board I bought ... a while back.
I browsed the forum, but didn't find the answer to some open questions:
a) Since the Duet3D scanning probe runs on a SAMC21 chip, can I use the SZP firmware on the SammyC21? I assume the bootloader may not take the wrong firmware (unless renamed maye)?
b) Is there a wiring diagram for a DIY SZP, i.e. how would I need to wire up the LDC1612 control board to the Sammy C21?
-
@oliof yes you should be able to use a LDC1612 with a SammyC21. I updated the standard SammyC21 build of Duet3Expansion firmware to support a LDC1612 but this has not been tested.
The pin connection are defined in file src/Config/SAMMYC21.h. In brief they are:
SCL -> PA23
SDA -> PA22
INT -> PA21PS - I have just updated https://docs.duet3d.com/en/Duet3D_hardware/Duet_3_family/Using_the_Sammy-C21_development_board_with_Duet_3#features-of-the-standard-firmware-binary.
-
EDIT: Solved (thanks @jay_s_uk), I need
M558 K0 P11 C"120.i2c.ldc1612" F25000 T30000
(this printer has only z endstops, not another probe)
@dc42 I got the Sammy C21 up and running after some trials and tribulations, but with the 3.5.0-rc2 firmware, I cannot setup the SZP.
M558 P11 C"120.pa22+120.pa23" ; Board ID changed to match SZP default Error: M558: expansion boards do not support Z probe output ports
(I know you did some more recent changes but I cannot currently rebuild my own since eclipse fails at start with a stupid SWT image loader error, and my Java is too rusty to sort this out, so I am trying to get somewhere with the currently released file).
-
M122 tells me the probe is up and running (amplitude error because the coil is off the bed)
M122 B120 Diagnostics for board 120: Duet SAMMYC21 firmware version 3.5.0-rc.2 (2023-12-14 08:58:19) Bootloader ID: not available All averaging filters OK Never used RAM 5708, free system stack 142 words Tasks: Move(3,nWait,0.0%,135) HEAT(2,nWait,0.1%,135) CanAsync(5,nWait,0.0%,71) CanRecv(3,nWait,0.0%,79) CanClock(5,nWait,0.0%,67) MAIN(1,running,94.3%,426) IDLE(0,ready,0.0%,27) AIN(2,nWait,5.5%,92), total 100.0% Last reset 00:00:10 ago, cause: power up Last software reset data not available Driver 0: pos 0, 80.0 steps/mm, steps req 0 done 0 Moves scheduled 0, completed 0, in progress 0, hiccups 0, segs 0, step errors 0, maxLate 0 maxPrep 0, maxOverdue 0, maxInc 0, mcErrs 0, gcmErrs 0, ebfmin 0.00 max 0.00 Peak sync jitter 2/10, peak Rx sync delay 195, resyncs 0/0, no timer interrupt scheduled MCU temperature: min 25.4C, current 25.6C, max 25.6C Last sensors broadcast 0x00000000 found 0 34 ticks ago, 0 ordering errs, loop time 0 CAN messages queued 103, send timeouts 0, received 191, lost 0, errs 0, boc 0, free buffers 18, min 18, error reg 0 dup 0, oos 0/0/0/0, bm 0, wbm 0, rxMotionDelay 0 Accelerometer: none Inductive sensor: raw value 44678257, frequency 3.33MHz, current setting 13, amplitude error I2C bus errors 0, naks 12, contentions 0, other errors 0
-
@oliof you will need to increase the drive current, see M558.2.
-
@dc42 I've yet to design a proper way to mount my rat's nest of components, the amplitude error goes away when I hold the coil some millimeters above the print bed.
Considering the individual cost of a Sammy C21, LDC1612, and an accelerometer, the SZP is both cheaper and more convenient (-: