MKFirmware / MK4duo

MK4duo Firmware Printers 3D for Arduino and Arduino due
http://www.marlinkimbra.it
GNU General Public License v3.0
206 stars 117 forks source link

RFC: Extending subtractive machine support. #545

Open bdurbrow opened 6 years ago

bdurbrow commented 6 years ago

I would like to extend the already existing support for conventional CNC machines in several ways:

1) Add a compiler flag that can be set in Configuration.h that completely disables compilation of the heater/thermistor system.

Rationale: I see no reason to have the firmware doing that work on machines that don't have heated parts (CNC routers, mills, lathes, etc). Setting thermistors to the "fake" ones (992, etc) seems to me to be an ugly hack.

I intend to leave support for the extruder system in place with this compiler flag set however; as some machines could use a non-heated extruder (paste extrusion heads, glue dispensers, etc).

2) Implement support for a matrix keyboard attached to some extra pins (in my case, I'm going to be using one of the aux ports on my RAMPS board).

Rationale: This keyboard will be used to quickly access commonly used functions (jogging, part-zero setting, probing, and direct command/value entry). It eliminates the need to have a PC tethered to the controller (nice for compact machines, and eliminates PC issues as well).

3) Implement a more subtractive-CNC-focused UI module, as a compile option.

Rationale: It seems to me to be better to have the UI match the machine well, than have 3D printer stuff being displayed on a machine that's clearly not a 3D printer. So, if the CNC UI compile option is set, things like bed and extruder temperature won't be displayed, and things like spindle RPM and coolant pump state would be. Also, the menu system would be adjusted to be more CNC-focused.

4) If feasible, I'd like to implement G54 and other related commands for work offsets. Also, if there's enough processing power available, I'd like to implement co-ordinate system rotation.

Rationale: Setting part zero with G92 is... ugly. And it doesn't account for if you've probed the part fixture and found it out by a little bit in rotation.

I intend to do all the work - I'm not asking for you folks to implement these features for me. I'm just wanting any comments or input before I dive in. (and if you like what I've done, it would be nice to accept my pull requests when I get that far :-)

So, any comments, folks?

p.s. - I know this is an Italian repository, but I'm afraid I only speak English... and American English at that (sorry).

MagoKimbra commented 6 years ago

No problem for English, that's great. As for the rest, I only ask you to do a clean thing and touch the rest as little as possible. If the whole 3d printer part is not affected by the changes well. As soon as you have the first results you place them and so we evaluate each time how to move forward. Last thing all the changes you make, you can test only you, so I will have to trust if they work or not, if there are (I hope not) bugs you will have to adjust, because I have no way of verifying that they work. Thank you.