ErikZalm/Marlin — pull request #1063 by gregrebholz (2014-09-03 02:57:18+00:00)
Title: RigidBot support

Invent-A-Part (https://www.inventapart.com/) has fulfilled Kickstarter rewards and begun selling their "RigidBot" 3d printer, with RAMPS-based controller, and a Marlin derivative firmware (forked from ErikZalm/Marlin #a964b3c; but not developed with git). IAP is apparently not interested in bringing their changes back into Marlin, but the community is very interested in having Marlin support the RigidBot so we can benefit from community developments like runaway heater protection, z autoleveling, etc. I've taken all the IAP changes made to #a964b3c and implemented compatible ones in the latest Marlin, with special attention to compartmentalizing and containing the code to not interfere with other platforms supported by Marlin. I've successfully compiled 20 permutations of motherboards, LCDs, and various configuration options, so I believe this code is ready for inclusion. A few highlights:

* Support for the "RigidPanel" LCD. This was originally implemented with major alterations to ultralcd.cpp to replace rotary encoders and SD card support with the RigidPanel's directional keypad and USB drive support. To bring this into Marlin I've added rigidpanel.cpp and rigidpanel.h to compartmentalize the IAP changes, and excluded the contents of ultralcd.cpp from compiling when the RigidPanel is selected. I've only tested this with the RigidBoard controller for functionality, but I've confirmed it does not interfere with several Marlin-supported controller and LCD combinations. With a little more testing this will make the RigidPanel LCD a print-from-USB-drive options for many Marlin controllers.

* Added a new "predefined mechanics" structure to Configuration.h. This will be helpful to kits or preassembled machines where attributes like the build volume, acceleration, jerk, steps/mm, etc. can all be set from a single #define. This necessitated moving the "custom mechanics" settings to an #else block.

* example_configurations/rigidbot/makeallrigidbots.sh is a very simplistic automated build script that others may find useful for creating a number of permutations of Marlin. In the RigidBot community's case, we want to make ready made .hex files for the two sizes of RigidBots, with single or dual extruders, and one of two popular LCD choices.