Editting firmware for any board?

anybody know if I can take a working cnc firmware that works with the lowrider, and edit the condiguration of the board being used. that is change the like skr pro to btt rumba32. I am wondering what all do I change in the firmware to make it work with the rumba32. Or is it legal, I think its open source please help thanks

Dean it might help to keep all your questions in the same thread. That lets us have a little more context to what you are trying to do.

You can use any board with enough drivers to run your machine. Marlin is easily configured. I do suggest using one of the boards we already have a configuration for though if you are not well versed in editing Marlin.

It depends on what you want out of this project. Do you just want a CNC to start cutting stuff or are using this as a platform to learn programming and electronics as well?

cnc to cut stuff for lowrider. I know some programming but it’s been a while. I am kind of stuck with this part here. On the lowrider there is one x motor, 2 y axis and z. z = e0 and y= e1. on the rumba32 I have. this is the part of Configuration_adv.h

/**

  • Dual Steppers / Dual Endstops
  • This section will allow you to use extra E drivers to drive a second motor for X, Y, or Z axes.
  • For example, set X_DUAL_STEPPER_DRIVERS setting to use a second motor. If the motors need to
  • spin in opposite directions set INVERT_X2_VS_X_DIR. If the second motor needs its own endstop
  • set X_DUAL_ENDSTOPS. This can adjust for “racking.” Use X2_USE_ENDSTOP to set the endstop plug
  • that should be used for the second endstop. Extra endstops will appear in the output of ‘M119’.
  • Use X_DUAL_ENDSTOP_ADJUSTMENT to adjust for mechanical imperfection. After homing both motors
  • this offset is applied to the X2 motor. To find the offset home the X axis, and measure the error
  • in X2. Dual endstop offsets can be set at runtime with ‘M666 X Y Z’.
    */

//#define X_DUAL_STEPPER_DRIVERS //I know there is only one x motor so I don’t mess with this
#if ENABLED(X_DUAL_STEPPER_DRIVERS)
#define INVERT_X2_VS_X_DIR true // Set ‘true’ if X motors should rotate in opposite directions
//#define X_DUAL_ENDSTOPS
#if ENABLED(X_DUAL_ENDSTOPS)
#define X2_USE_ENDSTOP XMAX
#define X2_ENDSTOP_ADJUSTMENT 0
#endif
#endif

//#define Y_DUAL_STEPPER_DRIVERS //should I uncomment this for both the drivers or define the e0 driver
#if ENABLED(Y_DUAL_STEPPER_DRIVERS)
#define INVERT_Y2_VS_Y_DIR true // Set ‘true’ if Y motors should rotate in opposite directions
//#define Y_DUAL_ENDSTOPS
#if ENABLED(Y_DUAL_ENDSTOPS)
#define Y2_USE_ENDSTOP YMAX
#define Y2_ENDSTOP_ADJUSTMENT 0
#endif
#endif

//
// For Z set the number of stepper drivers
//
#define NUM_Z_STEPPER_DRIVERS 1 // (1-4) Z options change based on how many

#if NUM_Z_STEPPER_DRIVERS > 1
//#define Z_MULTI_ENDSTOPS
#if ENABLED(Z_MULTI_ENDSTOPS)
#define Z2_USE_ENDSTOP XMAX
#define Z2_ENDSTOP_ADJUSTMENT 0
#if NUM_Z_STEPPER_DRIVERS >= 3
#define Z3_USE_ENDSTOP YMAX
#define Z3_ENDSTOP_ADJUSTMENT 0
#endif
#if NUM_Z_STEPPER_DRIVERS >= 4
#define Z4_USE_ENDSTOP ZMAX
#define Z4_ENDSTOP_ADJUSTMENT 0
#endif
#endif
#endif
So what I am wondering the second z motor and the second y motor they are separate on my board. Do I define them as e0 and e1.

If you uncomment those they get assigned to the next free driver available.

Do one at a time with steppers not connected to any belts to test.

You can download Jeff’s working LR firmware and either compare or just change the board name instead of doing it all from scratch.

thanks ryan, I just like to experiment. I’ll do that where can i find jeffs firmware

Marlinbuilder releases

The first two things I would do are:

Download one of the DualLR firmwares from MarlinBuilder releases. Build it without changing anything with platformio.

Download a known good firmware for your board and compile that. Ideally, it would also be based on 2.0.7.2 of Marlin.

Once you have each of those built, you have two “hills to fight from” and you can work on merging in the changes to make the DualLR firmware to work of your board.

Marlin is GPL 3.0. which some might say is aggressively open source. You definitely can edit it. If you ever distribute (sell or give away) your edits, or boards with your firmware you compiled from those edits, you will have to also publish and share the source code. That is as easy as making a fork in github and publishing your changes.

If you just keep the edits to yourself, then you don’t have to worry. And if you make an honest mistake, I doubt anyone would care.

It is really intended to add ammunition against companies like creality, who sell the firmware in their printers. They are legally required to publish their changes, and if they don’t, the license gives some power to go after them and force them to pay or publish. If they don’t like that, then they shouldn’t have copied the GPL 3 source code to start with.

I am not a lawyer, but that is my understanding of it.