Table of Contents

RP2040 Input Shaper Hardware

In Anlehnung an https://klipper.discourse.group/t/raspberry-pi-pico-adxl345-portable-resonance-measurement/1757

YouTube Video #92


Kommerziell

DIY

Kabel

Spannungsregler

Level Shifter

I2C

Sensoren Beispiele

Klipper flashen

kurzer Test

Ob das Board korrekt mit Klipper läuft, lässt sich mit folgendem Befehl schnell testen:
~/klippy-env/bin/python ~/klipper/klippy/console.py /dev/serial/by-id/usb-Klipper_rp2040_E6625C05E7A17228-if00

Der Pfad am Ende muss natürlich mit dem übereinstimmen was ihr im vorherigen Schritt ermittelt habt!

Wenn ihr ein connected am Anfang des Textes seht, ist das Board richtig geflasht.

RP2040 SPI Ports

Hardware SPI

Der RP2040 verfügt theoretisch über 7 nutzbare SPI Ports. Dafür sind aber meistens nicht alle Pins rausgeführt, oder Pins haben eine unglückliche Doppelbelegung.
spi0d und spi1c sind nur eingeschränkt verfügbar / nutzbar!

SPI Bus CS SDO (MISO) SDA (MOSI) SCL (CLK) getestet Konfiguration
RPi Pico pin Name CSn SPI RX SPI TX SPI SCK
spi0a gpio1 gpio0 gpio3 gpio2 OK cs_pin : RP2040:gpio1
spi_bus : spi0a
spi0b gpio5 gpio4 gpio7 gpio6 OK cs_pin : RP2040:gpio5
spi_bus : spi0b
spi0c gpio17 gpio16 gpio19 gpio18 OK cs_pin : RP2040:gpio17
spi_bus : spi0c
spi0d gpio ? gpio20 gpio23 gpio22
spi1a gpio9 gpio8 gpio11 gpio10 OK cs_pin : RP2040:gpio9
spi_bus : spi1a
spi1b gpio13 gpio12 gpio15 gpio14 OK cs_pin : RP2040:gpio12
spi_bus : spi1b
spi1c gpio ? gpio24 gpio27 gpio26

Software SPI

SPI Bus CS SDO (MISO) SDA (MOSI) SCL (CLK) Konfiguration Notes
Fysetc Portable Input Shaper gpio13 gpio12 gpio11 gpio10 cs_pin : RP2040:gpio13
spi_software_sclk_pin: RP2040:gpio10
spi_software_mosi_pin: RP2040:gpio11
spi_software_miso_pin: RP2040:gpio12
axes_map: x,-z,y
BTT ADXL345 V2.0 gpio9 gpio8 gpio11 gpio10 cs_pin : RP2040:gpio9
spi_software_sclk_pin: RP2040:gpio10
spi_software_mosi_pin: RP2040:gpio11
spi_software_miso_pin: RP2040:gpio8
axes_map: -x,-y,-z
Alternativ spi_bus: spi1a
BTT LIS2DW V1.0 gpio9 gpio8 gpio11 gpio10 cs_pin : RP2040:gpio9
spi_software_sclk_pin: RP2040:gpio10
spi_software_mosi_pin: RP2040:gpio11
spi_software_miso_pin: RP2040:gpio8
axes_map: -y,x,-z
Alternativ spi_bus: spi1a
BTT EBB SB2209 gpio1 gpio3 gpio0 gpio2 cs_pin: EBBCan:gpio1
spi_software_sclk_pin: EBBCan:gpio2
spi_software_mosi_pin: EBBCan:gpio0
spi_software_miso_pin: EBBCan:gpio3
axes_map: z,-y,x
Mellow Fly-ADXL345-USB gpio9 gpio12 gpio11 gpio10 cs_pin : RP2040:gpio9
spi_software_sclk_pin: RP2040:gpio10
spi_software_mosi_pin: RP2040:gpio11
spi_software_miso_pin: RP2040:gpio12
Hinweis
Wenn Software SPI verwendet wird, können beliebige gpio Pins verwendet werden!
Bei den Kaufversionen sind die Pins allerdings fest vorgegeben!

Konfiguration

Dual ADXL

Es ist möglich, mehrere ADXL an einem Controller zu betreiben, z.B. für Drucker mit beweglichem Bett. In dem Fall werden die Achsen über unterschiedliche ADXL vermessen.
https://www.klipper3d.org/Measuring_Resonances.html#bed-slinger-printers

Eine Konfiguration dafür könnte so aussehen

[mcu RP2040]
serial         : /dev/serial/by-id/usb-Klipper_rp2040_E66138935F717729-if00
baud           : 115200       # 250000
restart_method : command

[resonance_tester]
accel_chip_x   : adxl345 hotend
accel_chip_y   : adxl345 bed
probe_points   : 150, 150, 20 

[adxl345 hotend]
cs_pin         : RP2040:gpio1
spi_bus        : spi0a

[adxl345 bed]
cs_pin         : RP2040:gpio5
spi_bus        : spi0b

Test

Auswertung

https://www.klipper3d.org/Measuring_Resonances.html#installation-instructions

Einbauposition

Grundsätzlich sollte der ADXL345 so nah wie möglich an der Nozzle platziert werden. Am besten direkt an der Nozzle montiert …