├── r4.jpg ├── upload.png ├── R4_PIN_OUT.pdf ├── hardware ├── SILK.pdf ├── R4_TOP.jpeg ├── R4_BOTTOM.jpeg ├── R4_V1_CAD.PDF ├── R4_V1_CAD.dxf └── R4_V1_SCH.pdf ├── makemenuconfig.png ├── OS ├── OrangePi-zero │ ├── R4.jpg │ ├── klipper.uf2 │ ├── versions.png │ └── OrangePi_zero.jpg └── README.md ├── firmware ├── README.md └── printer.cfg └── README.md /r4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FYSETC/FYSETC-R4/HEAD/r4.jpg -------------------------------------------------------------------------------- /upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FYSETC/FYSETC-R4/HEAD/upload.png -------------------------------------------------------------------------------- /R4_PIN_OUT.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FYSETC/FYSETC-R4/HEAD/R4_PIN_OUT.pdf -------------------------------------------------------------------------------- /hardware/SILK.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FYSETC/FYSETC-R4/HEAD/hardware/SILK.pdf -------------------------------------------------------------------------------- /makemenuconfig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FYSETC/FYSETC-R4/HEAD/makemenuconfig.png -------------------------------------------------------------------------------- /hardware/R4_TOP.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FYSETC/FYSETC-R4/HEAD/hardware/R4_TOP.jpeg -------------------------------------------------------------------------------- /OS/OrangePi-zero/R4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FYSETC/FYSETC-R4/HEAD/OS/OrangePi-zero/R4.jpg -------------------------------------------------------------------------------- /hardware/R4_BOTTOM.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FYSETC/FYSETC-R4/HEAD/hardware/R4_BOTTOM.jpeg -------------------------------------------------------------------------------- /hardware/R4_V1_CAD.PDF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FYSETC/FYSETC-R4/HEAD/hardware/R4_V1_CAD.PDF -------------------------------------------------------------------------------- /hardware/R4_V1_CAD.dxf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FYSETC/FYSETC-R4/HEAD/hardware/R4_V1_CAD.dxf -------------------------------------------------------------------------------- /hardware/R4_V1_SCH.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FYSETC/FYSETC-R4/HEAD/hardware/R4_V1_SCH.pdf -------------------------------------------------------------------------------- /OS/OrangePi-zero/klipper.uf2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FYSETC/FYSETC-R4/HEAD/OS/OrangePi-zero/klipper.uf2 -------------------------------------------------------------------------------- /OS/OrangePi-zero/versions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FYSETC/FYSETC-R4/HEAD/OS/OrangePi-zero/versions.png -------------------------------------------------------------------------------- /OS/OrangePi-zero/OrangePi_zero.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FYSETC/FYSETC-R4/HEAD/OS/OrangePi-zero/OrangePi_zero.jpg -------------------------------------------------------------------------------- /firmware/README.md: -------------------------------------------------------------------------------- 1 | # firmware 2 | 3 | FYSETC R4 only support Klipper firmware. 4 | 5 | ## printer.cfg 6 | 7 | `printer.cfg` is an example configuration for VORON v0. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FYSETC_R4 2 | 3 | ## Hardware 4 | 5 | All related hardware files are in `hardware` folder in this repository. 6 | 7 | ## Firmware 8 | 9 | FYSETC R4 only support Klipper firmware. All related Klipper firmware files like `printer.cfg` are in `firmware` folder in this repository. 10 | 11 | ### Klipper Compile options 12 | 13 | ![](makemenuconfig.png) 14 | 15 | ### Firmware upload 16 | 17 | Step 1: Power on the board 18 | 19 | Step 2: Connect R4 to your computer with USBC cable 20 | 21 | Step 3: Push an hold `BOOTSEL` button 22 | 23 | Step 4: Click `RST` button and release `BOOTSEL` button 24 | 25 | Step 5: `RPI-RP2` folder will show up on your computer, copy your built firmware `klipper.uf2` to the folder. 26 | 27 | ![](r4.jpg) 28 | 29 | ![](upload.png) 30 | 31 | ### Configuration 32 | 33 | See `printer.cfg` in this repository `firmware` folder. 34 | 35 | ### Pinout 36 | 37 | ![](R4_PIN_OUT.jpg) 38 | -------------------------------------------------------------------------------- /OS/README.md: -------------------------------------------------------------------------------- 1 | # OS 2 | 3 | ## SAMFi-OS_OrangePi_zero 4 | 5 | Before you config the [SAMF-OS_OrangePi_zero](https://github.com/FYSETC/FYSETC-SAMFi-OS). You need an TF card with at least 8G capacity. 6 | 7 | ### Step 1 8 | 9 | Download and flash the OS image with `balenaEtcher` software to your TF card. Insert your flashed TF card to OrangePi-zero and connect Ethernet cable then power on. Find the ip address of OrangePi-zero on your router, host name is `orangepizero`. 10 | 11 | ![](OrangePi-zero/OrangePi_zero.jpg) 12 | 13 | ### Step 2 14 | 15 | You can find the firmware `klipper.uf2` in `OrangePi-zero` folder after you download the github repository. It is also stay in the OS path `firmwares\r4.bin` after you login the OS with SSH. 16 | 17 | Original SSH account and password: 18 | 19 | ``` 20 | account: fysetc 21 | password: fysetc123 22 | ``` 23 | 24 | follow the instructions [here](https://github.com/FYSETC/FYSETC-R4#firmware-upload) for firmware uploading. 25 | 26 | ![](OrangePi-zero/R4.jpg) 27 | 28 | ### Step 3: 29 | 30 | Prepare the `pinter.cfg`, using the command below 31 | 32 | ``` 33 | cp klipper_config/r4.cfg firmwares/printer.cfg 34 | ``` 35 | 36 | You probably need to change `id` by `ls /dev/serial/by-id` command. 37 | 38 | I use the generic Klipper config for this example, you need to change it according to your machine. Now visit the webpage with your orangepi-zero IP address. Good to go. 39 | -------------------------------------------------------------------------------- /firmware/printer.cfg: -------------------------------------------------------------------------------- 1 | [include mainsail.cfg] 2 | 3 | [mcu] 4 | ## Obtain mcu value by "ls -l /dev/serial/by-id/" 5 | serial: /dev/serial/by-id/usb-Klipper_rp2040_E16044B34B343525-if00 6 | #serial: /dev/ttyAMA0 7 | restart_method: command 8 | 9 | [stepper_x] 10 | step_pin: gpio3 11 | dir_pin: !gpio2 12 | enable_pin: !gpio4 13 | rotation_distance: 40 14 | microsteps: 16 15 | endstop_pin: ^!gpio11 16 | # endstop_pin: tmc2209_stepper_x:virtual_endstop 17 | # 18 | position_endstop: 120 19 | position_max: 120 20 | homing_speed: 50 21 | homing_retract_dist: 5 22 | homing_positive_dir: true 23 | 24 | [tmc2209 stepper_x] 25 | uart_pin: gpio9 26 | tx_pin: gpio8 27 | # MS2/AD1=0,MS1/AD0=1 28 | uart_address: 1 29 | interpolate: True 30 | run_current: 0.8 31 | hold_current: 0.6 32 | sense_resistor: 0.220 33 | stealthchop_threshold: 999999 34 | # diag_pin: ^gpio11 35 | # driver_SGTHRS: 100 36 | 37 | [stepper_y] 38 | step_pin: gpio16 39 | dir_pin: !gpio15 40 | enable_pin: !gpio14 41 | rotation_distance: 40 42 | microsteps: 16 43 | endstop_pin: ^!gpio12 44 | # endstop_pin: tmc2209_stepper_y:virtual_endstop 45 | position_endstop: 120 46 | position_max: 120 47 | homing_speed: 50 48 | homing_retract_dist: 5 49 | 50 | [tmc2209 stepper_y] 51 | uart_pin: gpio9 52 | tx_pin: gpio8 53 | # MS2/AD1=1,MS1/AD0=0 54 | uart_address: 2 55 | run_current: 0.8 56 | hold_current: 0.6 57 | sense_resistor: 0.220 58 | stealthchop_threshold: 999999 59 | #diag_pin: ^gpio12 60 | #driver_SGTHRS: 100 61 | 62 | [stepper_z] 63 | step_pin: gpio19 64 | dir_pin: !gpio18 65 | enable_pin: !gpio17 66 | rotation_distance: 8 #for T8x8 lead screw 67 | microsteps: 16 68 | rotation_distance: 8 69 | endstop_pin: ^!gpio13 70 | position_endstop: 0 71 | #endstop_pin: probe:z_virtual_endstop 72 | position_min: -1.0 73 | position_max: 250 74 | homing_speed: 12 75 | second_homing_speed: 3.0 76 | homing_retract_dist: 3.0 77 | 78 | [tmc2209 stepper_z] 79 | uart_pin: gpio9 80 | tx_pin: gpio8 81 | # MS2/AD1=1,MS1/AD0=1 82 | uart_address: 3 83 | run_current: 0.580 84 | hold_current: 0.500 85 | sense_resistor: 0.220 86 | stealthchop_threshold: 999999 87 | 88 | [extruder] 89 | step_pin: gpio6 90 | dir_pin: !gpio5 91 | enable_pin: !gpio7 92 | full_steps_per_rotation: 200 # 1.8 degree motor 93 | rotation_distance: 22.23 # See calibrating rotation_distance on extruders doc 94 | gear_ratio: 50:10 # For Mini Afterburner 95 | microsteps: 16 96 | rotation_distance: 33.500 97 | nozzle_diameter: 0.4 98 | filament_diameter: 1.75 99 | heater_pin: gpio24 100 | sensor_type: EPCOS 100K B57560G104F 101 | sensor_pin: gpio28 102 | control: pid 103 | pid_Kp: 22.2 104 | pid_Ki: 1.08 105 | pid_Kd: 114 106 | min_temp: 0 107 | max_temp: 300 108 | min_extrude_temp: 170 109 | max_extrude_only_distance: 780.0 110 | max_extrude_cross_section:2 111 | pressure_advance: 0.0 # See tuning pressure advance doc 112 | pressure_advance_smooth_time: 0.040 113 | 114 | [tmc2209 extruder] 115 | uart_pin: gpio9 116 | tx_pin: gpio8 117 | # MS2/AD1=0,MS1/AD0=0 118 | uart_address: 0 119 | interpolate: True 120 | run_current: 0.650 121 | hold_current: 0.500 122 | sense_resistor: 0.220 123 | stealthchop_threshold: 999999 124 | 125 | [filament_switch_sensor runout_sensor] 126 | switch_pin: ^gpio10 127 | pause_on_runout: True 128 | 129 | # [filament_motion_sensor smart_sensor] 130 | # switch_pin: ^gpio10 131 | # detection_length: 2.5 132 | 133 | [heater_bed] 134 | heater_pin: gpio23 135 | sensor_type: EPCOS 100K B57560G104F 136 | sensor_pin: gpio26 137 | control: pid 138 | pid_Kp: 54.027 139 | pid_Ki: 0.770 140 | pid_Kd: 948.182 141 | min_temp: 0 142 | max_temp: 130 143 | 144 | [printer] 145 | kinematics: corexy 146 | max_velocity: 500 147 | max_accel: 3000 148 | max_z_velocity: 25 149 | max_z_accel: 30 150 | square_corner_velocity: 6.0 151 | 152 | [heater_fan hotend_fan] 153 | pin: gpio21 154 | heater: extruder 155 | heater_temp: 50.0 156 | 157 | [fan] 158 | pin: gpio20 159 | 160 | #[heater_fan controller_fan] 161 | #pin: gpio22 162 | #heater: heater_bed 163 | #heater_temp: 45.0 164 | 165 | [temperature_sensor chamber] 166 | sensor_type: EPCOS 100K B57560G104F 167 | sensor_pin: gpio27 168 | #min_temp: 169 | #max_temp: 170 | 171 | #[probe] 172 | ## Inductive Probe - If you use this section , please comment the [bltouch] section 173 | ## This probe is not used for Z height, only Quad Gantry Leveling 174 | ## In Z+ position 175 | ## If your probe is NC instead of NO, add change pin to ^PA3 176 | #pin: ^gpio25 177 | #x_offset: 0 178 | #y_offset: 25.0 179 | #z_offset: 0 180 | #speed: 10.0 181 | #samples: 3 182 | #samples_result: median 183 | #sample_retract_dist: 3.0 184 | #samples_tolerance: 0.006 185 | #samples_tolerance_retries: 3 186 | 187 | #[bltouch] 188 | #sensor_pin: gpio25 189 | #control_pin: gpio13 # Reuse z endstop pin 190 | 191 | #[neopixel board_rgb] 192 | #pin: gpio29 193 | #chain_count: 1 194 | #color_order: GRB 195 | #initial_RED: 0.3 196 | #initial_GREEN: 0.3 197 | #initial_BLUE: 0.3 198 | 199 | [idle_timeout] 200 | timeout: 1800 201 | 202 | [safe_z_home] 203 | home_xy_position: 120,120 204 | speed: 50.0 205 | z_hop: 5 206 | 207 | 208 | # Tool to help adjust bed leveling screws. One may define a 209 | # [bed_screws] config section to enable a BED_SCREWS_ADJUST g-code 210 | # command. 211 | [bed_screws] 212 | screw1: 65,5 213 | screw1_name: front screw 214 | screw2: 10,110 215 | screw2_name: back left 216 | screw3: 120,110 217 | screw3_name: back right 218 | 219 | 220 | [gcode_macro PRINT_START] 221 | # Use PRINT_START for the slicer starting script - please customize for your slicer of choice 222 | gcode: 223 | G28 ; home all axes 224 | G1 Z20 F3000 ; move nozzle away from bed 225 | 226 | [gcode_macro PRINT_END] 227 | # Use PRINT_END for the slicer ending script - please customize for your slicer of choice 228 | gcode: 229 | 230 | M400 ; wait for buffer to clear 231 | G92 E0 ; zero the extruder 232 | G1 E-4.0 F3600 ; retract filament 233 | G91 ; relative positioning 234 | 235 | # Get Boundaries 236 | {% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %} 237 | {% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %} 238 | {% set max_z = printer.configfile.config["stepper_z"]["position_max"]|float %} 239 | 240 | # Check end position to determine safe direction to move 241 | {% if printer.toolhead.position.x < (max_x - 20) %} 242 | {% set x_safe = 20.0 %} 243 | {% else %} 244 | {% set x_safe = -20.0 %} 245 | {% endif %} 246 | 247 | {% if printer.toolhead.position.y < (max_y - 20) %} 248 | {% set y_safe = 20.0 %} 249 | {% else %} 250 | {% set y_safe = -20.0 %} 251 | {% endif %} 252 | 253 | {% if printer.toolhead.position.z < (max_z - 2) %} 254 | {% set z_safe = 2.0 %} 255 | {% else %} 256 | {% set z_safe = max_z - printer.toolhead.position.z %} 257 | {% endif %} 258 | 259 | G0 Z{z_safe} F3600 ; move nozzle up 260 | G0 X{x_safe} Y{y_safe} F20000 ; move nozzle to remove stringing 261 | TURN_OFF_HEATERS 262 | M107 ; turn off fan 263 | G90 ; absolute positioning 264 | G0 X60 Y{max_y} F3600 ; park nozzle at rear 265 | 266 | [gcode_macro LOAD_FILAMENT] 267 | gcode: 268 | M83 ; set extruder to relative 269 | G1 E30 F300 ; load 270 | G1 E15 F150 ; prime nozzle with filament 271 | M82 ; set extruder to absolute 272 | 273 | [gcode_macro UNLOAD_FILAMENT] 274 | gcode: 275 | M83 ; set extruder to relative 276 | G1 E10 F300 ; extrude a little to soften tip 277 | G1 E-40 F1800 ; retract some, but not too much or it will jam 278 | M82 ; set extruder to absolute 279 | 280 | #[include v0_display.cfg] 281 | #[include bedScrewMenu.cfg] 282 | --------------------------------------------------------------------------------