Hi all, I am reviving my MPCNC project, and one of the biggest tasks will be to build a FW for the control board I have : An SKR 3 EZ.
Before I go deep in late night coffee infused code/config sessions, I would like to have your thoughts on the overall methodology, especially from the ones who are currently using boards which don’t have a V1 FW available.
I figured a good way to go would be to work by comparison between differents Marlin configs. So I got the following versions:
From V1: FW for the SKR pro, which is the closest to the SKR 3, I believe => SkrPro_Dual_2209-2.1.1. That’ll give an example of a proper Marlin for MPCNC
From Marlin: The vanilla Marlin 2.1.1, to be able to diff it with V1’s and identify what is generic and what if MPCNC specific
From BTT: The only FW they have available for the SKR3. Based on 2.0.9.3. If there is some funny business here, or customization necessary for that board, I should find it there
From Marlin: The vanilla Marlin 2.0.9.3, to be able to diff the board specific configs in the BTT firmware
From V1: SkrPro_Dual_2209-2.0.9, for comparison purposes on the 2.0.9 baseline
Soooooo. Now the big question is which one do I fork to use as my base for my MPCNC project. I am leaning towards a SkrPro_Dual_2209-2.1.1 base, remapping pins and porting other configs necessary for the SKR3. But on the other hand, starting from the BTT FW should make it more likely that it would run on the SKR3, and I have 3 points of comparison for 2.0.9 (V1-BTT-Vanilla).
SkrPro_Dual_2209-2.0.9 is also an option : trusted V1 firmware for MPCNC and the same 3 points of comparison.
So to all the Marlin tinkerers around: are 2.0.9 and 2.1.1 close enough that config comparison between these versions is straightforward? Or has there been some deep changes which make it cumbersome?
Any suggestion is welcome at that point
At least one good news in that mess: I successfully compiled all the firmwares I mentioned on the platformio installed on my PC. Not a bad start.
Only the BTT FW had an issue requiring change in a python script to compile. This is not making me confident to use this FW as my starting point…
I have recently compiled from the marlin source for the SKR3 for the MPCNC Primo (so not the EZ variant) with TMC2209 drivers, display TFT35 E3 v3 + ESP07s WIFI module.
I am still working through a few issues (getting the wifi to work and the display), but am able to make it all work through repetier. Note that there is no need to cut off the pin to disable sensorless homing - this requires the jumper to be placed in the location as indicated in the manual.
One of the key points is to check the actual chip which is in the board as BTT have a couple of different variants - and use this in the default_envs within platformio.ini.
I have not had to dive into the pins file within the Marlin/src/pins/stm32h7 folder to make any adjustments - this all worked out of the box.
I looked at the V1 build src but didnt get my head around the approach - so would be happy to assist with this if someone had a roadmap to the different files. Suspect i needed to work in the makefile…
Thank for you message, the pin for sensorless was one of the few good news reading the documentation. That documentation is lacking in so many ways…
I don’t have the board with me here, so cannot check the exact chipset. So for now I compiled with STM32H743Vx_btt as default env. Hopefully it is the right one.
I have so many questions for you…
What version of Marlin did you start from? I’m on 2.1.1, to be able to compare easily with the V1 FW
I have never used repetier, you connect a PC running repetier to the board via the USB port of the board?
With repetier, you are able to send individual GCODE commands interactively or you have to generate a job and send it?
I checked the pins for SKR3 and SKR3 EZ and as I expected it is all the same, only the driver sockets are different. So could you share the pins/sockets you used? I obviously plan on using E0M and E1M for the X2 and Y2 motors. I assume ZBM is driven by the same driver as ZAM, right? (so I don’t plan on using that one).
For the end stops X Y and Z are clearly labeled “STOP” on the board, and then there are E0DET E1DET and PWRDET with the same physical connectors, so I assume I can use E0DET and E1DET to wire the second end stops of X and Y. Is that correct? Do you know what “DET” stands for? “something end of travel”? (pure curiosity…)
“Make it all work”, do you mean unit testing each part (motor, stop) or are you running the assembled CNC for full jobs?
I started with the lates bugfix (Marlin-bugfix-2.1.x).
Do check the chip on the board - i picked the wrong one initially!
Repetier host has a manual control panel, much like the other tools that are around.
I have been connecting via usb cable, and connects via serial connection. There is some details on the following page. https://docs.v1e.com/software/repetier-host/
You can send individual commands from the manual control panel as well.
You can upload a series of gcodes via file as well - this is how i have uploaded the crown…
In terms of pins i have it configured in the following way (the pins are shown on this image SKR 3 Pinout Stepper Motors
X1 - pins XM 2B/2A/1A/1B
Y1 - pins YM 2B/2A/1A/1B
Z1 - pins ZAM 2B/2A/1A/1B (ZAB not used)
X2 - pins E0M 2B/2A/1A/1B
Y2 - pins E1M 2B/2A/1A/1B
I have the extruders number set to 0. Marlin buld automatically assigns the connections for the secondary X2 and Y2 stepper motors and end stops, so havent looked at all the specific pins.
End Stops
X1 - on X-Stop - pin PC1
X2 - on E0 det - pin PC2
Y1 - on Y-Stop - pin PC3
Y2 - on E1 det - pin PA0
Z Probe - on Z-Stop - pin PC15
note these all have GND and +5V and the internal circuits have filtering.
I have not used PWRDET (pin PC15 for anything at the moment).
The DET is short hand for detector - these boards are targeting the 3d printing market, and here you connect to a filiament detector to detect filament breaks, runout etc.
I have had my machine working, drawing crown with a pen. Have been able to home X & Y, and then attach a probe to get the height set.
I have a small spindle with a variable frequency drive (VFD) that I am setting up - had an issue with the configuration that i have been working through - so in time will be testing a few cuts, engraving etc. My summer holiday (here in Australia) is just about over, so will be working less on this in the coming weeks.
I achieved getting the ESP07s wifi module working today. I eventually found the following instructions SKR pro wifi to first flash the module with ESP3d. These instructions work also for the SKR3 with the BTT ESP07s module. I was not able to flash the module firmware via the method indicated in the user manual. The key was to get the correct parameters:
Baud rate 115200
SPI speed 40MHz
SPI mode set to DOUT
erase the firmware first and then start the flash
I have the TFT display working - removed the cables connecting EXP1 & 2 and retained just the serial cable + power. Able to perform some control - although prefer the web base interface that i now with wifi access or repetier…
Thanks again for your thorough anwers!
It’s good stepper motor pins were properly assigned automatically. It was the same for the end stops and the probe? (no need to define which pin you used?)
I lived 5 years in New Caledonia, I miss my beach christmas
I got a successful build with all the V1 configs (except laser stuff, which I don’t plan to use for now) ported in 2.1.2.5, for SKR3 EZ.
Now it “just” has to be tested when I am back home