MKS Robin E3D v1.1

I have just bought this board. It seems like it was a mistake doing it since it is kind of old and Marlin didn’t update all the pertaining files for this board.
I have downloaded the Marlin folder specific for this board but I can’t compile it with the newer version of PlatformIO.
It’s the version of Marlin 2.0.6.1. Where can I find an older version of PlatformIO that will work with this Marlin version?
It is obvious that it once worked with PlatformIO.

Processing mks_robin (board: genericSTM32F103ZE; platform: ststm32@~12.1; framework: arduino)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
Copying variant MARLIN_F103Zx to framework directory...
CONFIGURATION: https://docs.platformio.org/page/boards/ststm32/genericSTM32F103ZE.html
PLATFORM: ST STM32 (12.1.1) > STM32F103ZE (64k RAM. 512k Flash)
HARDWARE: STM32F103ZET6 72MHz, 64KB RAM, 512KB Flash
DEBUG: Current (blackmagic) External (blackmagic, cmsis-dap, jlink, stlink)
PACKAGES: 
 - framework-arduinoststm32 @ 4.10900.200819 (1.9.0) 
 - framework-cmsis @ 2.50501.200527 (5.5.1) 
 - toolchain-gccarmnoneeabi @ 1.90201.191206 (9.2.1)
Converting Marlin.ino
LDF: Library Dependency Finder -> https://bit.ly/configure-pio-ldf
LDF Modes: Finder ~ chain, Compatibility ~ soft
Found 10 compatible libraries
Scanning dependencies...
Dependency Graph
|-- SPI @ 1.0
|-- IWatchdog @ 1.0.0
|-- EEPROM @ 2.0.1
|-- SoftwareSerial @ 1.0
|-- Wire @ 1.0
|-- Servo @ 1.1.2
Building in release mode

... lot of files truncated to keep this log short ...

Linking .pio/build/mks_robin/firmware.elf
Checking size .pio/build/mks_robin/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [=======   ]  70.8% (used 46432 bytes from 65536 bytes)
Flash: [====      ]  42.0% (used 219940 bytes from 524288 bytes)
Building .pio/build/mks_robin/firmware.bin
encrypt([".pio/build/mks_robin/firmware.bin"], [".pio/build/mks_robin/firmware.elf"])
=============================================== [SUCCESS] Took 15.05 seconds ===============================================

Environment    Status    Duration
-------------  --------  ------------
mks_robin      SUCCESS   00:00:15.045
=============================================== 1 succeeded in 00:00:15.045 ===============================================

sivar, I will have to ask more questions since I have no idea what/how to do what you’ve written.

  1. Clone the MarlinFirmware/Marlin repository. The 2.0.6.1? And to anywhere on my computer or a specific place? I guess not in PlatformIO.
  2. How do I open VS Code in that folder. I have an icon on my desktop and when I click on it VS Code opens.
  3. How do I change the branch?
  4. I can do that.
  5. How do I choose the enviroment?

BTW, I tried the configuration.h by copying it into Marlin 2.1.2.5 and pressed the build button in PlatformIO and it did make an .bin file BUT!!! That sample configuration.h file is generic and not like the one in the 2.0.6.1 in a very important part, which is the reason I bought that board in the first place.
When I tried to change the configuration.h, in one spot only, to the what I need the build failed.
This is the firmware that fits my board https://github.com/makerbase-mks/MKS-Robin-E3-E3D/tree/master/firmware/V1.1/Marlin-2.0.6.1_for_ender3_TMC2209
The TMC2209 is the important part.

OK, I’m making progress. I found out most of the errors and could fix them. I was joggling too many Marlin iteration at one time and confused some things therefore!
Now I have other errors which I don’t know why the show up since the “missing” files are where they are supposed to be as can be seen in picture on the left.

Also, the error in yellow, the file is also there where it is supposed to be but I didn’t make a picture of it.

Here is a recording what I did:

Note: The configuration file was copied and pasted from the release-2.1.2.5 branch of the https://github.com/MarlinFirmware/Configurations repository

Version 2.0.6.1 is 4 years old. Bringing the entire build chain back to this level is a challenge. Unfortunately, I cannot help you at this point.

As far as I can see, the current 2.1.2.5 version also supports the TMC2209 driver. I therefore see no reason to use a version that is 4 years old. But Marlin Support will be able to give you a better answer.

sivar, I really appreciate your afford to help me.
As I’ve said in my previous post, with the picture, I’m already farther ahead. If I now can solve the problem with the error message of the “missing” files, which are not missing, I may be able to resolve all issues.

I know, which is why I asked where I can get an older version of PlatformIO.

I tried it but if you change the A4988 drivers to the TMC2209 it throws an error.

As written, Marlin is quite a very complex project and bringing back the entrie build chain to a point 4 years ago is challanging. As here are many settings very specific to the Marlin project you should ask the Marlin support.

In a simple project it’s simply changing the version number in the platform setting. But Marlin isn’t such a simple project.

Out of desperation I will try changing the version number. I have nothing to lose but everything to gain. LOL.
Which version will be appropriate for a project 4 years, or more, old?

Afaik the MKS Robin is an STM32 based board:

The “non found files” can be because the file paths are getting too long for the default Windows limit.

The project being in a long path like C:\Utility\Cnc\3d Printer\Marlin-2.0.6.1_E3D_V1.1 doesn’t help there.

You can turn on NTFS long paths and reboot your computer to see if that helps:

https://arduino-pico.readthedocs.io/en/latest/platformio.html#step-2-enabling-long-paths-in-the-windows-os

1 Like

Yep, you were right. Just for fun, I tried this: To match this Marlin version, I built it with PlatformIO core 4.3.4.

First I had to manually downgrade some Python packages versions because expressions like marshmallow>2 now pulled in way too new packages. Then that core version couldn’t communicate with the current PIO registry anymore, so every platform and package had to be predownloaded and unzipped in the right place: STSTM32 platform, compiler, stm32duino tool. The trickiest was the scon build system: It required tool-scons@~3.30102.0, whicih isn’t in the registry anymore. I was judging from the version specifier that they meant SCons 3.1.2 (which exists), but the core actually expected functions that only exist in SCons 4.x. So I repackaged SCons 4.0.1 into the package version 3.30102.0 (what a mess).

Then, it actually produced a firmware with Github Actions:

https://github.com/maxgerhardt/MKS-Robin-E3-E3D/blob/master/.github/workflows/build.yml
https://github.com/maxgerhardt/MKS-Robin-E3-E3D/actions/runs/15911449387

0 out 10, would not recommend. Painful.

PIO core 5.x is equally unusable today, it just gives a hard error message and exit when trying to download anything from the registry: “Please upgrade to PlatformIO 6”.

So, it should be much more desirable to either

  1. Configure the latest version of Marlin correctly for the MKS Robin E3D v1.1
  2. Or patch the platformio.ini (and python scripts) of the old Marlin version to work correctly under PlatformIO core version 6.
1 Like

For completeness: I think for a MKS Robin Ender 3D v1.1 this config file is better fitting:

https://github.com/MarlinFirmware/Configurations/tree/release-2.1.2.5/config/examples/Creality/Ender-3/MKS%20Robin%20E3/V1.1

This uses the same

that the reference firmware uses

This config also already has the TMC2209 setup as its motor driver

Max, I’m overwhelmed! Thank you so much for looking into it in such a depth!
I’ll try to make heads and tails from your info and see if I can, finally, get a .bin file for my board!

Yes, the F1 version of the STM32

Thanks to Max I’m making progress. I whittled it down to one error. I found the _Statusscreen.h online but I don’t know where to put it. I don’t know what the things in the yellow circle mean. I think it’s supposed to be a shortcut for a location but I don’t know how to interpreted it.

That means that the file is located three levels above.
This is the “Marlin” directory - the same level as “Configuration.h

It seems this is optional and will be only used if CUSTOM_STATUS_SCREEN_IMAGE is enabled and STATUS_COMBINE_HEATERS is disabled - See line 36.

The _Statusscreen.h and _Bootscreen.h files are in the config repo too.

Did you copy all files from here to your Marlin directory? Should be right next to the Configuration.h etc.