diff --git a/boards/ldo-nitehawk-36/98-ldo-nitehawk-36.rules b/boards/ldo-nitehawk-36/98-ldo-nitehawk-36.rules new file mode 100644 index 00000000..3e4d71b5 --- /dev/null +++ b/boards/ldo-nitehawk-36/98-ldo-nitehawk-36.rules @@ -0,0 +1,4 @@ +# LDO Nitehawk 36 +SUBSYSTEMS=="usb", ATTRS{idProduct}=="614e", ATTRS{idVendor}=="1d50", ATTRS{serial}=="ldo-nitehawk-36", ACTION=="add", SYMLINK+="ldo-nitehawk-36", RUN+="/home/pi/printer_data/config/RatOS/scripts/klipper-mcu-added.sh" + +ACTION=="remove", ENV{DEVLINKS}=="/dev/ldo-nitehawk-36" diff --git a/boards/ldo-nitehawk-36/board-definition.json b/boards/ldo-nitehawk-36/board-definition.json new file mode 100644 index 00000000..3e8fcd5d --- /dev/null +++ b/boards/ldo-nitehawk-36/board-definition.json @@ -0,0 +1,39 @@ +{ + "$schema": "../board-definition.schema.json", + "manualFileName": "manual.pdf", + "wireDiagramFileName": "wiring.drawio.svg", + "isToolboard": true, + "name": "Nitehawk 36", + "manufacturer": "LDO", + "id": "ldo-nitehawk-36", + "firmwareBinaryName": "firmware-ldo-nitehawk-36.bin", + "boardImageFileName": "board.webp", + "compileScript": "compile.sh", + "flashScript": "flash.sh", + "documentationLink": "https://os.ratrig.com/docs/boards/ldo/nitehawk-36", + "driverCount": 1, + "integratedDrivers": { + "extruder": "LDO-NITEHAWK-TMC2209" + }, + "dfu": { + "flashDevice": "1d50:614e", + "dfuBootImage": "dfubooting.png", + "instructions": [ + "Connect the USB cable to the Raspberry Pi", + "Make sure the board is powered (you need both cables connected to the USB adapter and power on)", + "Press and hold the BOOT button on the board.", + "Press and release the RESET button on the board.", + "Release the BOOT button." + ], + "hasBoot0Jumper": false + }, + "thermistorPullup": 2200, + "ADXL345SPI": { + "cs_pin": "gpio27", + "software": { + "sclk": "gpio18", + "mosi": "gpio20", + "miso": "gpio19" + } + } +} diff --git a/boards/ldo-nitehawk-36/board.webp b/boards/ldo-nitehawk-36/board.webp new file mode 100644 index 00000000..789fe156 Binary files /dev/null and b/boards/ldo-nitehawk-36/board.webp differ diff --git a/boards/ldo-nitehawk-36/compile.sh b/boards/ldo-nitehawk-36/compile.sh new file mode 100644 index 00000000..5aea0fae --- /dev/null +++ b/boards/ldo-nitehawk-36/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/ldo-nitehawk-36/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.bin /home/pi/printer_data/config/firmware_binaries/firmware-ldo-nitehawk-36.bin +chown pi:pi /home/pi/printer_data/config/firmware_binaries/firmware-ldo-nitehawk-36.bin +popd || exit diff --git a/boards/ldo-nitehawk-36/dfubooting.png b/boards/ldo-nitehawk-36/dfubooting.png new file mode 100644 index 00000000..89c0b4f6 Binary files /dev/null and b/boards/ldo-nitehawk-36/dfubooting.png differ diff --git a/boards/ldo-nitehawk-36/firmware.config b/boards/ldo-nitehawk-36/firmware.config new file mode 100644 index 00000000..4e7fd448 --- /dev/null +++ b/boards/ldo-nitehawk-36/firmware.config @@ -0,0 +1,80 @@ +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=0x10004000 +CONFIG_RPXXXX_SELECT=y +CONFIG_MACH_RP2040=y +# CONFIG_MACH_RP2350 is not set +CONFIG_RPXXXX_HAVE_BOOTLOADER=y +# CONFIG_RPXXXX_FLASH_START_0100 is not set +CONFIG_RPXXXX_FLASH_START_4000=y +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=y +CONFIG_USB_SERIAL_NUMBER="ldo-nh-36" + +# +# USB ids +# +# end of USB ids + +CONFIG_WANT_GPIO_BITBANGING=y +CONFIG_WANT_DISPLAYS=y +CONFIG_WANT_THERMOCOUPLE=y +CONFIG_WANT_ADXL345=y +CONFIG_WANT_LIS2DW=y +CONFIG_WANT_MPU9250=y +CONFIG_WANT_HX71X=y +CONFIG_WANT_ADS1220=y +CONFIG_WANT_LDC1612=y +CONFIG_WANT_SENSOR_ANGLE=y +CONFIG_WANT_SOFTWARE_I2C=y +CONFIG_WANT_SOFTWARE_SPI=y +CONFIG_NEED_SENSOR_BULK=y +CONFIG_CANBUS_FREQUENCY=1000000 +CONFIG_INITIAL_PINS="!gpio8" +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/boards/ldo-nitehawk-36/flash.sh b/boards/ldo-nitehawk-36/flash.sh new file mode 100644 index 00000000..8a1cd759 --- /dev/null +++ b/boards/ldo-nitehawk-36/flash.sh @@ -0,0 +1,9 @@ +#!/bin/bash +MCU=/dev/ldo-nitehawk-36 +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/boards/ldo-nitehawk-36/main_wiring.webp b/boards/ldo-nitehawk-36/main_wiring.webp new file mode 100644 index 00000000..100a06d6 Binary files /dev/null and b/boards/ldo-nitehawk-36/main_wiring.webp differ diff --git a/boards/ldo-nitehawk-36/make-and-flash-mcu.sh b/boards/ldo-nitehawk-36/make-and-flash-mcu.sh new file mode 100644 index 00000000..ce94f472 --- /dev/null +++ b/boards/ldo-nitehawk-36/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/boards/ldo-nitehawk-36/manual.pdf b/boards/ldo-nitehawk-36/manual.pdf new file mode 100644 index 00000000..0c793e87 Binary files /dev/null and b/boards/ldo-nitehawk-36/manual.pdf differ diff --git a/boards/ldo-nitehawk-36/toolboard-config.cfg b/boards/ldo-nitehawk-36/toolboard-config.cfg new file mode 100644 index 00000000..865b1a69 --- /dev/null +++ b/boards/ldo-nitehawk-36/toolboard-config.cfg @@ -0,0 +1,35 @@ +# 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 ldo-nitehawk-36] +mcu: toolboard +aliases: + x_endstop_pin=gpio13, + e_step_pin=gpio23, e_dir_pin=gpio24, e_enable_pin=gpio25, e_uart_pin=gpio0, e_diag_pin=gpio3, e_heater_pin=gpio9, e_sensor_pin=gpio29, + # accel + adxl345_cs_pin=gpio27, adxl345_miso=gpio19, adxl345_mosi=gpio20, adxl345_clk=gpio18, + # leveling + bltouch_sensor_pin=null, bltouch_control_pin=null, + probe_pin=gpio10, + # fans + fan_part_cooling_pin=gpio6, + fan_toolhead_cooling_pin=gpio5, + # 4 pin fans + 4p_fan_toolhead_cooling_tach_pin=gpio16 + +[mcu toolboard] +serial: /dev/ldo-nitehawk-36 + +[adxl345 toolboard] +cs_pin: toolboard:adxl345_cs_pin +spi_software_sclk_pin: toolboard: gpio18 +spi_software_mosi_pin: toolboard: gpio20 +spi_software_miso_pin: toolboard: gpio19 + +[temperature_sensor toolboard] +sensor_type: temperature_mcu +sensor_mcu: toolboard diff --git a/boards/ldo-nitehawk-36/wiring.drawio.svg b/boards/ldo-nitehawk-36/wiring.drawio.svg new file mode 100644 index 00000000..0bda9b1f --- /dev/null +++ b/boards/ldo-nitehawk-36/wiring.drawio.svg @@ -0,0 +1,4 @@ + + + +5V INDUCTIVE PROBEX ENDSTOPPART COOLINGFANHOTEND FANHEATERTHERMISTOREXTRUDERPART COOLINGFANBEACON 3D \ No newline at end of file