Rampon is an alternative firmware that you can flash on various devices including the KUSBA V2, FYSETC PortableInputShaper, SeeedStudio Xiao, Adafruit QT Py, Mellow Nozzle ADXL, or any Pico or RP2040 with an ADXL345 attached.
You can use Rampon to run input shaper calibration for Klipper with any of these devices. However, there are two different versions of Rampon available depending on which device you are using.
-
If you are using the KUSBA V2 or any other device wired to SPI0, you can use the
kusba
version of Rampon. -
If you are using the FYSETC PortableInputShaper or any other device wired to SPI1 and CS to gpio13, you need to use the
fpis
version of Rampon. -
If you are using the Mellow Nozzle ADXL or any other device wired to SPI1 and CS to gpio9, you need to use the
mnadxl
version of Rampon.
They are available as separate binaries.
It's important to note that the current version of Rampon requires the ADXL345 to be wired to specific GPIO pins depending on which version of Rampon you are using.
-
If you are using the
kusba
version of Rampon for SPI0, the ADXL345 needs to be wired to GPIO0, GPIO1, GPIO2, and GPIO3. -
If you are using the
fpis
version of Rampon for SPI1, the ADXL345 needs to be wired to GPIO10, GPIO11, GPIO12, and GPIO13. -
If you are using the
mnadxl
version of Rampon for SPI1, the ADXL345 needs to be wired to GPIO10, GPIO11, GPIO12, and GPIO13.
If you have wired the ADXL345 differently or have wired a second ADXL345 to your RP2040, the current version of Rampon might not work for you.
Note: The FYSETC PortableInputShaper has an LED that can be used to indicate the status of the input shaper. However, the LED functionality has not been implemented in Rampon yet.
- Download the UF2 files from the release assets, choosing the correct version depending the device you have.
- Hold the BOOT or BOOTSEL button on the PCB while connecting USB cable
- Mount the USB storage device if necessary
- Copy the UF2 file manually or run:
% sudo elf2uf2-rs -d rampon_anchor_VERSION.uf2
After flashing completes, the device should be available as:
/dev/serial/by-id/usb-Anchor_Rampon-if00
when plugged into
a Linux machine.
[mcu rampon]
serial: /dev/serial/by-id/usb-Anchor_Rampon-if00
[adxl345]
cs_pin: rampon:CS
[resonance_tester]
accel_chip: adxl345
probe_points: 90, 90, 20
To compile the project, you will need a Rust toolchain installed, cargo-binutils
, and the compile target for ARM Cortex-M0. They can be installed with:
% rustup component add llvm-tools-preview
% rustup target add thumbv6m-none-eabi
To build the project run:
% cargo build --release --target thumbv6m-none-eabi --no-default-features --features kusba
To flash an RP2040 connected over USB in bootloader mode, run:
% sudo elf2uf2-rs -d target/thumbv6m-none-eabi/release/rampon_anchor
After the update completes, the device should be available as:
/dev/serial/by-id/usb-Anchor_Rampon-if00
.
- kusba
- fpis
- mnadxl
To create the release files
% make all
Rampon uses code from Annex Engineering's crampon_anchor and Anchor projects (specifically, the rp2040_demo).
Also thanks to:
- Clee for always offering help to test.
- mattthebaker
- xbst