Rep Rap Firmware on SKR Pro 1.1 or 1.2

Somehow I am happy to hear that it isn´t my hardware that is at fault! So thanks for trying & helping!

I was talking to the team that ported RRF to SKR. They pointed to an older TFT FW version that should work, but that isn´t available for my TFT35 E3 V3 so can´t try that.
The issue of NPA is most likely caused here in BTT´s FW.

I´m going to try your config. Also found my old serial debugger, so am going to see if it still lives and troubleshoot some further.
Would I need some additional sys files for the heaters? I now have the following:
Schermafbeelding 2023-04-12 171857

correct! Am using 20T pulley.

Ok. I plugged a couple of motors into mine and it moves them as I’d expect for a LR. you’ll need to change the steps/mm back to 80.

You had some weird stuff in the power definitions, looks like you had dual extruders set up when you did the config. Or it thought that you did. Maybe that was to get the drives defined? Anyway, this config should work and drive your LR, and allow it to home.

I saw the other thread, you were talking about a difference in Z1/Z2, it’s not too bad to fix that in the homing files.

That is 100% consistent with what I’m seeing. In CNC mode, the tool temperatures don’t report, so there is no T/T0 temperature for it to find.

It does look for differences for RRF, but doesn’t seem to have the extruders=0 hook for RRF, just Marlin. Well, I also don’t have my extruders set to zero in my config.ini, so I should try that, too.

1 Like

yes, already did so! It´s the first thing I do so I don´t make a wrong cut dimension :slight_smile:

indeed! Maybe I should have read some tutorials first. But I am a “head in first”-guy for these sort of things :innocent:

Dan, OMG, the error message is gone with your config!!
I used your config, with a very minor tweak. Uploaded TFT config RRF and reboot the system and “poeff” it went away.

The only thing I notice now is that it give “busy processing” a lot when moving & the USB stick isnt readable. Didn´t had that one before.
So am going to experiment some more and report back

I played around, and tweaked some more.
This one is running fine for me. Just need to prefect the stepper speeds some day.

; Configuration file for SKR Pro (firmware version 3)
; executed by the firmware on start-up
;
; generated by RepRapFirmware Configuration Tool v3.4.0-LPC-STM32+6 on Fri Apr 07 2023 12:00:45 GMT+0200 (Midden-Europese zomertijd)

; General preferences
G90                                             ; send absolute coordinates...
M83                                             ; ...but relative extruder moves
M550 P"CNC_LR3"                                 ; set printer name

; Network
M552 S0                                         ; disable network

; Drives
M569 P0 S1                                      ; physical drive 0 goes forwards using default driver timings
M569 P1 S0                                      ; physical drive 1 goes backwards using TMC2209 driver timings
M569 P2 S1                                      ; physical drive 2 goes forwards using default driver timings
M569 P3 S1                                      ; physical drive 3 goes forwards using default driver timings
M569 P4 S0                                      ; physical drive 4 goes backwards using TMC2209 driver timings
M584 X0 Y1:3 Z2:4                            	; set drive mapping X on drive 0, Y on 1 and 3, Z on 2 and 4
M350 X16 Y16 Z16 I1             		        ; configure microstepping with interpolation
M92 X80.00 Y80.00 Z400.00	            		; set steps per mm
M566 X900.00 Y900.00 Z60.00     	    		; set maximum instantaneous speed changes (mm/min)
M203 X3000.00 Y3000.00 Z900.00		    		; set maximum speeds (mm/min)
M201 X180.00 Y180.00 Z80.00		        		; set accelerations (mm/s^2)
M906 X900 Y900 Z900 I30	                		; set motor currents (mA) and motor idle factor in per cent
M84 S60                                         ; Set idle timeout

; Axis Limits
M208 X0 Y0 Z0 S1                                ; set axis minima
M208 X646 Y2092 Z129 S0                         ; set axis maxima

; Endstops
M574 X1 S1 P"^xstop"                            ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop
M574 Y1 S1 P"^ystop+^e1stop"                    ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin ystop & e1stop
;M574 Z2 S1 P"^zstop+^e0stop"                   ; configure switch-type (e.g. microswitch) endstop for high end on Z via pin zstop    
M574 Z2 S1 P"^e2stop+^e0stop" 					; configure switch-type (e.g. microswitch) endstop for high end on Z via pin e2stop & e0stop

; Z-Probe
M558 P9 C"!^zstop" H5 F120 T600                 ; set Z probe type to switch and the dive height + speeds
M558 H30                                        ; *** Remove this line after delta calibration has been done and new delta parameters have been saved
G31 P500 X0 Y0 Z14                              ; set Z probe trigger value, offset and trigger height
M557 X100:600 Y150:2000 S100                    ; define mesh grid

; Heaters
M140 H-1                                        ; disable heated bed (overrides default heater mapping)

; Fans
M950 F0 C"fan0" Q500                            ; create fan 0 on pin fan0 and set its frequency
M106 P0 S1 H-1                                  ; set fan 0 value. Thermostatic control is turned off
M950 F1 C"fan2" Q500                            ; create fan 1 on pin fan2 and set its frequency
M106 P1 S1 H-1                                  ; set fan 1 value. Thermostatic control is turned off

; Tools
M563 P0 H1 F0 S"Makita"                     		; define tool 0
G10 P0 X0 Y0 Z0                                	; set tool 0 axis offsets
G10 P0 R0 S0                                   	; set initial tool 0 active and standby temperatures to 0C

; TFT
M575 P1 S2 B250000								; Set TFT serial port & baudrate to TFT settings
;M575 P1 S2 B57600 								; Alternative
;M575 P1 S0 B115200								; Alternative
												; https://teamgloomy.github.io/skr_pro_screen.html
; Custom settings
;M453											; set to CNC mode
												; https://docs.duet3d.com/User_manual/Reference/Gcodes#m453-select-cnc-device-mode
												; when activating this jobs like Z-1 doesnt work, so keep disabled (makita doesnt use PWM)

Important things I discovered;

  • I have stock LR3 install with only 5 steppers, so removed the “E” from Dan´s version
  • I had to define & activate a tool, without Drive but with fan to work
  • CNC mode (M453) doesn´t play nice with jobs like “Z-5”, as the minimum axis is 0. You´d think you can probe and use G92 to set 0: that doesnt work. So I disabled it to work (however the Z dimension after probing will remain Z axis max - probed distance, so no “real” 0 to focus on during jobs. (All this might just me that needs to learn to make better code)
  • baud rate can remain 250K
  • Using V1 TFT stock FW & stock config.ini, without tool set in RRF, can use the USB with folder structure (in TFT).
    However when setting tool, the USB drive disappears. That is for me really annoying as I use thumbdrives. Will need to figure out on how to fix this. Maybe playing around with the rrf config.ini might help here.

Will order RRF Wifi module soon to continue testing. And will try to reconfigure the display in the coming weeks to support the USB thumbdrive again.

So here are some other things for RRF.

So at the very end of my config.g for both the LR3 and for the Primo, I set the following:

G54                                             ; Select Workspace Coordinate 1

This moves the machine into workspace coordinates. From this, I can keep the soft stops, so the machine won’t go past the limits as defined for the axes, but still lets “zero” be wherever I need it to be for the job.

Then I have a few macros set up. (The TFT will now have a “macros” menu item instead of custom, so these gcode files go in the macros directory on your SD card in the SKR board.)

zprobe.g

; Probe the work, and set the workspace Z coordinate
M291 P"Attach Z Probe" R"Probe Work" S3 Z1          ; Display message with Z jog buttons
G30 S-1                                             ; Probe the work, (report machine position)
G10 L20 Z0.5                                        ; Set workspace position to 0.5mm
M400                                                ; Wait for save to finish
G00 Z5 F450                                         ; Move 5mm above work piece

You can omit the M291 command at the front. It’s intended for the PanelDue, and I don’t think the TFT35 will work with it correctly. It will display the message on the PanelDue, and also give Z jog controls until the user touches the “OK” button.

So what I am using here is the G10 command which in this case defines a current tool offset versus the machine space. This way I can still command a movement that is within the actual machine envelope, even if it’s well below the current zero position.

setworkzero.g

; Set the workspace X and Y to the current machine coordinates
G10 L20 X0.0000 Y0.0000

So once again, using the G10 command in much the same way as the G92 command gets used, but instead of setting the machine zero, I’m setting a workspace zero. Running the program in the machine workspace from here will then use the current position as 0, 0.

Now here’s a fun one… For this you must define the position of your Z motor screws in your config.g. With what I saw from the other thread, you probably don’t need this, but…

levelz.g

;bed.g
; If the printer hasn't been homed, home it
if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed
  G28
G0 X25.0 Y137.5 Z120
G30 P0 X5.0 Y137.5 H0 Z-99999
;G30 P1 X1020.0 Y137.5 H0 Z-99999 S-1 ; Report deviation, but don't do anything about it.
G30 P1 X1020.0 Y137.5 H0 Z-99999 S2   ; Adjust Z motor level

So here, we get to see some of RRF’s coolness.

First, there’s the conditional code, where we can home the machine if any axis isn’t homed, but don’t worry about it if it has been.

Next we use the G30 command (probe single point) in 2 locations to figure out the differential between 2 points (The Y at 137.5 was arbitrarily stolen from my 3D printers’ motor locations, and doesn’t really matter, so long as it’s a spot where the spoilboard or work can be probed.)

The second G30 probes a second point and tells RRF to adjust the Z position of the motors so that they are level. The same idea as G34 in Marlin. (In fact this is usually written into sys/bed.g which RRF calls when G34 is called, I think.)

Then I have a couple of macros to set CNC mode (M453) and set laser mode (M452) with a few parameters.

1 Like

Thanks Dan,
That’s some useful feedback and interesting macros!

For the moment all works well with RRF, now I only need to order a WiFi module and adapt the housing box so the module can fit within:)

Look what landed on my desk, the wifi module :slight_smile:
It will take some time but I hope to configure it within some weeks when on holidays.


2 Likes

My complaint about that module is the JST connector for the board side when a duPont connector would be more appropriate.

yes, that´s an odd decision. But that´s the same for the BTT TFT35, there they used Dupont instead of the JST, rather annoying.

Do you hook up both EXP wires on yours?
On team Gloomy they only use one according the pictures. The serial seems to be optional for FW updates.

I saw that they showed one, but that was a different board. Having both seems to work the way I expect, so I’ve left ot that way

1 Like

great, will experiment with it soon