Can't compile Marlin for Robin E3 - Ender3

I can’t compile / update my Robin E3 V1.0 with TMC2209, the old original Marlin provided by MKS from GitHub - makerbase-mks/MKS-Robin-E3-E3D: MKS Robin E3 E3D 32Bit Control Board 3D Printer parts with tmc2209 Uart mode driver For Creality Ender 3 CR-10 is quite old and does not want to compile with the latest VSCode / PlatformIO. [1]

The recent Marlin seems to have some issue with serial stuff [2], if I set my serial stuff in Configuration.h:
#define SERIAL_PORT 1

I can manage to build yet when I try to load the firmware on SDcard it stucks at 100% and won’t boot (btw the same things happens with Klipper, maybe it’s a problem related tp EEPROM?).

Anyway, anybody has some clue about it or a recent repository of Marlin that can be compiled for the Robin E3 V1.0 with TMC2209?

  1. This is how the old Marlin fails:
 ModuleNotFoundError: No module named 'platformio.managers':
  File "C:\Users\eaman\.platformio\penv\Lib\site-packages\platformio\builder\main.py", line 169:  
    env.SConscript(env.GetExtraScripts("pre"), exports="env")
  File "C:\Users\eaman\.platformio\packages\tool-scons\scons-local-4.5.2\SCons\Script\SConscript.py", line 598:
    return _SConscript(self.fs, *files, **subst_kw)
  File "C:\Users\eaman\.platformio\packages\tool-scons\scons-local-4.5.2\SCons\Script\SConscript.py", line 285:
    exec(compile(scriptdata, scriptname, 'exec'), call_stack[-1].globals)
  File "C:\Users\eaman\Documents\a Documents\marlin\mks\MKS-Robin-E3-E3D-master\firmware\V1.0\For 
Ender3 TMC2209\buildroot\share\PlatformIO\scripts\common-dependencies.py", line 12:
    from platformio.managers.package import PackageManager

Marlin recent:

  114 |   typedef MultiSerial< REPEAT_1(NUM_SERIAL, _S_MULTI) 0> SerialOutputT;
      |                        ^~~~~~~~
*** [.pio\build\mks_robin_e3\src\src\HAL\STM32\eeprom_flash.cpp.o] 
Error 1
compilation terminated due to -fmax-errors=5.
*** [.pio\build\mks_robin_e3\src\src\HAL\STM32\eeprom_sram.cpp.o] Error 1
*** [.pio\build\mks_robin_e3\src\src\HAL\STM32\eeprom_sdcard.cpp.o] Error 1
*** [.pio\build\mks_robin_e3\src\src\HAL\STM32\eeprom_if_iic.cpp.o] Error 1
compilation terminated due to -fmax-errors=5.
*** [.pio\build\mks_robin_e3\src\src\HAL\STM32\eeprom_wired.cpp.o] 
Error 1
*** [.pio\build\mks_robin_e3\src\src\HAL\STM32\fast_pwm.cpp.o] Error 1

Have you tried starting from the sample config for the Robin in the marlin sample configuration repository?

Thanks but it doesn’t work, I guess the Robin is a different type of board than the Robin E3.

The only thing that I can build right now is something with a wrong

#define SERIAL_PORT 1

Instead of:


#define SERIAL_PORT -1
#define SERIAL_PORT_2 1

That does not boot, it hangs at “UPDATE 100%” .

Sadly, MKS have been inconsistent in providing source code and getting changes upstream.

In the past, I’ve spent hours to work out a working config for mainline marlin from a random fork from a manufacturer and I’ll never get those hours back. :cry:

2 Likes

He I would be happy if I could at least re-compile the old Marlin that they provide, maybe there’s a way to install an old version of PlatformIO.
I tried to install Klipper but it’s the same thing: it gets stuck at installing (I can install Marlin with the same SD card so it works), it’s like they provided a version of Klipper that only works for the E3D version I guess (or V1.1 who knows?). Also it has a mini USB and the plug broke almost instantly as I tried to see if my klipper server could see it, so it would be really nice if I could update Marvin and use it standalone.

But I agree with you: it’s the last time I buy MakerBase.

1 Like

I’m sure that in theory, by digging through Marlin’s history of changes to the platformio configuration, it would be possible to work out how to fix it. But not my area of expertise, so a few other ideas…

Judging by the README here, I wonder if you could download Arduino 1.8.8 and use that instead of platformio?

Going by this:

…You might be able to compare those sources to the 2.0.6 release of Marlin to see what they changed. That might make it clearer how to port those changes to newer Marlin to use current platformio.

That’s probably all I can come up with though!

1 Like

I was having my own issues with this board, and stumbled upon this thread.

Strangely, I am starting from version 2.0.7.2, trying to update it to LTS 2.1.1, but I see everyone else is stuck at version 2.0.6. Version 2.0.7.2 seems to compile and flash, with some weird bugs. The 2.0.7.2 was provided by a small aliexpress seller for their niche printer.

If this is any help, my Configuration.h and Configuration_adv.h. My version.h is the same as the example provided above by @mcdanlj, except this line is
//#define SHORT_BUILD_VERSION "2.0.7.2", which is pretty self-explanatory. No idea if this is even relevant at all since this whole file is commented out.

1 Like