diff --git a/configuration/boards/btt-sb-2209-usb-10-rp2040/98-btt-sb-2209-usb-10-rp.rules b/configuration/boards/btt-sb-2209-usb-10-rp2040/98-btt-sb-2209-usb-10-rp.rules new file mode 100644 index 000000000..b2fe9485a --- /dev/null +++ b/configuration/boards/btt-sb-2209-usb-10-rp2040/98-btt-sb-2209-usb-10-rp.rules @@ -0,0 +1,3 @@ +# BTT SB2209 USB V1.0 RP2040 +SUBSYSTEMS=="usb", ATTRS{idProduct}=="614e", ATTRS{idVendor}=="1d50", ATTRS{serial}=="btt-sb-2209-usb-10-rp", ACTION=="add", SYMLINK+="btt-sb-2209-usb-10-rp", RUN+="/home/pi/printer_data/config/RatOS/scripts/klipper-mcu-added.sh" + diff --git a/configuration/boards/btt-sb-2209-usb-10-rp2040/board-definition.json b/configuration/boards/btt-sb-2209-usb-10-rp2040/board-definition.json new file mode 100644 index 000000000..85ab009ab --- /dev/null +++ b/configuration/boards/btt-sb-2209-usb-10-rp2040/board-definition.json @@ -0,0 +1,40 @@ +{ + "$schema": "../board-definition.schema.json", + "manualFileName": "manual.pdf", + "boardImageFileName": "board.png", + "isToolboard": true, + "name": "SB2209 USB v1.0 RP2040", + "manufacturer": "BIGTREETECH", + "id": "btt-sb-2209-usb-10-rp", + "firmwareBinaryName": "firmware-btt-sb-2209-usb-10-rp.uf2", + "compileScript": "compile.sh", + "flashScript": "flash.sh", + "documentationLink": "https://os.ratrig.com/docs/boards/btt/sb-2209-usb-10", + "fourPinFanConnectorCount": 1, + "driverVoltages": [24], + "hasMcuTempSensor": true, + "driverCount": 1, + "alternativePT1000Resistor": 2200, + "thermistorPullup": 2200, + "integratedDrivers": { + "extruder": "BTT-TMC2209-13" + }, + "dfu": { + "flashDevice": "2e8a:0003", + "dfuBootImage": "dfubooting.png", + "instructions": [ + "Connect the toolboard via EBB USB Adapter to the Raspberry Pi.", + "Verify the green LED is lit indicating the toolboard is powered.", + "Press and hold the BOOT button on the toolboard.", + "Press and release the RESET button on the toolboard.", + "Release the BOOT button." + ], + "hasBoot0Jumper": false + }, + "LIS2DW": { + "cs_pin": "gpio1", + "hardware": { + "bus": "spi0a" + } + } +} diff --git a/configuration/boards/btt-sb-2209-usb-10-rp2040/board.png b/configuration/boards/btt-sb-2209-usb-10-rp2040/board.png new file mode 100644 index 000000000..db0a37810 Binary files /dev/null and b/configuration/boards/btt-sb-2209-usb-10-rp2040/board.png differ diff --git a/configuration/boards/btt-sb-2209-usb-10-rp2040/compile.sh b/configuration/boards/btt-sb-2209-usb-10-rp2040/compile.sh new file mode 100755 index 000000000..30d73f9be --- /dev/null +++ b/configuration/boards/btt-sb-2209-usb-10-rp2040/compile.sh @@ -0,0 +1,19 @@ +#!/bin/bash +if [ "$EUID" -ne 0 ] + then echo "ERROR: Please run as root" + exit +fi +cp -f /home/pi/printer_data/config/RatOS/boards/btt-sb-2209-usb-10-rp2040/firmware.config /home/pi/klipper/.config +pushd /home/pi/klipper || exit +make olddefconfig +make clean +make + +if [ ! -d "/home/pi/printer_data/config/firmware_binaries" ] +then + mkdir /home/pi/printer_data/config/firmware_binaries + chown pi:pi /home/pi/printer_data/config/firmware_binaries +fi +cp -f /home/pi/klipper/out/klipper.uf2 /home/pi/printer_data/config/firmware_binaries/firmware-btt-sb-2209-usb-10-rp.uf2 +chown pi:pi /home/pi/printer_data/config/firmware_binaries/firmware-btt-sb-2209-usb-10-rp.uf2 +popd || exit diff --git a/configuration/boards/btt-sb-2209-usb-10-rp2040/dfubooting.png b/configuration/boards/btt-sb-2209-usb-10-rp2040/dfubooting.png new file mode 100644 index 000000000..6f3aa7a4d Binary files /dev/null and b/configuration/boards/btt-sb-2209-usb-10-rp2040/dfubooting.png differ diff --git a/configuration/boards/btt-sb-2209-usb-10-rp2040/firmware.config b/configuration/boards/btt-sb-2209-usb-10-rp2040/firmware.config new file mode 100644 index 000000000..d9337d8ab --- /dev/null +++ b/configuration/boards/btt-sb-2209-usb-10-rp2040/firmware.config @@ -0,0 +1,78 @@ +CONFIG_LOW_LEVEL_OPTIONS=y +# CONFIG_MACH_AVR is not set +# CONFIG_MACH_ATSAM is not set +# CONFIG_MACH_ATSAMD is not set +# CONFIG_MACH_LPC176X is not set +# CONFIG_MACH_STM32 is not set +# CONFIG_MACH_HC32F460 is not set +CONFIG_MACH_RPXXXX=y +# CONFIG_MACH_PRU is not set +# CONFIG_MACH_AR100 is not set +# CONFIG_MACH_LINUX is not set +# CONFIG_MACH_SIMU is not set +CONFIG_BOARD_DIRECTORY="rp2040" +CONFIG_MCU="rp2040" +CONFIG_CLOCK_FREQ=12000000 +CONFIG_USBSERIAL=y +CONFIG_FLASH_SIZE=0x200000 +CONFIG_FLASH_BOOT_ADDRESS=0x10000100 +CONFIG_RAM_START=0x20000000 +CONFIG_RAM_SIZE=0x42000 +CONFIG_STACK_SIZE=512 +CONFIG_FLASH_APPLICATION_ADDRESS=0x10000100 +CONFIG_RPXXXX_SELECT=y +CONFIG_MACH_RP2040=y +# CONFIG_MACH_RP2350 is not set +CONFIG_RP2040_HAVE_STAGE2=y +CONFIG_RPXXXX_FLASH_START_0100=y +# CONFIG_RPXXXX_FLASH_START_4000 is not set +CONFIG_RP2040_FLASH_W25Q080=y +# CONFIG_RP2040_FLASH_GENERIC_03 is not set +CONFIG_RP2040_STAGE2_FILE="boot2_w25q080.S" +CONFIG_RP2040_STAGE2_CLKDIV=2 +CONFIG_RPXXXX_USB=y +# CONFIG_RPXXXX_SERIAL_UART0_PINS_0_1 is not set +# CONFIG_RPXXXX_SERIAL_UART0_PINS_12_13 is not set +# CONFIG_RPXXXX_SERIAL_UART0_PINS_16_17 is not set +# CONFIG_RPXXXX_SERIAL_UART0_PINS_28_29 is not set +# CONFIG_RPXXXX_SERIAL_UART1_PINS_4_5 is not set +# CONFIG_RPXXXX_SERIAL_UART1_PINS_8_9 is not set +# CONFIG_RPXXXX_SERIAL_UART1_PINS_20_21 is not set +# CONFIG_RPXXXX_SERIAL_UART1_PINS_24_25 is not set +# CONFIG_RPXXXX_CANBUS is not set +# CONFIG_RPXXXX_USBCANBUS is not set +# CONFIG_RPXXXX_CANBUS_GPIO_RX=4 +# CONFIG_RPXXXX_CANBUS_GPIO_TX=5 +CONFIG_USB=y +CONFIG_USB_VENDOR_ID=0x1d50 +CONFIG_USB_DEVICE_ID=0x614e +# CONFIG_USB_SERIAL_NUMBER_CHIPID is not set +CONFIG_USB_SERIAL_NUMBER="btt-sb-2209-usb-10-rp" + +# +# USB ids +# +# end of USB ids + +CONFIG_WANT_GPIO_BITBANGING=y +CONFIG_WANT_DISPLAYS=y +CONFIG_WANT_SENSORS=y +CONFIG_WANT_LIS2DW=y +CONFIG_WANT_LDC1612=n +CONFIG_WANT_HX71X=n +CONFIG_WANT_ADS1220=n +CONFIG_WANT_SOFTWARE_I2C=y +CONFIG_WANT_SOFTWARE_SPI=y +CONFIG_NEED_SENSOR_BULK=y +# CONFIG_CANBUS_FREQUENCY=1000000 +CONFIG_INITIAL_PINS="" +CONFIG_HAVE_GPIO=y +CONFIG_HAVE_GPIO_ADC=y +CONFIG_HAVE_GPIO_SPI=y +CONFIG_HAVE_GPIO_I2C=y +CONFIG_HAVE_GPIO_HARD_PWM=y +CONFIG_HAVE_STRICT_TIMING=y +CONFIG_HAVE_CHIPID=y +CONFIG_HAVE_STEPPER_BOTH_EDGE=y +CONFIG_HAVE_BOOTLOADER_REQUEST=y +CONFIG_INLINE_STEPPER_HACK=y diff --git a/configuration/boards/btt-sb-2209-usb-10-rp2040/flash.sh b/configuration/boards/btt-sb-2209-usb-10-rp2040/flash.sh new file mode 100755 index 000000000..6d9008ae8 --- /dev/null +++ b/configuration/boards/btt-sb-2209-usb-10-rp2040/flash.sh @@ -0,0 +1,9 @@ +#!/bin/bash +MCU=/dev/btt-sb-2209-usb-10-rp +if [ "$EUID" -ne 0 ] + then echo "ERROR: Please run as root" + exit +fi +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +FLASH_SCRIPT=$(realpath "$SCRIPT_DIR/../../scripts/flash-path.sh") +$FLASH_SCRIPT $MCU diff --git a/configuration/boards/btt-sb-2209-usb-10-rp2040/make-and-flash-mcu.sh b/configuration/boards/btt-sb-2209-usb-10-rp2040/make-and-flash-mcu.sh new file mode 100755 index 000000000..ce94f472d --- /dev/null +++ b/configuration/boards/btt-sb-2209-usb-10-rp2040/make-and-flash-mcu.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +if [ "$EUID" -ne 0 ] + then echo "ERROR: Please run as root" + exit +fi + +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) + +"$SCRIPT_DIR"/compile.sh +"$SCRIPT_DIR"/flash.sh diff --git a/configuration/boards/btt-sb-2209-usb-10-rp2040/manual.pdf b/configuration/boards/btt-sb-2209-usb-10-rp2040/manual.pdf new file mode 100644 index 000000000..63b3ffec1 Binary files /dev/null and b/configuration/boards/btt-sb-2209-usb-10-rp2040/manual.pdf differ diff --git a/configuration/boards/btt-sb-2209-usb-10-rp2040/toolboard-config.cfg b/configuration/boards/btt-sb-2209-usb-10-rp2040/toolboard-config.cfg new file mode 100644 index 000000000..86fca8c49 --- /dev/null +++ b/configuration/boards/btt-sb-2209-usb-10-rp2040/toolboard-config.cfg @@ -0,0 +1,44 @@ +# WARNING. DO NOT EDIT THIS FILE. +# To override settings from this file, you can copy and paste the relevant +# sections into your printer.cfg and change it there. +# WARNING: it is NOT recommended to override board_pins aliases, +# use the boards pin names directly in your printer.cfg instead. +# Look up the pins you need in the boards pinout diagram. + +[board_pins btt-sb-2209-usb-10-rp] +mcu: toolboard +aliases: + x_endstop_pin=gpio13, + e_step_pin=gpio18, e_dir_pin=gpio19, e_enable_pin=gpio17, e_uart_pin=gpio20, e_diag_pin=null, e_heater_pin=gpio7, e_sensor_pin=gpio26, + thermocouple_cs=gpio9, thermocouple_miso=gpio11, thermocouple_mosi=gpio8, thermocouple_clk=gpio10, + # accel (adxl345 definition required to prevent error in Wizard "Confirm Configuration" step) + lis2dw_cs_pin=gpio1, lis2dw_miso=gpio3, lis2dw_mosi=gpio0, lis2dw_clk=gpio2, adxl345_cs_pin=gpio1, + # leveling + bltouch_sensor_pin=gpio21, bltouch_control_pin=gpio22, + probe_pin=gpio21, #PB9 to PB5 Tap + # fans + fan_part_cooling_pin=gpio13, + fan_toolhead_cooling_pin=gpio14, + # 4 pin fans + 4p_fan_part_cooling_pin=gpio15, + 4p_fan_part_cooling_tach_pin=gpio12, + # toolboard temp + temperature_tb=gpio27 + +[mcu toolboard] +serial: /dev/btt-sb-2209-usb-10-rp + +[temperature_sensor toolboard] +sensor_type: Generic 3950 +sensor_pin: temperature_tb + +# The SB 2209 USB v1.0 uses a 2200 ohm pullup resistor on the thermistor port. +[extruder] +pullup_resistor: 2200 + +[lis2dw toolboard] +cs_pin: toolboard: lis2dw_cs_pin +spi_software_sclk_pin: lis2dw_clk +spi_software_mosi_pin: lis2dw_mosi +spi_software_miso_pin: lis2dw_miso +axes_map: z,x,y