#prusawire #3dprinting *Ask in the Positron3D Discord in #prusawire-discussions for help with your build!* ## Resources - [Voron Software Installation Guide](https://docs.vorondesign.com/build/software/) for some good resources on Mainsail (Klipper on Raspberry Pi) and Control Board firmware. - [Raspberry Pi OS based \| MainsailOS](https://docs-os.mainsail.xyz/getting-started/raspberry-pi-os-based) - [Welcome to Mainsail \| Mainsail](https://docs.mainsail.xyz/) - [GitHub - bigtreetech/BIGTREETECH-SKR-mini-E3](https://github.com/bigtreetech/BIGTREETECH-SKR-mini-E3) - [BIGTREETECH-SKR-mini-E3/firmware/V3.0/Klipper at master · bigtreetech/BIGTREETECH-SKR-mini-E3 · GitHub](https://github.com/bigtreetech/BIGTREETECH-SKR-mini-E3/tree/master/firmware/V3.0/Klipper) ## Configuration Start with the [Positron3D Prusawire Configuration](https://github.com/Positron3D/prusawire-klipper-config) settings and profiles. More detail general instructions are found at [Software Configuration \| Voron Documentation](https://docs.vorondesign.com/build/software/configuration.html). ### Sensorless Homing If you are running the Einsy board, congrats, you are now done. For the BTT SKR Mini E3, some further tuning likely needs to happen. Refer to [this guide](https://gist.github.com/clee/9108f7717defce8b1222698f816def0a#finding-the-right-stallguard-threshold) by clee on setting the correct stallguard threshold. ### Input Shaper Some defaults have been provided, but they are no doubt unsuitable for your exact machine. We recommend installing [ShakeTune](https://github.com/Frix-x/klippain-shaketune) for measuring resonances, and reading the [Klipper guide](https://www.klipper3d.org/Measuring_Resonances.html#max-smoothing) on understanding which value to choose. **Y Axis Input Shaping**: This requires an external accelerometer (eg LDO Input Shaper) to be mounted to your heated bed. ## Build Log - "THOTH STATION" *This is a running log of what I've done for my Prusawire PW.0011. It may or may not all apply to your build / setup.* - Mainsail - Grab latest Raspberry Pi imager from: [Raspberry Pi software – Raspberry Pi](https://www.raspberrypi.com/software/) - Run pi-imager - 128GB Samsung Pro Endurance microSD Card - Pi 4 - Mainsail OS - Settings - Hostname: {HOSTNAME_HERE} - Username: {USERNAME} - Password: {1PASSWORD} - WiFi: {WIFI_SSID} / password - WLAN Country = US - Time Zone: America/New_York - Enable SSH - Write image to microSD card - Inserted microSD card into Raspberry Pi. - Turned on printer. - Klipper on SKR Mini E3 V3 - Insert MicroCenter 16GB microSD Card into Mac. - Format as FAT32 - `ssh {USERNAME}@{HOSTNAME_HERE}` - Make the Klipper firmware for the control board: - `cd ~/klipper/` - `make menuconfig` - Select "Enable extra low-level configuration options" - Microcontroller: "STMicroelectronics STM32" - Processor Model: "STM32G0B1" - Bootloader offset: "8KiB bootloader (stm32duino)" - Clock reference: "8MHz Crystal" - Communication interface: "USB on PA11/PA12" - Press Q and then Y to save. - `make` - Copy the `klipper.bin` from the output directory to your local machine: - ex: `scp {USERNAME}@{HOSTNAME}:~/klipper/out/klipper.bin ~/` - Copy the `klipper.bin` to the root of the SD card as `firmware.bin` - Power off SKR-Mini-E3-V3.0 - Insert microSD Card - Power on SKR-Mini-E3-V3.0 - Confirm flash was successful by running `ls /dev/serial/by-id` on the Raspberry Pi.[![](https://github.com/bigtreetech/BIGTREETECH-SKR-mini-E3/raw/master/firmware/V3.0/Klipper/Images/stm32g0b1_id.png)](https://github.com/bigtreetech/BIGTREETECH-SKR-mini-E3/blob/master/firmware/V3.0/Klipper/Images/stm32g0b1_id.png) - Follow instructions at: [GitHub - Positron3D/prusawire-klipper-config: Prusawire configuration for Klipper](https://github.com/Positron3D/prusawire-klipper-config) - `cd ~/` - `git clone https://github.com/Positron3D/prusawire-klipper-config.git ~/printer_data/config/prusawire` - `cd ~/printer_data/config/` - Edit `moonraker.conf`: - Add the following to the end of it: ``` [update_manager prusawire-config] type: git_repo primary_branch: main path: ~/printer_data/config/prusawire origin: https://github.com/Positron3D/prusawire-klipper-config.git managed_services: klipper ``` - `cd ~/printer_data/config/prusawire/` - `cp printer.cfg.example ../printer.cfg` - `cd ~/printer_data/config/` - Edit `printer.cfg`: - Uncomment the correct section for the control board you're using. - BTT SKR Mini E3 in my case. - Edit the serial line to use the output from `ls /dev/serial/by-id` - Uncomment the correct section for the toolhead board you're using. - LDO Nitehawk SB in my case. - Edit the serial line to use the output from `ls /deve/serial/by-id` - Uncomment the correct section for the probe you're using. - SuperPINDA on Nitehawk SB in my case. - Uncomment the correct section for the filament sensor you're using. - LDO Nitehawk SB in my case. - Under LCD Screens, uncomment the info for the MK3 LCD if using, or add info for BTT HDMI 5: - For BTT HDMI 5, this section isn't need. The installation of KlipperScreen below is all you need. - Edit `sensor_type` to be your sensor - Prusawire Config includes what is probably the correct sensor type for you using Revo. - For Bambu X1C Hot End in SB: - `sensor_type: ATC Semitec 104GT-2` - `max_power_ 0.8` - Access the Mainsail instance: http://{HOSTNAME_HERE} - At this point, we should see all the printer controls! Else, fix any errors. - Klipper Control Panel on the BTT HDMI 5 Display with KlipperScreen ```bash git clone https://github.com/jordanruthe/KlipperScreen.git ./KlipperScreen/scripts/KlipperScreen-install.sh ``` - Default settings should be fine. - Sensorless Homing with BTT SKR Mini E3 V3.0 - ** *For the BTT SKR Mini E3, some further tuning likely needs to happen. Refer to [this guide](https://gist.github.com/clee/9108f7717defce8b1222698f816def0a#finding-the-right-stallguard-threshold) by clee on setting the correct stallguard threshold.* - **NOTE: For the BKK SKR Mini E3 V3.0 --> must put jumpers on X-STOP and Y-STOP to allow sensorless homing!** - NOT Z-STOP if you are using the SuperPINDA! - TMC2209 is used on the SKR Mini E3 - PID Tuning for Hot End: - In Mainsail, enter the following commands to set the PID Tuning for the Hot End: - `PID_CALIBRATE heater=extruder TARGET=250` - `SAVE_CONFIG` - Results 2025-09-25 @ 1645: `PID parameters: pid_Kp=38.373 pid_Ki=12.182 pid_Kd=30.219` - PID Tuning for Heat Bed - In Mainsail, enter the following commands to set the PID Tuning for the Heat Bed: - `PID_CALIBRATE heater=heater_bed TARGET=65` - `SAVE_CONFIG` - Results 2025-09-29 @ 1400: `PID parameters: pid_Kp=49.793 pid_Ki=0.712 pid_Kd=870.137` - ==TODO: FILAMENT RUNOUT SENSOR== - See [[Prusawire Software Installation and Configuration#Filament Runout Sensor]] for hardware setup. - Configuration Info for filament runout sensor if using. - NEOPIXEL Stealthburner Configuration for Rainbow Barf LED - See below [[Prusawire Software Installation and Configuration#Rainbow Barf LED Hardness - Neopixel]] - ==**TODO: Input Shaper:**== *Some defaults have been provided, but they are no doubt unsuitable for your exact machine. We recommend installing [ShakeTune](https://github.com/Frix-x/klippain-shaketune) for measuring resonances, and reading the [Klipper guide](https://www.klipper3d.org/Measuring_Resonances.html#max-smoothing) on understanding which value to choose.* - ==**TODO: Y-Axis Input Shaping:**== *This requires an external accelerometer (eg LDO Input Shaper) to be mounted to your heated bed.* ### BTT SKR Mini E3 V3.0 Control Board ![[Pasted image 20250925155457.png]] ## SuperPINDA Probe Brown = +5V Blue = GND Black = Signal ![27817b67-c283-484d-a1fc-5b564a9847ba-image.png|200](https://forum.duet3d.com/assets/uploads/files/1645204943081-27817b67-c283-484d-a1fc-5b564a9847ba-image.png) ### NiteHawb-SB Make sure there isn't a "!" in the superpinda config or it won't work. ``` [probe] pin: ^nitehawk:gpio13 ``` On NiteHawk-SB, use the XY Endstop Port. Connect Black(Signal) to GPIO13. ![[Pasted image 20250926161441.png|500]] ### SB2209 USB [EBB SB2209 USB V1.0 - BIGTREETECH WIKI](https://bttwiki.com/EBB%20SB2209%20USB.html) Use the PROBE port (5-pin) ![[Pasted image 20250928133755.png|500]] ### SB2209 CAN Use the sample SB2209 USB config provided and change the pin to be a CANbus pin: This will vary based on what your probe input pin is... `pin: EBBCan: PB5` ![[Pasted image 20250928140517.png]] ![[Pasted image 20250928134924.png|300]] ![[Pasted image 20250928134902.png|500]] ### Rainbow Barf LED Hardness - Neopixel SB Rainbow Barf Config to include at the end of the toolboard config (`ldo_nighthawk_sb.cfg` in my case) [whopping\_Voron\_mods/LEDs/Rainbow\_Barf\_Logo\_LED/Code/stealthburner\_led\_effects\_barf.cfg at main · tanaes/whopping\_Voron\_mods · GitHub](https://github.com/tanaes/whopping_Voron_mods/blob/main/LEDs/Rainbow_Barf_Logo_LED/Code/stealthburner_led_effects_barf.cfg) **Install the Klipper-LED-Effects Plugin** [BARF-Led-Kit/stealthburner\_leds.cfg at main · 3DPTronics/BARF-Led-Kit · GitHub](https://github.com/3DPTronics/BARF-Led-Kit/blob/main/stealthburner_leds.cfg) + [GitHub - julianschill/klipper-led\_effect: LED effects plugin for klipper](https://github.com/julianschill/klipper-led_effect) ```bash cd ~ git clone https://github.com/julianschill/klipper-led_effect.git cd klipper-led_effect ./install-led_effect.sh ``` ### Filament Runout Sensor - Omron D2F-5L Switch - [Digikey Omron D2F-5L Switch](https://www.digikey.com/en/products/detail/omron-electronics-inc-emc-div/D2F-5L/8593137) - 5.5mm Stainless Steel Ball Bearing - [Amazon.com: uxcell 50pcs 5.5mm 304 Stainless Steel Bearing Balls G100 Precision : Industrial & Scientific](https://www.amazon.com/dp/B09DSH1GL6?ref=ppx_yo2ov_dt_b_fed_asin_title) If using NiteHawk-SB, can combine with the SuperPINDA JST connector to grab 5VDC, GND, and the otherwise unused GPIO12 pin. ### ShakeTune - Input Shaping Usage Documentation: [klippain-shaketune/docs/README.md at main · Frix-x/klippain-shaketune · GitHub](https://github.com/Frix-x/klippain-shaketune/blob/main/docs/README.md) 1. Be sure to have a working accelerometer on your machine and a `[resonance_tester]` section defined. You can follow the official [Measuring Resonances Klipper documentation](https://www.klipper3d.org/Measuring_Resonances.html) to configure it. 2. Install Shake&Tune by running over SSH on your printer: ```shell wget -O - https://raw.githubusercontent.com/Frix-x/klippain-shaketune/main/install.sh | bash ``` 3. Then, append the following to your `printer.cfg` file and restart Klipper: ``` [shaketune] # result_folder: ~/printer_data/config/ShakeTune_results # Path where the processed results will be stored. If the folder doesn't exist, # it will be automatically created. You can change this if you'd like to store # results in a different location. # number_of_results_to_keep: 10 # This setting defines how many results you want to keep in the result folder. # Once the specified number is exceeded, older results will be automatically deleted # to free up space on the SD card and avoid cluttering the results folder. # keep_raw_data: False # If set to True, Shake&Tune will store both the processed graphs and the raw accelerometer # .stdata files in the results folder. This can be useful for debugging or archiving purposes. # Please always attach them when reporting any issues on GitHub or Discord. # show_macros_in_webui: True # Mainsail and Fluidd doesn't create buttons for system commands (macros that are not part # of the printer.cfg file). This option allow Shake&Tune to inject them into the webui at runtime. # If set to False, the macros will be hidden but still accessible from the console by typing # their names manually, which can be useful if you prefer to encapsulate them into your own macros. # timeout: 600 # This defines the maximum processing time (in seconds) to allows to Shake&Tune for generating # graphs from a .stdata file. 10 minutes should be more than enough in most cases, but if you have # slower hardware (e.g., older SD cards or low-performance devices), increase it to prevent timeouts. # measurements_chunk_size: 2 # Each Shake&Tune command uses the accelerometer to take multiple measurements. By default, # Shake&Tune will write a chunk of data to disk every two measurements, and at the end of the # command will merge these chunks into the final .stdata file for processing. "2" is a very # conservative setting to avoid Klipper Timer Too Close errors on lower end devices with little # RAM, and should work for everyone. However, if you are using a powerful computer, you may # wish to increase this value to keep more measurements in memory (e.g., 15-20) before writing # the chunk and avoid stressing the filesystem too much. # max_freq: 200 # This setting defines the maximum frequency at which the calculation of the power spectral density # is cutoff. The default value should be fine for most machines and accelerometer combinations and # avoid touching it unless you know what you're doing. # dpi: 300 # Controls the resolution of the generated graphs. The default value of 300 dpi was optimized # and strikes a balance between performance and readability, ensuring that graphs are clear # without using too much RAM to generate them. Usually, you shouldn't need to change this value. ```